*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0b1120;--surface:#0f172a;--border:#1e293b;--text:#e2e8f0;--soft:#94a3b8}body,html{height:100%}body{background:var(--bg);font-family:-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}body,button{color:var(--text)}button{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:10px 14px;font-size:14px;cursor:pointer;min-height:44px}button:hover{background:#273449}.tiny{font-size:12px;color:var(--soft);margin-top:6px;line-height:1.4}.stage{position:fixed;inset:0;overflow:hidden;background:linear-gradient(180deg,#111a2e,#0b1120)}.calm-note{position:absolute;left:0;right:0;top:42%;text-align:center;color:#475569;font-size:14px;padding:0 24px;transition:opacity 1s}.dim,.stage.active .calm-note{opacity:0}.dim{position:absolute;inset:0;z-index:2;pointer-events:none;transition:opacity 1.5s;background:radial-gradient(circle at 70% 70%,color-mix(in srgb,var(--tint) 30%,transparent),rgba(0,0,0,calc(var(--dark))))}.stage.active .dim{opacity:1}.door-wrap{position:absolute;right:22%;bottom:150px;width:130px;height:230px;z-index:3;opacity:0;transition:opacity 1s 1.2s}.stage.active .door-wrap{opacity:1;transition-delay:0s}.frame{background:#1c1208;border:6px solid #3b2a16;border-radius:6px 6px 0 0;overflow:hidden;box-shadow:0 0 30px color-mix(in srgb,var(--door-glow) 35%,transparent)}.frame,.void{position:absolute;inset:0}.void{background:radial-gradient(circle at 50% 70%,color-mix(in srgb,var(--door-glow) 30%,#000),#000 70%)}.leaf{position:absolute;inset:0;background:linear-gradient(90deg,#5a3d1e,#3b2713);border-right:3px solid #1c1208;transform-origin:left center;transform:perspective(500px) rotateY(0deg);transition:transform 1.2s ease-in-out 1s}.leaf:after{content:"";position:absolute;right:12px;top:50%;width:9px;height:9px;border-radius:50%;background:#c9a23a}.stage.active .leaf{transform:perspective(500px) rotateY(-100deg);transition-delay:0s}.door-wrap[data-opens=slide] .leaf{transform-origin:center}.stage.active .door-wrap[data-opens=slide] .leaf{transform:translateX(100%)}.door-wrap[data-door=metal] .frame{background:#1f2937;border-color:#6b7280}.door-wrap[data-door=metal] .leaf{background:repeating-linear-gradient(90deg,#4b5563 0 14px,#374151 14px 16px);border-right-color:#111827}.door-wrap[data-door=curtain] .frame{background:#2a0a0a;border-color:#7f1d1d}.door-wrap[data-door=curtain] .leaf{background:repeating-linear-gradient(90deg,#991b1b 0 10px,#7f1d1d 10px 20px)}.door-wrap[data-door=portal] .frame{border-radius:50% 50% 0 0;border-color:var(--door-glow);background:#000}.door-wrap[data-door=portal] .leaf{background:radial-gradient(circle,color-mix(in srgb,var(--door-glow) 60%,#000),#000 75%);border:0;transform:none;transition:opacity 1.2s 1s}.stage.active .door-wrap[data-door=portal] .leaf{transform:none;opacity:.35;transition-delay:0s}.door-wrap[data-door=ajar] .frame{background:linear-gradient(180deg,#2a1208,#0a0302);border:4px solid #000;border-radius:8px 8px 0 0;box-shadow:0 0 40px color-mix(in srgb,var(--door-glow) 40%,transparent)}.door-wrap[data-door=ajar] .void{background:radial-gradient(ellipse at 50% 55%,color-mix(in srgb,var(--door-glow) 45%,#000) 0,#000 70%)}.door-wrap[data-door=ajar] .leaf{border:0;transition:none;background:repeating-linear-gradient(90deg,rgba(40,15,8,.55) 0 1px,transparent 1px 14px),linear-gradient(180deg,#1a0805,#000 55%)}.door-wrap[data-door=ajar] .leaf:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:3px;transform:translateX(-50%);transition:width 1.2s .3s;background:linear-gradient(180deg,transparent 0,color-mix(in srgb,var(--door-glow) 70%,#fff) 30%,var(--door-glow) 50%,color-mix(in srgb,var(--door-glow) 70%,#fff) 70%,transparent 100%);box-shadow:0 0 16px var(--door-glow),0 0 30px color-mix(in srgb,var(--door-glow) 60%,transparent)}.door-wrap[data-door=ajar] .leaf:after{background:radial-gradient(circle at 30% 30%,#ff8040,#6a1808);box-shadow:0 0 10px color-mix(in srgb,var(--door-glow) 70%,transparent)}.stage.active .door-wrap[data-door=ajar] .leaf{transform:none}.stage.active .door-wrap[data-door=ajar] .leaf:before{width:8px}.fog{position:absolute;left:0;right:0;bottom:18px;height:130px;z-index:5;pointer-events:none;opacity:0;transition:opacity 1.5s;filter:blur(14px);background:radial-gradient(ellipse at 62% 100%,color-mix(in srgb,var(--door-glow) 45%,transparent) 0,color-mix(in srgb,var(--door-glow) 18%,transparent) 38%,transparent 72%)}.stage.active .fog{opacity:1}.figure{position:absolute;right:calc(22% + 20px);bottom:150px;width:110px;height:225px;z-index:4;opacity:0;transform:translateX(40px) scale(.7);transform-origin:bottom center;transition:transform 1.4s ease-in,opacity 1s}.figure[data-entrance=rise]{transform:translateY(70px) scale(.7)}.figure[data-entrance=slide]{transform:translateX(140px) scale(.7)}.figure[data-entrance=drop]{transform:translateY(-160px) scale(.7)}.stage.active .figure{opacity:1;transform:translateX(-90px) scale(1.25);transition:transform 2s ease-out 1.1s,opacity 1.2s 1.1s}.stage.active .figure .fbody{animation:sway 3s ease-in-out infinite}.stage.active .figure{filter:drop-shadow(0 0 5px color-mix(in srgb,var(--door-glow) 65%,transparent))}@keyframes sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}.art,.fbody{position:absolute;inset:0}.art{width:100%;height:100%;overflow:visible;pointer-events:none}.art.front{z-index:3}.stage.active .fringe{transform-box:fill-box;transform-origin:50% 0;animation:hem 3.4s ease-in-out infinite alternate}@keyframes hem{0%{transform:skewX(-2.2deg)}to{transform:skewX(2.2deg)}}.hood{left:20px;top:8px;width:70px;height:86px}.face,.hood{position:absolute}.face{left:9px;top:14px;width:52px;height:62px;border-radius:48%;background:#000;box-shadow:inset 0 0 14px #000}.face[data-face=skull]{background:var(--face,#e7e5e4);box-shadow:inset 0 -8px 10px #a8a29e}.face[data-face=mask]{background:var(--face,#f5f5f4);box-shadow:inset 0 -6px 10px #a8a29e}.face[data-face=redhead]{background:var(--face,#f2c9a5);box-shadow:inset 0 -8px 10px rgba(120,53,15,.35);z-index:1}.face[data-face=redhead]:before{content:"";left:-3px;right:-3px;top:-6px;height:22px;border-radius:50% 50% 30% 30%}.face[data-face=redhead]:before,.hair{position:absolute;background:var(--hair,#b7410e)}.hair{left:2px;top:4px;width:66px;height:84px;border-radius:50% 50% 42% 42%;box-shadow:inset 0 -8px 12px rgba(0,0,0,.35)}.face[data-face=shadow]{background:linear-gradient(160deg,#2a1810,#1a0c08 50%,#000);box-shadow:inset -8px -6px 12px rgba(0,0,0,.9),inset 4px 4px 8px rgba(60,20,10,.2),0 3px 8px rgba(0,0,0,.9)}.face[data-face=shadow]:before{top:3px;width:96%;height:52%;background:linear-gradient(180deg,rgba(0,0,0,.95),rgba(0,0,0,.7) 60%,transparent);border-radius:50%}.face[data-face=shadow]:after,.face[data-face=shadow]:before{content:"";position:absolute;left:50%;transform:translateX(-50%)}.face[data-face=shadow]:after{bottom:13px;width:24px;height:5px;border-bottom:1.4px solid rgba(150,35,18,.75);border-radius:0 0 14px 14px;box-shadow:0 3px 5px rgba(255,40,20,.18)}.shear{position:absolute;top:42px;width:5px;height:11px;border-radius:50%;background:linear-gradient(180deg,#1a0c08,#000)}.shear.l{left:6px}.shear.r{left:59px}.shnose{position:absolute;left:32px;top:46px;width:6px;height:15px;border-radius:50%;background:linear-gradient(180deg,transparent,rgba(20,8,4,.6) 50%,transparent)}.face[data-face=alien]{left:6px;top:10px;width:58px;height:70px;border-radius:50% 50% 46% 46%/38% 38% 62% 62%;background:var(--face,#7ed957);box-shadow:inset 0 -10px 14px rgba(0,70,0,.5)}.face[data-face=grin]:after{content:"";position:absolute;left:10px;right:10px;bottom:10px;height:14px;border-bottom:3px solid var(--eye);border-radius:0 0 50% 50%;box-shadow:0 6px 10px -4px var(--eye)}.reye{position:absolute;top:42px;width:calc(14px * var(--eye-scale));height:calc(5px * var(--eye-scale));border-radius:50%;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--eye) 45%,#fff) 0,var(--eye) 42%,color-mix(in srgb,var(--eye) 35%,#000) 100%);z-index:4;box-shadow:0 0 calc(10px * var(--eye-glow)) calc(4px * var(--eye-glow)) var(--eye),0 0 calc(28px * var(--eye-glow)) calc(10px * var(--eye-glow)) color-mix(in srgb,var(--eye) 70%,transparent);animation:eyeflare var(--eye-pulse) infinite alternate}.reye.flick{animation:eyeflare var(--eye-pulse) infinite alternate,eyeflick 3s infinite}.reye.l{left:36px;transform:rotate(16deg)}.reye.r{left:60px;transform:rotate(-16deg)}@keyframes eyeflare{0%{filter:brightness(.8)}to{filter:brightness(1.35)}}@keyframes eyeflick{0%,92%,to{opacity:1}94%{opacity:.2}96%{opacity:1}98%{opacity:.3}}.card{position:absolute;left:14px;top:14px;z-index:6;width:min(360px,46%);padding:12px 14px;border-radius:12px;background:#150808;color:#fecaca;border:1px solid #7f1d1d;box-shadow:0 0 24px rgba(255,0,0,.3);opacity:0;transform:scale(.95);transform-origin:top left;pointer-events:none;transition:opacity .6s,transform .6s}.card.show{opacity:1;transform:scale(1);pointer-events:auto}.card.pulse{animation:cardpulse .8s}@keyframes cardpulse{0%{box-shadow:0 0 0 rgba(255,0,0,0)}50%{box-shadow:0 0 40px rgba(255,40,40,.7)}to{box-shadow:0 0 24px rgba(255,0,0,.3)}}.card h2{font-size:14px;line-height:1.4;margin-bottom:8px}.card ul{list-style:none}.card li{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #5b1a1a;font-size:13px}.pname{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pmb{color:#fca5a5;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.closeit{min-height:44px;padding:6px 10px;font-size:12px;background:#3b0d0d;border-color:#7f1d1d}.card .tiny{color:#a8a29e}.confirm{display:grid;grid-gap:8px;gap:8px;width:100%;font-size:13px}.confirm-btns{display:flex;flex-wrap:wrap;gap:8px}.closeit.quiet{background:#1e293b;border-color:#334155}.controls{position:fixed;left:0;right:0;bottom:0;z-index:10;background:rgba(15,23,42,.94);border-top:1px solid var(--border);padding:12px 16px}.row{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center}.meter{font-size:28px;font-weight:800;min-width:70px}.state{font-size:13px;color:var(--soft)}.state b{color:var(--text)}input[type=range]{flex:1 1;min-width:180px;accent-color:#ef4444}.btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.panel{position:fixed;right:0;top:0;bottom:0;z-index:20;width:min(420px,100%);overflow-y:auto;background:var(--surface);border-left:1px solid var(--border);padding:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel h2{font-size:18px}.field{display:grid;grid-gap:4px;gap:4px;margin-bottom:14px;font-size:14px}.field input,.field select{background:var(--bg);color:var(--text);border:1px solid #334155;border-radius:8px;padding:10px;font-size:16px;min-height:44px}.field small{color:var(--soft);font-size:12px}.problems{list-style:none;background:#2a1a05;border:1px solid #92400e;border-radius:8px;padding:8px 10px;margin-bottom:12px;font-size:12px;color:#fcd34d}.panel-foot{margin-top:8px}@media (max-width:767px){.card{width:calc(100% - 28px);font-size:12px;padding:8px 10px}.door-wrap{right:8%;bottom:190px}.figure{right:calc(8% + 20px);bottom:190px}.stage.active .figure{transform:translateX(-70px) scale(1.15)}}@media (prefers-reduced-motion:reduce){.card.pulse,.fbody,.reye{animation:none!important}}.linkbtn{display:inline-flex;align-items:center;background:#1e293b;color:var(--text);border:1px solid #334155;border-radius:8px;padding:10px 14px;font-size:14px;min-height:44px;text-decoration:none}.linkbtn:hover{background:#273449}body:has(.studio){overflow-y:auto}.studio{max-width:980px;margin:0 auto;padding:16px 16px 60px}.studio-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.studio h1{font-size:22px;margin-bottom:4px}.studio .btns{margin:12px 0}.stage.contained{position:relative;inset:auto;height:380px;border-radius:12px;border:1px solid var(--border)}.stage.contained .door-wrap,.stage.contained .figure{bottom:30px}.pick{margin:20px 0}.pick h3{font-size:15px;margin-bottom:8px}.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));grid-gap:10px;gap:10px}.thumbbtn{display:grid;grid-gap:6px;gap:6px;justify-items:center;padding:8px;min-height:44px;font-size:12px;text-align:center}.thumbbtn.on{border-color:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.45)}.chips{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.chip.on{border-color:#ef4444;box-shadow:0 0 0 2px rgba(239,68,68,.45)}.swatch{width:44px;height:44px;border-radius:50%;padding:0;border:2px solid #334155}.swatch.on{border-color:#fff;box-shadow:0 0 0 2px #ef4444}.colorfield{display:flex;align-items:center;gap:8px;font-size:13px}.colorfield input[type=color]{width:44px;height:44px;padding:2px;background:var(--bg);border:1px solid #334155;border-radius:8px}.mini{min-height:44px;padding:6px 10px}.json,.mini{font-size:12px}.json{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;overflow-x:auto;max-width:100%}.thumb{position:relative;width:96px;height:96px;overflow:hidden;border-radius:10px;background:radial-gradient(circle at 50% 40%,#1a2238,#0b1120)}.thumb.body{height:124px}.thumb-inner{position:absolute;left:50%;top:0;width:110px;height:225px;transform-origin:top center}.thumb.head .thumb-inner{transform:translateX(-50%) translateY(-4px) scale(.95)}.thumb.body .thumb-inner{transform:translateX(-50%) translateY(6px) scale(.52)}.thumb.door .thumb-inner{left:8px;width:130px;transform:translateY(-6px) scale(.5)}.thumb .door-wrap,.thumb .figure{position:absolute;right:auto;bottom:auto;left:0;top:0;opacity:1;transform:none;transition:none}.thumb .door-wrap{left:0;top:0}.thumb .figure .fbody{animation:none}.thumb .fog{display:none}.thumb .leaf{transition:none;transform:perspective(500px) rotateY(-55deg)}.thumb .door-wrap[data-opens=slide] .leaf{transform:translateX(55%)}.thumb .door-wrap[data-door=portal] .leaf{transform:none;opacity:.35}@media (min-width:768px){.stage.contained{position:-webkit-sticky;position:sticky;top:8px;z-index:5}}@media (max-width:767px){.stage.contained{height:320px}.stage.contained .door-wrap,.stage.contained .figure{right:10%}.stage.contained .figure{right:calc(10% + 20px)}}body:has(.landing){overflow-y:auto}.landing{max-width:1080px;margin:0 auto;padding:0 16px 40px}.lnav{justify-content:space-between;padding:14px 0}.lnav,.lnav nav{display:flex;align-items:center}.lnav nav{gap:14px}.lnav a{color:var(--text);text-decoration:none;font-size:14px}.brand{font-weight:800;letter-spacing:.3px}.cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:10px;background:#b91c1c;color:#fff!important;font-weight:700;text-decoration:none;border:1px solid #ef4444}.cta:hover{background:#dc2626}.cta.small{padding:8px 14px;font-size:14px}.hero{display:grid;grid-template-columns:1fr;grid-gap:24px;gap:24px;padding:18px 0 36px;align-items:center}.hero h1{font-size:clamp(30px,6vw,48px);line-height:1.1;margin-bottom:14px}.hero p{font-size:18px;color:#cbd5e1;line-height:1.5;max-width:560px}.hero-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.hero-scene{margin:0}.hero-scene .stage.contained{position:relative;height:380px}.hero-scene figcaption{font-size:13px;color:#cbd5e1;margin-top:8px}.hero-scene .tiny{display:block}@media (min-width:900px){.hero{grid-template-columns:1fr 1.1fr}}.lsec{padding:28px 0;border-top:1px solid var(--border)}.lsec h2{font-size:26px;margin-bottom:10px}.lead{color:#cbd5e1;line-height:1.55;max-width:720px;margin-bottom:14px}.steps{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}@media (min-width:800px){.steps{grid-template-columns:repeat(3,1fr)}}.step{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.step h3{font-size:16px;margin:8px 0 6px}.step p{color:#cbd5e1;line-height:1.5}.num,.step p{font-size:14px}.num{display:inline-flex;width:28px;height:28px;border-radius:50%;background:#7f1d1d;align-items:center;justify-content:center;font-weight:700}.plain{margin:0 0 0 20px;color:#cbd5e1;line-height:1.7;max-width:720px}.lrow{margin:18px 0}.lrow h3{font-size:15px;margin-bottom:8px}.lthumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));grid-gap:10px;gap:10px}.lthumb{display:grid;grid-gap:6px;gap:6px;justify-items:center;padding:8px;border:1px solid var(--border);border-radius:10px;font-size:12px;text-align:center}.lthumb,.pill{background:var(--surface)}.pill{padding:8px 12px;border:1px solid #334155;border-radius:999px;font-size:13px}.dot,.pill{display:inline-block}.dot{width:26px;height:26px;border-radius:50%;border:2px solid #334155}.cards{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}@media (min-width:640px){.cards{grid-template-columns:repeat(2,1fr)}}@media (min-width:960px){.cards{grid-template-columns:repeat(4,1fr)}}.lcard{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px;display:grid;grid-gap:8px;gap:8px;align-content:start}.lcard-art{display:flex;gap:8px;justify-content:center}.lcard h3{font-size:16px}.lcard p{font-size:13px;color:#cbd5e1;line-height:1.45}.lcard .quote{color:#fca5a5;font-style:italic}.lvideo{width:100%;max-width:900px;border-radius:12px;border:1px solid var(--border);background:#000}.two{display:grid;grid-template-columns:1fr;grid-gap:20px;gap:20px}@media (min-width:800px){.two{grid-template-columns:1fr 1fr}}.two h3{font-size:16px;margin-bottom:6px}.two p{color:#cbd5e1;line-height:1.5;font-size:14px;margin-top:8px}.landing code{background:#0d1117;border:1px solid #334155;border-radius:6px;padding:1px 6px;font-size:13px}.lfoot{border-top:1px solid var(--border);padding-top:18px;font-size:13px;color:var(--soft);line-height:1.7}.lfoot a{color:#cbd5e1}body:has(.stage.overlay),html:has(.stage.overlay){background:transparent}.stage.overlay{background:transparent;pointer-events:none}.stage.overlay .dim{background:radial-gradient(ellipse at 72% 76%,color-mix(in srgb,var(--tint) 30%,transparent),rgba(0,0,0,calc(var(--dark) * .72)))}.stage.overlay .door-wrap,.stage.overlay .figure{bottom:52px;zoom:1.7}.stage.overlay .fog{bottom:30px;height:220px}.overlay-note{max-width:560px;margin:12vh auto;padding:0 20px;line-height:1.6}.overlay-note h1{font-size:22px;margin-bottom:10px}.overlay-note p{color:#cbd5e1;margin-bottom:14px}.check{display:flex;gap:10px;align-items:flex-start;margin-bottom:14px;font-size:14px;line-height:1.4}.check input{width:22px;height:22px;margin-top:1px;flex:none}body.pip{margin:0;overflow:hidden;background:#0b1120}.pip .stage.contained{position:relative;width:100vw;height:100vh;border:0;border-radius:0}.pip .card{width:calc(100% - 24px);left:12px;top:10px}