:root{--red:#d7263d;--brand-red:#e4252b;--brand-gold:#ffc52e;--brand-ink:#1b1530;--brand-cream:#fff6e0;--accent:var(--brand-red);--accent-dark:#b81d22;--red-dark:#a91b2e;--ink:var(--brand-ink);--muted:#5f5873;--bg:#ffe9a8;--card:#fff;--line:#1b15302e;--radius:22px;--shadow:0 10px 34px #1b153029;--panel:var(--brand-cream);--outline:3px solid var(--brand-ink);--outline-thin:2px solid var(--brand-ink);--drop:4px 5px 0 var(--brand-ink);--drop-small:0 3px 0 var(--brand-ink);--glass-dark:var(--brand-ink);--glass-dark-edge:var(--brand-gold);--glass-dark-shine:0 3px 0 #00000073}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0}body{color:var(--ink);background:var(--sky-base);min-height:100vh;font-family:Chiron GoRound TC,system-ui,-apple-system,Segoe UI,Roboto,PingFang HK,Microsoft JhengHei,Arial,sans-serif;line-height:1.5}:root{--sky-base:#c9b8ec;--sky:linear-gradient(180deg, #9fb4ec 0%, #c3b6ee 40%, #eec4dc 72%, #ffd9b8 100%);--skyline:url(/static/assets/hk-skyline-dusk-DMPClAFp.svg)}:root[data-hk-time=dawn]{--sky-base:#d4bfe0;--sky:linear-gradient(180deg, #8fa6d8 0%, #c4b4e2 40%, #f4c4cc 72%, #ffd6a8 100%);--skyline:url(/static/assets/hk-skyline-dawn-v4JECAe8.svg)}:root[data-hk-time=day]{--sky-base:#9fcbf6;--sky:linear-gradient(180deg, #4f97ec 0%, #86bff5 45%, #c3e2fb 78%, #e9f5ff 100%);--skyline:url(/static/assets/hk-skyline-day-CbXwzxS5.svg)}:root[data-hk-time=night]{--sky-base:#1b1f4c;--sky:radial-gradient(1.2px 1.2px at 23px 41px, #fff 50%, transparent 100%) 0 0 / 173px 151px, radial-gradient(1px 1px at 97px 113px, #fffc 50%, transparent 100%) 0 0 / 211px 187px, radial-gradient(1.6px 1.6px at 141px 19px, #ffffffe6 50%, transparent 100%) 0 0 / 263px 229px, radial-gradient(1px 1px at 61px 167px, #fff9 50%, transparent 100%) 0 0 / 137px 199px, linear-gradient(180deg, #0a0f2e 0%, #171c4a 45%, #2e2a63 78%, #4a3a72 100%);--skyline:url(/static/assets/hk-skyline-night-BC64lJl6.svg)}body:before,body:after{content:"";z-index:-1;pointer-events:none;position:fixed;bottom:0;left:0;right:0}body:before{background:var(--sky);top:0}body:after{background:var(--skyline) center bottom / cover no-repeat;height:max(300px,37.5vw)}body.game-page:before,body.game-page:after{display:none}a{color:var(--accent-dark)}h1,h2{letter-spacing:-.01em;margin:0 0 .5rem;line-height:1.2}h1{font-weight:800}.muted{color:var(--muted)}.small{font-size:.875rem}code{background:#fff;border-radius:4px;padding:0 4px}.card,.site-header,.result-card,.home-maps>.card-heading{background:var(--panel);border:var(--outline);box-shadow:var(--drop);position:relative}.site-header{z-index:20;width:calc(100% - 24px);max-width:1200px;color:var(--ink);border-radius:999px;justify-content:space-between;align-items:center;gap:1rem;margin:12px auto 0;padding:.55rem .75rem .55rem 1.25rem;display:flex;position:sticky;top:12px}.brand{align-items:center;text-decoration:none;display:flex}.brand img{width:auto;height:46px;margin:-6px 0;display:block}@media (width<=640px){.brand img{height:38px;margin:-4px 0}}.site-header nav{align-items:center;gap:.35rem;display:flex}.link-button{color:var(--ink);opacity:.8;cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.link-button:hover{opacity:1;text-decoration:underline}.flashes{max-width:420px;margin:1rem auto 0;padding:0 1rem}.flash{border:var(--outline-thin);background:#ffe9a8;border-radius:14px;padding:.6rem 1rem}.flash-error{color:var(--red-dark);background:#ffd9da}.card{border-radius:var(--radius);padding:1.5rem}.btn,.text-button,:is(main,.friends-panel,.site-footer) a:not(.btn,.player-link,.map-card-link,.hud-home,.game-ad,.chat-name,.brand,.gm-style *){border:var(--outline-thin);color:var(--ink);box-shadow:var(--drop-small);font:inherit;text-align:center;cursor:pointer;background:#fff;border-radius:999px;padding:.65rem 1.3rem;font-weight:700;text-decoration:none;transition:transform .12s,box-shadow .12s,background-color .12s;display:inline-block}.text-button,:is(main,.friends-panel,.site-footer) a:not(.btn,.player-link,.map-card-link,.hud-home,.game-ad,.chat-name,.brand,.gm-style *){vertical-align:middle;align-items:center;gap:.3rem;margin:.1rem 0;padding:.12rem .7rem;font-size:.9em;line-height:1.4;display:inline-flex}.btn:hover,.text-button:hover:not(:disabled),:is(main,.friends-panel,.site-footer) a:not(.btn,.player-link,.map-card-link,.hud-home,.game-ad,.chat-name,.brand,.gm-style *):hover{background-color:var(--bg);box-shadow:0 4px 0 var(--brand-ink);transform:translateY(-1px)}.btn:active,.text-button:active,:is(main,.friends-panel,.site-footer) a:not(.btn,.player-link,.map-card-link,.hud-home,.game-ad,.chat-name,.brand,.gm-style *):active{box-shadow:0 0 0 var(--brand-ink);transform:translateY(3px)}.btn:focus-visible,.text-button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--brand-gold)}.btn-primary:hover{background-color:#ffd257}.btn:disabled,.btn:disabled:hover,.text-button:disabled{color:#7a7488;box-shadow:none;cursor:not-allowed;background:#e4ded2;transform:none}label{margin-bottom:1rem;font-size:.9rem;font-weight:600;display:block}input{border:var(--outline-thin);width:100%;font:inherit;color:var(--ink);background:#fff;border-radius:14px;margin-top:.3rem;padding:.6rem .85rem;display:block}input[type=range]{box-shadow:none;background:0 0;border:none}input:focus,.map-form textarea:focus,.chat-form textarea:focus{box-shadow:0 0 0 3px var(--brand-gold);outline:none}.auth-page{justify-content:center;padding:3rem 1rem;display:flex}.auth-card{width:100%;max-width:380px}.auth-card .btn{width:100%;margin-bottom:.5rem}.field-hint{color:var(--muted);margin-top:.3rem;font-size:.8rem;font-weight:400;display:block}.forgot-link{text-align:right;margin:-.5rem 0 1rem}.code-input{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.4rem}.google-sign-in{margin:.5rem 0 1rem}.google-sign-in .flash{margin-top:.75rem}.google-button{justify-content:center;min-height:44px;display:flex}.divider{color:var(--muted);align-items:center;gap:.75rem;margin:.5rem 0 1rem;font-size:.85rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}.home-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:1.5rem;max-width:1200px;margin:2rem auto;padding:0 1rem;display:grid}.home{gap:1.5rem;min-width:0;display:grid}@media (width<=960px){.home-layout{grid-template-columns:minmax(0,1fr);max-width:820px}}.hero{text-align:center;padding:2.75rem 1.5rem 2.25rem}.hero h1{font-size:clamp(1.6rem,4vw,2.2rem)}.btn-play{border-radius:999px;margin:1rem 0 .5rem;padding:.85rem 3.75rem;font-size:1.4rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;display:grid}.stat{border:var(--outline-thin);box-shadow:var(--drop-small);background:#fff;border-radius:16px;flex-direction:column;gap:.2rem;padding:1rem;display:flex}.stat-value{font-size:1.6rem;font-weight:700}.stat-label{color:var(--muted);font-size:.875rem}.table{border-collapse:collapse;width:100%}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:.5rem}.table th{color:var(--muted);font-size:.85rem;font-weight:600}.table .num{text-align:right;font-variant-numeric:tabular-nums}.game-page{--ad-h:0px;background:#000;overflow:hidden}.game-page.game-ad-wide{--ad-h:90px}.game-page.game-ad-narrow{--ad-h:50px}.pano{inset:0 0 var(--ad-h) 0;position:fixed}.game-ad{z-index:11;height:var(--ad-h);background:#11141c;justify-content:center;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden}.ad-placeholder{text-align:center;color:#ffffffbf;border:1px dashed #ffffff59;border-radius:4px;place-content:center;font-size:.8rem;font-weight:600;display:grid}.ad-placeholder span{opacity:.7;font-weight:400}.pano-view{width:100%;height:100%}.hud{z-index:5;background:var(--glass-dark);color:#fff;border:2px solid var(--glass-dark-edge);box-shadow:var(--glass-dark-shine);white-space:nowrap;border-radius:999px;align-items:center;gap:1.25rem;padding:.45rem 1.1rem;display:flex;position:fixed;top:12px;left:16px}.hud-home{color:#fff;align-items:center;gap:.45rem;font-weight:700;text-decoration:none;display:inline-flex}.hud-home img{width:auto;height:22px;display:block}.hud-item{font-variant-numeric:tabular-nums;align-items:baseline;gap:.4rem;font-weight:700;display:flex}.hud-label{text-transform:uppercase;letter-spacing:.06em;opacity:.7;font-size:.7rem;font-weight:600}.compass-bar{z-index:5;background:var(--glass-dark);color:#fff;border:2px solid var(--glass-dark-edge);width:min(480px,100vw - 32px);height:40px;box-shadow:var(--glass-dark-shine);pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:999px;position:fixed;top:12px;left:50%;overflow:hidden;transform:translate(-50%)}.cb-ticks{position:absolute;inset:0 20px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 15% 85%,#0000);mask-image:linear-gradient(90deg,#0000,#000 15% 85%,#0000)}.cb-tick{flex-direction:column;align-items:center;display:flex;position:absolute;top:0;bottom:0;transform:translate(-50%)}.cb-mark{background:#fff6;width:1px;height:6px}.cb-label{font-weight:700;line-height:1}.cb-cardinal .cb-mark{background:#fff;width:2px;height:8px}.cb-cardinal .cb-label{margin-top:5px;font-size:1rem}.cb-intercardinal .cb-mark{background:#ffffffb3;height:7px}.cb-intercardinal .cb-label{opacity:.7;margin-top:7px;font-size:.75rem}.cb-north .cb-label{color:#ff5a6e}.cb-pointer{border:6px solid #0000;border-bottom-color:#f6b93b;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.compass-rose{left:16px;bottom:calc(34px + var(--ad-h));z-index:5;cursor:pointer;filter:drop-shadow(0 4px 10px #00000059);background:0 0;border:none;border-radius:50%;width:84px;height:84px;padding:0;position:fixed}.compass-rose svg{width:100%;height:100%;display:block}.compass-rose:focus-visible{outline-offset:2px;outline:2px solid #f6b93b}.cr-face{fill:#1214289e;stroke:#ffffffd9;stroke-width:2px}.cr-tick{stroke:#ffffff73;stroke-width:1.5px;stroke-linecap:round}.cr-letter{fill:#fff;text-anchor:middle;dominant-baseline:central;font-size:14px;font-weight:700}.cr-north{fill:#ff5a6e}.cr-needle-n{fill:var(--red)}.cr-needle-s{fill:#ffffffbf}.cr-hub{fill:#fff}.cr-pointer{fill:#f6b93b}.menu-button{left:38px;bottom:calc(130px + var(--ad-h));z-index:5;cursor:pointer;background:var(--glass-dark);color:#fff;border:2px solid var(--glass-dark-edge);width:40px;height:40px;box-shadow:var(--glass-dark-shine);border-radius:50%;place-items:center;padding:0;display:grid;position:fixed}.menu-button:hover{color:#f6b93b}.menu-button:focus-visible{outline-offset:2px;outline:2px solid #f6b93b}.menu-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.pause-overlay{z-index:12;background:#0a0c1499}.pause-card{text-align:center;width:min(400px,100%);max-height:calc(100vh - 2rem - var(--ad-h));gap:.75rem;display:grid;overflow-y:auto}.pause-map{font-weight:700}.pause-card .sound-controls{text-align:left;width:100%}.pause-card .sound-row{justify-content:center}.pause-card .sound-row-label{display:none}.pause-card .segmented button{padding:.3rem .65rem;font-size:.8rem}.pause-card h2{margin-bottom:.25rem}.pause-card .btn{width:100%}.pause-card .key-hint{border-color:#ffffff8c}.pause-card p{margin:0}.guess-panel{right:20px;bottom:calc(24px + var(--ad-h));z-index:5;opacity:.85;flex-direction:column;gap:8px;width:260px;transition:width .2s,opacity .2s;display:flex;position:fixed}.guess-panel[data-size="0"]{--open-w:min(380px, calc(100vw - 40px));--open-h:max(170px, min(260px, calc(100vh - 170px - var(--ad-h))))}.guess-panel[data-size="1"]{--open-w:min(480px, calc(100vw - 40px));--open-h:max(170px, min(330px, calc(100vh - 170px - var(--ad-h))))}.guess-panel[data-size="2"]{--open-w:min(600px, calc(100vw - 40px));--open-h:max(170px, min(420px, calc(100vh - 170px - var(--ad-h))))}.guess-panel[data-size="3"]{--open-w:min(760px, calc(100vw - 40px));--open-h:max(170px, min(520px, calc(100vh - 170px - var(--ad-h))))}.guess-panel[data-size="4"]{--open-w:min(960px, calc(100vw - 40px));--open-h:max(170px, min(640px, calc(100vh - 170px - var(--ad-h))))}.guess-panel[data-size="5"]{--open-w:min(1200px, calc(100vw - 40px));--open-h:max(170px, min(800px, calc(100vh - 170px - var(--ad-h))))}.guess-panel[data-size="6"]{--open-w:calc(100vw - 40px);--open-h:max(230px, calc(100vh - 170px - var(--ad-h)))}.guess-panel:hover,.guess-panel.pinned{width:var(--open-w);opacity:1}.guess-map-wrap{position:relative}.guess-map{border-radius:var(--radius);border:2px solid #ffffffbf;height:170px;transition:height .2s,filter .2s;overflow:hidden;box-shadow:0 0 0 1px #0000001f,0 10px 30px #00000059}@media (hover:hover){.guess-panel:not(:hover):not(.pinned) .guess-map{filter:grayscale()brightness(.9)}}.guess-panel:hover .guess-map,.guess-panel.pinned .guess-map{height:var(--open-h)}.guess-panel .btn{border-radius:999px;width:100%;padding:.75rem;font-size:1rem}.key-hint{font:inherit;vertical-align:.1em;opacity:.85;border:1px solid #ffffff8c;border-radius:5px;margin-left:.4rem;padding:.05rem .4rem;font-size:.7rem;font-weight:600}@media (hover:none){.key-hint{display:none}}.map-size-buttons{z-index:1;opacity:0;pointer-events:none;gap:6px;transition:opacity .15s;display:flex;position:absolute;bottom:28px;right:10px}.guess-panel:hover .map-size-buttons,.guess-panel.pinned .map-size-buttons{opacity:1;pointer-events:auto}.map-size-buttons button{cursor:pointer;background:var(--glass-dark);color:#fff;border:2px solid var(--glass-dark-edge);width:30px;height:30px;box-shadow:var(--glass-dark-shine);border-radius:10px;place-items:center;padding:0;display:grid}.map-size-buttons button:hover:not(:disabled){color:#f6b93b;background:#121428b3}.map-size-buttons button:disabled{opacity:.35;cursor:default}.map-size-buttons button:focus-visible{outline-offset:1px;outline:2px solid #f6b93b}.map-size-buttons svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.overlay{inset:0 0 var(--ad-h) 0;z-index:10;background:#0a0c14b3;flex-direction:column;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed}.overlay-light{color:#fff;background:#0a0c1473}.overlay.keep-layout[hidden]{visibility:hidden;pointer-events:none;display:flex!important}.result-card{width:min(900px,100%);max-height:calc(100vh - 2rem - var(--ad-h));border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.result-map{flex-shrink:0;height:50vh;min-height:260px}.result-body{text-align:center;padding:1.25rem 1.5rem 1.5rem;overflow-y:auto}.result-body h2{font-size:2rem}.result-body p{margin:.4rem 0}.result-body .table{margin:1rem 0}.final-card .result-map{height:45vh}.score-bar{background:#1d24331a;border-radius:999px;max-width:420px;height:10px;margin:.5rem auto 1rem;overflow:hidden}.score-bar>div{background:linear-gradient(90deg, var(--brand-gold), var(--brand-red));width:0;height:100%;transition:width .8s}.button-row{justify-content:center;gap:.75rem;display:flex}.next-btn{min-width:200px;margin-top:.75rem}.spinner{border:4px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:44px;height:44px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1200px){.hud{top:60px;left:50%;transform:translate(-50%)}}@media (width<=600px){.guess-panel,.guess-panel:hover,.guess-panel.pinned{width:calc(100vw - 40px)}.guess-map{height:180px}.guess-panel[data-size="0"]{--open-h:min(25vh, calc(100vh - 170px - var(--ad-h)))}.guess-panel[data-size="1"]{--open-h:min(32vh, calc(100vh - 170px - var(--ad-h)))}.guess-panel[data-size="2"]{--open-h:min(40vh, calc(100vh - 170px - var(--ad-h)))}.guess-panel[data-size="3"]{--open-h:min(48vh, calc(100vh - 170px - var(--ad-h)))}.guess-panel[data-size="4"]{--open-h:min(56vh, calc(100vh - 170px - var(--ad-h)))}.guess-panel[data-size="5"]{--open-h:min(64vh, calc(100vh - 170px - var(--ad-h)))}.guess-panel[data-size="6"]{--open-h:calc(100vh - 170px - var(--ad-h))}.hud{gap:.75rem;font-size:.9rem}.hud-brand{display:none}.compass-rose{width:64px;height:64px;bottom:calc(272px + var(--ad-h))}.menu-button{left:28px;bottom:calc(346px + var(--ad-h))}}.legend{justify-content:center;align-items:center;gap:.4rem;display:flex}.legend-avatar{border:2px solid var(--brand-ink);background:var(--brand-red);margin-left:.6rem}.guess-avatar{width:38px;height:38px;position:relative;transform:translateY(50%)}.guess-avatar-face{z-index:1;border:3px solid var(--brand-ink);object-fit:cover;box-sizing:border-box;background:var(--brand-red);color:#fff;-webkit-user-select:none;user-select:none;width:38px;height:38px;box-shadow:2px 3px 0 var(--brand-ink);border-radius:50%;place-items:center;font-size:16px;font-weight:800;display:grid;position:relative}.guess-avatar-round{z-index:2;border:2px solid var(--brand-ink);background:var(--brand-gold);min-width:18px;height:18px;color:var(--brand-ink);text-align:center;box-sizing:border-box;border-radius:999px;padding:0 4px;font-size:11px;font-weight:800;line-height:14px;position:absolute;top:-5px;right:-7px}.guess-pin{width:38px;height:44px;position:relative}.guess-pin img,.guess-pin svg{-webkit-user-select:none;user-select:none;width:38px;height:44px;display:block;transform:translateY(6%)}.guess-pin text{fill:var(--brand-ink);font-family:inherit;font-size:56px;font-weight:800}.legend-flag{width:16px;height:18px;margin-left:.6rem;display:inline-flex}.legend-flag svg{width:100%;height:100%}.auth-card .flash{margin-bottom:1rem}.hero .flash{margin-top:1rem}.error-card{color:var(--ink);text-align:center;max-width:420px}.site-header nav a{color:var(--ink);opacity:.8;border:2px solid #0000;border-radius:999px;padding:.3rem .85rem;font-weight:700;text-decoration:none;transition:background-color .15s,opacity .15s}.site-header nav a:hover{opacity:1;background:var(--bg)}.site-header nav a.active{opacity:1;color:var(--ink);background:var(--brand-gold);border-color:var(--brand-ink);box-shadow:var(--drop-small)}.site-header nav .username{border-left:1px solid var(--line);padding-left:1rem}@media (width<=640px){.site-header{border-radius:22px;flex-wrap:wrap;gap:.35rem;padding:.6rem .85rem;position:relative;top:auto}.site-header nav .account-button{border-left:none;margin-left:0;padding-left:.6rem}.site-header nav{flex-wrap:wrap;gap:.15rem;font-size:.9rem}.site-header nav a{padding:.3rem .6rem}}.page{gap:1.5rem;max-width:820px;margin:2rem auto;padding:0 1rem;display:grid}.card-heading{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.btn-small{padding:.35rem .8rem;font-size:.875rem}.load-more{justify-content:center;margin-top:1rem;display:flex}.inline-error{color:var(--red-dark);font-size:.85rem}.count{border:1.5px solid var(--brand-ink);min-width:1.5em;color:var(--ink);text-align:center;vertical-align:middle;background:#fff;border-radius:999px;padding:0 .45em;font-size:.8rem;display:inline-block}.games-table td{vertical-align:middle}.profile-head{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.profile-name{flex:1;min-width:0}.profile-name h1{margin:0}.profile-maps{align-items:center}.profile-maps h2,.profile-maps p{margin:0}.avatar{background:var(--ink);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:64px;height:64px;font-size:1.6rem;font-weight:700;display:grid}.avatar-large{width:64px;height:64px}.avatar-small{width:32px;height:32px;font-size:.9rem}.avatar-tiny{width:22px;height:22px;font-size:.7rem}img.avatar{object-fit:cover;background:var(--line)}.avatar-with-status{flex-shrink:0;display:inline-flex;position:relative}.avatar-with-status .presence{box-sizing:content-box;border:2px solid #fff;position:absolute;bottom:-1px;right:-1px}.site-header nav .username{align-items:center;gap:.45rem;display:inline-flex}.site-header nav .username .avatar{background:linear-gradient(160deg, #f0474c, var(--accent-dark))}.author-link{vertical-align:middle;align-items:center;gap:.3rem;font-weight:600;display:inline-flex}.avatar-editor{margin-top:.5rem}.avatar-row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.avatar-row .avatar-editor{margin-top:0}.modal-backdrop{z-index:50;background:#0a0c1499;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.crop-dialog{gap:.75rem;width:min(440px,100%);display:grid}.crop-dialog h2,.crop-dialog p{margin:0}.crop-area{background:#111;border-radius:14px;height:min(340px,60vh);position:relative;overflow:hidden}.zoom-label{align-items:center;gap:.75rem;margin:0;display:flex}.zoom-label input{accent-color:var(--accent);flex:1;margin:0;padding:0}.friend-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.player-list{margin:0;padding:0;list-style:none}.player-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 0;display:flex}.player-list li:last-child{border-bottom:none}.player-link{color:var(--ink);align-items:center;gap:.6rem;font-weight:600;text-decoration:none;display:inline-flex}.player-link:hover{color:var(--accent-dark)}.search-label{margin:1rem 0 .5rem}.summary-card{padding:0;overflow:hidden}.summary-map-wrap{position:relative}.summary-map{background:#e5e3df;height:42vh;min-height:260px}.game-summary{gap:.5rem;padding:.9rem 1.1rem 1rem;display:grid}.game-summary .summary-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem 1rem;display:flex}.game-summary .summary-head p{text-align:left;margin:0}.game-summary .summary-head .legend{margin:0}.game-summary .summary-score{align-items:center;gap:1rem;display:flex}.result-body.game-summary .summary-score h2{white-space:nowrap;margin:0;font-size:1.7rem}.game-summary .score-bar{flex:1;max-width:none;height:10px;margin:0}.game-summary .rounds-strip{gap:.4rem;margin:0}.game-summary .round-cell{border-radius:12px;gap:0;padding:.35rem .2rem}.game-summary .round-cell-score{font-size:1rem}.game-summary .round-cell-detail{font-size:.72rem}.game-summary .rounds-filter-hint{margin:0}.game-summary .button-row{margin-top:.15rem}.game-summary .button-row .btn{padding:.45rem 1.1rem;font-size:.9rem}@media (width<=600px){.result-body.game-summary .summary-score h2{font-size:1.4rem}.game-summary .summary-score{gap:.6rem}}.summary-map-error{color:var(--muted);text-align:center;place-items:center;margin:0;padding:1rem;display:grid;position:absolute;inset:0}.friends-panel{padding:1.25rem;position:sticky;top:5.5rem}.friends-panel.chat-open{flex-direction:column;height:min(640px,100vh - 6.5rem);padding:0;display:flex;overflow:hidden}.friends-panel h2{font-size:1.1rem}.panel-section+.panel-section{border-top:1px solid var(--line);margin-top:1.25rem;padding-top:1.25rem}.panel-list{margin:0 0 .5rem;padding:0;list-style:none}.panel-request{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem 0;display:flex}.panel-friend{box-sizing:content-box;width:100%;font:inherit;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:.6rem;margin:0 -.6rem;padding:.5rem .6rem;font-weight:600;display:flex}.panel-friend:hover{background:var(--bg)}.panel-friend:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.panel-friend-name{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.panel-find{font-weight:600}.presence{background:#b9bcc6;border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.presence.online{background:#2e9d5b;box-shadow:0 0 0 3px #2e9d5b2e}.badge{background:var(--red);color:#fff;text-align:center;border:1.5px solid var(--brand-ink);border-radius:999px;min-width:1.4em;padding:0 .4em;font-size:.75rem;font-weight:700;line-height:1.4em;display:inline-block}.nav-badge{vertical-align:.1em;margin-left:.35rem}.btn .badge{margin-left:.3rem}.chat{flex-direction:column;flex:1;min-height:0;display:flex}.chat-head{border-bottom:1px solid var(--line);align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex}.chat-back{width:28px;height:28px;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0;font-size:1.5rem;line-height:1}.chat-back:hover{background:var(--bg)}.chat-name{min-width:0;color:var(--ink);text-overflow:ellipsis;flex:1;font-weight:700;text-decoration:none;overflow:hidden}.chat-name:hover{color:var(--accent-dark)}.chat-messages{background:#fffaf0;flex-direction:column;flex:1;gap:.5rem;min-height:0;padding:1rem;display:flex;overflow-y:auto}.chat-messages .load-more{margin:0 0 .5rem}.chat-empty{text-align:center;margin:auto}.chat-message{flex-direction:column;align-items:flex-start;max-width:85%;display:flex}.chat-message.mine{align-self:flex-end;align-items:flex-end}.chat-bubble{border:var(--outline-thin);white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border-radius:14px 14px 14px 4px;padding:.45rem .75rem}.chat-message.mine .chat-bubble{color:#fff;background:var(--brand-red);border-radius:14px 14px 4px}.chat-time{color:var(--muted);margin-top:.15rem;font-size:.7rem}.chat-error{padding:.4rem 1rem 0}.chat-form{border-top:1px solid var(--line);align-items:flex-end;gap:.5rem;padding:.75rem 1rem;display:flex}.chat-form textarea{resize:none;border:var(--outline-thin);min-width:0;font:inherit;background:#fff;border-radius:14px;flex:1;padding:.5rem .75rem}@media (width<=960px){.friends-panel{position:relative;top:auto}.friends-panel.chat-open{height:min(560px,75vh)}}.site-footer{text-align:center;justify-items:center;gap:.6rem;padding:1.5rem 1rem 2rem;font-size:.85rem;display:grid}.footer-credit{margin:0;font-weight:600}.footer-socials{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.social-icon{display:inline-flex}.social-icon svg{width:18px;height:18px}.prose h2{margin-top:1.5rem;font-size:1.15rem}.prose ul{padding-left:1.25rem}.prose li{margin-bottom:.4rem}.map-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;display:grid}.map-card{flex-direction:column;gap:.35rem;padding:1.25rem;transition:transform .18s,box-shadow .18s;display:flex}.map-card:hover{box-shadow:6px 8px 0 var(--brand-ink);transform:translate(-1px,-2px)}.map-card-title{overflow-wrap:anywhere;margin:0;font-size:1.1rem}.map-card-byline{color:var(--muted);margin:0;font-size:.85rem}.map-card-desc{overflow-wrap:anywhere;white-space:pre-line;margin:.25rem 0;font-size:.9rem}.map-card-stats{margin:auto 0 0;padding-top:.25rem}.map-card-actions{gap:.5rem;margin-top:.5rem;display:flex}.official-badge{background:var(--accent);color:#fff;border:1.5px solid var(--brand-ink);border-radius:999px;padding:0 .5em;font-size:.75rem;font-weight:700;display:inline-block}.center{text-align:center}.map-form textarea{border:var(--outline-thin);width:100%;font:inherit;resize:vertical;background:#fff;border-radius:14px;margin-top:.3rem;padding:.6rem .75rem;display:block}.map-form input[type=file]{padding:.5rem}.map-form .field-hint code{white-space:nowrap;margin:.3rem 0;padding:.3rem .5rem;display:block;overflow-x:auto}.button-row.left{flex-wrap:wrap;justify-content:flex-start}.btn-danger{color:var(--red-dark);border-color:#f2c4ca}.btn-danger:hover{background-color:#fde2e4d9}.account-menu{position:relative}.account-button{border:none;border-left:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;opacity:.85;background:0 0;align-items:center;gap:.45rem;margin-left:.5rem;padding:.25rem .25rem .25rem 1rem;font-weight:600;display:inline-flex}.account-button:hover,.account-button[aria-expanded=true]{opacity:1}.account-button .avatar{background:linear-gradient(160deg, #f0474c, var(--accent-dark))}.account-button .caret{opacity:.7;font-size:.7rem}.account-dropdown{z-index:30;background:var(--panel);border:var(--outline);min-width:170px;box-shadow:var(--drop);border-radius:18px;padding:.4rem;display:grid;position:absolute;top:calc(100% + 8px);right:0}.account-dropdown:before{content:"";height:10px;position:absolute;top:-10px;left:0;right:0}.account-dropdown a,.account-dropdown button{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;padding:.5rem .75rem;font-weight:600;text-decoration:none;display:block;color:var(--ink)!important;opacity:1!important;box-shadow:none!important}.account-dropdown .logout-button{border:var(--outline-thin);text-align:center;background:#fff;border-radius:999px;width:calc(100% - .5rem);margin:.6rem .25rem .3rem;padding:.45rem .75rem;font-weight:800;position:relative;color:var(--red-dark)!important;box-shadow:var(--drop-small)!important}.account-dropdown .logout-button:before{content:"";border-top:1px solid var(--line);position:absolute;top:calc(-.35rem - 2px);left:-.25rem;right:-.25rem}.account-dropdown .logout-button:hover,.account-dropdown .logout-button:focus-visible{background:#ffd9da;transform:translateY(-1px);box-shadow:0 4px 0 var(--brand-ink)!important}.account-dropdown .logout-button:active{transform:translateY(3px);box-shadow:none!important}.account-dropdown a:hover,.account-dropdown button:hover,.account-dropdown a:focus-visible,.account-dropdown button:focus-visible{background:var(--bg);outline:none}.settings-section h2{margin-bottom:.25rem}.language-switch{flex-wrap:wrap;gap:.5rem;display:inline-flex}.pause-settings{border-top:1px solid var(--line);justify-items:center;gap:.5rem;margin-top:.5rem;padding-top:.75rem;display:grid}.pause-settings-label{color:var(--muted);font-size:.85rem;font-weight:600}.pause-card .language-switch .btn{width:auto}.map-card-title a{color:inherit;text-decoration:none}.map-card-link:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.map-card .author-link,.map-card-actions{z-index:2;position:relative}.map-card:hover .map-card-title a{color:var(--accent-dark)}.map-card-link:focus-visible{outline:none}.map-card:has(.map-card-link:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.map-page-head{gap:.5rem;display:grid}.map-page-head h1{overflow-wrap:anywhere;margin:0}.map-page-head .map-card-desc{margin:.25rem 0 .5rem}.map-stats{grid-template-columns:repeat(3,minmax(0,1fr));margin:.5rem 0}.like-button.liked{color:var(--red);border-color:#f2c4ca}.leaderboard td{vertical-align:middle}.leaderboard .rank{width:2.5rem;font-weight:700}.leaderboard .top-1 .rank{color:#c99a06}.leaderboard .top-2 .rank{color:#8a94a6}.leaderboard .top-3 .rank{color:#b0703a}@media (width<=600px){.hide-narrow{display:none}.map-stats{gap:.5rem}.map-stats .stat{padding:.6rem}}.hero .btn-play{margin-bottom:.25rem}.home-maps{gap:.75rem;display:grid}.home-maps .card-heading,.home-maps h2{margin:0}.home-maps-links{align-items:center;gap:1rem;display:flex}.home-maps .load-more{margin-top:.25rem}.map-card.official{background:#ffe9a8}.home-maps>.card-heading{border-radius:999px;align-items:center;padding:.7rem .85rem .7rem 1.25rem}.target-flag{width:44px;height:48px;position:relative}.target-flag svg{width:44px;height:48px;display:block}.target-flag text{fill:var(--brand-ink);font-family:inherit;font-size:11px;font-weight:800}.rounds-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:grid}.round-cell{border:var(--outline-thin);text-align:center;background:#fff;border-radius:14px;flex-direction:column;align-items:center;gap:.15rem;padding:.6rem .25rem;display:flex}button.round-cell{width:100%;height:100%;font:inherit;color:inherit;cursor:pointer;box-shadow:var(--drop-small);transition:transform .12s,box-shadow .12s,opacity .12s}button.round-cell:hover{background:var(--bg);box-shadow:0 4px 0 var(--brand-ink);transform:translateY(-1px)}button.round-cell:active{box-shadow:none;transform:translateY(3px)}button.round-cell:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button.round-cell.selected{background:var(--brand-gold)}.rounds-strip.filtering button.round-cell:not(.selected){opacity:.5}.rounds-strip>li{display:flex}.rounds-strip .round-cell{box-sizing:border-box;width:100%}.rounds-filter-hint{text-align:center;margin:-.5rem 0 .75rem}.round-cell-title{color:var(--muted);font-size:.75rem;font-weight:600}.round-cell-score{font-size:1.1rem;font-weight:700}.round-cell-detail{color:var(--muted);white-space:nowrap;font-size:.8rem}.narrow-only{display:none}@media (width<=560px){.rounds-strip{gap:.25rem}.round-cell{padding:.45rem 0}.round-cell-score{font-size:.9rem}.round-cell-detail{letter-spacing:-.02em;font-size:.7rem}.round-cell .wide-only{display:none}.round-cell .narrow-only{display:inline}}.start-dialog{gap:1rem;width:min(460px,100%);display:grid}.start-dialog h2,.start-dialog p{margin:0}.option-group{border:none;gap:.5rem;margin:0;padding:0;display:grid}.option-group legend{margin-bottom:.5rem;padding:0;font-size:.9rem;font-weight:700}.mode-options{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.mode-option{cursor:pointer;border:var(--outline-thin);background:#fff;border-radius:16px;gap:.2rem;padding:.75rem .85rem;display:grid}.mode-option.selected,.time-option.selected{background:var(--brand-gold);box-shadow:var(--drop-small)}.mode-option input,.time-option input{opacity:0;pointer-events:none;position:absolute}:is(.mode-option:has(input:focus-visible),.time-option:has(input:focus-visible)){outline:2px solid var(--accent);outline-offset:2px}.mode-name{font-weight:700}.mode-desc{color:var(--muted);font-size:.8rem}.time-options{flex-wrap:wrap;gap:.4rem;display:flex}.time-slider{margin:0}.time-slider-head{justify-content:space-between;align-items:baseline;gap:1rem;font-size:.9rem;font-weight:700;display:flex}.time-slider-head strong{font-size:1.25rem;font-weight:800}.time-slider-ends{justify-content:space-between;margin-top:.55rem;font-weight:600;display:flex}.time-slider input[type=range]{appearance:none;border:var(--outline-thin);cursor:pointer;background:#fff;border-radius:999px;width:100%;height:14px;margin:.6rem 0 .2rem;padding:0;display:block}.time-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;border:var(--outline-thin);background:var(--brand-gold);width:26px;height:26px;box-shadow:0 2px 0 var(--brand-ink);border-radius:50%}.time-slider input[type=range]::-moz-range-thumb{border:var(--outline-thin);background:var(--brand-gold);width:22px;height:22px;box-shadow:0 2px 0 var(--brand-ink);border-radius:50%}.time-slider input[type=range]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.time-option{cursor:pointer;border:var(--outline-thin);background:#fff;border-radius:999px;padding:.35rem .8rem;font-size:.9rem;position:relative}.start-dialog .button-row{justify-content:flex-end;margin:0}@media (width<=420px){.mode-options{grid-template-columns:1fr}}.pano{isolation:isolate}.pano-blocker{z-index:1;position:absolute;inset:0}.hud-mode{letter-spacing:.04em;background:#ffffff2e;border-radius:999px;padding:.05rem .45rem;font-size:.7rem;font-weight:700}.target-flag.clickable{cursor:pointer;transform-origin:50% 100%;transition:transform .12s}.target-flag.clickable:hover{transform:scale(1.12)}.board-tabs{border:var(--outline-thin);background:#fff;border-radius:999px;gap:3px;padding:3px;display:inline-flex}.board-tab{cursor:pointer;font:inherit;color:var(--muted);background:0 0;border:none;border-radius:999px;padding:.3rem .9rem;font-size:.85rem;font-weight:600}.board-tab.selected{background:var(--brand-gold);color:var(--brand-ink);box-shadow:inset 0 0 0 2px var(--brand-ink)}.board-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mobile-guess-bar,.map-close{display:none}@media (hover:none){.guess-panel:not(.open){visibility:hidden;pointer-events:none}.mobile-guess-bar:not([hidden]){right:16px;bottom:calc(20px + var(--ad-h));z-index:5;gap:8px;display:flex;position:fixed}.mobile-guess-bar .btn{border-radius:999px;padding:.7rem 1.2rem}.map-open,.map-open:hover{background:var(--glass-dark);color:#fff;border:2px solid var(--glass-dark-edge);box-shadow:var(--glass-dark-shine)}.map-close{z-index:1;background:var(--glass-dark);color:#fff;border:2px solid var(--glass-dark-edge);width:34px;height:34px;box-shadow:var(--glass-dark-shine);border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:10px}.map-close svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;width:16px;height:16px}}@media (hover:none) and (width<=600px){.compass-rose{bottom:calc(24px + var(--ad-h))}.menu-button{bottom:calc(100px + var(--ad-h))}}.hud-map-name{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:220px;display:inline-block;overflow:hidden}.solo-clock{z-index:6;position:fixed;top:60px;left:50%;transform:translate(-50%)}@media (width<=1200px){.solo-clock{top:108px}}body.hud-compact .hud{top:60px;left:50%;transform:translate(-50%)}body.hud-compact .hud-brand{display:none}body.hud-compact .solo-clock{top:108px}@media (width<=600px){.hud .hud-map{display:none}}.guess-panel.away{visibility:hidden;pointer-events:none}.duel-home{z-index:6;background:var(--glass-dark);border:2px solid var(--glass-dark-edge);width:44px;height:44px;box-shadow:var(--glass-dark-shine);border-radius:50%;place-items:center;display:grid;position:fixed;top:16px;left:16px}.duel-hud{z-index:11;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:.6rem;width:min(820px,100vw - 140px);display:grid;position:fixed;top:60px;left:50%;transform:translate(-50%)}.duel-player{background:var(--glass-dark);color:#fff;border:2px solid var(--glass-dark-edge);min-width:0;box-shadow:var(--glass-dark-shine);border-radius:20px;align-items:center;gap:.65rem;padding:.5rem .8rem;display:flex}.duel-player.mirrored{flex-direction:row-reverse}.duel-player .duel-avatar{border:2px solid var(--brand-gold);flex-shrink:0;width:42px;height:42px;font-size:1.1rem}.duel-player.you .duel-avatar{border-color:#fff}.duel-player-main{flex:1;gap:.3rem;min-width:0;display:grid}.duel-player-name{align-items:center;gap:.4rem;min-width:0;font-weight:800;display:flex}.duel-player.mirrored .duel-player-name{flex-direction:row-reverse}.duel-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.duel-status{color:var(--brand-ink);white-space:nowrap;background:#3ccf6e;border-radius:999px;padding:.05rem .45rem;font-size:.68rem;font-weight:800}.mult-chip{font-variant-numeric:tabular-nums;color:inherit;background:#ffffff29;border-radius:999px;flex-shrink:0;padding:.05rem .45rem;font-size:.75rem;font-weight:800}.mult-chip.hot{background:var(--brand-gold);color:var(--brand-ink);box-shadow:inset 0 0 0 2px var(--brand-ink)}.hp{align-items:center;gap:.35rem;display:flex;position:relative}.hp.mirrored{flex-direction:row-reverse}.hp-heart{width:20px;height:20px;fill:var(--brand-red);stroke:var(--brand-ink);stroke-width:2px;flex-shrink:0}.hp[data-level=low] .hp-heart{animation:.8s ease-in-out infinite heartbeat}.hp-track{border:2px solid var(--brand-ink);background:#1b15308c;border-radius:999px;flex:1;height:20px;position:relative;overflow:hidden}.hp-fill,.hp-ghost{position:absolute;top:0;bottom:0;left:0}.hp.mirrored :is(.hp-fill,.hp-ghost){left:auto;right:0}.hp-ghost{background:#fff6e0bf;transition:width .6s}.hp-fill{background:linear-gradient(#6fe08f 0%,#2fb862 55%,#23984f 100%);transition:width .45s cubic-bezier(.3,.7,.4,1);box-shadow:inset 0 3px #ffffff4d}.hp[data-level=mid] .hp-fill{background:linear-gradient(180deg, #ffe07a 0%, var(--brand-gold) 55%, #e0a400 100%)}.hp[data-level=low] .hp-fill{background:linear-gradient(180deg, #ff7a80 0%, var(--brand-red) 55%, #b81d22 100%)}.hp-value{font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 1px 0 var(--brand-ink), 1px 0 0 var(--brand-ink), -1px 0 0 var(--brand-ink), 0 -1px 0 var(--brand-ink);place-items:center;font-size:.78rem;font-weight:900;display:grid;position:absolute;inset:0}.hp-hit{pointer-events:none;color:#ff4d5a;text-shadow:0 2px 0 var(--brand-ink);font-size:1.15rem;font-weight:900;animation:1.6s ease-out forwards damage-float;position:absolute;top:-4px;right:12%}.hp.mirrored .hp-hit{left:12%;right:auto}@keyframes damage-float{0%{opacity:0;transform:translateY(6px)scale(.7)}15%{opacity:1;transform:translateY(-6px)scale(1.15)}to{opacity:0;transform:translateY(-34px)scale(1)}}@keyframes heartbeat{50%{transform:scale(1.18)}}.round-clock{background:var(--glass-dark);color:#fff;border:2px solid var(--glass-dark-edge);min-width:5.5rem;box-shadow:var(--glass-dark-shine);border-radius:18px;justify-items:center;padding:.45rem .9rem;display:grid}.round-clock-time{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:900;line-height:1.1}.round-clock.urgent .round-clock-time{color:#ff6b7d;animation:1s ease-in-out infinite pulse}.round-clock.urgent{animation:1s ease-in-out infinite clock-flash}@keyframes clock-flash{50%{box-shadow:var(--glass-dark-shine), 0 0 0 3px #ff3b4e73, 0 0 18px #ff3b4eb3;border-color:#ff3b4e}}.time-warning{inset:0 0 var(--ad-h) 0;z-index:4;pointer-events:none;animation:1s ease-in-out infinite time-warning;position:fixed;box-shadow:inset 0 0 90px 24px #ff283c8c}.time-warning.critical{animation-duration:.5s;box-shadow:inset 0 0 120px 36px #ff1e32b3}@keyframes time-warning{0%,to{opacity:.25}50%{opacity:1}}@keyframes pulse{50%{transform:scale(1.08)}}.duel-banner{z-index:6;white-space:nowrap;background:var(--panel);color:var(--ink);border:var(--outline);box-shadow:var(--drop-small);border-radius:999px;padding:.5rem 1.2rem;font-weight:800;position:fixed;top:150px;left:50%;transform:translate(-50%)}.duel-banner.urgent{background:var(--brand-red);color:#fff;animation:1s ease-in-out infinite banner-pulse}@keyframes banner-pulse{50%{transform:translate(-50%)scale(1.05)}}.duel-page .overlay{padding-top:140px}.duel-page .result-card{max-height:calc(100vh - 140px - 1rem - var(--ad-h))}.duel-page .outcome-splash,.duel-page .pause-overlay{padding-top:1rem}.duel-intro{text-align:center;width:min(480px,100%);color:var(--ink);gap:.75rem;display:grid}.duel-intro p{margin:0}.duel-intro-title,.outcome-title{--o:var(--brand-ink);letter-spacing:.04em;text-shadow:-2px -2px 0 var(--o), 0 -2px 0 var(--o), 2px -2px 0 var(--o), 2px 0 0 var(--o), 2px 2px 0 var(--o), 0 2px 0 var(--o), -2px 2px 0 var(--o), -2px 0 0 var(--o), 4px 5px 0 var(--o);font-weight:900;line-height:1.1}.duel-intro-title{color:var(--brand-red);font-size:3rem;animation:.5s cubic-bezier(.2,1.6,.4,1) .15s both slam-in}.duel-intro-found{color:var(--brand-ink);background:var(--brand-gold);border:var(--outline-thin);box-shadow:var(--drop-small);border-radius:999px;justify-self:center;padding:.2rem .9rem;font-size:.95rem;font-weight:900;animation:.5s cubic-bezier(.2,1.6,.4,1) both found-drop}@keyframes found-drop{0%{opacity:0;transform:translateY(-24px)scale(.6)}}.duel-versus-player.from-left{animation:.55s cubic-bezier(.2,1.3,.4,1) .35s both rush-left}.duel-versus-player.from-right{animation:.55s cubic-bezier(.2,1.3,.4,1) .35s both rush-right}@keyframes rush-left{0%{opacity:0;transform:translate(-160px)rotate(-12deg)}}@keyframes rush-right{0%{opacity:0;transform:translate(160px)rotate(12deg)}}.duel-vs{animation:.45s cubic-bezier(.2,1.8,.4,1) .85s both vs-slam}@keyframes vs-slam{0%{opacity:0;transform:scale(3)rotate(-20deg)}}.countdown{justify-items:center;gap:.4rem;margin-top:.5rem;display:grid}.countdown-text{margin:0;font-size:1.15rem;font-weight:800}.countdown-number{min-width:1.4ch;color:var(--brand-red);font-variant-numeric:tabular-nums;font-size:1.6em;font-weight:900;animation:.45s cubic-bezier(.2,1.8,.4,1) tick-pop;display:inline-block}@keyframes tick-pop{0%{opacity:.3;transform:scale(1.9)}to{opacity:1;transform:scale(1)}}.countdown-bar{border:var(--outline-thin);background:#fff;border-radius:999px;width:min(260px,80%);height:10px;overflow:hidden}.countdown-bar>div{transform-origin:0;background:linear-gradient(90deg, var(--brand-gold), var(--brand-red));height:100%;transition:transform .25s linear}.duel-resume{flex-direction:column;gap:.25rem}.duel-resume-note{color:var(--accent-dark);align-items:center;gap:.4rem;font-size:.85rem;font-weight:700;display:inline-flex}.duel-live-dot{background:var(--brand-red);border-radius:50%;width:9px;height:9px;animation:1.2s ease-in-out infinite pulse}@media (prefers-reduced-motion:reduce){.duel-live-dot{animation:none}}.duel-found{color:var(--accent-dark);font-size:1.15rem;font-weight:900;animation:.4s cubic-bezier(.2,1.6,.4,1) both found-drop}.duel-found-icon{font-size:1.6rem;animation:.6s ease-in-out infinite clash;display:inline-block}@keyframes clash{50%{transform:rotate(-15deg)scale(1.2)}}.duel-versus{justify-content:center;gap:3.5rem;display:flex}.duel-versus-player{justify-items:center;gap:.4rem;display:grid;position:relative}.duel-versus-player .avatar{border:var(--outline);box-shadow:var(--drop-small)}.duel-vs{color:var(--brand-gold);text-shadow:-1.5px -1.5px 0 var(--brand-ink), 1.5px -1.5px 0 var(--brand-ink), 1.5px 1.5px 0 var(--brand-ink), -1.5px 1.5px 0 var(--brand-ink), 2px 3px 0 var(--brand-ink);font-size:1.3rem;font-weight:900;position:absolute;top:20px;right:-2.9rem}.mult-wrap{flex-shrink:0;display:inline-flex;position:relative}.mult-chip.bump{animation:.9s cubic-bezier(.2,1.4,.4,1) both mult-pop}@keyframes mult-pop{0%{transform:scale(1)}25%{box-shadow:inset 0 0 0 2px var(--brand-ink), 0 0 0 6px #ffc52e99, 0 0 18px 6px #ffc52ecc;transform:scale(1.7)rotate(-8deg)}60%{transform:scale(.95)rotate(3deg)}to{transform:scale(1)}}.mult-up{pointer-events:none;white-space:nowrap;color:var(--brand-gold);text-shadow:0 2px 0 var(--brand-ink), 1px 0 0 var(--brand-ink), -1px 0 0 var(--brand-ink);font-size:.95rem;font-weight:900;animation:1.8s ease-out forwards mult-float;position:absolute;top:-2px;left:50%}@keyframes mult-float{0%{opacity:0;transform:translate(-50%,4px)scale(.6)}20%{opacity:1;transform:translate(-50%,-14px)scale(1.25)}to{opacity:0;transform:translate(-50%,-40px)scale(1)}}.mult-boost{border:var(--outline-thin);width:fit-content;box-shadow:var(--drop-small);background:#ffe9a8;border-radius:999px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;padding:.4rem .9rem;font-weight:800;animation:.6s cubic-bezier(.2,1.5,.4,1) .3s both boost-in;display:flex;margin:.6rem auto!important}.mult-boost-change{align-items:center;gap:.35rem;display:inline-flex}.mult-boost .mult-chip{box-shadow:inset 0 0 0 2px var(--brand-ink);background:#fff;padding:.1rem .55rem;font-size:.95rem}.mult-boost .mult-chip.hot{background:var(--brand-gold)}.mult-boost .mult-chip.bump{animation-delay:.7s}@keyframes boost-in{0%{opacity:0;transform:scale(.6)}}.duel-player{position:relative}.duel-player.ko>:not(.ko-stamp){filter:grayscale(.85);opacity:.8}.ko-stamp{pointer-events:none;color:#fff;background:var(--brand-red);box-shadow:0 0 0 3px var(--brand-ink);border:3px solid #fff;border-radius:10px;padding:.05rem .6rem;font-size:1.5rem;font-weight:900;animation:.45s cubic-bezier(.2,1.6,.4,1) .4s both stamp;position:absolute;top:50%;left:50%}@keyframes stamp{0%{opacity:0;transform:translate(-50%,-50%)rotate(-14deg)scale(3)}to{opacity:1;transform:translate(-50%,-50%)rotate(-14deg)scale(1)}}@keyframes slam-in{0%{opacity:0;transform:scale(2.4)}}.outcome-splash{z-index:12;text-align:center;color:#fff;background:radial-gradient(circle at 50% 40%,#ffc52e59,#0a0c14e0 60%);animation:.3s .2s both fade-in;overflow:hidden}.outcome-splash.loss{background:radial-gradient(circle at 50% 40%,#a91b2e66,#06060ceb 60%)}.outcome-splash.draw{background:#0a0c14d9}@keyframes fade-in{0%{opacity:0}}.outcome-content{z-index:1;justify-items:center;gap:.75rem;width:min(520px,100%);display:grid;position:relative}.outcome-icon{filter:drop-shadow(0 6px #00000059);font-size:5rem;line-height:1}.win .outcome-icon{animation:1s cubic-bezier(.2,1.5,.4,1) .4s both trophy}.loss .outcome-icon{animation:1.2s ease-in .4s both heartbreak}.draw .outcome-icon{animation:.6s cubic-bezier(.2,1.5,.4,1) .4s both slam-in}@keyframes trophy{0%{opacity:0;transform:translateY(60px)scale(.3)rotate(-30deg)}70%{transform:translateY(-10px)scale(1.15)rotate(8deg)}to{opacity:1;transform:none}}@keyframes heartbreak{0%{opacity:0;transform:scale(1.6)}30%{opacity:1;transform:scale(1)}45%,65%{transform:translate(-6px)rotate(-6deg)}55%,75%{transform:translate(6px)rotate(6deg)}to{opacity:1;transform:translateY(8px)rotate(0)}}.outcome-title{margin:0;font-size:clamp(3rem,12vw,5.5rem)}.win .outcome-title{color:var(--brand-gold);animation:.55s cubic-bezier(.2,1.6,.4,1) .55s both slam-in,1.6s ease-in-out 1.2s infinite glow}.loss .outcome-title{color:#c9c4d6;animation:.9s ease-out .55s both drop-shake}.draw .outcome-title{color:#fff;animation:.55s cubic-bezier(.2,1.6,.4,1) .55s both slam-in}@keyframes glow{50%{filter:drop-shadow(0 0 18px #ffc52ee6)}}@keyframes drop-shake{0%{opacity:0;transform:translateY(-80px)}45%{opacity:1;transform:translateY(0)}55%,75%{transform:translate(-10px)}65%,85%{transform:translate(10px)}to{transform:none}}.outcome-reason{opacity:.9;margin:0;font-size:1.15rem;font-weight:700;animation:.5s 1s both fade-in}.outcome-players{grid-template-columns:1fr 1fr;gap:1rem;width:100%;margin:.5rem 0;animation:.5s 1.2s both fade-in;display:grid}.outcome-player{background:var(--glass-dark);border:2px solid #ffffff40;border-radius:18px;justify-items:center;gap:.35rem;padding:.75rem;font-weight:800;display:grid}.outcome-player.winner{border-color:var(--brand-gold);box-shadow:0 0 22px #ffc52e8c}.outcome-player .hp{width:100%}.outcome-splash .btn-play{animation:.5s 1.5s both fade-in}.outcome-rays{background:repeating-conic-gradient(#ffc52e29 0deg 10deg,#0000 10deg 20deg);width:220vmax;height:220vmax;margin:-110vmax 0 0 -110vmax;animation:1s .4s both fade-in,40s linear infinite spin;position:absolute;top:40%;left:50%}.confetti{pointer-events:none;position:absolute;inset:0}.confetti span{border:1.5px solid var(--brand-ink);border-radius:2px;width:10px;height:16px;animation-name:confetti-fall;animation-timing-function:linear;animation-fill-mode:both;position:absolute;top:-20px}.confetti span:nth-child(3n){border-radius:50%;width:8px;height:8px}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--drift), 110vh) rotate(var(--spin));opacity:.9}}.duel-map-wrap{position:relative}.duel-round-stepper{z-index:1;white-space:nowrap;font-variant-numeric:tabular-nums;background:var(--panel);border:var(--outline-thin);box-shadow:var(--drop-small);border-radius:999px;align-items:center;gap:.5rem;padding:.25rem;font-weight:800;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.duel-round-stepper span{padding:0 .4rem}.duel-round-stepper button{cursor:pointer;width:34px;height:34px;color:var(--ink);background:var(--brand-gold);border:var(--outline-thin);border-radius:50%;padding:0;font-size:1.4rem;font-weight:900;line-height:1}.duel-round-stepper button:disabled{opacity:.35;cursor:default}.duel-table tbody tr.selected{box-shadow:inset 4px 0 0 var(--brand-red)}.duel-round-players{grid-template-columns:1fr 1fr;gap:.75rem;max-width:520px;margin:.5rem auto;display:grid}.duel-round-player{border:var(--outline-thin);background:#fff;border-radius:16px;justify-items:center;gap:.15rem;padding:.75rem;display:grid}.duel-round-player.winner{box-shadow:var(--drop-small);background:#ffe9a8}.duel-round-name{font-weight:700}.duel-round-score{font-variant-numeric:tabular-nums;font-size:1.6rem}.duel-damage{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;font-size:1.15rem;display:flex}.duel-damage strong{color:var(--red-dark)}.duel-outcome{margin:0;font-size:2.4rem;font-weight:900;line-height:1.1}.duel-outcome.win{color:#1f9a4c}.duel-outcome.loss{color:var(--red-dark)}.duel-final-players{grid-template-columns:1fr 1fr;gap:1.5rem;max-width:560px;margin:1rem auto;display:grid}.duel-final-player{justify-items:center;gap:.4rem;display:grid}.duel-final-player .avatar{border:var(--outline)}.duel-final-player.winner .avatar{box-shadow:0 0 0 4px var(--brand-gold), var(--drop-small)}.duel-final-player .hp{width:100%}.duel-table-wrap{border:var(--outline-thin);background:#fff;border-radius:14px;max-height:45vh;margin:.5rem 0;overflow-y:auto}.duel-table{font-size:.9rem}.duel-table thead th{z-index:1;background:#fff;position:sticky;top:0}.duel-table tbody tr{cursor:pointer}.duel-table tbody tr:hover,.duel-table tbody tr.selected{background:var(--bg)}.duel-table td small{display:block}.duel-table .round-won{font-weight:800}.duel-table .damage-taken{color:var(--red-dark);font-weight:800}.duel-table .damage-dealt{color:#1f9a4c;font-weight:800}.duel-health-cell{white-space:nowrap}.duel-card{gap:.5rem;display:grid}.duel-card p{margin:0}.duel-card-tag{background:var(--brand-red);color:#fff;border:var(--outline-thin);border-radius:999px;padding:.1rem .6rem;font-size:.85rem;font-weight:900}.duel-card-action{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;min-height:4.5rem;display:flex}.duel-card-action .btn-play{margin:.25rem 0}.duel-searching{font-variant-numeric:tabular-nums;font-weight:700}.duel-radar{background:var(--brand-red);border:2px solid var(--brand-ink);border-radius:50%;width:18px;height:18px;position:relative}.duel-radar:after{content:"";border:2px solid var(--brand-red);border-radius:50%;animation:1.4s ease-out infinite radar;position:absolute;inset:-2px}@keyframes radar{to{opacity:0;transform:scale(2.6)}}.duel-history{gap:.2rem;margin:.25rem 0 0;padding:0;list-style:none;display:grid}.duel-history-row{color:inherit;border-radius:12px;align-items:center;gap:.6rem;padding:.4rem .6rem;text-decoration:none;display:flex}.duel-history-row:hover{background:var(--bg)}.duel-history-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.duel-history-date{white-space:nowrap}.duel-result-chip{text-align:center;border:var(--outline-thin);border-radius:999px;min-width:3.2rem;padding:.05rem .5rem;font-size:.75rem;font-weight:900}.duel-result-chip.win{background:#3ccf6e}.duel-result-chip.loss{color:var(--red-dark);background:#ffd9da}.duel-result-chip.draw{background:#fff}@media (prefers-reduced-motion:reduce){.hp-hit,.hp-heart,.round-clock.urgent .round-clock-time,.round-clock.urgent,.time-warning,.duel-banner.urgent,.duel-radar:after,.mult-chip.bump,.mult-up,.outcome-rays,.confetti,.outcome-title,.outcome-icon,.duel-intro-title,.duel-intro-found,.duel-versus-player,.duel-vs,.countdown-number,.duel-found,.duel-found-icon{animation:none}.hp-fill,.hp-ghost{transition:none}}@media (width<=760px){.duel-home{display:none}.duel-hud{gap:.35rem;width:calc(100vw - 16px);top:58px}.duel-player{border-radius:16px;gap:.4rem;padding:.35rem .5rem}.duel-player .duel-avatar{width:30px;height:30px;font-size:.85rem}.duel-player-name{font-size:.85rem}.duel-status,.hp-heart{display:none}.hp-track{height:16px}.hp-value{font-size:.7rem}.round-clock{min-width:3.8rem;padding:.35rem .5rem}.round-clock-time{font-size:1.25rem}.duel-banner{font-size:.9rem;top:122px}.duel-history-date{display:none}.duel-final-players{gap:.75rem}.duel-page .overlay{padding-top:116px}.duel-page .result-card{max-height:calc(100vh - 116px - 1rem - var(--ad-h))}.outcome-icon{font-size:3.5rem}.ko-stamp{font-size:1.1rem}}.sound-settings,.sound-controls{gap:1rem;display:grid}.sound-settings h2,.sound-settings p{margin:0}.sound-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;display:flex}.sound-row-label{font-size:.9rem;font-weight:700}.music-picker{align-items:center;gap:.5rem;display:flex}.segmented{border:var(--outline-thin);box-shadow:var(--drop-small);background:#fff;border-radius:999px;gap:3px;padding:3px;display:inline-flex}.segmented button{cursor:pointer;font:inherit;color:var(--ink);white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:.35rem .85rem;font-size:.875rem;font-weight:700}.segmented button:hover{background:var(--bg)}.segmented button.selected{background:var(--brand-gold);box-shadow:inset 0 0 0 2px var(--brand-ink)}.segmented button:focus-visible{outline:3px solid var(--accent);outline-offset:1px}.listen-button{cursor:pointer;width:36px;height:36px;color:var(--ink);border:var(--outline-thin);box-shadow:var(--drop-small);background:#fff;border-radius:50%;flex-shrink:0;place-items:center;padding:0;font-size:.85rem;display:grid}.listen-button:hover{background:var(--bg)}.volume-slider label.time-slider-head{margin:0}.volume-slider input[type=range]{background:linear-gradient(90deg, var(--brand-gold) var(--fill,0%), #fff var(--fill,0%));margin-top:.5rem}@media (width<=520px){.music-picker{width:100%}.segmented{flex:1}.segmented button{flex:1;padding:.35rem .4rem}}.overlay.map-screen,.duel-page .overlay.map-screen{background:0 0;padding:0}.map-screen .result-card{width:100%;height:100%;max-height:none;box-shadow:none;background:#e5e3df;border:none;border-radius:0;position:relative}.map-screen .summary-map-wrap,.map-screen .result-map{height:auto;min-height:0;position:absolute;inset:0}.map-screen .result-body{border-radius:var(--radius);background:var(--panel);border:var(--outline);width:min(640px,100% - 24px);max-height:60%;box-shadow:var(--drop);padding:1rem 1.25rem 1.1rem;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.map-screen .result-body h2{margin:.1rem 0;font-size:1.8rem}.map-screen .next-btn{margin-top:.5rem}.map-screen .final-card .result-body{width:min(760px,100% - 24px);max-height:62%;overflow-y:auto}.map-screen .duel-map-wrap{position:absolute;inset:0}.map-screen .duel-round-stepper{width:fit-content;margin:0 auto .5rem;position:static;transform:none}.map-screen .duel-table-wrap{max-height:30vh}.map-screen .duel-outcome{font-size:2rem}.map-screen .duel-final-players{margin:.5rem auto}@media (width<=600px){.map-screen .result-body{padding:.75rem .9rem .85rem;bottom:8px}.map-screen .result-body h2{font-size:1.5rem}}.map-screen .round-panel{text-align:left;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.25rem 1rem;width:min(560px,100% - 24px);padding:.7rem 1rem .8rem;display:grid}.round-panel .round-head{grid-column:1/-1;justify-content:space-between;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.round-panel .round-head .legend{margin:0}.map-screen .round-panel h2{margin:0;font-size:1.5rem;line-height:1.15}.round-panel .score-bar{max-width:none;height:8px;margin:.15rem 0}.map-screen .round-panel p{margin:0;font-size:.9rem}.round-panel .next-btn{grid-area:2/2/span 3;min-width:0;margin:0}.map-screen .duel-round-panel{grid-template-columns:minmax(0,1fr);gap:.45rem}.duel-round-panel .duel-round-players{gap:.5rem;max-width:none;margin:0}.duel-round-panel .duel-round-player{border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"av name score""av dist score";place-items:center start;gap:0 .5rem;padding:.4rem .6rem}.duel-round-player>.avatar{grid-area:av}.duel-round-player>.duel-round-name{text-overflow:ellipsis;white-space:nowrap;grid-area:name;max-width:100%;font-size:.85rem;overflow:hidden}.duel-round-player>.duel-round-score{grid-area:score;justify-self:end;font-size:1.35rem}.duel-round-player>.small{grid-area:dist;font-size:.75rem}.round-effects{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .75rem;display:flex}.round-effects:empty{display:none}.map-screen .round-effects .mult-boost{gap:.4rem;padding:.2rem .7rem;font-size:.85rem;margin:0!important}.map-screen .round-effects .mult-boost .mult-chip{padding:.05rem .45rem;font-size:.8rem}.round-effects .duel-damage{margin:0;font-size:.95rem}.duel-round-panel .countdown{grid-template-columns:auto minmax(0,1fr);place-items:center stretch;gap:.75rem;margin:0}.duel-round-panel .countdown-text{white-space:nowrap;font-size:.9rem}.duel-round-panel .countdown-number{font-size:1.3em}.duel-round-panel .countdown-bar{width:100%;height:6px}.guess-avatar.drop-in>*{animation:.55s cubic-bezier(.2,1.5,.4,1) both marker-drop}@keyframes marker-drop{0%{opacity:0;transform:translateY(-60px)scale(.5)}60%{opacity:1;transform:translateY(4px)scale(1.08,.92)}to{transform:none}}.target-flag.plant-in svg{transform-origin:50% 100%;animation:.7s cubic-bezier(.2,1.6,.4,1) both flag-plant}@keyframes flag-plant{0%{opacity:0;transform:scaleY(0)scaleX(.6)}55%{opacity:1;transform:scaleY(1.2)rotate(-8deg)}75%{transform:scaleY(.95)rotate(5deg)}to{transform:none}}@media (prefers-reduced-motion:reduce){.guess-avatar.drop-in>*,.target-flag.plant-in svg{animation:none}}.perfect-burst{z-index:12;pointer-events:none;place-content:center;justify-items:center;gap:.6rem;padding-bottom:10vh;animation:3s ease-in both perfect-life;display:grid;position:fixed;inset:0;overflow:hidden}.perfect-burst:before{content:"";background:radial-gradient(circle at 50% 45%,#fff6e0f2,#ffc52e8c 40%,#ffc52e00 75%);animation:1.1s ease-out both perfect-flash;position:absolute;inset:0}@keyframes perfect-flash{0%{opacity:0}12%{opacity:1}to{opacity:.25}}@keyframes perfect-life{0%,85%{opacity:1}to{opacity:0}}.perfect-rays-wrap{width:170vmax;height:170vmax;margin:-85vmax 0 0 -85vmax;animation:.7s cubic-bezier(.2,1.3,.4,1) both rays-in;position:absolute;top:45%;left:50%}@keyframes rays-in{0%{opacity:0;transform:scale(.1)}}.perfect-rays{background:repeating-conic-gradient(#ffc52e8c 0deg 7deg,#0000 7deg 14deg);border-radius:50%;width:100%;height:100%;animation:9s linear infinite spin;-webkit-mask-image:radial-gradient(circle,#000 12%,#0000 60%);mask-image:radial-gradient(circle,#000 12%,#0000 60%)}.perfect-rays.alt{background:repeating-conic-gradient(#fff6e080 0deg 3deg,#0000 3deg 20deg);animation:15s linear infinite reverse spin;position:absolute;inset:0}.perfect-score{--o:var(--brand-ink);color:var(--brand-gold);font-variant-numeric:tabular-nums;letter-spacing:.02em;text-shadow:-5px -5px 0 var(--o), 5px -5px 0 var(--o), 5px 5px 0 var(--o), -5px 5px 0 var(--o), 0 -5px 0 var(--o), 5px 0 0 var(--o), 0 5px 0 var(--o), -5px 0 0 var(--o), 9px 11px 0 var(--o);font-size:clamp(3.5rem,min(24vw,24vh),13rem);font-weight:900;line-height:1;animation:1.2s ease-in-out .8s infinite glow;display:flex;position:relative}.perfect-digit{animation:digit-slam .45s calc(var(--i) * 90ms) cubic-bezier(.2, 1.7, .4, 1) both;display:inline-block;position:relative}@keyframes digit-slam{0%{opacity:0;transform:translateY(-110%)scale(2.2)rotate(-14deg)}to{opacity:1;transform:none}}.perfect-digit:after{content:attr(data-d);text-shadow:none;color:#0000;background:linear-gradient(110deg,#0000 38%,#fffffff2 50%,#0000 62%) 150% 0/260% 100% no-repeat;animation:digit-shine 1.6s calc(.8s + var(--i) * 70ms) ease-in-out infinite;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}@keyframes digit-shine{0%{background-position:150% 0}60%,to{background-position:-60% 0}}.perfect-content{justify-items:center;gap:.6rem;animation:.5s .6s both impact-shake;display:grid;position:relative}@keyframes impact-shake{0%,to{transform:none}20%{transform:translate(-7px,5px)rotate(-1deg)}40%{transform:translate(6px,-6px)rotate(1deg)}60%{transform:translate(-4px,3px)}80%{transform:translate(3px,-2px)}}.perfect-ring{width:36vmin;height:36vmin;animation:ring-out 1.1s calc(.55s + var(--i) * .16s) cubic-bezier(.1, .6, .3, 1) both;border:6px solid #ffc52ef2;border-radius:50%;margin:-18vmin 0 0 -18vmin;position:absolute;top:45%;left:50%;box-shadow:0 0 28px #ffc52ed9,inset 0 0 28px #ffc52e99}@keyframes ring-out{0%{opacity:1;transform:scale(.25)}to{opacity:0;transform:scale(3.4)}}.perfect-label{box-sizing:border-box;text-align:center;text-wrap:balance;color:#fff;background:var(--brand-red);border:var(--outline);max-width:calc(100vw - 40px);box-shadow:var(--drop);border-radius:999px;padding:.35rem 1.4rem;font-size:clamp(1.05rem,min(3.4vw,5vh),2.3rem);font-weight:900;animation:.5s cubic-bezier(.2,1.6,.4,1) .7s both found-drop;position:relative}.perfect-spark{color:var(--brand-gold);text-shadow:0 0 10px #ffc52ef2, 0 2px 0 var(--brand-ink);margin:-.6em 0 0 -.4em;animation:1.1s cubic-bezier(.1,.7,.3,1) both spark-fly;position:absolute;top:45%;left:50%}@keyframes spark-fly{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(.4)}to{opacity:0;transform:rotate(var(--a)) translateY(calc(-1 * var(--d))) scale(1.3) rotate(220deg)}}.perfect-burst .confetti{z-index:0}.perfect-burst.double{animation-duration:3.6s}.perfect-burst.double:before{animation:1.4s ease-out both double-flash}@keyframes double-flash{0%{opacity:0}8%{opacity:1}22%{opacity:.3}32%{opacity:1}to{opacity:.25}}.perfect-burst.double .perfect-rays.alt{background:repeating-conic-gradient(#e4252b66 0deg 4deg,#0000 4deg 16deg)}.perfect-burst.double .perfect-label{background:linear-gradient(90deg, var(--brand-red), #ff8a00, var(--brand-red)) 0 0 / 200% 100%;animation:.5s cubic-bezier(.2,1.6,.4,1) .8s both found-drop,1.4s linear 1.3s infinite label-sheen}@keyframes label-sheen{to{background-position:-200% 0}}@media (width<=600px){.perfect-score{text-shadow:-3px -3px 0 var(--o), 3px -3px 0 var(--o), 3px 3px 0 var(--o), -3px 3px 0 var(--o), 0 -3px 0 var(--o), 3px 0 0 var(--o), 0 3px 0 var(--o), -3px 0 0 var(--o), 5px 6px 0 var(--o)}.perfect-label{border-radius:22px;padding:.35rem 1rem}}@media (prefers-reduced-motion:reduce){.perfect-burst:before,.perfect-rays,.perfect-rays-wrap,.perfect-score,.perfect-label,.perfect-spark,.perfect-digit,.perfect-digit:after,.perfect-content{animation:none}.perfect-spark,.perfect-burst .confetti,.perfect-ring{display:none}}.score-hidden{opacity:.35;animation:1s ease-in-out infinite pulse;display:inline-block}.reveal-in{animation:.5s cubic-bezier(.2,1.5,.4,1) both boost-in}.count-up-score{font-variant-numeric:tabular-nums;display:inline-block}.count-up-score.landed{animation:.45s cubic-bezier(.2,1.6,.4,1) score-land}.shuffle-score{font-variant-numeric:tabular-nums;display:inline-block}.shuffle-score:not(.landed){opacity:.7}.shuffle-score.landed{animation:.5s cubic-bezier(.2,1.6,.4,1) score-land}@keyframes score-land{0%{color:var(--brand-red);transform:scale(1.5)}to{transform:scale(1)}}.avatar-frame{--d:32px;vertical-align:middle;margin:calc(var(--d) * .3) calc(var(--d) * .23) calc(var(--d) * .2);flex-shrink:0;place-items:center;display:inline-grid;position:relative}.avatar-frame.frame-tiny{--d:22px}.avatar-frame.frame-large{--d:64px}.avatar-frame-art{pointer-events:none;-webkit-user-select:none;user-select:none;width:180%;max-width:none;height:180%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.level-badge{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--brand-ink);background:var(--brand-gold);border:var(--outline-thin);border-radius:999px;padding:.05rem .55rem;font-size:.85rem;font-weight:900;display:inline-block}.level-bar{align-items:center;gap:.6rem;width:100%;max-width:420px;display:flex}.level-bar.compact{max-width:360px;margin:.5rem auto 0}.level-track{border:var(--outline-thin);background:#fff;border-radius:999px;flex:1;height:10px;overflow:hidden}.level-track>div{background:linear-gradient(90deg, var(--brand-gold), var(--brand-red));height:100%;transition:width 1.2s cubic-bezier(.3,.7,.4,1)}.level-xp{white-space:nowrap;font-variant-numeric:tabular-nums}.profile-name .level-bar{margin-top:.5rem}.xp-gain{justify-items:center;gap:.35rem;display:grid}.xp-earned{color:var(--accent-dark);font-size:1.15rem;font-weight:900;animation:.4s cubic-bezier(.2,1.6,.4,1) .2s both found-drop}.xp-gain .level-bar{max-width:360px}.level-badge.level-up{background:var(--brand-red);color:#fff;animation:.7s cubic-bezier(.2,1.8,.4,1) 1.4s both level-pop}@keyframes level-pop{0%{transform:scale(1)}40%{transform:scale(1.5)rotate(-6deg)}to{transform:none}}.level-up-note,.border-unlocked-note{margin:0;font-weight:800;animation:.4s 1.6s both fade-in}.level-up-note{color:var(--accent-dark)}.border-unlocked-note{color:#1f9a4c}@media (prefers-reduced-motion:reduce){.xp-earned,.level-badge.level-up,.level-up-note,.border-unlocked-note{animation:none}}.border-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:.6rem;margin-top:.75rem;display:grid}.border-option{cursor:pointer;font:inherit;color:var(--ink);text-align:center;border:var(--outline-thin);box-shadow:var(--drop-small);background:#fff;border-radius:16px;justify-items:center;gap:.3rem;padding:.7rem .4rem;display:grid}.border-option:hover:not(:disabled){background:var(--bg)}.border-option.selected{box-shadow:0 0 0 3px var(--brand-gold), var(--drop-small);background:#ffe9a8}.border-option.locked{opacity:.45;cursor:not-allowed;box-shadow:none}.border-option-name{font-size:.85rem;font-weight:800}.border-option-level{font-size:.72rem}.mode-cards{text-align:center;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:1.25rem;display:grid}.mode-card{border:var(--outline-thin);box-shadow:var(--drop-small);background:#fff;border-radius:20px;flex-direction:column;align-items:center;gap:.4rem;padding:1.25rem 1rem 1rem;display:flex}.mode-card h2{align-items:center;gap:.5rem;margin:0;display:inline-flex}.mode-card p{margin:0}.mode-card>.muted{flex:1;max-width:300px}.mode-card-icon{background:var(--brand-gold);border:var(--outline-thin);width:56px;height:56px;box-shadow:var(--drop-small);border-radius:50%;place-items:center;font-size:1.9rem;display:grid}.mode-card-duel .mode-card-icon{background:var(--brand-red)}.mode-card .btn-play{margin:.5rem 0 .25rem;padding:.7rem 2.2rem;font-size:1.15rem}.mode-card .duel-card-action{min-height:0}.mode-card .duel-searching{flex-direction:column;gap:.5rem;padding:.5rem 0}.duel-hero h1{align-items:center;gap:.6rem;display:inline-flex}.duel-hero>p{max-width:560px;margin:.5rem auto 0}.duel-card .card-heading h2{align-items:center;gap:.5rem;display:inline-flex}.duel-record{font-variant-numeric:tabular-nums}.duel-record .win{color:#1f9a4c}.duel-record .loss{color:var(--red-dark)}.duel-history-table td{vertical-align:middle}.duel-history-table.loading tbody{opacity:.5}.duel-opponent{color:inherit;align-items:center;gap:.45rem;font-weight:700;text-decoration:none;display:inline-flex}.duel-opponent:hover span{text-decoration:underline}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;margin-top:1rem;display:flex}.pager button{cursor:pointer;min-width:36px;height:36px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink);border:var(--outline-thin);box-shadow:var(--drop-small);background:#fff;border-radius:999px;padding:0 .5rem;font-weight:800}.pager button:hover:not(:disabled){background:var(--bg)}.pager button:active:not(:disabled){box-shadow:none;transform:translateY(2px)}.pager button:disabled{opacity:.35;cursor:default;box-shadow:none}.pager .pager-page.current{background:var(--brand-gold)}.pager-step{font-size:1.2rem;line-height:1}.pager-gap{color:var(--muted);padding:0 .15rem;font-weight:800}@media (width<=600px){.duel-history-table .wide-only{display:none}}
