/* Shirley's Mini World — draft v2 */
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-latin-full-normal.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-latin-full-italic.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:"Plex Mono";src:url("../fonts/ibm-plex-mono-latin-400-normal.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Mono";src:url("../fonts/ibm-plex-mono-latin-500-normal.woff2") format("woff2");font-weight:500;font-display:swap}

:root{
  --cream:#f3ebdd; --porcelain:#fbf8f2; --paper:#efe4d0;
  --walnut:#3d2518; --walnut-2:#5a3a26; --ink:#2a1a10; --ink-2:#5b4536;
  --brass:#b8893b; --brass-hi:#efd08a; --brass-lo:#7a5620;
  --rose:#c98f8f; --rose-lo:#a96b6b; --rose-hi:#ead1c9; --moss:#5f6d40;
  --serif:"Fraunces", "Iowan Old Style", Georgia, serif;
  --mono:"Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--walnut)}
body{margin:0;color:var(--ink);background:var(--walnut);font-family:var(--serif);font-size:18px;line-height:1.5;font-variation-settings:"opsz" 14,"SOFT" 50;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--brass-hi);outline-offset:3px;border-radius:4px}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--porcelain);color:var(--ink);padding:10px 16px;border-radius:6px;font-family:var(--mono);font-size:14px;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}
#main:focus{outline:none}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-lo);margin:0 0 .9em}

/* header */
.top{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:14px clamp(14px,3vw,34px);pointer-events:none}
.top a{pointer-events:auto;text-decoration:none;font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--ink);background:rgba(251,248,242,.9);padding:8px 14px;border-radius:999px;box-shadow:0 6px 18px -10px rgba(0,0,0,.6);display:inline-flex;align-items:center;gap:8px}
.top a:hover{background:var(--porcelain)}
.wm-dot{width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--brass-hi),var(--brass) 55%,var(--brass-lo))}

