:root{font-family:Georgia,Times New Roman,serif;color:#e8e3d6;background:#111426;font-synthesis:none;font-size:17px;line-height:1.65;--gold: #d9b96c;--muted: #aaa9b9;--line: #bca47440;--panel: #1c2036}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button{cursor:pointer;border:1px solid var(--line);border-radius:5px;background:#24283e;color:#eee8da;padding:.65rem 1rem;text-decoration:none;display:inline-block;min-height:46px;line-height:1.45;transition:background .2s,transform .2s}button:hover,.button:hover{background:#323950;border-color:var(--gold)}button:disabled{opacity:.45;cursor:default}button.primary,.button.primary{background:var(--gold);color:#1b2031;border-color:var(--gold);font-weight:700}.primary:hover{background:#f2d995}a{color:var(--gold)}:focus-visible{outline:3px solid #f3dba5;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,5vw,3.5rem);font-weight:400;line-height:1.15;letter-spacing:-.02em}h2{font-size:1.45rem;font-weight:400;color:#eee6cf}h1 em{color:var(--gold);font-weight:400}label{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;color:#c6c4cf;font-family:system-ui,sans-serif;font-size:.85rem}input,select{border:1px solid #64677c;background:#14182b;color:#f0eadb;border-radius:5px;padding:.7rem .8rem;min-height:46px;width:100%;max-width:100%}select{cursor:pointer}form{display:flex;flex-direction:column;gap:.3rem}main{padding:3rem 6vw 5rem}.topbar{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 3vw;border-bottom:1px solid var(--line);font-family:system-ui,sans-serif;font-size:.85rem;background:#111426b8}.brand{display:flex;gap:.65rem;align-items:center;text-decoration:none;letter-spacing:.05em;color:#e8e3d6}.brand span{font-size:1.8rem;color:var(--gold)}.header-meta{display:flex;gap:1.7rem;align-items:center}.clock{font-family:Georgia,serif;font-variant-numeric:tabular-nums;font-size:1.6rem;letter-spacing:.08em;color:var(--gold)}.mode{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.eyebrow{font:500 .7rem/1.5 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.24em;color:var(--gold);margin-bottom:1.2rem}.landing{text-align:center;min-height:calc(100vh - 80px);background:radial-gradient(ellipse at 50% 10%,#43415c70,transparent 65%),radial-gradient(ellipse at 30% 90%,#264b5140,transparent 60%);padding-top:3.5rem}.hero-symbol{font-size:5rem;color:var(--gold);line-height:1.5;text-shadow:0 0 70px #cfb66a90}.landing h1{font-size:clamp(3.8rem,8vw,7rem);line-height:.98}.lead{color:#c2bdca;font-size:1.15rem}.muted{color:var(--muted)}.actions{display:flex;gap:.7rem;flex-wrap:wrap;margin:1rem 0 1.6rem}.centered{justify-content:center}.narrow{max-width:580px;margin:auto}.player-layout{max-width:860px;margin:auto}.scene-heading{margin-bottom:2rem}.wallet{color:var(--muted);font-family:system-ui,sans-serif;font-size:.8rem}.wallet strong{color:var(--gold);margin-left:.5rem}.scene-common{font-size:1.1rem;color:#d0cbd5}.player-layout section{margin:2rem 0;padding:1.6rem 0;border-top:1px solid var(--line)}.clue{padding:1.5rem;background:linear-gradient(120deg,#38334980,#20283f80);border-left:2px solid var(--gold);margin:1rem 0}.clue p{font-size:1.15rem}.clue button{font:.78rem system-ui,sans-serif;background:transparent}.symbol-slots,.symbol-buttons{display:flex;gap:.6rem;margin:1.2rem 0;flex-wrap:wrap}.symbol-slots span{display:grid;place-items:center;min-width:52px;height:62px;border:1px solid var(--line);background:#191e32;border-radius:6px;font-size:1.8rem;color:#8f8b9b}.symbol-buttons button{font-size:1.6rem;min-width:52px;padding:.3rem}.symbol-slots span.lit{color:#f6d47b;box-shadow:0 0 35px #ddbd5c25;border-color:#ddbd5c;animation:ignite 1s both}.choice-list{display:flex;flex-direction:column;gap:.7rem;margin:1rem 0}.choice-list button{text-align:left;padding:1rem}.hint-area{margin-top:1.5rem;padding-top:1rem;border-top:1px dashed var(--line)}.hint-area p{color:#d1c092;margin-top:1rem}.success{color:#bce0bd}.error{padding:1rem;background:#6f324e60;color:#ffd5dd;border-radius:5px}.connection{background:#574e35;color:#ffedbc;padding:.7rem 1rem;text-align:center;position:relative;z-index:5;font-family:system-ui,sans-serif;font-size:.85rem}.editor{display:grid;grid-template-columns:210px 1fr;gap:2rem}.avatar-preview{position:relative;align-self:start;background:radial-gradient(ellipse at 50% 40%,#5a5f7740,transparent 70%);border-radius:50%}.avatar{width:100%;max-width:230px;display:block;margin:auto;overflow:visible}.avatar-preview label{margin-top:1rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem}.role-note{color:var(--muted);margin:3rem 0}.role-note summary,.recovery summary,details summary{cursor:pointer;color:var(--gold);padding:.6rem 0}.subtle-link{font-size:.8rem}.epilogue{font-style:italic;text-align:center;margin-top:1.5rem}blockquote{margin:1.2rem 0;padding-left:1.2rem;border-left:1px solid var(--gold);color:#ccc5d3}blockquote p{margin-bottom:0}.admin-layout{max-width:1500px;margin:auto}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:4rem}.admin-grid aside{border-left:1px solid var(--line);padding-left:2rem}.qr{width:200px;height:200px;border-radius:6px;display:block;max-width:100%;margin:1rem auto}.room-code{font:700 1.8rem/1.5 system-ui,sans-serif;letter-spacing:.25em;text-align:center;color:var(--gold)}aside .button{display:block;text-align:center;margin:.7rem 0}.host-players{padding-left:1rem;font-size:.85rem}.host-notes{color:#d4c596}.recovery{margin-top:3rem;border-top:1px solid var(--line);padding-top:1rem}.recovery label{margin-top:1.3rem;max-width:600px}.create-room{max-width:500px}.cast{display:flex;justify-content:center;gap:2rem;padding:1rem 3rem;position:relative;z-index:2}.cast-member{text-align:center;min-width:0;max-width:160px;flex:1}.cast-member .avatar{height:145px;width:100%;object-fit:contain}.cast-member strong{display:block;font-size:1rem;overflow-wrap:anywhere}.cast-member small{display:block;color:#adabbd;font:.65rem system-ui,sans-serif}.tv{min-height:100vh;display:flex;flex-direction:column;position:relative;isolation:isolate;background:radial-gradient(ellipse at 25% 40%,#44405e70,transparent 55%),linear-gradient(150deg,#121a2b,#171326 60%,#1b2436);background-size:cover;background-position:center}.tv-main{display:grid;grid-template-columns:40% 60%;flex:1;position:relative;align-items:center;min-height:600px}.tv-content{padding:3rem 5vw 2rem 1vw;z-index:1;position:relative}.tv-content h1{font-size:clamp(2.5rem,3.5vw,4.5rem);margin-bottom:2rem}.dialogue{animation:arrive .6s both;max-width:1050px}.speaker{font:.8rem system-ui,sans-serif;text-transform:uppercase;letter-spacing:.2em;color:var(--gold)}.dialogue p{font-size:clamp(1.35rem,1.8vw,2.25rem);line-height:1.55;color:#f0e8d5;margin-top:1rem}.tv-hint,.public-clue{color:#dac695;font-size:1.2rem}.tv-poll{font-size:1.3rem}.tv-poll p{padding:.7rem 0;border-bottom:1px solid var(--line);margin-bottom:.5rem}.tv-connect .qr{margin-left:0;width:210px;height:210px}.tv-connect .room-code{text-align:left}.tv-connect>p{font-size:1.4rem;max-width:700px}.scene-art{position:relative;height:100%;min-height:580px;overflow:hidden;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,black 80%,transparent);mask-image:linear-gradient(to bottom,black 80%,transparent);display:grid;place-items:center}.scene-star{font-size:10rem;color:#d7b868;text-shadow:0 0 100px #d7b868a0;z-index:2;animation:shimmer 5s infinite ease-in-out}.orbital{border:1px solid #b6a17850;border-radius:50%;position:absolute;width:72%;aspect-ratio:1;transform:rotate(-25deg);box-shadow:0 0 100px #7c79a01a}.orbital-two{width:60%;transform:rotate(35deg);border-style:dashed}.orbital-one:before{content:"✧";position:absolute;top:10%;left:10%;color:var(--gold);font-size:2rem}.castle{position:absolute;bottom:0;height:35%;width:80%;display:flex;justify-content:center;align-items:flex-end;gap:4%}.castle i{height:50%;width:15%;background:linear-gradient(#303249,#111728);position:relative;border:1px solid #77718c35}.castle i:before{content:"";position:absolute;width:0;height:0;top:-60px;left:-15%;border-left:40px solid transparent;border-right:40px solid transparent;border-bottom:60px solid #343449}.castle i:nth-child(2n){height:80%}.castle i:nth-child(3){height:100%}.castle i:after{content:"";position:absolute;top:35%;left:42%;width:12%;height:18%;background:#d8b66c50;border-radius:50% 50% 0 0;box-shadow:0 0 30px #d8b66c50}.mist{position:absolute;inset:60% 0 -10%;background:radial-gradient(ellipse,#626b8150,transparent 70%);filter:blur(20px)}.act-2{background-color:#162729}.act-3 .scene-star{color:#9ebcca;text-shadow:0 0 100px #99c5d2}.act-4 .scene-star{font-size:12rem}.tv .cast{border-top:1px solid #bca47420;background:#10142450}.final-cast .avatar{height:220px}.is-final .scene-star{animation:shimmer 2s infinite}.final-greeting{color:var(--gold);font-size:2rem}.success-line{font-size:1.15rem;margin:.5rem 0}.success-line span{color:var(--gold)}.pause-overlay{position:fixed;inset:80px 0 0;display:grid;place-items:center;background:#101424d9;color:var(--gold);font-size:5rem;z-index:20}.host-vote{margin:1.5rem 0}.host-vote label{max-width:600px}@keyframes shimmer{50%{opacity:.65;transform:scale(.96)}}@keyframes arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes ignite{0%{opacity:.3;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@media(min-width:1600px){.tv .cast-member .avatar{height:180px}.tv .cast-member{max-width:180px}.tv .final-cast .avatar{height:250px}.tv-main{min-height:620px}.tv .symbol-slots span{width:80px;height:85px;font-size:2.7rem}}@media(max-width:800px){main{padding:2rem 1.2rem 4rem}.topbar{padding:.7rem 1rem;flex-wrap:wrap}.header-meta{gap:.8rem}.brand{font-size:.75rem}.clock{font-size:1.15rem}.mode{display:none}.editor{grid-template-columns:1fr;gap:1rem}.avatar-preview{width:190px;margin:auto}.avatar-preview .avatar{height:235px}.admin-grid{grid-template-columns:1fr;gap:2rem}.admin-grid aside{border-left:0;border-top:1px solid var(--line);padding:1rem 0}.tv-main{grid-template-columns:1fr;min-height:0}.scene-art{position:absolute;inset:0;opacity:.22}.tv-content{padding:2rem 1.4rem}.dialogue p{font-size:1.3rem}.tv-content h1{font-size:2.5rem}.tv .cast{gap:.5rem;padding:1rem .5rem}.cast-member .avatar,.tv .cast-member .avatar{height:100px}.cast-member strong{font-size:.7rem}.cast-member small{font-size:.5rem}.final-cast .avatar{height:140px}.landing h1{font-size:3.8rem}.landing .lead br{display:none}.symbol-slots span{min-width:46px;height:55px}.symbol-buttons{gap:.45rem}.symbol-buttons button{min-width:46px;padding:.25rem}.form-grid{gap:0 .6rem}.qr{width:200px;height:200px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(update:slow),(max-width:480px){.scene-star{animation:none}.orbital{box-shadow:none}.mist{filter:none}}.active-portrait{position:absolute;inset:10% 10% 5%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse,#6d679e50,transparent 70%)}.active-portrait .avatar{width:90%;max-width:400px;max-height:540px}.active-portrait span{font-size:1.1rem;color:var(--gold);letter-spacing:.1em}.scene-art:has(.active-portrait) .scene-star{opacity:.15}.clock-glitch{animation:clock-glitch .35s 2}@keyframes clock-glitch{20%{transform:translate(-3px);opacity:.6}60%{transform:translate(3px)}to{transform:none}}@media(max-width:800px){.active-portrait{display:none}}.witness-journal{list-style:none;padding:0;margin:1rem 0;font-size:1rem}.witness-journal li{display:grid;grid-template-columns:145px 1fr;gap:1rem;padding:.55rem 0;border-top:1px solid var(--line)}.witness-journal strong{color:var(--gold);font-weight:400}@media(max-width:800px){.witness-journal li{grid-template-columns:1fr;gap:0}}
