@font-face{font-family:AmericanTypewriter;src:url('/assets/fonts/american-typewriter.woff2') format('woff2');font-display:swap}
@font-face{font-family:Friends;src:url('/assets/fonts/FRIENDS.TTF') format('truetype');font-display:swap}
:root{--ink:#100c1b;--panel:#181126;--panel-2:#21172f;--cream:#f7f0e4;--muted:#aa9db9;--line:#6e568b66;--purple:#9e75c8;--gold:#f3c464;--orange:#ee8c4a;--red:#e85d75;--blue:#5caee8;--green:#57c79a}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--ink);color:var(--cream);font-family:AmericanTypewriter,Georgia,serif;touch-action:none;-webkit-user-select:none;user-select:none}
button,a{font:inherit}
button{border:0}
[hidden]{display:none!important}
.game-shell{position:fixed;inset:0;display:grid;grid-template-columns:minmax(0,1fr) clamp(128px,16vw,205px);gap:clamp(8px,1vw,14px);padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:radial-gradient(circle at 12% 12%,#48285c55,transparent 31%),radial-gradient(circle at 82% 88%,#be71312c,transparent 32%),var(--ink)}
.stage{position:relative;min-width:0;min-height:0;display:grid;place-items:center;overflow:hidden;border:1px solid #9e75c84d;border-radius:clamp(14px,2vw,26px);background:#090711;box-shadow:inset 0 0 80px #000,0 18px 70px #0009;touch-action:none}
#game{width:100%;height:100%;display:block;object-fit:contain;filter:saturate(1.08)}
.scanlines{position:absolute;inset:0;pointer-events:none;opacity:.16;background:repeating-linear-gradient(0deg,transparent 0 3px,#fff 4px);mix-blend-mode:soft-light}
.game-panel{min-width:0;display:grid;grid-template-rows:auto minmax(0,.9fr) minmax(0,.8fr) minmax(0,1.45fr);gap:clamp(8px,1.4vh,14px);padding:clamp(9px,1.3vw,18px);border:1px solid #9e75c83d;border-radius:clamp(14px,2vw,26px);background:linear-gradient(155deg,#241932 0%,#171022 70%);box-shadow:0 18px 70px #0008;overflow:hidden}
.panel-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:clamp(50px,8vh,68px);padding:8px 10px;border:1px solid #9e75c82f;border-radius:12px;background:linear-gradient(145deg,#291c38,#160f20)}
.sound-label{color:var(--muted);font-size:clamp(7px,.8vw,10px);letter-spacing:.2em}
.back-link{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:36px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#0f0b18;color:var(--cream);font-size:clamp(8px,.8vw,11px);letter-spacing:.03em;line-height:1.2;text-decoration:none;white-space:nowrap}.back-link span{color:var(--gold);margin-left:4px;font-size:1.25em}
.icon-button,.text-button{display:grid;place-items:center;min-width:38px;min-height:38px;border:1px solid var(--line);border-radius:12px;background:#0f0b18;color:var(--cream);cursor:pointer}
.icon-button[aria-pressed="true"]{color:var(--muted);text-decoration:line-through}
.scoreboard{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:clamp(7px,1vh,10px);margin:0;padding:0;border:0}
.scoreboard div{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-height:clamp(50px,8vh,68px);padding:10px 11px;border:1px solid #9e75c82f;border-radius:12px;background:linear-gradient(145deg,#291c38,#160f20)}
.scoreboard div:last-child{text-align:left}
.scoreboard small,.status-row small{display:block;color:var(--muted);font-size:clamp(7px,.8vw,10px);letter-spacing:.2em}
.scoreboard strong{display:block;margin:0;color:var(--gold);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:clamp(14px,1.5vw,21px);font-variant-numeric:tabular-nums;letter-spacing:.03em;text-align:right}
.mission{position:relative;flex:.9;display:flex;flex-direction:column;justify-content:center;min-height:0;margin:0;padding:clamp(11px,1.6vw,17px);border:1px solid #9e75c82f;border-radius:12px;background:radial-gradient(circle at 90% 10%,#9e75c818,transparent 45%),linear-gradient(145deg,#21162e,#130d1d);overflow:hidden}
.mission-head{display:flex;justify-content:space-between;gap:8px;font-size:clamp(9px,1vw,12px)}
.mission-count{display:block;margin:clamp(8px,1.6vh,16px) 0 0;color:var(--gold);font:700 clamp(18px,2vw,30px)/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em;white-space:nowrap}
.progress-track{height:4px;margin:8px 0;background:#0d0914;border-radius:99px;overflow:hidden}
.progress-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--purple),var(--gold));box-shadow:0 0 12px var(--gold);transition:width .2s ease}
.mission p{margin:0;color:var(--muted);font-size:clamp(8px,.9vw,11px);line-height:1.55}
.status-row{flex:1.05;display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr) auto;gap:clamp(7px,1.3vh,12px);margin:0;padding:clamp(10px,1.4vw,14px);border:1px solid #9e75c82f;border-radius:12px;background:linear-gradient(145deg,#21162e,#130d1d)}
.lives-heading{display:flex;align-items:baseline;justify-content:space-between;gap:6px}.lives-heading b{color:var(--cream);font-size:clamp(8px,.85vw,11px);font-weight:400;white-space:nowrap}
.lives{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.life-token{display:grid;place-items:center;gap:4px;min-width:0;min-height:clamp(44px,7vh,58px);padding:6px 3px;border:1px solid #9e75c838;border-radius:9px;background:#0f0b18;transition:opacity .2s ease,filter .2s ease}
.life-token i{position:relative;display:block;width:clamp(15px,1.5vw,20px);height:clamp(15px,1.5vw,20px);border-radius:50%;background:var(--gold);box-shadow:0 0 10px #f3c46455}
.life-token i:after{content:"";position:absolute;right:-1px;top:50%;border-right:7px solid #0f0b18;border-top:4px solid transparent;border-bottom:4px solid transparent;transform:translateY(-50%)}
.life-token small{color:var(--gold);font:700 clamp(7px,.65vw,9px)/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}
.life-token.is-lost{opacity:.22;filter:grayscale(1)}
.text-button{width:100%;min-height:clamp(46px,8vh,62px);padding:8px 12px;border-color:#9e75c870;background:linear-gradient(145deg,#302140,#171021);color:var(--cream);font-size:clamp(12px,1.25vw,16px);box-shadow:inset 0 1px #ffffff0c,0 10px 24px #0004}
.text-button[aria-pressed="true"]{border-color:#f3c46470;color:var(--gold);box-shadow:inset 0 0 18px #f3c46412,0 10px 24px #0004}
.status-actions{display:grid;gap:clamp(5px,.8vh,8px)}
.reenter-fullscreen-button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;min-height:clamp(36px,5.5vh,44px);padding:7px 10px;border:1px solid #f3c46470;border-radius:10px;background:linear-gradient(145deg,#302140,#171021);color:var(--gold);font-size:clamp(10px,.9vw,13px);box-shadow:inset 0 0 18px #f3c46410,0 8px 20px #0004;cursor:pointer}.reenter-fullscreen-button span{font-size:1.15em}.reenter-fullscreen-button:active{background:#3a2949;color:var(--cream)}
.game-panel footer{margin:0;white-space:nowrap}
.game-modal{position:absolute;z-index:5;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(18px,4vw,56px);text-align:center;background:radial-gradient(circle at 50% 36%,#3f2853e8,#100c1bf5 58%,#07050cfb);backdrop-filter:blur(7px)}
.game-modal:before{content:"";position:absolute;inset:5%;border:1px solid #aa84cb3a;border-radius:22px;pointer-events:none}
.eyebrow{margin:0 0 2vh;color:var(--purple);font:700 clamp(8px,1vw,13px)/1.2 system-ui,sans-serif;letter-spacing:.22em}
.intro-modal h1{display:flex;align-items:center;gap:clamp(9px,1.4vw,18px);margin:0;font-family:Friends,AmericanTypewriter,serif;font-size:clamp(42px,8vw,110px);font-weight:400;letter-spacing:.12em;line-height:.8;text-shadow:0 8px 38px #000}
.intro-modal h1 i{position:relative;color:var(--gold);font-style:normal;text-shadow:18px 0 var(--red),36px 0 var(--blue);transform:translateX(-18px)}
.intro-modal h2,.result-modal h2{margin:clamp(12px,2vh,24px) 0 0;color:var(--gold);font-size:clamp(22px,3.7vw,52px);font-weight:400;letter-spacing:.08em}
.lede,.result-main>p:not(.eyebrow){margin:clamp(8px,1.8vh,18px) 0;color:#c3b7cb;font-size:clamp(10px,1.4vw,17px);line-height:1.7}
.primary-action{position:relative;z-index:1;min-width:clamp(170px,24vw,280px);margin-top:clamp(9px,1.5vh,16px);padding:clamp(10px,1.6vh,17px) 22px;border-radius:999px;background:var(--gold);color:#21162e;font-weight:700;font-size:clamp(13px,1.6vw,20px);box-shadow:0 10px 35px #0009,0 0 22px #f3c46436;cursor:pointer}.primary-action span{margin-left:14px}.primary-action .restart-label{margin-left:0}
.intro-notes{display:flex;flex-direction:column;gap:5px;margin-top:clamp(9px,2vh,22px);color:var(--muted);font-size:12px;line-height:1.45}
.result-modal{display:flex;align-items:center;justify-content:center;padding:0;overflow:auto;text-align:left}
.result-frame{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(230px,.62fr);gap:clamp(14px,2.2vw,30px);align-items:center;width:min(86%,1180px);max-height:84%}
.result-main{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.result-modal h2{max-width:100%;margin-top:clamp(8px,1.5vh,16px);font-size:clamp(26px,3vw,42px);line-height:1.25;letter-spacing:.05em}
.result-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(7px,1vw,12px);width:100%;margin:clamp(12px,2vh,18px) 0 0}
.result-stat{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:clamp(62px,10vh,84px);padding:clamp(8px,1.2vw,14px);border:1px solid #9e75c840;border-radius:14px;background:linear-gradient(145deg,#291c38cc,#130d1de6);box-shadow:inset 0 1px #ffffff0a}
.result-stat small{color:var(--muted);font-size:clamp(7px,.8vw,10px);letter-spacing:.16em}
.result-stat strong{display:block;margin-top:6px;color:var(--gold);font:700 clamp(18px,2.4vw,30px)/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.03em;white-space:nowrap}
.result-mission strong{font-size:clamp(15px,1.9vw,24px)}
.result-progress{height:4px;margin-top:9px;border-radius:99px;background:#090611;overflow:hidden}.result-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--purple),var(--gold));box-shadow:0 0 12px var(--gold)}
.result-actions{display:grid;gap:clamp(8px,1.2vh,12px);align-self:center;width:100%;padding:clamp(10px,1.4vw,16px);border:1px solid #9e75c83d;border-radius:clamp(16px,1.8vw,22px);background:linear-gradient(155deg,#241932d9,#120d1deb);box-shadow:0 18px 48px #0005}
.result-actions>.primary-action{width:100%;min-height:clamp(72px,12vh,92px);margin:0;padding:14px 18px;border-radius:clamp(16px,1.8vw,22px);font-size:clamp(16px,1.65vw,21px);line-height:1.38}
.result-secondary-actions{display:grid;grid-template-columns:1fr;gap:clamp(8px,1.2vh,12px);width:100%;margin:0}
.result-secondary-button,.result-back{display:flex;align-items:center;justify-content:space-between;min-height:clamp(46px,7vh,54px);padding:10px 16px;border:1px solid #9e75c85c;border-radius:14px;background:#0f0b18;color:var(--cream);font-size:clamp(14px,1.1vw,16px);text-decoration:none;cursor:pointer}.result-secondary-button[aria-pressed="true"]{color:var(--muted)}.result-back span{margin-left:12px;color:var(--gold);font-size:1.2em}
.toast{position:absolute;z-index:4;left:50%;top:clamp(2px,.7vh,5px);max-width:calc(100% - 32px);padding:4px 16px;border:1px solid #d7b27388;border-radius:999px;background:#21162ef5;color:var(--gold);font-size:clamp(15px,1.7vw,22px);line-height:1;letter-spacing:.06em;white-space:nowrap;box-shadow:0 5px 18px #0008;opacity:0;pointer-events:none;transform:translate(-50%,-12px);transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}
.rotate-card{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(26px,5vw,64px);overflow:auto;text-align:center;background:radial-gradient(circle at 50% 30%,#4b2e615c,transparent 30%),radial-gradient(circle at 50% 38%,#432a57,#100c1b 62%)}
.rotate-card:before{content:"";position:absolute;inset:clamp(14px,2.2vw,28px);border:1px solid #aa84cb38;border-radius:clamp(22px,3vw,36px);pointer-events:none}
.rotate-game-icon{position:relative;flex-shrink:0;width:clamp(76px,7vw,96px);height:clamp(76px,7vw,96px);border-radius:24px;box-shadow:0 18px 48px #0009,0 0 30px #f3c46422}
.rotate-card>p{position:relative;flex-shrink:0;margin:clamp(18px,2.6vh,26px) 0 10px;color:var(--gold);font-size:clamp(28px,3vw,40px);letter-spacing:.04em}
.rotate-story{position:relative;display:grid;grid-template-columns:minmax(180px,.82fr) minmax(0,1.65fr);flex-shrink:0;width:min(84vw,720px);overflow:hidden;border:1px solid transparent;border-radius:20px;background:linear-gradient(135deg,#2b1d3af5,#100b1bf7 66%) padding-box,linear-gradient(115deg,#9e75c8cc,#f3c464d9,#5caee899) border-box;box-shadow:inset 0 1px #ffffff14,0 18px 50px #0007,0 0 28px #9e75c818;text-align:left;animation:storyGlow 4.6s ease-in-out infinite}
.rotate-story:before{content:"";position:absolute;z-index:2;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--purple),var(--gold),var(--orange));box-shadow:0 0 20px #f3c46488}
.rotate-story:after{content:"•  •  •";position:absolute;z-index:2;right:15px;top:10px;color:var(--purple);font:700 11px/1 system-ui,sans-serif;letter-spacing:.35em;text-shadow:10px 0 var(--red),20px 0 var(--blue);animation:storyDots 2.4s ease-in-out infinite}
.story-heading{position:relative;display:flex;flex-direction:column;justify-content:center;gap:8px;overflow:hidden;padding:clamp(15px,1.8vw,20px) clamp(17px,2vw,23px);border-right:1px solid #9e75c838;background:radial-gradient(circle at 18% 18%,#9e75c82a,transparent 48%),linear-gradient(145deg,#9e75c814,transparent)}
.story-heading:after{content:"01";position:absolute;right:8px;bottom:-18px;color:#f3c4640d;font:700 72px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-.12em}
.story-heading small{color:var(--purple);font:700 clamp(8px,.72vw,10px)/1.2 system-ui,sans-serif;letter-spacing:.2em}
.story-heading strong{color:var(--gold);font-size:clamp(16px,1.45vw,20px);font-weight:400;line-height:1.25;letter-spacing:.04em}
.story-versus{position:relative;z-index:1;display:flex;align-items:center;gap:5px;margin-top:2px;font:700 8px/1 system-ui,sans-serif;letter-spacing:.1em}.story-versus span{padding:4px 7px;border:1px solid #9e75c850;border-radius:999px;background:#0f0b18b8;color:#d9cee1}.story-versus span:first-child{border-color:#f3c46480;color:var(--gold);box-shadow:0 0 12px #f3c46422}.story-versus i{color:var(--red);font-size:7px;font-style:normal}
.story-copy{position:relative;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:clamp(20px,2.2vw,26px) clamp(22px,2.7vw,32px);background:radial-gradient(circle at 0 50%,#f3c46412,transparent 58%);color:#ded5e2;font-size:clamp(12px,1.05vw,14px);line-height:1.65}
.story-copy:before{content:"“";position:absolute;left:10px;top:3px;color:#f3c46420;font:700 54px/1 Georgia,serif}
.story-copy p{position:relative;z-index:1;margin:0}.story-copy b{color:var(--gold);font-weight:400;text-shadow:0 0 12px #f3c46433}
.story-script{width:100%}.story-line{display:block}.story-accessible{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.opening-sequence .story-line{max-height:0;overflow:hidden;opacity:0;transition:max-height .42s cubic-bezier(.2,.8,.25,1),opacity .2s ease}.opening-sequence .story-line.is-typing,.opening-sequence .story-line.is-complete{max-height:3.6em;opacity:1}.opening-sequence .story-line.is-typing:after{content:"▍";display:inline-block;margin-left:2px;color:var(--gold);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;animation:storyCaret .72s steps(1,end) infinite}
.opening-sequence .fullscreen-action,.opening-sequence .rotate-help{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(14px) scale(.96)}
.opening-sequence.story-complete .fullscreen-action{position:relative;visibility:visible;opacity:1;overflow:hidden;pointer-events:auto;transform:none;animation:openingActionReveal .78s cubic-bezier(.18,.9,.25,1.2) both}
.opening-sequence.story-complete .fullscreen-action:after{content:"";position:absolute;inset:-40% auto -40% -30%;width:22%;background:linear-gradient(90deg,transparent,#fff8dc99,transparent);transform:skewX(-18deg);animation:openingActionSweep 1.05s .18s ease-out both;pointer-events:none}
.opening-sequence.story-complete .rotate-help{visibility:visible;opacity:1;pointer-events:auto;transform:none;animation:openingHelpReveal .52s .62s ease-out both}
@keyframes storyGlow{0%,100%{box-shadow:inset 0 1px #ffffff14,0 18px 50px #0007,0 0 22px #9e75c812}50%{box-shadow:inset 0 1px #ffffff18,0 18px 50px #0007,0 0 34px #f3c4641d}}@keyframes storyDots{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes storyCaret{0%,48%{opacity:1}49%,100%{opacity:0}}@keyframes openingActionReveal{0%{opacity:0;transform:translateY(18px) scale(.92);filter:brightness(.8)}68%{opacity:1;transform:translateY(-3px) scale(1.025);filter:brightness(1.18)}100%{opacity:1;transform:none;filter:none;box-shadow:0 10px 34px #f3c46426}}@keyframes openingActionSweep{0%{left:-30%;opacity:0}18%{opacity:1}100%{left:115%;opacity:0}}@keyframes openingHelpReveal{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
.rotate-card .fullscreen-action{width:min(82vw,380px);margin:clamp(14px,2.3vh,22px) 0 14px;padding:15px 22px;font-size:clamp(16px,1.4vw,19px)}
.rotate-card small{position:relative;color:var(--muted);font-size:clamp(11px,1vw,13px);letter-spacing:.04em}.rotate-card .rotate-help{display:flex;flex-shrink:0;flex-direction:column;gap:4px;line-height:1.45}
body:not(.full-game) .game-shell{display:none}.full-game .rotate-card{display:none}.full-game .game-shell{display:grid}
@media (orientation:portrait) and (max-width:760px){.rotate-card{padding:22px 24px}.rotate-card:before{inset:14px;border-radius:24px}.rotate-game-icon{width:74px;height:74px;border-radius:20px}.rotate-card>p{margin:17px 0 10px;font-size:26px}.rotate-story{grid-template-columns:1fr;width:min(86vw,520px);border-radius:16px}.rotate-story:before{right:0;bottom:auto;width:auto;height:3px}.rotate-story:after{top:14px}.story-heading{gap:4px;padding:13px 17px 11px;border-right:0;border-bottom:1px solid #9e75c838}.story-heading:after{right:14px;bottom:-20px}.story-heading strong{font-size:17px}.story-versus{margin-top:3px}.story-copy{gap:5px;padding:13px 17px 14px;font-size:12px;line-height:1.5}.story-copy:before{left:6px;top:1px;font-size:44px}.rotate-card .fullscreen-action{width:min(86vw,340px);margin:15px 0 13px;padding:15px 20px;font-size:16px}.rotate-card small{font-size:11px}}
@media (orientation:landscape) and (max-height:500px){.rotate-card{padding:13px 26px}.rotate-card:before{inset:10px;border-radius:22px}.rotate-game-icon{width:58px;height:58px;border-radius:16px}.rotate-card>p{margin:8px 0 7px;font-size:28px}.rotate-story{grid-template-columns:minmax(165px,.78fr) minmax(0,1.7fr);width:min(82vw,720px);border-radius:14px}.rotate-story:after{right:12px;top:7px}.story-heading{gap:4px;padding:8px 14px}.story-heading:after{font-size:62px}.story-heading small{font-size:8px}.story-heading strong{font-size:15px}.story-versus{gap:4px;margin-top:0;font-size:7px}.story-versus span{padding:3px 6px}.story-copy{gap:3px;padding:9px 18px;font-size:10.5px;line-height:1.4}.story-copy:before{left:6px;top:0;font-size:40px}.rotate-card .fullscreen-action{width:min(48vw,400px);margin:8px 0 7px;padding:10px 18px;font-size:14px}.rotate-card small{font-size:10px}.rotate-card .rotate-help{gap:1px;line-height:1.28}}
.full-game.force-landscape .game-shell{inset:auto;left:50%;top:50%;width:100vh;height:100vw;grid-template-columns:minmax(0,1fr) clamp(128px,16vh,150px);gap:7px;padding:5px;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center;background:radial-gradient(circle at 12% 12%,#48285c55,transparent 31%),radial-gradient(circle at 82% 88%,#be71312c,transparent 32%),var(--ink)}
.full-game.force-landscape .stage,.full-game.force-landscape .game-panel{border-radius:14px}
.full-game.force-landscape .game-panel{gap:6px;padding:9px 11px}
.full-game.force-landscape .panel-actions{min-height:36px;padding:4px 6px;border-radius:9px}.full-game.force-landscape .panel-actions .icon-button{min-width:30px;min-height:30px;border-radius:9px}
.full-game.force-landscape .scoreboard{gap:5px;margin:0;padding:0}
.full-game.force-landscape .scoreboard div{min-height:36px;padding:5px 7px;border-radius:9px}
.full-game.force-landscape .mission{margin:0;padding:8px;border-radius:9px}
.full-game.force-landscape .mission-count{margin-top:5px;font-size:16px}
.full-game.force-landscape .mission p{line-height:1.35}
.full-game.force-landscape .status-row{margin:0;padding:7px;gap:5px;border-radius:9px}
.full-game.force-landscape .life-token{min-height:36px;padding:4px 2px}.full-game.force-landscape .life-token i{width:14px;height:14px}.full-game.force-landscape .life-token i:after{border-right-width:5px;border-top-width:3px;border-bottom-width:3px}
.full-game.force-landscape .text-button{min-height:46px}
.full-game.force-landscape .status-actions{gap:4px}.full-game.force-landscape .reenter-fullscreen-button{min-height:36px;padding:5px 8px;font-size:10px}
.full-game.force-landscape .game-panel footer{margin:0}
.result-open .game-shell,.result-open.full-game.force-landscape .game-shell{grid-template-columns:minmax(0,1fr)}
.result-open .game-panel{display:none}
@media (orientation:landscape) and (max-height:500px){.game-shell{grid-template-columns:minmax(0,1fr) clamp(128px,16vw,150px);gap:7px;padding:max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))}.stage,.game-panel{border-radius:14px}.game-panel{gap:6px;padding:9px 11px}.panel-actions{min-height:36px;padding:4px 6px;border-radius:9px}.panel-actions .icon-button{min-width:30px;min-height:30px;border-radius:9px}.scoreboard{gap:5px;margin:0;padding:0}.scoreboard div{min-height:36px;padding:5px 7px;border-radius:9px}.mission{margin:0;padding:8px;border-radius:9px}.mission-count{margin-top:5px;font-size:16px}.mission p{line-height:1.35}.status-row{margin:0;padding:7px;gap:5px;border-radius:9px}.life-token{min-height:36px;padding:4px 2px}.life-token i{width:14px;height:14px}.life-token i:after{border-right-width:5px;border-top-width:3px;border-bottom-width:3px}.text-button{min-height:42px}.status-actions{gap:4px}.reenter-fullscreen-button{min-height:36px;padding:5px 7px;font-size:10px}.game-panel footer{margin:0}.intro-modal h1{font-size:clamp(42px,10vh,78px)}.intro-modal h2{font-size:clamp(22px,5.5vh,36px)}.eyebrow{margin-bottom:1.2vh}.lede{margin:1.2vh 0;line-height:1.45}.primary-action{margin-top:1vh;padding:9px 20px}.intro-notes{margin-top:1.2vh}.result-modal{grid-template-columns:minmax(0,1.45fr) minmax(250px,.75fr);gap:14px;padding:16px 20px}.result-modal h2{margin-top:8px;font-size:clamp(24px,7vh,34px);line-height:1.3}.result-main>p:not(.eyebrow){margin:5px 0;line-height:1.3}.result-summary{gap:6px;margin-top:13px}.result-stat{min-height:62px;padding:8px 9px;border-radius:10px}.result-stat strong{margin-top:4px;font-size:20px}.result-mission strong{font-size:16px}.result-progress{margin-top:6px}.result-actions{gap:8px;padding:10px;border-radius:16px}.result-actions>.primary-action{min-height:88px;padding:12px 16px;border-radius:14px;font-size:18px}.result-secondary-actions{gap:8px}.result-secondary-button,.result-back{min-height:52px;padding:10px 14px;border-radius:12px;font-size:15px}}
.full-game.force-landscape .result-modal{padding:0}
.full-game.force-landscape .result-frame{grid-template-columns:minmax(0,1.48fr) minmax(220px,.66fr);gap:10px;width:88%;max-height:86%}
.full-game.force-landscape .result-modal h2{margin-top:6px;font-size:clamp(24px,7vh,30px);line-height:1.25}
.full-game.force-landscape .result-main>p:not(.eyebrow){margin:4px 0;line-height:1.3}
.full-game.force-landscape .result-summary{gap:6px;margin-top:10px}
.full-game.force-landscape .result-stat{min-height:54px;padding:6px 8px;border-radius:10px}
.full-game.force-landscape .result-stat strong{margin-top:4px;font-size:18px}
.full-game.force-landscape .result-mission strong{font-size:15px}
.full-game.force-landscape .result-progress{margin-top:5px}
.full-game.force-landscape .result-actions{gap:6px;padding:8px;border-radius:14px}
.full-game.force-landscape .result-actions>.primary-action{min-height:72px;padding:10px 12px;border-radius:12px;font-size:16px}
.full-game.force-landscape .result-secondary-actions{gap:6px}
.full-game.force-landscape .result-secondary-button,.full-game.force-landscape .result-back{min-height:44px;padding:8px 10px;border-radius:10px;font-size:14px}
@media (orientation:landscape) and (max-height:500px){.result-modal{display:flex;align-items:center;justify-content:center;padding:0}.result-frame{grid-template-columns:minmax(0,1.48fr) minmax(220px,.66fr);gap:10px;width:88%;max-height:86%}.result-modal h2{margin-top:6px;font-size:clamp(24px,7vh,30px);line-height:1.25}.result-main>p:not(.eyebrow){margin:4px 0;line-height:1.3}.result-summary{gap:6px;margin-top:10px}.result-stat{min-height:54px;padding:6px 8px;border-radius:10px}.result-stat strong{margin-top:4px;font-size:18px}.result-mission strong{font-size:15px}.result-progress{margin-top:5px}.result-actions{gap:6px;padding:8px;border-radius:14px}.result-actions>.primary-action{min-height:72px;padding:10px 12px;border-radius:12px;font-size:16px}.result-secondary-actions{gap:6px}.result-secondary-button,.result-back{min-height:44px;padding:8px 10px;border-radius:10px;font-size:14px}}
.result-frame{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:min(84%,1040px);max-height:86%}
.result-main{align-items:center;width:100%;padding-top:clamp(20px,4vh,34px);text-align:center}
.result-modal h2{max-width:920px;margin-top:clamp(7px,1.2vh,12px);font-size:clamp(28px,3.1vw,44px);line-height:1.2;letter-spacing:.05em}
.result-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:min(76%,720px);margin:clamp(12px,2vh,18px) 0 0;border:1px solid #9e75c84d;border-radius:clamp(14px,1.6vw,20px);background:linear-gradient(145deg,#291c38cc,#130d1de6);box-shadow:inset 0 1px #ffffff0a,0 18px 42px #0003;overflow:hidden}
.result-stat{min-height:clamp(62px,10vh,82px);padding:clamp(9px,1.2vw,14px) clamp(12px,1.6vw,20px);border:0;border-left:1px solid #9e75c838;border-radius:0;background:transparent;box-shadow:none;text-align:left}
.result-stat:first-child{border-left:0}
.result-stat strong{font-size:clamp(19px,2.35vw,30px)}
.result-mission strong{font-size:clamp(17px,2vw,26px)}
.result-actions{display:grid;grid-template-columns:30% minmax(0,1fr);align-items:stretch;gap:clamp(8px,1vw,12px);width:min(76%,720px);margin-top:clamp(10px,1.8vh,16px);padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.result-actions>.primary-action{grid-column:2;grid-row:1;width:100%;min-height:clamp(64px,10vh,78px);padding:13px 22px;border-radius:999px;font-size:clamp(17px,1.7vw,22px);line-height:1.35}
.result-secondary-actions{display:contents}
.result-secondary-button{position:absolute;top:0;right:0;z-index:2;width:auto;min-height:clamp(38px,6vh,46px);padding:8px 14px;border-radius:999px;background:#0f0b18d9;font-size:clamp(12px,1vw,15px)}
.result-back{grid-column:1;grid-row:1;justify-content:center;width:100%;min-height:clamp(64px,10vh,78px);margin:0;padding:10px 14px;border-color:#9e75c870;border-radius:999px;background:#0f0b18c7;font-size:clamp(13px,1.05vw,16px)}
.full-game.force-landscape .result-frame{display:flex;gap:0;width:88%;max-height:88%}
.full-game.force-landscape .result-main{padding-top:18px}
.full-game.force-landscape .result-modal h2{font-size:clamp(24px,7vh,30px);line-height:1.18}
.full-game.force-landscape .result-summary{gap:0;margin-top:9px;border-radius:12px}
.full-game.force-landscape .result-stat{min-height:52px;padding:6px 12px;border-radius:0}
.full-game.force-landscape .result-actions{grid-template-columns:30% minmax(0,1fr);gap:8px;width:min(76%,720px);margin-top:8px;padding:0;border:0;background:none;box-shadow:none}
.full-game.force-landscape .result-actions>.primary-action{width:100%;min-height:58px;padding:9px 15px;border-radius:999px;font-size:16px}
.full-game.force-landscape .result-secondary-button{top:0;right:0;width:auto;min-height:36px;padding:6px 11px;border-radius:999px;font-size:12px}
.full-game.force-landscape .result-back{width:100%;min-height:58px;margin:0;padding:8px 10px;border-radius:999px;font-size:13px}
@media (orientation:landscape) and (max-height:500px){.result-frame{display:flex;gap:0;width:88%;max-height:88%}.result-main{padding-top:18px}.result-modal h2{font-size:clamp(24px,7vh,30px);line-height:1.18}.result-summary{gap:0;margin-top:9px;border-radius:12px}.result-stat{min-height:52px;padding:6px 12px;border-radius:0}.result-actions{grid-template-columns:30% minmax(0,1fr);gap:8px;width:min(76%,720px);margin-top:8px;padding:0;border:0;background:none;box-shadow:none}.result-actions>.primary-action{width:100%;min-height:58px;padding:9px 15px;border-radius:999px;font-size:16px}.result-secondary-button{top:0;right:0;width:auto;min-height:36px;padding:6px 11px;border-radius:999px;font-size:12px}.result-back{width:100%;min-height:58px;margin:0;padding:8px 10px;border-radius:999px;font-size:13px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Opening episode card */
.rotate-card{gap:0;padding:clamp(30px,4vh,48px) clamp(34px,6vw,84px) clamp(94px,11vh,124px)}
.rotate-game-icon{width:clamp(84px,7.5vw,106px);height:clamp(84px,7.5vw,106px)}
.rotate-card>p{margin:clamp(22px,3vh,32px) 0 clamp(16px,2.2vh,24px);font-size:clamp(34px,3.5vw,48px)}
.rotate-story{grid-template-columns:minmax(210px,.78fr) minmax(0,1.7fr);width:min(88vw,840px);border-radius:24px}
.story-heading{gap:11px;padding:clamp(22px,2.4vw,30px) clamp(24px,2.8vw,34px)}
.story-heading strong{font-size:clamp(19px,1.7vw,24px)}
.story-copy{padding:clamp(28px,3vw,38px) clamp(30px,3.4vw,44px);font-size:clamp(18px,1.5vw,21px);line-height:1.62}
.rotate-card .fullscreen-action{width:min(82vw,420px);margin:clamp(22px,3vh,30px) 0 16px;padding:17px 24px;font-size:clamp(17px,1.5vw,20px)}
.rotate-card .rotate-help{gap:5px;font-size:clamp(12px,1vw,14px);line-height:1.5}
.opening-ranking-button{position:fixed;z-index:24;top:max(24px,env(safe-area-inset-top));right:max(28px,env(safe-area-inset-right));display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:9px 15px;border:1px solid #9e75c866;border-radius:999px;background:#120c1dd9;color:#ded5e2;font:600 13px/1 system-ui,sans-serif;letter-spacing:.08em;box-shadow:inset 0 1px #ffffff12,0 12px 32px #0005;cursor:pointer;backdrop-filter:blur(12px)}
.opening-ranking-button svg{width:21px;height:21px;fill:none;stroke:var(--gold);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px #f3c46455)}
.opening-ranking-button:hover,.opening-ranking-button:focus-visible{border-color:var(--gold);color:var(--gold);outline:0;transform:translateY(-1px)}
.opening-back-link{position:fixed;z-index:24;left:50%;bottom:max(25px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:10px;padding:8px 12px;color:#bfb2c8;font-size:13px;letter-spacing:.06em;text-decoration:none;transform:translateX(-50%)}
.opening-back-link span{color:var(--gold)}
.opening-back-link:hover,.opening-back-link:focus-visible{color:var(--gold);outline:0;text-decoration:none}
.opening-ranking-panel{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:#090611d9;backdrop-filter:blur(15px)}
.opening-ranking-panel[hidden]{display:none}
.opening-ranking-dialog{position:relative;width:min(92vw,720px);max-height:min(82vh,650px);padding:clamp(24px,3vw,38px);overflow:auto;border:1px solid #9e75c86b;border-radius:clamp(22px,2.5vw,30px);background:radial-gradient(circle at 8% 0,#9e75c82a,transparent 40%),linear-gradient(145deg,#291c38f7,#0f0a18fa);box-shadow:inset 0 1px #ffffff14,0 32px 90px #000b;text-align:left}
.opening-ranking-dialog:before{content:"";position:absolute;left:0;top:0;width:45%;height:3px;background:linear-gradient(90deg,var(--purple),var(--gold),transparent)}
.opening-ranking-close{position:absolute;top:15px;right:15px;width:42px;height:42px;border:1px solid #9e75c84d;border-radius:50%;background:#0d0916bf;color:#ded5e2;font:300 26px/1 system-ui,sans-serif;cursor:pointer}
.opening-ranking-close:hover,.opening-ranking-close:focus-visible{border-color:var(--gold);color:var(--gold);outline:0}
.opening-ranking-dialog>.food-ranking-kicker{color:var(--purple);font-size:10px;letter-spacing:.22em}
.opening-ranking-dialog h2{margin:9px 52px 0 0;color:var(--gold);font-size:clamp(25px,3vw,38px);font-weight:400;letter-spacing:.05em}
.opening-ranking-dialog>p{margin:6px 0 22px;color:#c3b7cb;font-size:clamp(12px,1.1vw,15px);letter-spacing:.08em}
.opening-ranking-board{padding:clamp(13px,1.8vw,20px);border:1px solid #9e75c83d;border-radius:17px;background:#0906118a}
.opening-ranking-list{gap:5px;max-height:42vh;overflow:auto}
.opening-ranking-list li{min-height:34px;padding:7px 8px;font-size:clamp(11px,1vw,13px)}
.opening-ranking-board .food-ranking-head{padding:0 8px 9px;font-size:9px}

@media (orientation:portrait) and (max-width:760px){.rotate-card{justify-content:flex-start;padding:clamp(52px,7vh,66px) 22px 96px}.rotate-game-icon{width:78px;height:78px}.rotate-card>p{margin:20px 0 16px;font-size:32px}.rotate-story{grid-template-columns:1fr;width:min(88vw,540px);border-radius:19px}.rotate-story:before{right:0;bottom:auto;width:auto;height:3px}.story-heading{gap:6px;padding:17px 20px 15px;border-right:0;border-bottom:1px solid #9e75c838}.story-heading:after{right:14px;bottom:-20px}.story-heading strong{font-size:20px}.story-versus{margin-top:3px}.story-copy{padding:19px 21px 21px;font-size:17.5px;line-height:1.58}.rotate-card .fullscreen-action{width:min(88vw,360px);margin:21px 0 15px;padding:16px 20px;font-size:17px}.rotate-card .rotate-help{font-size:11.5px}.opening-ranking-button{top:max(18px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right));min-height:42px;padding:8px 12px;font-size:12px}.opening-ranking-button svg{width:19px;height:19px}.opening-back-link{bottom:max(18px,env(safe-area-inset-bottom));font-size:12px}.opening-ranking-panel{padding:18px}.opening-ranking-dialog{width:100%;max-height:84vh;padding:24px 16px 18px;border-radius:22px}.opening-ranking-dialog h2{font-size:27px}.opening-ranking-board{padding:10px 7px}.opening-ranking-board .food-ranking-head,.opening-ranking-list li{grid-template-columns:22px minmax(80px,1fr) 59px 50px 35px;gap:4px}.opening-ranking-list li{min-height:32px;padding:6px 5px;font-size:10.5px}}
@media (orientation:landscape) and (max-height:500px){.rotate-card{padding:12px 68px 36px}.rotate-game-icon{display:none}.rotate-card>p{margin:4px 0 7px;font-size:29px}.rotate-story{grid-template-columns:minmax(180px,.6fr) minmax(0,1.75fr);width:min(88vw,900px);border-radius:16px}.story-heading{gap:5px;padding:10px 16px}.story-heading strong{font-size:16px}.story-copy{padding:11px 22px;font-size:15.5px;line-height:1.4}.rotate-card .fullscreen-action{width:min(48vw,420px);margin:8px 0 5px;padding:9px 18px;font-size:14.5px}.rotate-card .rotate-help{font-size:9.5px}.opening-ranking-button{top:max(13px,env(safe-area-inset-top));right:max(17px,env(safe-area-inset-right));min-height:38px;padding:6px 11px;font-size:11px}.opening-ranking-button svg{width:17px;height:17px}.opening-back-link{bottom:max(8px,env(safe-area-inset-bottom));font-size:10.5px}.opening-ranking-dialog{width:min(80vw,690px);max-height:88vh;padding:20px 24px}.opening-ranking-dialog h2{font-size:25px}.opening-ranking-dialog>p{margin-bottom:12px}.opening-ranking-list{max-height:48vh}.opening-ranking-list li{min-height:29px;padding:5px 7px;font-size:10.5px}}
.food-ranking{display:grid;grid-template-columns:minmax(215px,.8fr) minmax(0,1.45fr);width:min(88%,900px);margin-top:clamp(8px,1.4vh,13px);overflow:hidden;border:1px solid #9e75c84d;border-radius:clamp(13px,1.4vw,18px);background:linear-gradient(145deg,#291c38e8,#100b19f2);box-shadow:inset 0 1px #ffffff0b,0 16px 38px #0004;text-align:left}
.food-ranking-entry{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(10px,1.3vw,15px);border-right:1px solid #9e75c838;background:radial-gradient(circle at 0 0,#9e75c826,transparent 52%)}
.food-ranking-kicker{color:var(--purple);font:700 clamp(7px,.65vw,9px)/1 system-ui,sans-serif;letter-spacing:.2em}
.food-ranking h3{margin:5px 0 0;color:var(--gold);font-size:clamp(15px,1.45vw,20px);font-weight:400;letter-spacing:.04em;line-height:1.15}
.food-ranking-entry>p{margin:3px 0 0;color:#c3b7cb;font-size:clamp(9px,.85vw,12px);line-height:1.25}
.food-ranking-form{margin-top:8px}.food-ranking-name-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:7px}.food-ranking-form label{display:block;color:#ded5e2;font-size:clamp(8px,.72vw,10px)}.food-ranking-name-head span{color:#81758d;font:700 8px/1 system-ui,sans-serif;letter-spacing:.1em}
.food-ranking-name-field{position:relative}.food-ranking-name-field svg{position:absolute;left:10px;top:50%;width:13px;height:13px;transform:translateY(-50%);fill:none;stroke:#9e75c8;stroke-width:1.5}.food-ranking-form input{display:block;width:100%;min-width:0;height:36px;padding:0 10px 0 30px;border:1px solid #9e75c85c;border-radius:9px;outline:0;background:#0c0813;color:var(--cream);font:inherit;font-size:11px;user-select:text;-webkit-user-select:text}.food-ranking-form input:focus{border-color:var(--gold);box-shadow:0 0 0 2px #f3c46418}.food-ranking-form input::placeholder{color:#81758d}
.food-ranking-submit{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:38px;margin-top:7px;padding:0 13px;border-radius:9px;background:var(--gold);color:#21162e;font-weight:700;font-size:11px;cursor:pointer;box-shadow:0 8px 20px #0003}.food-ranking-submit span:last-child{font-size:1.1em}.food-ranking-submit:disabled{opacity:.5;cursor:wait}
#food-ranking-error{display:block;min-height:12px;margin-top:4px;color:#f09a9a;font-size:9px;line-height:1.2}.food-ranking-saved{color:var(--gold)!important;font-size:clamp(10px,.9vw,12px)!important;line-height:1.45!important}
.food-ranking-board{min-width:0;padding:clamp(9px,1.1vw,13px)}.food-ranking-head,.food-ranking-list li{display:grid;grid-template-columns:26px minmax(84px,1fr) 68px 54px 42px;align-items:center;gap:6px}.food-ranking-head{padding:0 5px 5px;color:#81758d;font:700 8px/1 system-ui,sans-serif;letter-spacing:.08em}.food-ranking-head span:nth-child(n+3){text-align:right}
.food-ranking-list{display:grid;gap:2px;margin:0;padding:0;list-style:none}.food-ranking-list li{min-height:21px;padding:3px 5px;border-radius:6px;background:#0d091599;color:#ded5e2;font-size:clamp(9px,.78vw,11px);font-variant-numeric:tabular-nums}.food-ranking-list li.is-own{outline:1px solid #f3c46488;background:#f3c46410;color:var(--gold)}.food-ranking-list li span:first-child{color:var(--purple)}.food-ranking-list li span:nth-child(n+3){text-align:right;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.food-ranking-list .food-rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.food-ranking-empty{margin:18px 0;color:var(--muted);font-size:10px;text-align:center}.food-ranking-own{margin-top:5px;padding:5px 7px;border:1px solid #f3c46455;border-radius:7px;color:var(--gold);font-size:9px;text-align:center}
.full-game.force-landscape .food-ranking{width:min(88%,800px);margin-top:6px}.full-game.force-landscape .food-ranking-entry,.full-game.force-landscape .food-ranking-board{padding:8px}.full-game.force-landscape .food-ranking h3{font-size:15px}.full-game.force-landscape .food-ranking-form{margin-top:5px}.full-game.force-landscape .food-ranking-form input,.full-game.force-landscape .food-ranking-form button{height:31px}.full-game.force-landscape .food-ranking-list li{min-height:18px;padding:2px 5px;font-size:9px}.full-game.force-landscape .result-actions{margin-top:6px}
@media (orientation:landscape) and (max-height:500px){.food-ranking{grid-template-columns:minmax(205px,.8fr) minmax(0,1.4fr);width:min(88%,800px);margin-top:6px}.food-ranking-entry,.food-ranking-board{padding:8px}.food-ranking h3{font-size:15px}.food-ranking-form{margin-top:5px}.food-ranking-form input,.food-ranking-form button{height:31px}.food-ranking-list li{min-height:18px;padding:2px 5px;font-size:9px}.result-actions{margin-top:6px}}

/* Full-page Pacman leaderboard */
.opening-ranking-button{display:grid;place-items:center;width:48px;min-width:48px;height:48px;padding:0;border-radius:50%}
.opening-ranking-button svg{width:23px;height:23px}
.opening-ranking-panel{position:fixed;z-index:60;inset:0;display:flex;flex-direction:column;height:100dvh;padding:0;overflow:hidden;background:#100c1b;color:var(--cream);backdrop-filter:none;text-align:left}
.opening-ranking-panel[hidden]{display:none}
.opening-ranking-hero{position:relative;flex:none;align-self:stretch;width:100%;max-width:none;margin:0;padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid #9e75c84d;background:radial-gradient(ellipse at 16% 70%,#9e75c82f,transparent 58%),linear-gradient(115deg,#352044,#1d1329 62%,#100c1b)}
.opening-ranking-hero:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--purple) 22%,var(--gold) 55%,transparent)}
.opening-ranking-header-inner{position:relative;width:100%;max-width:760px;margin:auto;padding:0 20px}
.opening-ranking-topbar{display:flex;align-items:center;gap:12px;min-height:46px;color:#aa9db9;font:700 9px/1 system-ui,sans-serif;letter-spacing:.2em}
.opening-ranking-close{position:static;display:grid;place-items:center;flex:none;width:32px;height:40px;border:0;border-radius:0;background:transparent;color:#eadff0;font:300 25px/1 system-ui,sans-serif;cursor:pointer}
.opening-ranking-banner{position:relative;display:flex;align-items:center;gap:17px;min-height:104px;padding:0 0 13px;overflow:hidden}
.opening-ranking-award{flex:none;width:70px;height:78px;color:var(--gold);filter:drop-shadow(0 4px 14px #f3c46422)}
.opening-ranking-banner div{position:relative;z-index:1;min-width:0}.opening-ranking-banner p{margin:0 0 4px;color:#c9b9d3;font-size:12px;letter-spacing:.08em}.opening-ranking-banner h2{margin:0;color:var(--gold);font-size:clamp(28px,5vw,40px);font-weight:400;line-height:1.2;letter-spacing:.05em}
.opening-ranking-watermark{position:absolute;right:4px;top:-30px;color:#f3c4640a;font-size:150px;line-height:1;transform:rotate(12deg)}
.opening-ranking-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.opening-ranking-tabs button{position:relative;width:100%;min-height:46px;padding:10px 2px 13px;border:0;background:transparent;color:#9f90aa;font-size:13px;letter-spacing:.04em;text-align:center;cursor:pointer}.opening-ranking-tabs button[aria-pressed="true"]{color:var(--gold);font-weight:700}.opening-ranking-tabs button[aria-pressed="true"]:after{content:"";position:absolute;left:14%;right:14%;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold) 18%,var(--gold) 82%,transparent)}
.opening-ranking-body{flex:1;min-height:0;width:100%;max-width:760px;margin:auto;padding:20px 20px 110px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.opening-ranking-body::-webkit-scrollbar{display:none}
.opening-ranking-board{padding:0;border:0;background:transparent}.opening-ranking-board .food-ranking-head,.opening-ranking-list li{grid-template-columns:36px minmax(100px,1fr) 82px;gap:9px}.opening-ranking-board .food-ranking-head{padding:0 9px 10px;color:#81758d;font-size:9px}.opening-ranking-list{gap:5px;max-height:none;overflow:visible}.opening-ranking-list li{min-height:48px;padding:8px 9px;border-bottom:1px solid #9e75c824;border-radius:9px;background:#171021b5;font-size:12px}.opening-ranking-list li:nth-child(-n+3){background:linear-gradient(90deg,#f3c46413,#171021b5)}.opening-ranking-list li:nth-child(-n+3) span:first-child{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--gold);color:#24152e;font-weight:800}.opening-ranking-list li.is-own{outline:1px solid #f3c46499;background:#f3c46414;color:var(--gold)}
.food-rank-gap{display:block!important;min-height:32px!important;padding:11px!important;background:transparent!important;color:#9e75c8!important;text-align:center}
.opening-ranking-board .food-ranking-empty{margin:52px 0;color:#b5a6c0;font-size:14px}.opening-ranking-message{min-height:20px;margin:15px 0;color:#9e75c8;font-size:11px;text-align:center}
.opening-ranking-actions{position:fixed;z-index:2;left:0;right:0;bottom:0;padding:12px max(20px,calc((100vw - 720px)/2)) calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid #9e75c844;background:#100c1bf2;backdrop-filter:blur(12px)}
.opening-ranking-actions .primary-action{width:100%;min-height:52px;margin:0;border-radius:15px;font-size:16px}
.food-ranking{display:block;width:min(76%,720px)}.food-ranking-entry{padding:clamp(12px,1.5vw,18px);border-right:0;text-align:center}.food-ranking-form{width:min(100%,520px);margin:10px auto 0}.food-ranking-form label{text-align:left}

@media (max-width:520px){.opening-ranking-header-inner{padding:0 15px}.opening-ranking-topbar{min-height:42px}.opening-ranking-banner{gap:11px;min-height:88px;padding-bottom:9px}.opening-ranking-award{width:54px;height:64px}.opening-ranking-banner p{font-size:10px}.opening-ranking-banner h2{font-size:28px}.opening-ranking-watermark{font-size:120px}.opening-ranking-tabs{gap:0}.opening-ranking-tabs button{min-height:43px;font-size:12px}.opening-ranking-body{padding:15px 12px 100px}.opening-ranking-board .food-ranking-head,.opening-ranking-list li{grid-template-columns:30px minmax(0,1fr) 72px;gap:6px}.opening-ranking-list li{min-height:44px;padding:7px 6px;font-size:10.5px}.opening-ranking-list li:nth-child(-n+3) span:first-child{width:25px;height:25px}.opening-ranking-actions{padding-left:14px;padding-right:14px}.opening-ranking-button{top:max(17px,env(safe-area-inset-top));right:max(17px,env(safe-area-inset-right));width:44px;min-width:44px;height:44px}.opening-ranking-button svg{width:21px;height:21px}}
@media (orientation:landscape) and (max-height:500px){.opening-ranking-topbar{min-height:34px}.opening-ranking-banner{min-height:58px;padding-bottom:5px}.opening-ranking-award{width:44px;height:48px}.opening-ranking-banner p{display:none}.opening-ranking-banner h2{font-size:24px}.opening-ranking-tabs button{min-height:36px;padding:6px 2px 9px}.opening-ranking-body{padding-top:10px;padding-bottom:76px}.opening-ranking-list li{min-height:36px;padding:5px 8px}.opening-ranking-actions{padding-top:8px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.opening-ranking-actions .primary-action{min-height:44px;font-size:14px}.food-ranking{width:min(76%,720px)!important}.food-ranking-entry{padding:8px!important}}

.rotate-card:before{display:none}
.intro-modal h2{margin-top:clamp(16px,2.6vh,30px)}
.intro-modal>.primary-action{margin-top:clamp(14px,2.3vh,24px)}
.intro-modal .intro-notes{gap:6px;margin-top:clamp(14px,2.6vh,28px)}

/* Portrait victory result */
.result-won .game-shell{padding:0;background:radial-gradient(circle at 50% 20%,#432a57,#100c1b 58%,#08050e)}
.result-won .stage{border:0;border-radius:0;box-shadow:none}
.result-won .result-modal{justify-content:flex-start;padding:max(54px,calc(32px + env(safe-area-inset-top))) 20px max(30px,calc(20px + env(safe-area-inset-bottom)));overflow-y:auto}
.result-won .result-frame{display:flex;flex-direction:column;justify-content:flex-start;gap:0;width:min(100%,520px);max-height:none;margin:auto}
.result-won .result-main{align-items:center;width:100%;padding:0;text-align:center}
.result-won .eyebrow{margin-bottom:13px}
.result-won .result-modal h2{max-width:100%;margin:0;font-size:clamp(32px,9vw,46px);line-height:1.2;letter-spacing:.04em}
.result-won .result-summary{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin-top:28px;border-radius:18px}
.result-won .result-stat{min-height:84px;padding:13px 10px;text-align:center}
.result-won .result-stat small{font-size:9px}.result-won .result-stat strong{font-size:clamp(19px,5.7vw,27px)}.result-won .result-mission strong{font-size:clamp(16px,4.9vw,23px)}
.result-won .food-ranking{width:100%;margin-top:24px;overflow:visible;border:0;border-radius:0;background:none;box-shadow:none}
.result-won .food-ranking-entry{padding:16px 16px 14px;border:1px solid #9e75c84a;border-radius:20px;background:radial-gradient(circle at 0 0,#9e75c82b,transparent 46%),linear-gradient(145deg,#281b36e6,#120d1ce6);box-shadow:inset 0 1px #ffffff0c,0 18px 44px #0004;text-align:left}
.result-won .food-ranking-form{width:100%;margin:0}.result-won .food-ranking-name-head{margin-bottom:11px}.result-won .food-ranking-form label{color:#f2e8f5;font-size:16px;letter-spacing:.04em}.result-won .food-ranking-name-head span{color:#a997b5;font-size:10px;letter-spacing:.12em}
.result-won .food-ranking-name-field svg{left:16px;width:17px;height:17px;stroke:var(--gold)}.result-won .food-ranking-form input{height:54px;padding:0 16px 0 46px;border-radius:14px;background:#0a0711cc;font-size:15px}.result-won .food-ranking-submit{min-height:58px;margin-top:12px;border-radius:15px;font-size:18px;letter-spacing:.1em;box-shadow:0 12px 28px #0005,0 0 22px #f3c46418}.result-won .food-ranking-submit span:last-child{font-size:19px}
.result-won #food-ranking-error{min-height:18px;margin-top:7px;font-size:11px}.result-won .food-ranking-saved{font-size:14px!important;text-align:center}
.result-won .result-actions{display:none!important}

/* Compact leaderboard masthead and entry-dependent actions */
.opening-ranking-topbar{min-height:40px;font-size:9px}
.opening-ranking-banner{gap:14px;min-height:82px;padding-bottom:9px}
.opening-ranking-award{width:56px;height:62px}
.opening-ranking-banner p{margin-bottom:3px;font-size:11px}.opening-ranking-banner h2{font-size:clamp(27px,4vw,36px)}
.opening-ranking-watermark{top:-24px;font-size:120px}
.opening-ranking-tabs button{min-height:42px;padding:9px 2px 12px;font-size:13px}
.opening-ranking-board .food-ranking-head,.opening-ranking-list li{grid-template-columns:36px minmax(100px,1fr) 82px;gap:9px}
.opening-ranking-board .food-ranking-head{padding:0 9px 11px;font-size:10.5px}
.opening-ranking-list{gap:6px}
.opening-ranking-list li{min-height:54px;padding:11px 9px;font-size:13px;line-height:1.35}
.opening-ranking-list li span{font-size:inherit}
.opening-ranking-own-summary{margin:0 0 18px;padding:14px 15px 15px;border:1px solid #f3c46455;border-radius:14px;background:linear-gradient(120deg,#f3c46413,#9e75c812 58%,#171021);box-shadow:inset 0 1px #ffffff0d}
.opening-ranking-own-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;color:#d9cbe1;font-size:11px;letter-spacing:.08em}.opening-ranking-own-heading strong{font-weight:600}.opening-ranking-own-heading span{color:var(--gold);font:700 13px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
.opening-ranking-own-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.opening-ranking-own-details>div{min-width:0;padding:2px 10px;border-right:1px solid #9e75c82d}.opening-ranking-own-details>div:first-child{padding-left:0}.opening-ranking-own-details>div:last-child{padding-right:0;border-right:0}.opening-ranking-own-details small{display:block;min-height:25px;color:#9f90aa;font:9px/1.35 system-ui,sans-serif}.opening-ranking-own-details strong{display:block;color:#eadff0;font:700 15px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.opening-ranking-own-details .is-total strong{color:var(--gold);font-size:18px}
.opening-ranking-actions{display:grid;grid-template-columns:1fr;gap:10px}
.opening-ranking-panel.from-result .opening-ranking-actions{grid-template-columns:minmax(100px,30%) minmax(0,1fr)}
.opening-ranking-secondary{min-height:52px;padding:10px 18px;border:1px solid #9e75c866;border-radius:15px;background:#0f0b18;color:var(--cream);font-size:15px;cursor:pointer}

@media (max-width:520px){.opening-ranking-topbar{min-height:40px;font-size:9px}.opening-ranking-banner{gap:10px;min-height:76px;padding-bottom:9px}.opening-ranking-award{width:48px;height:60px}.opening-ranking-banner p{font-size:10px}.opening-ranking-banner h2{font-size:26px}.opening-ranking-watermark{font-size:108px}.opening-ranking-tabs button{min-height:42px;padding:9px 1px 12px;font-size:12px}.opening-ranking-body{padding-top:18px}.opening-ranking-board .food-ranking-head,.opening-ranking-list li{grid-template-columns:30px minmax(0,1fr) 72px;gap:6px}.opening-ranking-board .food-ranking-head{padding:0 7px 11px;font-size:10.5px}.opening-ranking-list{gap:6px}.opening-ranking-list li{min-height:52px;padding:10px 7px;font-size:12.5px}.opening-ranking-list li:nth-child(-n+3) span:first-child{width:28px;height:28px}.opening-ranking-own-summary{padding:13px 12px 14px}.opening-ranking-own-details>div{padding:2px 7px}.opening-ranking-own-details small{font-size:8.5px}.opening-ranking-own-details strong{font-size:14px}.opening-ranking-own-details .is-total strong{font-size:17px}}
@media (orientation:portrait) and (max-width:430px){.result-won .result-modal{padding-left:18px;padding-right:18px}.result-won .result-summary{margin-top:24px}.result-won .result-stat{min-height:78px;padding:11px 7px}.result-won .food-ranking{margin-top:21px}}
.event-badge{display:inline-block;max-width:100%;margin:4px 0 4px 6px;padding:2px 7px;border:1px solid #bca1dd66;border-radius:6px;background:#78549d22;color:#bca1dd;font-size:10px;white-space:normal;overflow-wrap:anywhere}

/* Streamlined score hierarchy */
.game-panel{grid-template-rows:auto minmax(0,.68fr) minmax(0,1.08fr) minmax(0,1.8fr)}
.scoreboard{grid-template-rows:minmax(0,1fr);gap:0}
.scoreboard div{flex-direction:column;align-items:flex-start;justify-content:center;gap:7px}
.scoreboard strong{font-size:clamp(18px,1.85vw,26px);text-align:left}

.result-open:not(.result-won) .result-summary{grid-template-columns:repeat(2,minmax(0,1fr));width:min(68%,620px)}
.result-open:not(.result-won) .result-stat:first-child{border-left:0}

.result-won .result-modal:before{display:none}
.result-won .result-summary{display:block;width:auto;margin-top:clamp(24px,3.2vh,34px);overflow:visible;border:0;border-radius:0;background:none;box-shadow:none}
.result-won .result-mission{display:none}
.result-won .result-score{position:relative;display:block;min-height:0;padding:0 28px 18px;border:0;background:none;box-shadow:none;text-align:center}
.result-won .result-score:after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--purple),var(--gold),transparent);box-shadow:0 0 14px #f3c46455}
.result-won .result-score small{font-size:11px;letter-spacing:.24em}
.result-won .result-score strong{margin-top:11px;color:var(--gold);font-size:clamp(42px,12vw,62px);letter-spacing:.08em;text-shadow:0 0 24px #f3c46435}
.result-won .food-ranking{margin-top:clamp(24px,3.2vh,34px)}

.full-game.force-landscape .game-panel{grid-template-rows:auto minmax(38px,.62fr) minmax(0,1fr) minmax(0,1.9fr)}
.full-game.force-landscape .scoreboard{grid-template-rows:minmax(0,1fr)}
.full-game.force-landscape .scoreboard strong{font-size:20px}
@media (orientation:landscape) and (max-height:500px){.game-panel{grid-template-rows:auto minmax(38px,.62fr) minmax(0,1fr) minmax(0,1.9fr)}.scoreboard{grid-template-rows:minmax(0,1fr)}.scoreboard strong{font-size:20px}.result-open:not(.result-won) .result-summary{grid-template-columns:repeat(2,minmax(0,1fr));width:min(68%,620px)}}
@media (orientation:portrait) and (max-width:430px){.result-won .result-summary{margin-top:24px}.result-won .result-score{min-height:0;padding:0 22px 16px}.result-won .result-score strong{font-size:clamp(44px,13vw,58px)}.result-won .food-ranking{margin-top:24px}}

/* Keep the complete nickname action above mobile software keyboards. */
.result-won.nickname-keyboard-open .game-shell{top:var(--result-viewport-top,0);bottom:auto;height:var(--result-viewport-height,100dvh)}
.result-won.nickname-keyboard-open .result-modal{height:100%;justify-content:flex-start;padding:max(12px,env(safe-area-inset-top)) 18px max(12px,env(safe-area-inset-bottom));overflow-y:auto;scroll-padding:12px}
.result-won.nickname-keyboard-open .result-frame{justify-content:flex-start;width:min(100%,520px);margin:0 auto;padding:0}
.result-won.nickname-keyboard-open .result-main{display:none}
.result-won.nickname-keyboard-open .food-ranking{flex:none;width:100%;margin:0}
.result-won.nickname-keyboard-open .food-ranking-entry{padding:14px 15px 13px}
.result-won.nickname-keyboard-open .food-ranking-form input{height:52px}
.result-won.nickname-keyboard-open .food-ranking-submit{min-height:56px;margin-top:10px}
/* Activity results keep their next-game action, including the portrait victory screen. */
.gn-competition.result-won .result-actions{display:grid!important}
.gn-competition .food-ranking{display:none!important}
.gn-competition .result-actions.opportunities-used{grid-template-columns:1fr}
.gn-competition .result-actions.opportunities-used>.primary-action{grid-column:1}
.gn-competition .result-actions.opportunities-used>.result-secondary-actions{display:none}

/* Opening card now begins directly with the story. */
.rotate-story.story-only{display:block;grid-template-columns:none;width:min(84vw,650px)}
.rotate-story.story-only .story-copy{min-height:0;padding:clamp(22px,3vw,30px) clamp(30px,4vw,46px);font-size:clamp(17px,1.7vw,21px);line-height:1.62}
.rotate-story.story-only .story-copy:before{left:12px;top:2px}
@media (orientation:portrait) and (max-width:760px){.rotate-story.story-only{width:min(88vw,540px)}.rotate-story.story-only .story-copy{padding:22px 24px 24px 28px;font-size:17.5px;line-height:1.58}}
@media (orientation:landscape) and (max-height:500px){.rotate-story.story-only{width:min(66vw,650px)}.rotate-story.story-only .story-copy{padding:13px 28px 14px 32px;font-size:15.5px;line-height:1.42}}

/* Give the three rows on the failure result more breathing room. */
.result-open:not(.result-won) .result-summary{margin-top:clamp(24px,4vh,36px)}
.result-open:not(.result-won) .result-actions{margin-top:clamp(20px,3.6vh,32px)}
@media (orientation:landscape) and (max-height:500px){.result-open:not(.result-won) .result-summary{margin-top:18px}.result-open:not(.result-won) .result-actions{margin-top:16px}}
