/* sai:theme - Studio AI's Theme panel writes the values in this block. Keep the two marker comments. */
:root {
  --bg: #14061f;
  --surface: #24162e;
  --text: #f6eefc;
  --muted: #a59aac;
  --border: #34263e;
  --border-strong: #857a8e;
  --link: #e2b04a;
  --btn: #e2b04a;
  --on-btn: #000000;
  --btn-hover: #c29740;
  --focus: #e2b04a;
  --primary-soft: color-mix(in srgb, var(--link) 13%, var(--bg));
  --primary: #e2b04a;
  --accent: #ff4fa3;
  --scrim: rgba(8, 10, 14, 0.58);
  --on-scrim: #ffffff;
  --font-heading: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --fs-xs: 0.8125rem;
  --fs-sm: 0.9rem;
  --fs-base: 1.0625rem;
  --fs-lg: 1.2rem;
  --fs-xl: clamp(1.250rem, 1.146rem + 0.442vw, 1.500rem);
  --fs-2xl: clamp(1.500rem, 1.293rem + 0.884vw, 2.000rem);
  --fs-3xl: clamp(1.900rem, 1.486rem + 1.768vw, 2.900rem);
  --fs-4xl: clamp(2.300rem, 1.720rem + 2.475vw, 3.700rem);
  --fs-5xl: clamp(2.600rem, 1.771rem + 3.536vw, 4.600rem);
  --lh-tight: 1.1;
  --lh-snug: 1.3;
  --lh-body: 1.65;
  --fw-body: 400;
  --fw-heading: 700;
  --track-heading: -0.025em;
  --case-heading: none;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --gap: var(--space-5);
  --container: 72rem;
  --measure: 62ch;
  --sec-pad: clamp(3.5rem, 2rem + 6vw, 7rem);
  --radius-sm: 0.375rem;
  --radius: 0.625rem;
  --radius-lg: 1.062rem;
  --radius-pill: 999px;
  --radius-btn: var(--radius);
  --radius-card: var(--radius-lg);
  --radius-img: 0;
  --border-w: 1px;
  --shadow-sm: 0 1px 2px color-mix(in srgb, var(--text) 8%, transparent);
  --shadow: 0 8px 24px -10px color-mix(in srgb, var(--text) 18%, transparent);
  --shadow-lg: 0 28px 56px -20px color-mix(in srgb, var(--text) 28%, transparent);
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --dur: 180ms;
  --sai-btn-bg: var(--btn);
  --sai-btn-fg: var(--on-btn);
  --sai-btn-border: transparent;
  --sai-btn-line: transparent;
  --sai-btn-pad-y: .75em;
  --sai-btn-pad-x: 1.4em;
  --sai-btn-weight: 600;
  --sai-btn-case: none;
  --photo-ratio: 3 / 2;
  --photo-duration: 4s;
  --photo-scale: 1.06;
  --photo-rest-scale: 1;
}
.band-base {
  --bg: #14061f;
  --surface: #24162e;
  --text: #f6eefc;
  --muted: #a59aac;
  --border: #34263e;
  --border-strong: #857a8e;
  --link: #e2b04a;
  --btn: #e2b04a;
  --on-btn: #000000;
  --btn-hover: #c29740;
  --focus: #e2b04a;
  --primary-soft: color-mix(in srgb, var(--link) 13%, var(--bg));
}
.band-soft {
  --bg: #2d1a24;
  --surface: #3b2933;
  --text: #f6eefc;
  --muted: #aea2ae;
  --border: #493842;
  --border-strong: #928490;
  --link: #e2b04a;
  --btn: #e2b04a;
  --on-btn: #000000;
  --btn-hover: #c29740;
  --focus: #e2b04a;
  --primary-soft: color-mix(in srgb, var(--link) 13%, var(--bg));
}
.band-accent {
  --bg: #e2b04a;
  --surface: #e5b85c;
  --text: #000000;
  --muted: #2d230f;
  --border: #a37f35;
  --border-strong: #664f21;
  --link: #000000;
  --btn: #000000;
  --on-btn: #e2b04a;
  --btn-hover: #1b1509;
  --focus: #000000;
  --primary-soft: color-mix(in srgb, var(--link) 13%, var(--bg));
}
.band-inverse {
  --bg: #f6eefc;
  --surface: #eee6f4;
  --text: #14061f;
  --muted: #655a6f;
  --border: #d6cedd;
  --border-strong: #857a8e;
  --link: #ba0058;
  --btn: #ff4fa3;
  --on-btn: #000000;
  --btn-hover: #db448c;
  --focus: #ba0058;
  --primary-soft: color-mix(in srgb, var(--link) 13%, var(--bg));
}
/* /sai:theme */

