:root{--active:#f2a07b;--gold:#ffd783;--ink:#261817;--red:#7d1f25;--red2:#b6323a;--stage:#231917;--paper:#fff2d7}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--paper);font-family:ui-serif,'Noto Serif SC','Songti SC',Georgia,serif;background:radial-gradient(circle at 50% -10%,#51312e 0,#1a1112 45%,#090708 100%);overflow-x:hidden}.toast{position:fixed;left:50%;top:18px;transform:translate(-50%,-18px);z-index:50;background:#fff3d5;color:#3b2520;border:1px solid #f3c46d;border-radius:999px;padding:11px 18px;box-shadow:0 18px 60px #0008;opacity:0;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.theatre-shell{width:min(1220px,calc(100% - 28px));margin:0 auto;padding:20px 0 38px}.marquee{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:10px 0 14px;padding:18px 22px;border:1px solid #8b6130;border-radius:24px;background:linear-gradient(180deg,#3a1f1c,#1b1111);box-shadow:0 20px 80px #0008,inset 0 0 0 4px #0004}.marquee p{margin:0 0 5px;color:#ffd783;letter-spacing:.18em;font-size:12px;font-weight:900}.marquee h1{margin:0;font-size:clamp(34px,6vw,76px);line-height:.9;letter-spacing:-.08em;text-shadow:0 0 22px #f7b14b66}.marquee-lights{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end;max-width:220px}.marquee-lights i{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,#fff8ca 0 20%,#ffd15d 48%,#70400e 72%);box-shadow:0 0 20px #ffc85e;animation:blink 1.8s infinite alternate}.marquee-lights i:nth-child(2n){animation-delay:.5s}@keyframes blink{to{filter:brightness(.55);box-shadow:0 0 6px #ffc85e}}.proscenium{position:relative;height:min(66vw,690px);min-height:560px;border:18px solid #301615;border-radius:30px;background:#090606;box-shadow:0 35px 120px #000,inset 0 0 0 8px #6f3b22;overflow:hidden}.top-drape{position:absolute;inset:0 0 auto;height:120px;z-index:15;background:repeating-linear-gradient(90deg,#6e171d 0 42px,#8e2228 42px 78px,#5f1218 78px 112px);box-shadow:0 14px 40px #0009;border-bottom:6px solid #3c0b0e}.top-drape:after{content:'';position:absolute;left:0;right:0;bottom:-22px;height:42px;background:radial-gradient(ellipse at top,#8d2028 0 55%,transparent 57%);background-size:90px 42px}.curtain{position:absolute;top:0;bottom:0;width:53%;z-index:30;background:repeating-linear-gradient(90deg,#5a1015 0 28px,#9f2830 28px 54px,#741820 54px 78px);box-shadow:inset 0 0 80px #000b;transition:transform 1.15s cubic-bezier(.7,0,.2,1)}.curtain-left{left:0;border-right:6px solid #3b090c}.curtain-right{right:0;border-left:6px solid #3b090c}.curtain-left.open{transform:translateX(-88%)}.curtain-right.open{transform:translateX(88%)}.spotlight{position:absolute;top:20px;width:36%;height:80%;z-index:4;opacity:.5;filter:blur(1px);background:linear-gradient(to bottom,rgba(255,235,176,.22),rgba(255,235,176,.06) 55%,transparent);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);mix-blend-mode:screen;animation:sway 5s ease-in-out infinite}.spotlight-a{left:12%;transform:rotate(14deg)}.spotlight-b{right:12%;transform:rotate(-14deg);animation-delay:-2s}@keyframes sway{50%{opacity:.72;filter:blur(2px)}}.stage{position:absolute;inset:82px 54px 46px;z-index:5;border-radius:18px;overflow:hidden;background:#18100f;transition:filter .28s,opacity .28s}.stage.waiting{filter:saturate(.45) brightness(.78)}.stage.blackout{filter:brightness(.08);opacity:.65}.backdrop{position:absolute;inset:0;background:linear-gradient(#57403c,#1a1111);transition:background .6s}.backdrop.school{background:linear-gradient(180deg,#f0a36d 0,#684047 46%,#211416 100%)}.backdrop.broadcast{background:radial-gradient(circle at 65% 28%,#ff4b4b 0 3%,transparent 8%),linear-gradient(130deg,#283550,#131117)}.backdrop.club{background:radial-gradient(circle at 58% 42%,#ffe3a0 0 12%,transparent 32%),linear-gradient(135deg,#604533,#18100f)}.backdrop.letter{background:linear-gradient(120deg,#fbdfb8,#775b63 50%,#171010)}.backdrop.festival{background:repeating-linear-gradient(115deg,#d95757 0 18px,#f0bd63 18px 34px,#73a4c9 34px 50px),linear-gradient(#402,#111);background-blend-mode:soft-light}.backdrop.rain{background:repeating-linear-gradient(105deg,transparent 0 13px,#ffffff22 14px 16px),linear-gradient(180deg,#314158,#101014)}.backdrop.sunset{background:radial-gradient(circle at 50% 8%,#ffd47b,#b85d51 35%,#1b1113 82%)}.backdrop.spot{background:radial-gradient(circle at 50% 42%,#ffe8b6 0 17%,#59413e 34%,#120d0e 75%)}.backdrop.moon{background:radial-gradient(circle at 72% 18%,#fff4cf 0 7%,transparent 8%),linear-gradient(180deg,#28345a,#161018)}.backdrop.hallway{background:linear-gradient(90deg,#2a1b1a,#8c5e44 48%,#251716)}.backdrop.dark{background:radial-gradient(circle at 28% 50%,#58403d 0 10%,#110b0c 42%)}.stage-floor{position:absolute;left:-5%;right:-5%;bottom:-10%;height:34%;background:repeating-linear-gradient(90deg,#2b1713 0 70px,#3a2019 70px 140px);transform:perspective(600px) rotateX(58deg);transform-origin:bottom;box-shadow:0 -30px 70px #0008}.playbill{position:absolute;left:24px;top:34px;width:270px;z-index:8;padding:18px;border:1px solid #fff2;background:#1e1211cc;border-radius:20px;backdrop-filter:blur(8px);box-shadow:0 20px 60px #0007}.kicker{margin:0 0 8px;color:#ffd783;letter-spacing:.16em;font-size:12px;font-weight:900}.playbill h2{margin:0 0 8px;font-size:28px;letter-spacing:-.05em}.playbill p:not(.kicker){margin:0;color:#f9ddb4cc;line-height:1.65}.scoreboard{display:flex;gap:8px;margin-top:14px}.scoreboard span{border:1px solid #fff2;border-radius:999px;padding:7px 10px;background:#fff1;color:#ffe5bc}.scene-card{position:absolute;left:50%;top:50%;z-index:9;width:min(570px,56%);transform:translate(-42%,-42%);padding:28px;border:1px solid #ffe2a955;border-radius:28px;background:linear-gradient(145deg,#fff6dfeb,#f0cfa5df);color:#2d1c18;box-shadow:0 24px 90px #0008,0 0 0 8px #0001;animation:cardIn .45s ease}.scene-tag{display:inline-flex;margin:0 0 10px;border-radius:999px;padding:7px 11px;background:#4a2520;color:#ffe7bc;font-size:13px}.scene-card h2{margin:0 0 12px;font-size:clamp(34px,4.4vw,58px);line-height:.95;letter-spacing:-.08em}.scene-card p{line-height:1.9}.scene-card blockquote{margin:18px 0 0;padding-left:16px;border-left:4px solid var(--active);font-size:22px;line-height:1.55}@keyframes cardIn{from{opacity:0;transform:translate(-42%,-34%) scale(.96)}to{opacity:1;transform:translate(-42%,-42%) scale(1)}}.prop-shelf{position:absolute;right:24px;bottom:58px;z-index:11;display:flex;flex-direction:column;gap:8px;align-items:flex-end}.prop-shelf button{border:1px solid #ffe5ad55;border-radius:999px;padding:8px 12px;background:#1c1110cc;color:#ffe6bd;box-shadow:0 10px 30px #0006;animation:prop .35s ease both;animation-delay:calc(var(--i)*.04s)}@keyframes prop{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}.actor-line{position:absolute;left:24px;right:24px;bottom:18px;z-index:12;border:1px solid #fff2;border-radius:18px;padding:13px 16px;background:#070505cc;color:#ffe7c2;box-shadow:0 14px 50px #0007}.control-booth{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:14px}.big{border:1px solid #8b6130;border-radius:18px;padding:15px 12px;cursor:pointer;background:linear-gradient(#fff4ce,#d7a654);color:#2a1914;font-weight:900;box-shadow:0 10px 30px #0007;transition:.18s}.big.primary{background:linear-gradient(#fff3bf,#ffb84f)}.big.ghost{background:linear-gradient(#3a2220,#1a1111);color:#ffe1b0}.big:hover{transform:translateY(-3px);filter:brightness(1.08)}.choice-rail{margin-top:14px;padding:16px;border:1px solid #8b6130;border-radius:24px;background:#1b1111cc;box-shadow:0 14px 50px #0005}.choice-rail p{margin:0 0 10px;color:#ffd783;letter-spacing:.12em;font-size:12px;font-weight:900}.choices{display:flex;gap:10px;flex-wrap:wrap}.choice{border:1px solid #ffe0a644;border-radius:999px;padding:10px 14px;background:#fff1;color:#ffe9c8;cursor:pointer}.choice span{margin-right:8px;color:#ffd783}.choice.hot{background:#8e2228;box-shadow:0 0 0 4px #ffb84f22}.choice:hover{background:#fff2;transform:translateY(-2px)}.ending-dialog{width:min(560px,calc(100% - 36px));border:0;border-radius:30px;padding:30px;background:#fff3d5;color:#2b1b17;box-shadow:0 30px 100px #000a}.ending-dialog::backdrop{background:#080506aa;backdrop-filter:blur(6px)}.ending-dialog h2{margin:0 0 12px;font-size:42px;letter-spacing:-.06em}.ending-dialog p{line-height:1.85;color:#684d44}.dialog-close{position:absolute;right:18px;top:12px;border:0;background:transparent;font-size:30px;cursor:pointer}.ending-stats{display:flex;gap:8px;flex-wrap:wrap}.ending-stats span{border-radius:999px;padding:8px 11px;background:#ead1a7;color:#5d3d33}@media(max-width:900px){.proscenium{height:780px}.stage{inset:70px 18px 36px}.playbill{left:14px;top:22px;width:calc(100% - 28px)}.scene-card{left:50%;top:56%;width:calc(100% - 32px);transform:translate(-50%,-42%)}@keyframes cardIn{from{opacity:0;transform:translate(-50%,-34%) scale(.96)}to{opacity:1;transform:translate(-50%,-42%) scale(1)}}.prop-shelf{right:14px;bottom:78px}.control-booth{grid-template-columns:1fr 1fr}.marquee{align-items:flex-start;flex-direction:column}.marquee-lights{max-width:none}.top-drape{height:84px}}

/* Existing generated media as stage projection layers */
.scene-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;opacity:0;filter:saturate(.9) contrast(1.04) brightness(.72);transition:opacity .45s ease,filter .45s ease;mix-blend-mode:screen}.scene-video.visible{opacity:.62}.media-wash{position:absolute;inset:0;z-index:3;background:radial-gradient(circle at 50% 42%,transparent 0 24%,rgba(12,8,8,.18) 54%,rgba(0,0,0,.54) 100%),linear-gradient(90deg,rgba(0,0,0,.52),transparent 30%,transparent 70%,rgba(0,0,0,.52));pointer-events:none}.actor-portrait{position:absolute;left:36px;bottom:108px;z-index:7;width:170px;height:170px;object-fit:cover;border-radius:50%;border:4px solid #ffe6ad;box-shadow:0 18px 60px #000b,0 0 0 10px #0004;opacity:0;transform:translateX(-24px) scale(.92);transition:.45s ease;filter:saturate(1.05) brightness(1.04)}.actor-portrait.visible{opacity:.92;transform:none}.prop-image{position:absolute;right:32px;top:122px;z-index:6;width:190px;height:190px;object-fit:cover;border-radius:24px;border:3px solid #ffe6ad88;box-shadow:0 18px 70px #0009;opacity:0;transform:translateX(28px) rotate(3deg);transition:.45s ease;filter:saturate(1.08) contrast(1.04)}.prop-image.visible{opacity:.76;transform:rotate(3deg)}.scene-card{z-index:12}.playbill{z-index:13}.actor-line{z-index:14}.prop-shelf{z-index:15}@media(max-width:900px){.actor-portrait{width:96px;height:96px;left:18px;bottom:108px}.prop-image{width:105px;height:105px;right:18px;top:108px}.scene-video.visible{opacity:.5}}