/* ---------- the descent (motion) ---------- */
.motion .world{position:relative;height:1300vh}
.motion .stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;isolation:isolate;background:#2a1a10 url("../img/v2-doorway.jpg") center/cover no-repeat}
.gl{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .6s ease}
.ready .gl,.still-mode .gl{opacity:1}
.scrim{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(120% 90% at 50% 45%,transparent 55%,rgba(20,10,4,.45) 100%)}
.motion .still{display:none}
.motion .block{position:absolute;z-index:5;opacity:0;will-change:opacity,transform}
.motion .hero{opacity:1;left:clamp(20px,6vw,96px);top:50%;transform:translateY(-50%)}
.hero .copy{max-width:min(36vw,540px)}
.motion .hero{margin-top:-2vh}
.hero h1{font-weight:380;font-size:clamp(52px,7vw,112px);line-height:.92;letter-spacing:-.025em;margin:0 0 .3em;color:var(--porcelain);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;text-shadow:0 2px 24px rgba(20,8,2,.55)}
.hero h1 em{font-style:italic;font-weight:300;color:var(--rose-hi)}
.hero .kicker{color:var(--brass-hi)}
.lede{font-size:clamp(18px,1.5vw,22px);line-height:1.45;color:#eadcc6;max-width:30ch;margin:0 0 1.6em;text-shadow:0 1px 14px rgba(20,8,2,.7)}
.cue{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#eadcc6;display:flex;align-items:center;gap:12px;margin:0}
.cue-line{width:1px;height:34px;background:linear-gradient(#eadcc6,transparent);animation:cue 2.2s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.4);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}

.motion .beat{left:clamp(20px,6vw,96px);bottom:clamp(36px,9vh,96px);max-width:min(460px,calc(100vw - 40px))}
.beat p{margin:0;font-size:clamp(21px,2vw,28px);line-height:1.3;font-variation-settings:"opsz" 48,"SOFT" 100;color:var(--porcelain);background:rgba(36,20,11,.74);padding:20px 24px 22px;border-radius:3px;border-left:3px solid var(--brass);box-shadow:0 20px 40px -20px rgba(0,0,0,.7)}
.motion .card{left:clamp(20px,5vw,80px);bottom:clamp(28px,7vh,80px);width:min(420px,calc(100vw - 40px))}
.paper{position:relative;background:#f4ecdf url("../img/paper.jpg");padding:clamp(22px,2.2vw,32px);border-radius:2px;box-shadow:0 28px 50px -22px rgba(0,0,0,.8);transform:rotate(-.6deg)}
.paper::before{content:"";position:absolute;top:-9px;left:50%;width:46px;height:18px;margin-left:-23px;background:rgba(233,214,186,.9);box-shadow:0 1px 2px rgba(0,0,0,.15);transform:rotate(-3deg)}
.paper h2{font-weight:400;font-size:clamp(28px,2.7vw,40px);line-height:1.04;letter-spacing:-.015em;margin:0 0 .45em;font-variation-settings:"opsz" 96,"SOFT" 100,"WONK" 1}
.paper p:not(.kicker){margin:0;color:var(--ink-2);font-size:17px}
.motion .end{left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;background:rgba(36,20,11,.72);padding:28px 34px;border-radius:4px;color:var(--porcelain)}
.end .kicker{color:var(--brass-hi)}
.end-line{font-size:clamp(28px,3vw,42px);margin:0 0 .6em;font-variation-settings:"opsz" 72,"SOFT" 100}
.end-link{font-family:var(--mono);font-size:13px;letter-spacing:.08em;color:var(--brass-hi)}

/* depth gauge */
.depth{position:absolute;z-index:6;right:clamp(14px,2.6vw,34px);top:50%;transform:translateY(-50%);display:flex;gap:12px;align-items:stretch}
.depth ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;justify-content:space-between;gap:14px;text-align:right}
.depth button{appearance:none;border:0;background:rgba(36,20,11,.55);color:#eadcc6;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;border-radius:999px;cursor:pointer}
.depth button:hover{background:rgba(36,20,11,.85);color:var(--porcelain)}
.depth button[aria-current]{background:var(--porcelain);color:var(--ink)}
.depth-line{position:relative;width:2px;background:linear-gradient(var(--brass-hi),var(--brass-lo));border-radius:2px;margin:8px 0}
.depth-knob{position:absolute;left:50%;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--brass-hi),var(--brass) 55%,var(--brass-lo));box-shadow:0 2px 6px rgba(0,0,0,.6)}
.art-credit{position:absolute;z-index:6;left:clamp(16px,3vw,34px);top:66px;margin:0;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:#eadcc6;background:rgba(36,20,11,.55);padding:5px 10px;border-radius:999px;max-width:calc(100vw - 32px)}
.loading{position:absolute;z-index:4;left:50%;bottom:24px;transform:translateX(-50%);margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:#eadcc6;background:rgba(36,20,11,.6);padding:5px 12px;border-radius:999px;transition:opacity .4s}
.ready .loading,.static .loading{opacity:0}
.still-mode .block,.still-mode .depth,.still-mode .art-credit,.still-mode .loading,.still-mode .top,.still-mode .scrim{display:none!important}

/* ---------- static path: reduced motion, no WebGL, no JS ---------- */
.static .world,.no-js .world{background:#2a1a10;padding:90px 0 40px}
.static .gl,.no-js .gl,.static .scrim,.no-js .scrim,.static .depth,.no-js .depth,.static .loading,.no-js .loading,.static .cue,.no-js .cue{display:none}
.static .stage,.no-js .stage{display:flex;flex-direction:column;gap:clamp(40px,7vw,90px);max-width:1280px;margin:0 auto;padding:0 clamp(16px,4vw,48px)}
.static .block,.no-js .block{position:relative;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:clamp(18px,3vw,40px);align-items:end}
.static .still,.no-js .still{width:100%;border-radius:3px;box-shadow:0 0 0 2px var(--brass),0 0 0 9px #4a2e1f,0 30px 60px -24px rgba(0,0,0,.9)}
.static .hero,.no-js .hero{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);align-items:center}
.static .hero .copy,.no-js .hero .copy{order:-1;max-width:none}
.static .beat:not(:has(.still)),.no-js .beat:not(:has(.still)){display:block}
.static .end,.no-js .end{display:block;text-align:center;background:rgba(36,20,11,.72);padding:28px 34px;border-radius:4px;color:var(--porcelain);justify-self:center}
.static .art-credit,.no-js .art-credit{position:static;order:99;align-self:center;max-width:none;text-align:center}
@media (max-width:760px){
  .static .block,.no-js .block,.static .hero,.no-js .hero{grid-template-columns:1fr}
  .static .hero .copy,.no-js .hero .copy{order:0}
  .static .paper,.no-js .paper{margin:-30px 10px 0 18px}
}

/* ---------- merch ---------- */
.merch{position:relative;background:radial-gradient(70% 60% at 50% 0%,rgba(255,206,140,.45),transparent 70%),url("../img/paper.jpg");padding:clamp(110px,16vh,180px) 20px clamp(90px,14vh,150px);display:grid;place-items:center;overflow:hidden}
.merch-edge{position:absolute;inset:0 0 auto 0;height:44px;background:url("../img/walnut.jpg") 0 0/1600px auto;box-shadow:0 14px 26px -12px rgba(20,8,2,.7)}
.merch-edge::after{content:"";position:absolute;inset:auto 0 0 0;height:4px;background:linear-gradient(90deg,var(--brass-lo),var(--brass-hi),var(--brass),var(--brass-hi),var(--brass-lo))}
.tag{position:relative;width:min(560px,100%);background:var(--porcelain);padding:clamp(48px,6vw,64px) clamp(24px,5vw,56px) clamp(32px,4vw,44px);border-radius:8px;box-shadow:0 30px 60px -30px rgba(42,26,16,.55),0 0 0 1px rgba(42,26,16,.08);clip-path:polygon(14% 0,86% 0,100% 9%,100% 100%,0 100%,0 9%)}
.eyelet{position:absolute;top:18px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 4px var(--brass),0 0 0 5px var(--brass-lo),inset 0 2px 3px rgba(0,0,0,.25)}
.tag h2{font-weight:380;font-size:clamp(40px,5vw,64px);line-height:1;letter-spacing:-.02em;margin:0 0 .35em;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.tag > p:not(.kicker){color:var(--ink-2);margin:0 0 1.6em;max-width:36ch}
.signup label{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px}
.field{display:flex;gap:8px;flex-wrap:wrap}
.field input{flex:1 1 220px;min-width:0;font:inherit;font-size:17px;padding:13px 14px;border:1px solid #bfa98f;border-radius:4px;background:#fff;color:var(--ink)}
.field input:focus-visible{outline:3px solid var(--brass);outline-offset:1px}
.field button{flex:0 0 auto;font-family:var(--mono);font-size:13px;letter-spacing:.06em;padding:13px 18px;border:0;border-radius:4px;background:var(--walnut);color:var(--porcelain);cursor:pointer;box-shadow:0 2px 0 var(--brass-lo)}
.field button:hover{background:var(--walnut-2)}
.field button:focus-visible{outline-color:var(--brass-lo)}
.form-note{font-family:var(--mono);font-size:11.5px;color:#7a6453;margin:12px 0 0}
.form-status{margin:10px 0 0;font-size:16px;color:var(--moss);min-height:1.5em}
.form-status.err{color:#9a3d3d}
.foot{background:var(--walnut);color:#e9d8c2;text-align:center;padding:34px 20px 40px;font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.foot p{margin:0}

/* ---------- phones ---------- */
@media (max-width:760px){
  body{font-size:17px}
  .motion .world{height:1100vh}
  .motion .hero{left:18px;right:18px;top:auto;bottom:22px;transform:none;margin:0}
  .motion .hero .copy{max-width:none;background:linear-gradient(transparent,rgba(30,16,8,.82) 30%);margin:0 -18px -22px;padding:60px 18px 26px}
  .hero h1{font-size:clamp(44px,13vw,62px)}
  .lede{font-size:17px;margin-bottom:1em}
  .motion .beat{left:16px;right:16px;bottom:20px;max-width:none}
  .beat p{font-size:20px;padding:16px 18px}
  .motion .card{left:12px;right:12px;bottom:14px;width:auto}
  .paper{padding:18px 18px 20px}
  .paper h2{font-size:25px}
  .paper p:not(.kicker){font-size:15px}
  .depth{top:auto;bottom:auto;top:110px;transform:none;right:10px}
  .depth ol{gap:10px}
  .depth button{font-size:0;width:22px;height:22px;padding:0;position:relative}
  .depth button::after{content:"";position:absolute;inset:7px;border-radius:50%;background:#eadcc6}
  .depth button[aria-current]::after{background:var(--ink)}
  .art-credit{top:60px;font-size:9.5px;right:44px;max-width:none}
  .motion .end{width:calc(100vw - 40px)}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.cue-line{animation:none}}