:root{--bg:#14061f;--ink:#f6eefc;--muted:#c9b6dc;--gold:#e2b04a;--pink:#ff4fa3}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:radial-gradient(ellipse at top,#2a0d45 0,var(--bg) 60%) fixed;color:var(--ink);font:400 1.05rem/1.65 Inter,system-ui,sans-serif;min-height:100vh;overflow-x:hidden}
#sparks{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.glow{position:fixed;width:50vmax;height:50vmax;border-radius:50%;filter:blur(90px);opacity:.3;pointer-events:none;z-index:0;animation:drift 18s ease-in-out infinite alternate}
.glow-a{background:#8a2be2;top:-20vmax;left:-15vmax}
.glow-b{background:var(--pink);bottom:-25vmax;right:-20vmax;animation-delay:-9s;opacity:.2}
@keyframes drift{to{transform:translate(8vmax,6vmax) scale(1.15)}}
.top,main,footer{position:relative;z-index:1}
.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem clamp(1rem,5vw,3rem);flex-wrap:wrap}
.brand{font:600 1.2rem "Playfair Display",serif;color:var(--gold);text-decoration:none;letter-spacing:.04em}
.status{font-size:.9rem;color:var(--muted);display:flex;align-items:center;gap:.5rem}
.status i{width:.6rem;height:.6rem;border-radius:50%;background:var(--pink);box-shadow:0 0 0 0 var(--pink);animation:ping 2s infinite}
@keyframes ping{70%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 0 transparent}}
main{max-width:860px;margin:0 auto;padding:0 1.2rem 4rem}
.hero{text-align:center;padding:1rem 0 3rem}
.kicker{font:1.3rem "Special Elite",monospace;color:var(--pink);animation:fade 1.2s both}
.vault{position:relative;width:min(340px,80vw);margin:1.5rem auto;animation:float 6s ease-in-out infinite,fade 1.4s both}
.vault svg{width:100%;height:auto;filter:drop-shadow(0 0 40px rgba(226,176,74,.35))}
.ring{transform-origin:200px 200px;animation:spin 40s linear infinite}
.ring.rev{animation-direction:reverse;animation-duration:26s}
.pupil{animation:look 6s ease-in-out infinite}
.eye{animation:blink 5s infinite;transform-origin:200px 200px}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes float{50%{transform:translateY(-14px)}}
@keyframes look{0%,100%{transform:translateX(0)}30%{transform:translateX(-12px)}65%{transform:translateX(12px)}}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
@keyframes fade{from{opacity:0;transform:translateY(16px)}}
.whisper{position:absolute;font:italic 500 1rem "Playfair Display",serif;color:var(--gold);white-space:nowrap;opacity:0;animation:whisper 7s infinite}
.w1{left:-18%;top:12%}.w2{right:-18%;top:40%;animation-delay:2.3s}.w3{left:-10%;bottom:8%;animation-delay:4.6s}
@keyframes whisper{0%{opacity:0;transform:translateY(10px)}15%,45%{opacity:1;transform:none}65%,100%{opacity:0;transform:translateY(-14px)}}
h1{font:800 clamp(2.6rem,10vw,5.5rem)/1 "Playfair Display",serif;margin-top:.5rem;background:linear-gradient(90deg,#ffe9a8,#e2b04a,#ff4fa3,#e2b04a,#ffe9a8);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 8s linear infinite}
h1 em{font-style:italic}
@keyframes shine{to{background-position:250% 0}}
.lede{max-width:34rem;margin:1.2rem auto 0;color:var(--muted);font-size:1.15rem}
h2{font:600 clamp(1.7rem,5vw,2.4rem)/1.2 "Playfair Display",serif;color:var(--gold)}
.leaks{padding:2rem 0}
.secret-photo{overflow:hidden;border:var(--border-w) solid var(--primary);border-radius:var(--radius-card);margin-bottom:var(--space-6);background:var(--surface);box-shadow:var(--shadow-lg)}
.secret-photo img{display:block;width:100%;height:auto;aspect-ratio:var(--photo-ratio);object-fit:cover}
.leaks.in .secret-photo img{animation:secret-photo-arrive var(--photo-duration) var(--ease) both}
@keyframes secret-photo-arrive{from{transform:scale(var(--photo-scale))}to{transform:scale(var(--photo-rest-scale))}}
.sub{color:var(--muted);margin:.4rem 0 1.4rem}
.notes{list-style:none;padding:0;display:grid;gap:.9rem}
.notes li{display:flex;gap:1rem;align-items:center;padding:1rem 1.2rem;border:1px solid rgba(226,176,74,.3);border-radius:.8rem;background:rgba(255,255,255,.04);backdrop-filter:blur(6px);cursor:help;transition:transform .3s,border-color .3s}
.notes li:hover,.notes li:focus-visible{transform:translateX(6px);border-color:var(--pink);outline:none}
.tag{flex:none;font:.75rem "Special Elite",monospace;text-transform:uppercase;letter-spacing:.1em;background:var(--pink);color:#14061f;padding:.2rem .6rem;border-radius:.3rem;font-weight:700}
.redact{background:#0a0310;color:transparent;border-radius:.2rem;transition:all .5s;user-select:none}
.notes li:hover .redact,.notes li:focus .redact,.notes li.open .redact{background:transparent;color:var(--ink)}
.soon{text-align:center;margin-top:2rem;padding:3rem 1.2rem;border:2px dashed rgba(255,79,163,.5);border-radius:1.2rem;position:relative;background:rgba(10,3,16,.5)}
.stamp{display:inline-block;font:1.2rem "Special Elite",monospace;text-transform:uppercase;letter-spacing:.2em;color:var(--pink);border:3px solid var(--pink);padding:.2rem 1rem;transform:rotate(-6deg);margin-bottom:1.2rem;animation:stamp 1s .3s both}
@keyframes stamp{from{transform:rotate(-6deg) scale(3);opacity:0}}
.soon p{max-width:32rem;margin:.8rem auto 0;color:var(--muted)}
.dots{display:flex;justify-content:center;gap:.5rem}
.dots b{width:.7rem;height:.7rem;border-radius:50%;background:var(--gold);animation:bounce 1.2s infinite}
.dots b:nth-child(2){animation-delay:.2s}.dots b:nth-child(3){animation-delay:.4s}
@keyframes bounce{50%{transform:translateY(-10px);opacity:.4}}
.soon .fine{font:1rem "Special Elite",monospace;color:var(--ink)}
footer{text-align:center;padding:2rem 1rem;color:var(--muted);font-size:.9rem}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s}
.reveal.in{opacity:1;transform:none}
@media(max-width:560px){.whisper{display:none}.notes li{flex-direction:column;align-items:flex-start;gap:.5rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
