:root{color-scheme:dark;--bg:#07080b;--ink:#f1e8d4;--muted:#a09379;--dim:#6f6553;--line:#3a2f20;--line-2:#56442a;--gold:#e3b75e;--gold-hi:#ffe6a1;--gold-lo:#8c6322;--precise:#58e0a2;--close:#f2d35c;--wide:#f39a4c;--far:#ec5a4f;--display:'Cinzel',Georgia,serif;--ui:'DM Sans',system-ui,sans-serif;--diamond:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M5 0 10 5 5 10 0 5z' fill='%23e3b75e'/%3E%3Cpath d='M5 2.5 7.5 5 5 7.5 2.5 5z' fill='%2307080b'/%3E%3C/svg%3E")}
*{box-sizing:border-box}html{background:var(--bg)}
body{margin:0;min-height:100vh;color:var(--ink);font:15px/1.5 var(--ui);background:radial-gradient(ellipse 70% 45% at 50% -8%,#3d2a12b0,transparent 70%),radial-gradient(ellipse 55% 45% at 100% 100%,#10203588,transparent 70%),radial-gradient(ellipse 45% 40% at 0% 85%,#2c130b77,transparent 70%),var(--bg);background-attachment:fixed;-webkit-font-smoothing:antialiased}
body:after{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,#000b 100%)}
body.modal-open{overflow:hidden}
button,input{font:inherit;color:inherit}button,a,input{outline-offset:4px}button{cursor:pointer;border:0;background:none}button:disabled{cursor:default}a{color:inherit;text-decoration:none}[hidden]{display:none!important}h1,h2,p{margin-top:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
#embers{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.shell{position:relative;z-index:1;max-width:1600px;margin:auto;padding:0 40px}

/* Header */
header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;height:78px}
header:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#e3b75e55 30%,#e3b75e55 70%,transparent)}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
.brand-crest{width:32px;height:34px;filter:drop-shadow(0 0 12px #e3b75e4d);transition:transform .3s}
.brand:hover .brand-crest{transform:rotate(-6deg) scale(1.06)}
.brand-text{font:700 17px/1 var(--display);letter-spacing:.08em;text-transform:uppercase}
.brand-text b{color:var(--gold);font-weight:900}
.brand-text small{display:block;font:600 9px/1 var(--ui);letter-spacing:.34em;color:var(--muted);margin-top:6px}
nav{display:flex;gap:4px}
nav a{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;color:var(--muted);font:600 13px/1 var(--ui);letter-spacing:.03em;border:1px solid transparent;transition:color .15s,background .15s,border-color .15s}
nav svg{width:17px;height:17px}
nav a:hover{color:var(--ink);background:#ffffff08}
nav a[aria-current]{color:var(--gold-hi);border-color:#e3b75e45;background:linear-gradient(180deg,#e3b75e22,#e3b75e08);box-shadow:inset 0 1px 0 #ffe6a120}

/* Stage: the play area sits at eye level, a little above the middle of the screen */
main{padding:0}
.leaderboard{padding-bottom:48px}
.stage{--play-w:min(100%,max(720px,calc((100vh - 330px) * 16 / 9 + 20px)));display:flex;flex-direction:column;justify-content:center;min-height:calc(100vh - 78px);min-height:calc(100svh - 78px);padding:1.5vh 0 5vh}
.stage>.hud,.stage>.play-layout{width:var(--play-w);margin-inline:auto}
.stage.home{--play-w:min(100%,1000px)}
.home-layout{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr);align-items:center;gap:28px;width:100%;max-width:1000px;align-self:center;padding:32px 0}
.intro{display:flex;flex-direction:column;align-items:center;width:100%;padding:32px;text-align:center;animation:summary-in .6s cubic-bezier(.2,1.25,.3,1) both}
.intro>.eyebrow{margin-bottom:20px}
.home-details{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin:8px 0 24px;color:var(--muted);font-size:14px}
#home-countdown{color:var(--gold-hi);font-variant-numeric:tabular-nums;white-space:nowrap}
.home-cadence{margin:22px 0 0;color:var(--ink);font-size:14px}
.home-demo{margin:8px 0 0;color:var(--muted);font-size:14px}
.home-board{padding:26px 24px 22px}
.home-board-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.home-board-head h2{margin:8px 0 0;font:700 20px/1.25 var(--display)}
.home-board-head>svg{width:28px;height:28px;color:var(--gold);flex-shrink:0}
.home-board-empty{margin:30px 0;color:var(--muted);font-size:14px;line-height:1.5}
#home-board-list{list-style:none;padding:0;margin:16px 0 10px}
#home-board-list li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}
#home-board-list li.board-me{background:#e3b75e0a}
.home-rank{color:var(--muted);font-variant-numeric:tabular-nums}
#home-board-list li:first-child .home-rank{color:var(--gold-hi)}
.home-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-score{color:var(--gold-hi);font-weight:700;font-variant-numeric:tabular-nums}
.home-board-all{display:inline-block;margin-top:16px;color:var(--gold);font-size:14px}
.home-board-all:hover{color:var(--gold-hi)}
.intro-crest{width:76px;height:80px;filter:drop-shadow(0 0 26px #e3b75e66);animation:float 4s ease-in-out infinite}
.intro-title{margin:18px 0 8px;font:900 30px/1 var(--display);letter-spacing:.08em;text-transform:uppercase}
.intro-title b{color:var(--gold)}
.intro form{display:flex;flex-direction:column;gap:12px;width:100%}
.intro input{width:100%;min-height:52px;padding:12px 16px;border-radius:4px;background:#0b0907;border:1px solid var(--line-2);text-align:center;font:700 18px/1 var(--display);letter-spacing:.06em;transition:border-color .15s,box-shadow .15s}
.intro input:focus{outline:0;border-color:#e3b75e99;box-shadow:0 0 0 3px #e3b75e1a}

/* HUD */
.hud{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 2px 12px}
.gems{display:flex;align-items:center;gap:11px;padding-left:3px}
.gem{--g:var(--gold);position:relative;display:block;width:14px;height:14px;transform:rotate(45deg);border-radius:2px;background:#0b0907;border:1px solid #54432a;box-shadow:inset 0 1px 3px #000;transition:background .3s,border-color .3s,box-shadow .3s}
.gem.current{border-color:var(--gold);animation:socket 1.8s ease-in-out infinite}
.gem.done{background:linear-gradient(135deg,color-mix(in srgb,var(--g) 35%,#fff) 0%,var(--g) 45%,color-mix(in srgb,var(--g) 50%,#000) 100%);border-color:color-mix(in srgb,var(--g) 55%,#000);box-shadow:0 0 10px color-mix(in srgb,var(--g) 55%,transparent),inset 0 0 0 1px #ffffff30}
.gem[data-outcome=precise]{--g:var(--precise)}.gem[data-outcome=close]{--g:var(--close)}.gem[data-outcome=wide]{--g:var(--wide)}.gem[data-outcome=far]{--g:var(--far)}
.gem.pop{animation:gem-pop .7s cubic-bezier(.2,1.6,.4,1) both}
.gems.large{gap:16px}.gems.large .gem{width:20px;height:20px}
.session{position:relative;display:flex;align-items:center;gap:9px}
.session strong{font:800 26px/1 var(--display);color:var(--gold-hi);text-shadow:0 0 18px #e3b75e55;font-variant-numeric:tabular-nums lining-nums;min-width:1ch}
.session.bump strong{animation:bump .22s ease-out}.session.bump .coin{animation:coin-spin .4s ease-out}
.coin{display:inline-block;flex-shrink:0;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff7cf 0 10%,#f4cb63 32%,#b9852c 72%,#77500f 100%);box-shadow:inset 0 0 0 1.5px #ffe6a160,inset 0 -2px 3px #0006,0 0 10px #e3b75e55}
.fly-coin{position:fixed;left:0;top:0;z-index:50;pointer-events:none;width:18px;height:18px}
.score-float{position:absolute;right:0;top:-14px;color:var(--gold-hi);font:800 13px/1 var(--display);opacity:0;pointer-events:none;white-space:nowrap}
.score-float.active{animation:score-float 1.3s ease-out both}

/* Frames */
.frame{position:relative;background:linear-gradient(180deg,#1b1712 0%,#110e0a 100%);border:1px solid var(--line-2);border-radius:6px;box-shadow:inset 0 1px 0 #ffe6a114,inset 0 0 0 1px #000,0 30px 60px -24px #000}
.frame:before{content:'';position:absolute;inset:5px;border:1px solid #e3b75e1e;border-radius:3px;pointer-events:none}
.frame:after{content:'';position:absolute;inset:-5px;pointer-events:none;background:var(--diamond) 0 0/10px no-repeat,var(--diamond) 100% 0/10px no-repeat,var(--diamond) 0 100%/10px no-repeat,var(--diamond) 100% 100%/10px no-repeat}

/* Video */
.play-layout{display:flex;flex-direction:column;gap:14px}
.watch{min-width:0;padding:9px 9px 4px;transition:box-shadow .5s}
.watch.revealed{box-shadow:inset 0 1px 0 #ffe6a114,inset 0 0 0 1px #000,0 30px 60px -24px #000,0 0 60px -18px var(--panel-glow,var(--gold))}
.watch[data-outcome=precise]{--panel-glow:var(--precise)}.watch[data-outcome=close]{--panel-glow:var(--close)}.watch[data-outcome=wide]{--panel-glow:var(--wide)}.watch[data-outcome=far]{--panel-glow:var(--far)}
.screen{position:relative;aspect-ratio:16/9;background:#030304;overflow:hidden;border-radius:3px;box-shadow:0 0 0 1px #000,0 0 0 2px #3a2f20}
video{display:block;width:100%;height:100%;object-fit:contain}
.race-tag{position:absolute;top:12px;left:12px;z-index:2;padding:6px 10px;border-radius:3px;background:#0b0907d0;border:1px solid #e3b75e40;font:700 11px/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-hi);transition:opacity .4s}
.race-tag:empty{display:none}.screen.playing .race-tag{opacity:.35}
.start-screen{position:absolute;inset:0;z-index:3;display:grid;place-items:center;align-content:center;gap:14px;background:radial-gradient(circle at center,#0000 0,#000b 75%),#0006}
.rune-button{position:relative;display:grid;place-items:center;width:118px;height:118px;border-radius:50%;padding:0}
.rune-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.ring-outer{fill:none;stroke:#e3b75e55;stroke-width:1.2}
.ring-dash{fill:none;stroke:var(--gold);stroke-width:2.5;stroke-dasharray:1.5 7.5;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:spin 22s linear infinite}
.rune-button:before{content:'';position:absolute;inset:21px;border-radius:50%;border:2px solid var(--gold);animation:pulse 2.2s ease-out infinite}
.rune-core{position:relative;display:grid;place-items:center;width:76px;height:76px;border-radius:50%;color:#2a1805;background:radial-gradient(circle at 35% 28%,#fff3c4,#ecbe60 45%,#a1701d 100%);box-shadow:0 0 0 4px #000a,0 0 0 5px #e3b75e90,0 0 44px #e3b75e70,inset 0 -5px 10px #0005;transition:transform .2s cubic-bezier(.2,1.5,.4,1)}
.rune-core svg{width:32px;height:32px;margin-left:5px}
.rune-button:hover:not(:disabled) .rune-core{transform:scale(1.07)}
.rune-button:active:not(:disabled) .rune-core{transform:scale(.96)}
.rune-button:disabled .rune-core{filter:grayscale(.7) brightness(.55)}
.rune-button:disabled:before{display:none}
.rune-button:disabled .ring-dash{animation-duration:2.5s}
.start-caption{font:700 12px/1 var(--display);letter-spacing:.34em;color:var(--gold-hi);text-shadow:0 1px 8px #000;padding-left:.34em}
.end-screen,.screen-error{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center;background:#000a;animation:fade-in .3s both}
.screen-error p{margin:0;max-width:340px;color:var(--ink);font-size:14px}
.error-icon{display:none;width:42px;height:42px;color:var(--gold);filter:drop-shadow(0 0 14px #e3b75e88)}
.screen-error.final .error-icon{display:block}
.screen.reveal-flash:after{content:'';position:absolute;inset:0;z-index:4;pointer-events:none;box-shadow:inset 0 0 0 3px var(--flash,var(--gold)),inset 0 0 90px var(--flash,var(--gold));animation:flash-out 1s ease-out both}
.video-controls{display:flex;align-items:center;gap:12px;padding:8px 4px 4px}
.speed{font:600 12px var(--ui);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:5px;padding:5px;cursor:pointer}
.timeline{cursor:pointer}.timeline:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.icon-button{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;padding:0;color:var(--ink);transition:color .15s,background .15s}
.icon-button svg{width:18px;height:18px}
.icon-button:hover:not(:disabled){color:var(--gold-hi);background:#ffffff0c}
.icon-button:disabled{opacity:.35}
.audio-button svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.timeline{position:relative;flex:1;height:6px;border-radius:3px;background:#0b0907;box-shadow:inset 0 1px 2px #000,0 0 0 1px #3a2f2099;overflow:hidden}
.timeline>div{width:0;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--gold-lo),var(--gold) 75%,var(--gold-hi));box-shadow:0 0 10px #e3b75e99}
#timer{font:600 12px/1 var(--ui);font-variant-numeric:tabular-nums;white-space:nowrap}#timer span{color:var(--dim)}

/* Buttons */
.gold{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 22px;border-radius:4px;border:1px solid #5a3d10;color:#2a1805;background:linear-gradient(180deg,#ffe9a8 0%,#efc263 45%,#c18a2d 100%);box-shadow:inset 0 1px 0 #fff9,inset 0 -3px 0 #0003,0 0 0 1px #000,0 10px 26px -8px #e3b75e88;font:800 14px/1 var(--display);letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 0 #fff6;transition:transform .12s,filter .15s,box-shadow .2s}
.gold:after{content:'';position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,#fffa,transparent);transform:skewX(-20deg);transition:left .55s}
.gold:hover:not(:disabled){filter:brightness(1.07);box-shadow:inset 0 1px 0 #fff9,inset 0 -3px 0 #0003,0 0 0 1px #000,0 12px 30px -6px #e3b75eaa}
.gold:hover:not(:disabled):after{left:130%}
.gold:active:not(:disabled){transform:translateY(1px) scale(.99)}
.gold:disabled{filter:grayscale(.9) brightness(.42);box-shadow:inset 0 1px 0 #fff4,0 0 0 1px #000}
.gold.is-loading:before{content:'';width:13px;height:13px;border:2px solid #2a180544;border-top-color:#2a1805;border-radius:50%;animation:spin .7s linear infinite}
.big{width:100%;min-height:54px;font-size:15px}
.secondary{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:12px 20px;border-radius:4px;background:#0f0c09d9;border:1px solid var(--line-2);color:var(--ink);font:700 12px/1 var(--display);letter-spacing:.16em;text-transform:uppercase;transition:border-color .15s,color .15s,box-shadow .15s}
.secondary:hover{border-color:var(--gold);color:var(--gold-hi);box-shadow:0 0 16px #e3b75e2a}
.secondary svg{width:16px;height:16px}
.text-button,.text-link{color:var(--gold);font-size:13px;text-decoration:underline;text-underline-offset:4px;padding:0}
.text-link{font:700 11px/1 var(--display);letter-spacing:.18em;text-transform:uppercase;text-decoration:none;color:var(--muted)}.text-link:hover{color:var(--gold-hi)}

/* Guess panel */
.guess-panel{padding:14px 20px;container:guess/inline-size}
#guess-form{position:relative;display:flex;align-items:center;gap:20px}
.guess-panel.locked #guess-form>:not(#submit){opacity:.55;transition:opacity .3s}
.crest-stage{display:flex;align-items:center;gap:12px;min-width:172px}
.crest-stage .crest{width:54px;height:54px}
.crest{--c:#d6a032;--hi:#ffe9a0;--lo:#6a4510;display:block;width:96px;height:96px;filter:drop-shadow(0 8px 12px #000d) drop-shadow(0 0 20px color-mix(in srgb,var(--c) 45%,transparent))}
.crest svg{display:block;width:100%;height:100%;overflow:visible}
.crest .emboss{fill:#0000004d;stroke:#ffffff45;stroke-width:1}
.crest.shift{animation:crest-shift .5s cubic-bezier(.2,1.6,.4,1)}
.crest.shift .glint{animation:glint .7s ease-out}
.crest[data-tier="8"]{animation:legend-glow 2.4s ease-in-out infinite}
.tier-name,#actual-tier{font:800 12px/1 var(--display);letter-spacing:.32em;text-transform:uppercase;padding-left:.32em;transition:color .3s}
.mmr-input{display:flex;align-items:center;justify-content:center;gap:8px;margin:0}
.mmr-input input{width:3.3em;padding:2px 0 4px;background:transparent;border:0;border-bottom:1px solid transparent;outline:0;text-align:center;font:800 42px/1 var(--display);font-variant-numeric:tabular-nums lining-nums;color:var(--ink);text-shadow:0 2px 24px #e3b75e38;appearance:textfield;-moz-appearance:textfield;transition:border-color .15s}
.mmr-input input:focus{border-bottom-color:#e3b75e77}
.mmr-input input::-webkit-inner-spin-button,.mmr-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.step{display:grid;place-items:center;flex-shrink:0;width:36px;height:36px;border-radius:50%;background:#0b0907;border:1px solid var(--line-2);color:var(--gold);font:500 22px/1 var(--ui);user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:border-color .15s,box-shadow .15s,transform .1s}
.step:hover{border-color:var(--gold);box-shadow:0 0 14px #e3b75e33}.step:active{transform:scale(.9)}
#slider{--glow:var(--gold);-webkit-appearance:none;appearance:none;display:block;flex:1 1 180px;min-width:140px;height:30px;margin:0;background:transparent;cursor:pointer}
#slider:disabled,.step:disabled{cursor:default}
#slider::-webkit-slider-runnable-track{height:8px;border-radius:4px;background:var(--bands,#2a2218);box-shadow:inset 0 1px 3px #000c,0 0 0 1px #000a}
#slider::-moz-range-track{height:8px;border-radius:4px;background:var(--bands,#2a2218);box-shadow:inset 0 1px 3px #000c,0 0 0 1px #000a}
#slider::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-8px;border-radius:50%;border:2px solid #2a1805;background:radial-gradient(circle at 35% 30%,#fff6d0,#f0c565 42%,#9c6c1e 100%);box-shadow:0 0 0 2px var(--gold),0 0 18px var(--glow),0 3px 6px #000c;transition:transform .12s,box-shadow .3s}
#slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;border:2px solid #2a1805;background:radial-gradient(circle at 35% 30%,#fff6d0,#f0c565 42%,#9c6c1e 100%);box-shadow:0 0 0 2px var(--gold),0 0 18px var(--glow),0 3px 6px #000c}
#slider:active::-webkit-slider-thumb{transform:scale(1.18)}
#slider:focus-visible{outline-offset:2px}
.bonus{position:relative;flex:0 1 240px;margin:0}
#submit{flex:0 0 auto;width:auto;min-width:180px;white-space:nowrap}
.bonus input{width:100%;min-height:46px;padding:12px 14px;border-radius:4px;background:#0b0907;border:1px solid var(--line);font-size:14px;transition:border-color .15s,box-shadow .15s}
.bonus input{padding-right:66px}
.bonus input:focus{outline:0;border-color:#e3b75e88;box-shadow:0 0 0 3px #e3b75e1a}
input::placeholder{color:var(--dim)}
.bonus-badge{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:6px 7px 5px;border-radius:3px;background:linear-gradient(180deg,#ffe6a1,#d4a043);color:#2a1805;font:800 11px/1 var(--display);letter-spacing:.06em;pointer-events:none}
.scoring-note{margin:12px 0 0;color:var(--wide);font-size:12px;line-height:1.5;text-align:center}
#guess-form .scoring-note{position:absolute;right:0;top:100%;margin:6px 0 0}

/* Result */
#result{--rc:var(--close);position:absolute;z-index:6;left:9px;right:9px;top:9px;aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 24px;overflow:auto;border-radius:3px;text-align:center;background:radial-gradient(ellipse at center,#0b0907f0 0%,#0b0907d6 50%,#000000b8 100%);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .3s both;transition:opacity .3s}
#result.peek{opacity:0;pointer-events:none}
#result>.compare,#result>.rating-comparison{width:min(500px,100%)}
#result[data-outcome=precise]{--rc:var(--precise)}#result[data-outcome=wide]{--rc:var(--wide)}#result[data-outcome=far]{--rc:var(--far)}
.verdict{margin:0 0 14px;font:900 34px/1 var(--display);letter-spacing:.16em;padding-left:.16em;text-transform:uppercase;color:var(--rc);text-shadow:0 0 26px color-mix(in srgb,var(--rc) 55%,transparent)}
.verdict:focus{outline:0}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:100%}
.side{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px;border-radius:5px;background:#0b0907;border:1px solid var(--line)}
.actual-side{border-color:#e3b75e66;background:linear-gradient(180deg,#e3b75e14,#0b0907 70%);box-shadow:0 0 22px -8px #e3b75e66}
.guess-side{border-color:color-mix(in srgb,var(--rc) 45%,transparent)}
.side-label{display:flex;align-items:center;gap:6px;font:800 10px/1 var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.actual-side .side-label{color:var(--gold-hi)}
.key{display:inline-block;width:9px;height:9px;flex-shrink:0}
.key-guess{border-radius:50%;border:2px solid var(--rc)}
.key-actual{transform:rotate(45deg);background:var(--gold);box-shadow:0 0 6px var(--gold)}
.side .crest{width:64px;height:64px;margin-top:2px}
.side strong{font:800 40px/1 var(--display);font-variant-numeric:tabular-nums lining-nums}
.guess-side strong{color:color-mix(in srgb,var(--ink) 80%,var(--rc))}
.actual-side strong{color:var(--gold-hi);text-shadow:0 0 18px #e3b75e55}
.side-tier{font:800 10px/1 var(--display);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap}
#result.rolling .actual-side strong{opacity:.75}
#result.landed .actual-side strong{animation:land .5s cubic-bezier(.2,1.5,.4,1)}
#result.landed .actual-side .crest{animation:crest-shift .55s cubic-bezier(.2,1.6,.4,1)}
.rating-comparison{width:100%;margin:18px 0 0}
.rating-track{position:relative;height:8px;margin:0 6px;border-radius:4px;background:var(--bands,#2a2218);box-shadow:inset 0 1px 3px #000c,0 0 0 1px #000a}
.rating-gap{position:absolute;top:-1px;bottom:-1px;border-radius:4px;background:var(--rc);opacity:.6;box-shadow:0 0 12px var(--rc)}
.rating-pin{position:absolute;top:50%;transform:translate(-50%,-50%)}
.guess-pin{z-index:1;width:16px;height:16px;border-radius:50%;border:3px solid var(--rc);background:#0b0907}
.actual-pin{z-index:2;width:14px;height:14px;transform:translate(-50%,-50%) rotate(45deg);background:linear-gradient(135deg,#fff3c4,var(--gold) 50%,var(--gold-lo));border:1px solid #2a1805;box-shadow:0 0 14px var(--gold)}
.delta{margin:14px 0 0;color:var(--rc);font-size:14px;font-weight:600}
.delta b{font:800 22px/1 var(--display);margin-right:2px}
.result-player{display:flex;align-items:center;justify-content:center;gap:8px;max-width:100%;margin:10px 0 0;font-size:14px}
.result-player strong{overflow-wrap:anywhere}
.result-player>span{color:var(--muted);font-size:12px;white-space:nowrap}
#source{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:50%;color:var(--muted);transition:color .15s,background .15s}
#source:hover{color:var(--gold-hi);background:#ffffff0c}#source svg{width:14px;height:14px}
.result-foot{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:14px}
.result-foot #next{width:auto;min-width:240px}
.earned{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin:0}
.earned .coin{width:26px;height:26px}
.earned strong{font:800 40px/1 var(--display);color:var(--gold-hi);text-shadow:0 0 26px #e3b75e70;font-variant-numeric:tabular-nums lining-nums}
.earned .pts{align-self:flex-end;margin:0 0 4px -4px;color:var(--muted);font:700 11px/1 var(--display);letter-spacing:.16em;text-transform:uppercase}
#name-result{flex-basis:100%;margin-top:-4px;font-size:12px;font-weight:600;color:var(--far)}#name-result.correct{color:var(--precise)}
#result .verdict,#result .delta,#result .result-player,#result .earned,#result #next{opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s}
#result.landed .delta,#result.landed .result-player,#result.landed #next{opacity:1;transform:none}
#result.landed .verdict{opacity:1;transform:none;animation:slam .55s cubic-bezier(.2,1.4,.4,1)}
#result.scored .earned{opacity:1;transform:none}

/* Sections */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:26px 0 22px}
.section-head h1{margin:8px 0 0;font:800 36px/1 var(--display);letter-spacing:.05em}
.eyebrow{font:700 11px/1 var(--display);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.empty-state{margin:0;padding:22px 0;color:var(--muted);font-size:14px}
.list-frame{padding:6px 24px}
.board-rule{color:var(--muted);font-size:12px;margin-bottom:3px}
.leaderboard{max-width:860px;margin:0 auto}
.board-table-wrap{min-width:0;padding:6px 24px}
table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}
th{padding:16px 10px;border-bottom:1px solid var(--line);color:var(--muted);font:700 10px/1 var(--display);letter-spacing:.18em;text-transform:uppercase}
td{padding:16px 10px;border-bottom:1px solid #3a2f2077;font-variant-numeric:tabular-nums}
tbody tr{animation:row-in .4s both}tbody tr:last-child td{border-bottom:0}
th:first-child,td:first-child{width:48px;padding-left:4px}th:last-child,td:last-child{padding-right:4px}
.board-rank{color:var(--muted);font:700 14px/1 var(--display)}
.medal{--m:var(--gold);display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#24170a;font:900 13px/1 var(--display);background:radial-gradient(circle at 35% 30%,#fff 0,var(--m) 45%,color-mix(in srgb,var(--m) 45%,#000) 100%);box-shadow:0 0 0 2px #000,0 0 14px color-mix(in srgb,var(--m) 55%,transparent)}
.medal.m2{--m:#c9d3de}.medal.m3{--m:#d48a52}
.board-name{max-width:260px;font-weight:600;overflow-wrap:anywhere}
.board-error{text-align:right;color:var(--muted);font-size:12px}
.board-score{text-align:right}td.board-score{font:800 24px/1 var(--display);color:var(--gold-hi)}
.board-top td.board-name{color:var(--ink)}
.board-me td{background:#e3b75e14}.board-me td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.text-button{margin-bottom:18px}

/* Summary */
.overlay{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;overflow:auto;background:radial-gradient(circle at 50% 42%,#2d1f0ccc,#000000ee 70%);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:fade-in .35s both}
.summary-rays{position:fixed;left:50%;top:42%;width:900px;height:900px;margin:-450px 0 0 -450px;pointer-events:none;background:repeating-conic-gradient(from 0deg,#e3b75e12 0 7deg,transparent 7deg 20deg);-webkit-mask:radial-gradient(circle,#000 0 18%,transparent 60%);mask:radial-gradient(circle,#000 0 18%,transparent 60%);animation:spin 60s linear infinite}
.summary{display:flex;flex-direction:column;align-items:center;width:min(430px,100%);padding:34px 28px 24px;text-align:center;animation:summary-in .6s cubic-bezier(.2,1.25,.3,1) both}
.summary .close{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:50%;color:var(--muted);font-size:24px;line-height:1}
.summary .close:hover{color:var(--ink);background:#ffffff0c}
.summary-trophy{width:64px;height:64px;margin:4px 0 14px;color:var(--gold-hi);filter:drop-shadow(0 0 22px #e3b75ecc);animation:float 4s ease-in-out infinite}
.summary h2{margin:8px 0 18px;font:900 26px/1.1 var(--display);letter-spacing:.08em;text-transform:uppercase}
.summary-score{display:flex;align-items:center;gap:12px;margin:22px 0 6px}
.summary-score .coin{width:30px;height:30px}
.summary-score strong{font:900 56px/1 var(--display);color:var(--gold-hi);text-shadow:0 0 34px #e3b75e88;font-variant-numeric:tabular-nums lining-nums}
.summary-stats{display:grid;grid-template-columns:repeat(3,1fr);width:100%;margin:20px 0 18px;padding:14px 0;border-block:1px solid var(--line)}
.summary-stats div{display:flex;flex-direction:column;align-items:center;gap:7px}
.summary-stats div+div{border-left:1px solid #3a2f2088}
.summary-stats strong{font:800 21px/1 var(--display);font-variant-numeric:tabular-nums lining-nums}
.summary-stats span{color:var(--muted);font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.summary-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;width:100%;margin-bottom:18px}
.summary-actions>:only-child{grid-column:1/-1}
.summary .scoring-note{margin:-6px 0 12px}
.toast{position:fixed;left:50%;bottom:28px;z-index:60;padding:11px 18px;border-radius:999px;background:#1a1510;border:1px solid var(--gold);color:var(--gold-hi);font:800 11px/1 var(--display);letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translate(-50%,16px);transition:opacity .25s,transform .25s;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulse{from{transform:scale(1);opacity:.75}to{transform:scale(1.55);opacity:0}}
@keyframes socket{50%{box-shadow:0 0 0 4px #e3b75e14,0 0 16px #e3b75eaa}}
@keyframes gem-pop{0%{transform:rotate(45deg) scale(.2)}55%{transform:rotate(45deg) scale(1.6)}100%{transform:rotate(45deg) scale(1)}}
@keyframes bump{50%{transform:scale(1.14)}}
@keyframes coin-spin{to{transform:rotateY(360deg)}}
@keyframes score-float{0%{opacity:0;transform:translateY(6px)}20%,70%{opacity:1}100%{opacity:0;transform:translateY(-18px)}}
@keyframes crest-shift{0%{transform:scale(.86)}55%{transform:scale(1.1)}100%{transform:scale(1)}}
@keyframes glint{0%{opacity:.6;transform:translateX(0)}100%{opacity:0;transform:translateX(200px)}}
@keyframes legend-glow{50%{filter:drop-shadow(0 8px 12px #000d) drop-shadow(0 0 30px #ff7a3acc)}}
@keyframes slam{0%{opacity:0;transform:scale(1.9);filter:blur(6px)}55%{opacity:1;transform:scale(.94);filter:blur(0)}100%{transform:scale(1)}}
@keyframes land{0%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes float{50%{transform:translateY(-5px)}}
@keyframes flash-out{from{opacity:.8}to{opacity:0}}
@keyframes fade-in{from{opacity:0}}
@keyframes row-in{from{opacity:0;transform:translateY(6px)}}
@keyframes summary-in{0%{opacity:0;transform:translateY(24px) scale(.94)}100%{opacity:1;transform:none}}

@media(min-width:1400px) and (min-height:950px){#result>.compare,#result>.rating-comparison{width:min(620px,100%)}.verdict{font-size:44px;margin-bottom:20px}.side .crest{width:84px;height:84px}.side strong{font-size:54px}.side-label{font-size:11px}.side-tier{font-size:11px}.delta{font-size:16px}.delta b{font-size:28px}.earned strong{font-size:48px}.result-foot{margin-top:18px;gap:18px}.result-foot #next{min-width:280px;min-height:58px;font-size:16px}}
@media(min-width:781px) and (max-height:920px){.stage{--play-w:min(100%,max(640px,calc((100vh - 390px) * 16 / 9 + 20px)))}}
@media(min-width:781px) and (max-height:860px){.stage{padding:0 0 1.5vh}.hud{padding:6px 2px 8px}#result{padding:10px 20px}.verdict{font-size:24px;margin-bottom:8px}.side{padding:7px 8px;gap:5px}.side .crest{width:40px;height:40px}.side strong{font-size:28px}.earned .coin{width:22px;height:22px}.rating-comparison{margin-top:9px}.delta{margin-top:6px}.result-player{margin-top:4px}.result-foot{margin-top:8px;gap:10px}.result-foot #next{min-height:44px}.earned strong{font-size:30px}}
@container guess (max-width:1000px){#guess-form{display:grid;grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"crest mmr slider" "name name submit";gap:12px 18px}.crest-stage{grid-area:crest;min-width:0}.mmr-input{grid-area:mmr}#slider{grid-area:slider;min-width:0}.bonus{grid-area:name}#submit{grid-area:submit;min-width:0;padding-inline:12px;letter-spacing:.12em}}
@media(max-width:1100px){.shell{padding:0 24px}}
@media(max-width:1020px){.side strong{font-size:32px}.side .crest{width:52px;height:52px}.verdict{font-size:28px}}
@media(max-width:780px){
  .shell{padding:0 14px}header{height:64px}.brand-text{font-size:15px}.brand-text small{font-size:8px}
  nav a{padding:9px 11px}nav a span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .hud{position:sticky;top:0;z-index:20;margin:0 -14px;padding:12px 16px 14px;background:linear-gradient(180deg,#07080b 70%,#07080b00)}
  .stage{--play-w:100%}
  .play-layout{gap:18px}
  .watch{padding:6px 6px 2px}
  .guess-panel{order:2;padding:22px 18px 20px}.guess-panel.locked{display:none}
  #guess-form{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .crest-stage{justify-content:center;gap:14px;min-width:0}.crest-stage .crest{width:64px;height:64px}
  .mmr-input{margin:12px 0 6px}.mmr-input input{font-size:48px}
  #slider{flex:none;width:100%}.bonus{flex:none;margin:16px 0}#submit{width:100%}
  #guess-form .scoring-note{position:static}
  #result{position:static;aspect-ratio:auto;padding:20px 4px 10px;overflow:visible;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;animation:none}
  #result.peek{opacity:1;pointer-events:auto}
  .side strong{font-size:30px}
  .result-foot{flex-direction:column;gap:16px;width:100%}.result-foot #next{width:100%}
  .rune-button{width:96px;height:96px}.rune-button:before{inset:16px}.rune-core{width:62px;height:62px}.rune-core svg{width:26px;height:26px}
  .section-head h1{font-size:30px}

  .stage{display:block;min-height:0;padding:0}.home-layout{grid-template-columns:1fr;gap:20px;max-width:520px;margin:auto;padding:24px 0 40px}.intro{grid-row:1;padding:28px 22px}.home-board{grid-row:2}.intro-title{font-size:28px}nav a span{position:static;width:auto;height:auto;overflow:visible;clip:auto}nav a{gap:6px;padding:9px;font-size:12px}nav svg{display:none}
  .board-table-wrap{padding:4px 14px}td{padding:14px 6px}th{padding:14px 6px}.board-name{max-width:170px}
}
@media(max-width:480px){.board-error{display:none}.summary{padding:30px 18px 20px}.summary-score strong{font-size:48px}.verdict{font-size:26px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.screen.reveal-flash:after,.score-float.active,.summary-rays{display:none}}
