:root{--pub-ink:#171126;--pub-muted:#6a6278;--pub-purple:#672db4;--pub-purple2:#8b5cf6;--pub-soft:#f7f3ff;--pub-line:#e8def6;--pub-card:#fff;--pub-night:#170c29}*{box-sizing:border-box}html{scroll-behavior:smooth}body.pub-body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--pub-ink);background:#fff}a{color:inherit}.pub-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--pub-line)}.pub-header-inner{max-width:1180px;margin:auto;min-height:72px;padding:10px 22px;display:flex;align-items:center;gap:22px}.pub-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;white-space:nowrap}.pub-brand img{width:40px;height:40px;border-radius:10px}.pub-nav{display:flex;gap:18px;align-items:center;flex:1}.pub-nav a,.pub-link{text-decoration:none;font-weight:750;color:#342947}.pub-nav a:hover,.pub-nav a.active,.pub-link:hover{color:var(--pub-purple)}.pub-actions{display:flex;align-items:center;gap:12px}.pub-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:linear-gradient(135deg,var(--pub-purple),var(--pub-purple2));color:#fff;text-decoration:none;font-weight:850;padding:13px 20px;box-shadow:0 10px 28px rgba(103,45,180,.22)}.pub-btn.secondary{background:#fff;color:var(--pub-purple);border:1px solid #cbb8ea;box-shadow:none}.pub-btn.small{padding:9px 15px}.pub-hero{background:radial-gradient(circle at 80% 15%,rgba(139,92,246,.5),transparent 34%),linear-gradient(135deg,#140922,#35115e 60%,#5f2baa);color:#fff}.pub-hero-inner{max-width:1180px;margin:auto;padding:74px 22px 64px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:44px;align-items:center}.pub-eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:900;color:#d9c9fb}.pub-hero h1{font-size:clamp(2.7rem,7vw,5.5rem);line-height:.95;letter-spacing:-.055em;margin:10px 0 20px}.pub-hero p{font-size:clamp(1.05rem,2vw,1.28rem);line-height:1.58;color:#eee7fa;max-width:760px}.pub-hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.pub-hero .pub-btn.secondary{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.35);color:#fff}.pub-hero-card{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.23);border-radius:26px;padding:26px;box-shadow:0 28px 70px rgba(0,0,0,.22)}.pub-hero-card h2{margin-top:0;font-size:1.35rem}.pub-checks{padding:0;margin:18px 0 0;list-style:none}.pub-checks li{padding:10px 0;border-top:1px solid rgba(255,255,255,.14)}.pub-latest{border-bottom:1px solid var(--pub-line);background:#fff;overflow:hidden}.pub-latest-inner{max-width:1180px;margin:auto;display:flex;align-items:center;gap:16px;padding:12px 22px}.pub-latest-label{font-weight:900;color:var(--pub-purple);white-space:nowrap}.pub-ticker-window{min-width:0;overflow:hidden;flex:1}.pub-ticker-track{display:flex;width:max-content;gap:34px;animation:pubTicker 48s linear infinite}.pub-ticker-track:hover{animation-play-state:paused}.pub-ticker-item{text-decoration:none;white-space:nowrap;color:#443852;font-weight:700}.pub-ticker-item span{font-weight:500;color:var(--pub-muted)}@keyframes pubTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}.pub-section{padding:66px 22px}.pub-section.soft{background:var(--pub-soft)}.pub-section.dark{background:var(--pub-night);color:#fff}.pub-section-inner{max-width:1180px;margin:auto}.pub-section-head{max-width:760px;margin-bottom:30px}.pub-section-head h2{font-size:clamp(2rem,4vw,3.2rem);margin:0 0 12px;letter-spacing:-.035em}.pub-section-head p{font-size:1.08rem;line-height:1.6;color:var(--pub-muted)}.pub-section.dark .pub-section-head p{color:#d8cee6}.pub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.pub-card{background:var(--pub-card);border:1px solid var(--pub-line);border-radius:20px;padding:24px;box-shadow:0 12px 35px rgba(62,31,92,.06)}.pub-card h3{margin:4px 0 10px;font-size:1.25rem}.pub-card p{margin:0;color:var(--pub-muted);line-height:1.55}.pub-card-link{text-decoration:none}.pub-card-link:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(62,31,92,.11)}.pub-number{display:inline-flex;width:38px;height:38px;border-radius:50%;align-items:center;justify-content:center;background:#eee5ff;color:var(--pub-purple);font-weight:900}.pub-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.pub-post{display:block;text-decoration:none;background:#fff;border:1px solid var(--pub-line);border-radius:18px;padding:20px;min-height:154px}.pub-post:hover{border-color:#b99de7}.pub-post .meta{font-size:.83rem;color:var(--pub-muted);margin-bottom:12px}.pub-post strong{font-size:1.15rem;line-height:1.25}.pub-post p{color:var(--pub-muted);font-size:.94rem;line-height:1.45}.pub-content{max-width:940px;margin:auto;padding:54px 22px 72px}.pub-content h1{font-size:clamp(2.3rem,6vw,4.2rem);letter-spacing:-.045em;margin:0 0 12px}.pub-content .lead{font-size:1.2rem;line-height:1.65;color:var(--pub-muted);margin-bottom:32px}.pub-content h2{margin-top:36px;font-size:1.55rem}.pub-content p,.pub-content li{line-height:1.7}.pub-content li{margin:7px 0}.pub-note{background:var(--pub-soft);border:1px solid var(--pub-line);border-radius:16px;padding:18px}.pub-form-card{max-width:760px;margin:44px auto 70px;padding:26px;background:#fff;border:1px solid var(--pub-line);border-radius:22px;box-shadow:0 18px 50px rgba(62,31,92,.08)}.pub-form-card h1{margin-top:0}.pub-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.pub-field{margin-top:15px}.pub-field label{display:block;font-weight:800;margin-bottom:7px}.pub-field input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid #d9ccee;font-size:16px}.pub-field small{display:block;color:var(--pub-muted);margin-top:6px}.pub-checkbox{display:flex;gap:9px;align-items:flex-start;margin:18px 0;line-height:1.4}.pub-alert{padding:14px 16px;border-radius:14px;margin:16px 0}.pub-alert.error{background:#fff0f0;border:1px solid #efb7b7;color:#781d1d}.pub-alert.ok{background:#effcf4;border:1px solid #b7e5c9;color:#14532d}.pub-footer{background:#11081d;color:#e9dff5}.pub-footer-inner{max-width:1180px;margin:auto;padding:42px 22px;display:grid;grid-template-columns:1fr 2fr auto;gap:30px;align-items:start}.pub-footer p{color:#bfb3cc}.pub-footer nav{display:flex;gap:14px;flex-wrap:wrap}.pub-footer a{color:#e9dff5;text-decoration:none}.pub-copyright{margin:0;white-space:nowrap}.pub-socials{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.pub-social{display:inline-flex;align-items:center;gap:7px;text-decoration:none;border:1px solid var(--pub-line);background:#faf7ff;border-radius:999px;padding:8px 12px;font-weight:800;color:#472774}.pub-social b{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#6e35b8;color:#fff;font-size:.72rem}.pub-tier-note{background:#fff8e9;border:1px solid #f2d698;border-radius:16px;padding:14px 16px;color:#624717}.pub-ad-note{font-size:.72rem;color:#8a8195;text-transform:uppercase;letter-spacing:.1em;text-align:center;margin:24px 0 4px}@media(max-width:900px){.pub-nav{display:none}.pub-hero-inner{grid-template-columns:1fr}.pub-grid,.pub-post-grid{grid-template-columns:1fr 1fr}.pub-footer-inner{grid-template-columns:1fr}.pub-copyright{white-space:normal}}@media(max-width:620px){.pub-header-inner{padding:10px 14px}.pub-brand span{display:none}.pub-actions{margin-left:auto}.pub-link{display:none}.pub-hero-inner{padding:52px 18px}.pub-section{padding:48px 18px}.pub-grid,.pub-post-grid,.pub-form-grid{grid-template-columns:1fr}.pub-latest-inner{padding:10px 14px}.pub-latest-label{font-size:.85rem}.pub-content{padding:40px 18px 58px}.pub-form-card{margin:24px 14px 50px;padding:20px}}

/* Compact homepage pass — 2026-08-22b */
.pub-home-compact .pub-header-inner{max-width:1100px;min-height:60px;padding:7px 18px;gap:18px}
.pub-home-compact .pub-brand img{width:34px;height:34px;border-radius:8px}
.pub-home-compact .pub-nav{gap:15px;font-size:.94rem}
.pub-home-compact .pub-btn{padding:11px 17px}
.pub-home-compact .pub-btn.small{padding:8px 13px}
.pub-home-compact .pub-hero-inner{max-width:1100px;padding:38px 18px 34px;grid-template-columns:minmax(0,1.35fr) minmax(285px,.65fr);gap:28px}
.pub-home-compact .pub-hero h1{font-size:clamp(2.45rem,5.2vw,4.2rem);line-height:1;max-width:800px;margin:7px 0 13px}
.pub-home-compact .pub-hero p{font-size:1.08rem;line-height:1.48;max-width:720px;margin:0}
.pub-home-compact .pub-hero-actions{margin-top:19px}
.pub-home-compact .pub-hero-card{border-radius:20px;padding:18px 20px}
.pub-home-compact .pub-hero-card h2{font-size:1.12rem;margin-bottom:8px}
.pub-home-compact .pub-checks{margin-top:8px}
.pub-home-compact .pub-checks li{padding:7px 0;font-size:.93rem}
.pub-home-compact .pub-latest-inner{max-width:1100px;padding:9px 18px}
.pub-home-compact .pub-ticker-track{gap:28px;animation-duration:56s}
.pub-home-compact .pub-section{padding:38px 18px}
.pub-home-compact .pub-section-inner{max-width:1100px}
.pub-home-compact .pub-section-head.compact{max-width:820px;margin-bottom:20px}
.pub-home-compact .pub-section-head.compact h2{font-size:clamp(1.7rem,3vw,2.35rem);margin-bottom:7px}
.pub-home-compact .pub-section-head.compact p{font-size:1rem;line-height:1.5;margin:0}
.pub-home-compact .pub-grid{gap:14px}
.pub-home-compact .pub-card{border-radius:16px;padding:18px}
.pub-home-compact .pub-card h3{font-size:1.08rem;margin:4px 0 7px}
.pub-home-compact .pub-card p{font-size:.93rem;line-height:1.45}
.pub-home-compact .pub-number{width:31px;height:31px;font-size:.88rem}
.pub-home-compact .pub-post-grid{gap:12px}
.pub-home-compact .pub-post{min-height:126px;padding:16px;border-radius:15px}
.pub-home-compact .pub-post p{margin-bottom:0}
.pub-home-compact .pub-section-action{margin:16px 0 0}
.pub-home-compact .pub-split{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center}
.pub-home-compact .pub-split .pub-section-head{margin:0}
.pub-home-compact .pub-split .pub-hero-actions{margin:0;justify-content:flex-end;max-width:450px}
.pub-home-compact .pub-footer-inner{max-width:1100px;padding:26px 18px;gap:20px}
.pub-home-compact .pub-footer p{margin-bottom:0}
/* Ad positions are deliberately collapsed until a Google ad-unit slot is assigned. Their placement is now reserved in the DOM. */
.pub-ad-reserve{height:0;overflow:hidden;max-width:1100px;margin:0 auto}
.pub-ad-reserve.is-enabled{height:auto;min-height:90px;padding:8px 18px}
@media(max-width:900px){.pub-home-compact .pub-hero-inner{grid-template-columns:1fr}.pub-home-compact .pub-hero-card{display:none}.pub-home-compact .pub-split{grid-template-columns:1fr}.pub-home-compact .pub-split .pub-hero-actions{justify-content:flex-start;max-width:none}}
@media(max-width:620px){.pub-home-compact .pub-hero-inner{padding:28px 15px 25px}.pub-home-compact .pub-hero h1{font-size:2.45rem}.pub-home-compact .pub-section{padding:31px 15px}.pub-home-compact .pub-header-inner{padding:7px 12px}.pub-home-compact .pub-latest-inner{padding:8px 12px}}

/* Purple refresh + photo ticker cards — 2026-08-22c */
.pub-home-purple{background:#fcfbff}
.pub-home-purple .pub-header{background:linear-gradient(90deg,#35115e,#5f2baa);border-bottom:1px solid rgba(255,255,255,.12)}
.pub-home-purple .pub-brand span,.pub-home-purple .pub-nav a,.pub-home-purple .pub-link{color:#fff}
.pub-home-purple .pub-nav a.active{background:rgba(255,255,255,.12);color:#fff}
.pub-home-purple .pub-nav a:hover,.pub-home-purple .pub-link:hover{color:#f3e9ff}
.pub-home-purple .pub-brand img{box-shadow:0 6px 18px rgba(0,0,0,.22)}
.pub-home-purple .pub-actions .pub-btn.small{background:#fff;color:var(--pub-purple);box-shadow:none}

.pub-latest-cards{background:linear-gradient(180deg,#f4eeff,#fff);border-bottom:1px solid #e2d4f6}
.pub-home-purple .pub-latest-label{display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:999px;background:#efe5ff}
.pub-latest-inner.cards-mode{align-items:flex-start;gap:14px;padding-top:11px;padding-bottom:11px}
.pub-ticker-track.cards{gap:16px;animation-duration:72s}
.pub-ticker-card{width:260px;min-width:260px;display:flex;gap:12px;align-items:center;text-decoration:none;background:#fff;border:1px solid #e2d4f6;border-radius:16px;padding:10px 12px;box-shadow:0 10px 28px rgba(62,31,92,.08)}
.pub-ticker-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(62,31,92,.12)}
.pub-ticker-thumb{width:76px;height:76px;min-width:76px;object-fit:cover;border-radius:12px;background:#eadcff;display:block}
.pub-ticker-thumb.placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#672db4,#8b5cf6);color:#fff;font-weight:900;font-size:1.15rem}
.pub-ticker-copy{display:block;min-width:0}
.pub-ticker-copy strong{display:block;color:#291a40;font-size:.97rem;line-height:1.18;margin-bottom:5px;max-height:2.3em;overflow:hidden}
.pub-ticker-copy small{display:block;color:#6a6278;line-height:1.25}

.pub-post.has-image{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:100%}
.pub-post-media{aspect-ratio:4/3;background:#efe7fb;overflow:hidden}
.pub-post-media .pub-ticker-thumb{width:100%;height:100%;min-width:0;border-radius:0}
.pub-post-media .pub-ticker-thumb.placeholder{border-radius:0;font-size:1.4rem}
.pub-post-body{padding:16px}
.pub-post.has-image strong{display:block;margin-bottom:8px}
.pub-post.has-image p{margin:0}

.pub-home-purple .pub-card,.pub-home-purple .pub-post,.pub-home-purple .pub-hero-card{border-color:#e6daf8}
.pub-home-purple .pub-section.soft{background:#f7f2ff}
.pub-home-purple .pub-section.dark{background:linear-gradient(135deg,#170c29,#2a1147)}

@media(max-width:900px){
  .pub-latest-inner.cards-mode{display:block}
  .pub-home-purple .pub-latest-label{margin-bottom:10px}
}
@media(max-width:620px){
  .pub-ticker-card{width:220px;min-width:220px;padding:9px}
  .pub-ticker-thumb{width:62px;height:62px;min-width:62px}
  .pub-post-body{padding:14px}
}

/* Sept. 1, 2026 public landing cleanup */
.pub-favorites{padding:38px 0 42px;background:#f8f4ff;overflow:hidden}
.pub-favorites-window{overflow:hidden;border-radius:20px;margin-top:18px;pointer-events:none;user-select:none}
.pub-favorites-track{display:flex;gap:16px;width:max-content;animation:ctbFavorites 42s linear infinite;will-change:transform}
.pub-favorite-card{width:270px;flex:0 0 270px;background:#fff;border:1px solid rgba(83,45,142,.14);border-radius:18px;overflow:hidden;box-shadow:0 10px 28px rgba(45,20,90,.08)}
.pub-favorite-card img{display:block;width:100%;height:195px;object-fit:cover;background:#eee}
.pub-favorite-card div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px}
.pub-favorite-card strong{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#24183d;font-size:14px}
.pub-favorite-card span{white-space:nowrap;color:#6c35b8;font-weight:800;font-size:13px}
.pub-favorites-note{margin:14px 0 0;color:#6d6379;font-size:13px}
@keyframes ctbFavorites{from{transform:translate3d(0,0,0)}to{transform:translate3d(-1716px,0,0)}}
@media (prefers-reduced-motion:reduce){.pub-favorites-track{animation-duration:90s}}
@media(max-width:620px){.pub-favorite-card{width:230px;flex-basis:230px}.pub-favorite-card img{height:168px}@keyframes ctbFavorites{from{transform:translate3d(0,0,0)}to{transform:translate3d(-1476px,0,0)}}}

/* Favorites scroll reliability fix — 2026-09-01 */
.pub-favorites-track{will-change:transform;backface-visibility:hidden}
.pub-favorite-card{pointer-events:none}


/* Favorites creation fit fix — 2026-09-01
   Show the full creation instead of cropping it to fill the card. */
.pub-favorite-card img{
  width:100%;
  height:203px;
  object-fit:contain;
  object-position:center center;
  background:#f2eef7;
}
@media(max-width:620px){
  .pub-favorite-card img{height:173px}
}

/* Favorites portrait-original centering fix — 2026-09-01
   The prior public thumbnails were landscape crops of portrait creations.
   Use the full portrait creations and a portrait-oriented card so the artwork
   is centered and not cut off. Edge fading makes the continuously moving
   partial cards look intentional instead of clipped. */
.pub-favorites-window{
  max-width:1100px;
  margin:18px auto 0;
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 2.5%,#000 97.5%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 2.5%,#000 97.5%,transparent 100%);
}
.pub-favorites-track{
  gap:16px;
  padding-inline:8px;
  animation:ctbFavoritesPortrait 48s linear infinite;
}
.pub-favorite-card{
  width:220px;
  flex:0 0 220px;
}
.pub-favorite-card img{
  display:block;
  width:100%;
  height:340px;
  object-fit:contain;
  object-position:50% 50%;
  background:#f2eef7;
}
@keyframes ctbFavoritesPortrait{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-1416px,0,0)}
}
@media(max-width:620px){
  .pub-favorites-track{gap:14px;padding-inline:6px;animation-duration:46s}
  .pub-favorite-card{width:185px;flex-basis:185px}
  .pub-favorite-card img{height:300px}
  @keyframes ctbFavoritesPortrait{
    from{transform:translate3d(0,0,0)}
    to{transform:translate3d(-1194px,0,0)}
  }
}
@media(prefers-reduced-motion:reduce){
  .pub-favorites-track{animation-duration:100s}
}


/* Favorites definitive portrait fit / cache-safe centering fix — 2026-09-01 */
.pub-favorites-window{
  max-width:1120px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.pub-favorites-track{
  align-items:stretch !important;
}
.pub-favorite-card{
  width:220px !important;
  flex:0 0 220px !important;
}
.pub-favorite-card img{
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  height:340px !important;
  padding:0 !important;
  object-fit:contain !important;
  object-position:50% 50% !important;
  background:#f2eef7 !important;
}
@media(max-width:620px){
  .pub-favorite-card{
    width:185px !important;
    flex-basis:185px !important;
  }
  .pub-favorite-card img{
    height:320px !important;
  }
}

/* Sept. 10, 2026 — logged-out mobile public navigation visibility fix.
   Desktop behavior is unchanged. On phones/tablets the public nav becomes
   a visible second row instead of being hidden by the older <=900px rule. */
@media (max-width:900px){
  .pub-header-inner{
    flex-wrap:wrap;
  }
  .pub-nav{
    display:flex !important;
    order:3;
    flex:0 0 100%;
    width:100%;
    justify-content:center;
    align-items:center;
    flex-wrap:wrap;
    gap:6px 10px;
    padding:4px 0 2px;
  }
  .pub-nav a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:32px;
    padding:5px 8px;
    border-radius:999px;
    font-size:.82rem;
    line-height:1.15;
    white-space:nowrap;
  }
}
@media (max-width:620px){
  .pub-nav{
    gap:4px 6px;
    padding-top:6px;
  }
  .pub-nav a{
    font-size:.76rem;
    padding:5px 7px;
  }
}
