:root{
  --bg:#0b0d12;--panel:#121620;--panel-2:#171c28;--panel-3:#0e1219;
  --text:#f6f2e9;--muted:#9ca5b8;--line:rgba(255,255,255,.09);
  --gold:#d7b86a;--gold-2:#f2d58a;--good:#35c98b;--bad:#ff6674;--blue:#77a8ff;
  --shadow:0 20px 70px rgba(0,0,0,.42);--radius:26px
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
body{min-height:100svh;overflow-x:hidden;background:radial-gradient(circle at 10% -10%,rgba(215,184,106,.16),transparent 34rem),radial-gradient(circle at 100% 42%,rgba(82,102,180,.10),transparent 32rem),var(--bg)}
button,input,select{font:inherit}.app-shell{width:min(100%,620px);margin:0 auto;min-height:100svh;padding:max(18px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom));display:flex;flex-direction:column}
.screen{min-height:calc(100svh - 42px);display:flex;flex-direction:column;animation:fade .2s ease both}@keyframes fade{from{opacity:.3;transform:translateY(7px)}to{opacity:1;transform:none}}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:44px;height:44px;border:1px solid rgba(215,184,106,.55);border-radius:14px;display:grid;place-items:center;color:var(--gold-2);font-weight:900;letter-spacing:-.08em;background:linear-gradient(145deg,rgba(215,184,106,.16),rgba(255,255,255,.02))}.brand-text{font-weight:800;letter-spacing:.01em}.brand-text small{display:block;color:var(--muted);font-weight:600;font-size:11px;letter-spacing:.15em;text-transform:uppercase;margin-top:3px}
.hero{padding:46px 2px 26px}.eyebrow{color:var(--gold);font-size:12px;font-weight:850;letter-spacing:.18em;text-transform:uppercase}.hero h1{font-size:clamp(42px,12vw,67px);line-height:.92;letter-spacing:-.055em;margin:10px 0 18px}.hero h1 span{display:block;color:var(--gold-2)}.hero p{color:var(--muted);font-size:17px;line-height:1.55;margin:0;max-width:37ch}.hero-stat{display:inline-flex;gap:8px;align-items:center;margin-top:18px;color:#c8cfdb;font-size:12px;font-weight:800;border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:rgba(255,255,255,.025)}
.home-actions{display:grid;gap:11px;margin-top:auto}.btn{border:0;border-radius:18px;padding:15px 18px;min-height:54px;font-weight:850;cursor:pointer;transition:transform .12s ease,filter .12s ease,opacity .12s ease}.btn:active{transform:scale(.985)}.btn-primary{background:linear-gradient(135deg,var(--gold-2),#c79a42);color:#17130a;box-shadow:0 12px 30px rgba(199,154,66,.18)}.btn-secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--line)}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn-danger{background:rgba(255,102,116,.11);color:#ff99a2;border:1px solid rgba(255,102,116,.22)}.btn-small{min-height:41px;padding:9px 13px;border-radius:14px;font-size:12px}.btn[disabled]{opacity:.4;cursor:not-allowed}
.header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.back{width:44px;height:44px;border-radius:14px;border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:20px}.header h2{font-size:18px;margin:0;flex:1}.header-note{font-size:12px;color:var(--muted)}
.form-section{background:rgba(18,22,32,.84);border:1px solid var(--line);border-radius:22px;padding:18px;margin-bottom:14px;box-shadow:0 12px 32px rgba(0,0,0,.12)}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:14px}.section-title h3{font-size:15px;margin:0}.section-title span{font-size:12px;color:var(--muted)}.field{display:grid;gap:8px;margin-bottom:12px}.field:last-child{margin-bottom:0}.field label{font-size:12px;font-weight:750;color:var(--muted)}.input{width:100%;border:1px solid var(--line);background:#0d1118;color:var(--text);border-radius:15px;padding:14px 15px;outline:none}.input:focus{border-color:rgba(215,184,106,.55);box-shadow:0 0 0 3px rgba(215,184,106,.08)}
.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.seg-5{grid-template-columns:repeat(5,1fr)}.segment{border:1px solid var(--line);background:#0d1118;color:var(--muted);border-radius:14px;padding:11px 7px;text-align:center;font-size:12px;font-weight:850;cursor:pointer}.segment.active{color:#17130a;background:var(--gold-2);border-color:transparent}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.toggle-copy strong{display:block;font-size:14px}.toggle-copy span{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin-top:3px}.toggle{width:50px;height:29px;border-radius:999px;background:#242a35;border:1px solid var(--line);padding:3px;cursor:pointer}.toggle i{display:block;width:21px;height:21px;border-radius:50%;background:#8f98a8;transition:.18s}.toggle.on{background:rgba(215,184,106,.18);border-color:rgba(215,184,106,.35)}.toggle.on i{transform:translateX(20px);background:var(--gold-2)}.setup-footer{position:sticky;bottom:max(8px,env(safe-area-inset-bottom));padding-top:12px;background:linear-gradient(transparent,var(--bg) 28%)}
.game-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.game-home{border:1px solid var(--line);background:rgba(18,22,32,.9);color:var(--muted);border-radius:999px;min-height:38px;padding:8px 12px;font-size:12px;font-weight:850;display:inline-flex;align-items:center;gap:7px;cursor:pointer}.game-home b{font-size:17px;color:var(--gold-2);line-height:1}.film-counter{font-size:11px;font-weight:850;color:var(--gold-2);border:1px solid rgba(215,184,106,.24);background:rgba(215,184,106,.06);padding:8px 10px;border-radius:999px;white-space:nowrap}
.scoreboard{display:grid;grid-template-columns:1fr auto 1fr;gap:9px;align-items:center;margin-bottom:12px}.score-person{min-width:0;border:1px solid var(--line);background:rgba(18,22,32,.72);border-radius:16px;padding:9px 11px}.score-person.right{text-align:right}.score-name{color:var(--muted);font-size:10px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-value{font-size:21px;font-weight:950;letter-spacing:-.04em}.score-person.active{border-color:rgba(215,184,106,.36);background:rgba(215,184,106,.07)}.current-points{text-align:center}.current-points .n{font-size:28px;font-weight:950;color:var(--gold-2);line-height:1}.current-points .l{font-size:9px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.08em;margin-top:3px}
.stage-track{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:6px 0 13px}.stage-step{min-width:0;border:1px solid var(--line);background:#111620;color:#697386;border-radius:13px;padding:8px 4px 7px;display:grid;place-items:center;gap:2px;cursor:pointer;transition:.15s}.stage-step span{font-size:13px;font-weight:950;line-height:1}.stage-step small{font-size:8px;font-weight:850;letter-spacing:.03em}.stage-step.unlocked{color:#c8cfdb;background:#151b26}.stage-step.done{border-color:rgba(215,184,106,.22);color:var(--gold)}.stage-step.current{border-color:rgba(242,213,138,.6);background:rgba(215,184,106,.13);color:var(--gold-2);box-shadow:0 0 18px rgba(242,213,138,.09)}.stage-step.locked:not([disabled]){border-style:dashed;color:#8d7c55}.stage-step[disabled]{opacity:.42;cursor:not-allowed}
.clue-card{position:relative;flex:1;min-height:480px;background:linear-gradient(160deg,#171d29,#10141d 58%,#131720);border:1px solid var(--line);border-radius:30px;padding:21px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.clue-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 100% 0,rgba(215,184,106,.13),transparent 36%);pointer-events:none}.clue-head{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.stage-kicker{font-size:10px;color:var(--gold);font-weight:900;letter-spacing:.15em;text-transform:uppercase}.stage-title{font-size:19px;font-weight:900;margin-top:5px}.points-pill{border:1px solid rgba(215,184,106,.35);background:rgba(215,184,106,.08);color:var(--gold-2);border-radius:999px;padding:8px 10px;font-size:11px;font-weight:900}.clue-content{position:relative;margin:auto 0;padding:28px 0}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.meta-box{border:1px solid var(--line);background:rgba(8,11,16,.42);border-radius:17px;padding:14px}.meta-box.wide{grid-column:1/-1}.meta-label{font-size:9px;color:var(--muted);font-weight:900;letter-spacing:.13em;text-transform:uppercase}.meta-value{font-size:17px;line-height:1.35;font-weight:850;margin-top:6px}.rating-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rating-card{border:1px solid var(--line);background:rgba(8,11,16,.46);border-radius:21px;padding:18px;text-align:center}.rating-card .big{font-size:39px;font-weight:950;letter-spacing:-.06em;color:var(--gold-2)}.rating-card .label{font-size:10px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.1em}.summary-clue{font-size:clamp(22px,6.1vw,29px);line-height:1.38;font-weight:800;letter-spacing:-.025em}.hangman{font-size:clamp(27px,8vw,43px);font-weight:950;letter-spacing:.09em;line-height:1.5;text-align:center;word-break:break-word;margin-bottom:18px}.hang-note{text-align:center;color:var(--muted);font-size:12px;line-height:1.5}.guessed-letters{text-align:center;color:#788295;font-size:11px;min-height:18px;margin-top:10px}.clue-foot{position:relative;color:#6f788a;font-size:10px;margin-top:18px}
.guess-panel{margin-top:13px;display:grid;gap:9px}.guess-row{display:grid;grid-template-columns:1fr auto;gap:8px}.guess-row .btn{min-width:102px}.stage-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stage-actions.one{grid-template-columns:1fr}.micro-note{font-size:10px;color:#747e90;text-align:center;line-height:1.4}.wrong-shake{animation:shake .28s ease}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.handoff{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:30px 6px}.handoff-icon{width:92px;height:92px;border-radius:30px;margin:0 auto 24px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(215,184,106,.16),rgba(82,102,180,.12));border:1px solid rgba(215,184,106,.28);font-size:40px;box-shadow:var(--shadow)}.handoff h1{font-size:36px;letter-spacing:-.04em;margin:0 0 12px}.handoff h1 span{color:var(--gold-2)}.handoff p{color:var(--muted);line-height:1.55;margin:0 auto 26px;max-width:34ch}
.reveal{flex:1;display:flex;flex-direction:column}.reveal-card{margin:auto 0;background:linear-gradient(160deg,#171d29,#0f131b);border:1px solid var(--line);border-radius:30px;padding:23px;box-shadow:var(--shadow);text-align:center}.reveal-icon{width:72px;height:72px;margin:0 auto 15px;border-radius:23px;display:grid;place-items:center;font-size:31px;background:rgba(53,201,139,.09);border:1px solid rgba(53,201,139,.22);color:var(--good)}.reveal-icon.fail{background:rgba(255,102,116,.08);border-color:rgba(255,102,116,.2);color:var(--bad)}.reveal-label{font-size:10px;color:var(--gold);font-weight:900;letter-spacing:.14em;text-transform:uppercase}.movie-title{font-size:clamp(31px,8vw,46px);line-height:1.02;letter-spacing:-.045em;font-weight:950;margin:9px 0 6px}.movie-sub{color:var(--muted);font-size:12px}.earned{font-size:39px;color:var(--gold-2);font-weight:950;letter-spacing:-.05em;margin:20px 0 5px}.earned small{font-size:12px;color:var(--muted);letter-spacing:0}.reveal-meta{border-top:1px solid var(--line);margin-top:18px;padding-top:16px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.mini-chip{font-size:10px;color:#b7c0cf;background:#0c1017;border:1px solid var(--line);border-radius:999px;padding:7px 9px}.progress{height:6px;background:#1d222d;border-radius:999px;overflow:hidden;margin:18px 0 0}.progress div{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-2));border-radius:999px}
.end{text-align:center;padding:45px 0 22px}.trophy{font-size:58px}.end h1{font-size:38px;letter-spacing:-.045em;margin:12px 0 8px}.end-sub{color:var(--muted);line-height:1.5}.final-score{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:25px 0}.score-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:17px}.score-card.winner{border-color:rgba(215,184,106,.45);background:rgba(215,184,106,.07)}.score-card .n{color:var(--muted);font-size:11px}.score-card .s{font-size:35px;font-weight:950;margin:4px 0}.score-card .a{font-size:10px;color:#7c8596}.summary{border:1px solid var(--line);border-radius:20px;overflow:hidden}.summary-row{display:flex;justify-content:space-between;gap:10px;padding:13px 14px;border-bottom:1px solid var(--line);font-size:12px}.summary-row:last-child{border:0}.summary-row span{color:var(--muted)}
.history-item{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:9px}.history-top{display:flex;justify-content:space-between;gap:10px}.history-title{font-size:13px;font-weight:850}.history-date{font-size:10px;color:var(--muted)}.history-score{font-size:12px;color:var(--gold-2);margin-top:6px}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:15px}.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:15px}.stat-card .v{font-size:28px;font-weight:950;color:var(--gold-2)}.stat-card .k{font-size:10px;color:var(--muted);margin-top:3px}.stats-empty{text-align:center;color:var(--muted);padding:80px 10px}
.toast{position:fixed;z-index:50;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%,20px);width:min(calc(100% - 36px),560px);background:#1a202b;border:1px solid var(--line);border-radius:16px;padding:12px 14px;color:var(--text);font-size:12px;font-weight:750;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:420px){.app-shell{padding-left:13px;padding-right:13px}.seg-5{grid-template-columns:repeat(3,1fr)}.clue-card{min-height:450px;padding:18px}.meta-grid{gap:8px}.meta-value{font-size:15px}.guess-row{grid-template-columns:1fr}.guess-row .btn{width:100%}.stage-actions{grid-template-columns:1fr}.score-value{font-size:18px}.current-points .n{font-size:24px}}


/* Multi-library home */
.compact-hero{padding-bottom:20px}
.library-section{margin:0 0 20px}
.library-heading{margin:0 2px 10px}
.library-list{display:grid;gap:9px}
.library-card{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:left;border:1px solid var(--line);background:rgba(18,22,32,.78);color:var(--text);border-radius:19px;padding:13px 14px;cursor:pointer;transition:.15s;box-shadow:0 9px 28px rgba(0,0,0,.10)}
.library-card:active{transform:scale(.987)}
.library-card.selected{border-color:rgba(242,213,138,.52);background:linear-gradient(135deg,rgba(215,184,106,.12),rgba(18,22,32,.9));box-shadow:0 0 0 1px rgba(215,184,106,.04),0 12px 34px rgba(0,0,0,.16)}
.library-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#0e1219;border:1px solid var(--line);color:var(--gold-2);font-size:20px;font-weight:950}
.library-card.selected .library-icon{border-color:rgba(215,184,106,.35);background:rgba(215,184,106,.09)}
.library-copy{min-width:0;display:grid;gap:3px}
.library-copy strong{font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-copy span{font-size:10px;color:var(--muted)}
.library-check{font-size:19px;color:#6f788a;font-weight:900}
.library-card.selected .library-check{color:var(--gold-2)}
.library-desc{font-size:10px;color:#768093;line-height:1.45;padding:8px 4px 0}
.selected-source{display:flex;align-items:center;gap:11px;border:1px solid rgba(215,184,106,.22);background:rgba(215,184,106,.055);border-radius:18px;padding:12px 13px;margin-bottom:14px}
.selected-source .library-icon{width:38px;height:38px;font-size:18px}
.selected-source strong{display:block;font-size:12px}
.selected-source span{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.rank-card .big{font-size:34px}
.source-inline{display:inline-block;margin-top:6px;color:var(--gold);font-size:11px;font-weight:800}
.history-source{font-size:9px;color:var(--muted);margin-top:3px}
@media(max-width:420px){
  .compact-hero{padding-top:32px}
  .compact-hero h1{font-size:clamp(39px,11vw,54px)}
  .compact-hero p{font-size:15px}
  .library-card{padding:11px 12px}
  .library-icon{width:38px;height:38px}
}
