.admin-page{--red: #C0392B;--yellow-hover: #A93226;--blue: #3B6EA8;--white: #FFFFFF}.admin-modal{background:#1C1C1C;padding:30px;width:100%;max-width:800px;max-height:90vh;overflow-y:auto;position:relative;border:1px solid rgba(255,255,255,.1);border-radius:8px}.admin-modal h2{margin:0 0 20px;text-align:center;color:#fff;font-weight:900;letter-spacing:-.02em}.admin-modal h3{margin:0 0 14px;color:var(--blue);font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}.tiles-input{display:flex;gap:8px}.tiles-input input{width:60px;padding:8px;background:rgba(255,255,255,.08);border:2px solid rgba(255,255,255,.15);border-radius:4px;font-size:1rem;text-align:center;color:#fff}.tiles-input input:focus{outline:none;border-color:var(--blue)}.form-group small{color:#fff6;font-size:.78rem}.challenges-table{width:100%;border-collapse:collapse;font-size:.9rem}.challenges-table th,.challenges-table td{padding:10px 8px;text-align:left;border-bottom:1px solid rgba(255,255,255,.06)}.challenges-table th{font-weight:700;color:#fff6;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.challenges-table tbody tr:hover{background:rgba(255,255,255,.04)}.challenges-table tr.today{background:rgba(228,49,26,.08)}.challenges-table tr.today:hover{background:rgba(228,49,26,.12)}.challenges-table tr.past{color:#ffffff4d}.challenges-table .challenge-number{font-weight:700;color:#fff6;white-space:nowrap}.challenges-table .challenge-date{white-space:nowrap}.challenges-table .challenge-tiles{font-family:monospace;font-size:.85rem;color:#ffffff80}.challenges-table button{padding:4px 10px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:rgba(255,255,255,.06);color:#fff;cursor:pointer;font-size:.78rem;font-weight:700}.challenges-table button:hover{background:rgba(255,255,255,.14)}.admin-list{overflow-x:auto}.admin-page{min-height:100vh;background-color:#111;padding:20px;color:#fff}.admin-container{max-width:900px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:3px solid var(--red)}.admin-header h1{margin:0;color:var(--red);font-weight:900;letter-spacing:-.03em}.logout-btn{padding:8px 16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.2);border-radius:4px;cursor:pointer;color:#fff;font-weight:700;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}.logout-btn:hover{background:rgba(255,255,255,.12)}.admin-login{max-width:400px;margin:100px auto;padding:30px;background:rgba(255,255,255,.04);border:2px solid rgba(255,255,255,.1);border-radius:8px}.admin-login h1{margin:0 0 25px;text-align:center;color:var(--red);font-weight:900;letter-spacing:-.03em}.admin-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:2px solid rgba(255,255,255,.1)}.admin-tab{padding:10px 22px;background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.9rem;font-weight:700;color:#fff6;text-transform:uppercase;letter-spacing:.06em;transition:color .15s}.admin-tab:hover{color:#fffc}.admin-tab.active{color:var(--red);border-bottom-color:var(--red)}.admin-tab-content{background:rgba(255,255,255,.02);padding:20px}.admin-edit-section{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:20px;margin-bottom:20px}.admin-edit-section h3{margin:0 0 14px;color:var(--blue);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.admin-edit-form{display:flex;flex-wrap:wrap;gap:15px 25px;align-items:center}.admin-edit-form .form-group{display:flex;flex-direction:row;align-items:center;gap:10px;margin-bottom:0}.admin-edit-form .form-group label{margin-bottom:0;white-space:nowrap;color:#fff9}.admin-edit-form .form-group input[type=date]{width:auto;color-scheme:dark}.admin-edit-form .form-group>input[type=text]{width:100px}.admin-edit-form .form-group small{display:none}.admin-edit-actions{display:flex;gap:10px;margin-left:auto}.admin-edit-actions button{padding:10px 16px;border:1px solid rgba(255,255,255,.2);border-radius:4px;background:rgba(255,255,255,.06);color:#fff;cursor:pointer;font-size:.88rem;font-weight:700;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.admin-edit-actions button:hover:not(:disabled){background:rgba(255,255,255,.12)}.admin-edit-actions button.primary{background:var(--red);border-color:var(--red);color:var(--white)}.admin-edit-actions button.primary:hover:not(:disabled){background:var(--yellow-hover);border-color:var(--yellow-hover)}.admin-edit-actions button.secondary{border-style:dashed;color:#fff6}.admin-edit-actions button:disabled{opacity:.35;cursor:not-allowed}.admin-list-section{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:20px}.admin-list-section h3{margin:0 0 14px;color:var(--blue);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.challenge-source{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.challenge-source.random{color:#ffffff4d}.challenge-source.manual{color:var(--blue)}.jobs-table{width:100%;border-collapse:collapse;font-size:.88rem}.jobs-table th{text-align:left;padding:8px 10px;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#ffffff59;border-bottom:1px solid rgba(255,255,255,.08)}.jobs-table td{padding:10px;border-bottom:1px solid rgba(255,255,255,.05);color:#ffffffbf;vertical-align:middle}.jobs-table .job-schedule{color:#fff6;font-size:.82rem}.jobs-table .job-result{font-size:.82rem;color:#ffffff80}.jobs-table .job-result.success{color:#a5d6a7}.jobs-table .job-result.error{color:#ff8a65}.admin-page .auth-submit{background:var(--blue);color:var(--white)}.admin-page .form-group input{background:#FFFFFF;color:#15171a;border-color:#5c6168}.admin-page .form-group label{color:#bbb}.admin-page .auth-error{color:#ff8a65}.admin-page .auth-message{color:#a5d6a7}.dashboard-page{flex:1;width:100%;max-width:var(--content-w);margin:0 auto;display:flex;flex-direction:column}.dashboard-content{flex:1;display:flex;flex-direction:column;gap:16px;padding:16px 16px 24px}.dash-note{padding:24px 0;text-align:center;color:var(--muted);font-size:14px}.section-label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:650}.back-btn{align-self:flex-start;border:0;background:none;color:var(--muted);font-size:14px;font-weight:650;cursor:pointer;padding:4px 0}.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:3px;border-radius:8px;background:var(--key)}.seg button{height:32px;border:0;border-radius:6px;background:none;color:var(--muted);font-size:13px;font-weight:650;cursor:pointer}.seg button.on{background:var(--bg);color:var(--fg);box-shadow:0 1px 2px var(--shadow)}.seg.small button{height:28px;font-size:12px}.dash-tabs{margin:12px 16px 0}.dock{position:sticky;bottom:0;display:flex;gap:8px;padding:12px 16px max(16px,env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}.dock .btn{flex:1}.dock .btn.grow{flex:1.7}.calendar{display:flex;flex-direction:column;gap:14px}.cal-nav{display:flex;justify-content:space-between;align-items:center}.cal-title{font-size:22px;font-weight:800;font-stretch:80%}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-grid.loading{opacity:.4}.dow{padding-bottom:2px;text-align:center;font-size:11px;font-weight:650;color:var(--muted)}.day{aspect-ratio:1;border:0;border-radius:3px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--key);color:var(--fg);font-family:inherit;font-size:15px;font-weight:750;font-stretch:88%;font-variant-numeric:tabular-nums}button.day{cursor:pointer}.day.exact,.day.close,.day.far{color:var(--on-fill)}.day.exact{background:var(--exact)}.day.close{background:var(--close)}.day.far{background:var(--far)}.day.today{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--fg)}.day.today:not(.exact):not(.close):not(.far){background:var(--bg);box-shadow:inset 0 0 0 2px var(--fg)}.day.future,.day.none{background:none;color:var(--line-strong);box-shadow:inset 0 0 0 1px var(--line)}.pips{display:inline-flex;gap:2px}.pips i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.3}.pips i.on{opacity:1}.pips.empty{visibility:hidden}.cal-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted)}.cal-legend>span{display:inline-flex;align-items:center;gap:6px}.cal-legend>span>i{display:inline-block;width:12px;height:12px;border-radius:2px}.cal-legend .pips{color:var(--fg)}.key-bg{background:var(--key)}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.facts b{display:block;font-size:26px;font-weight:800;font-stretch:75%;font-variant-numeric:tabular-nums}.facts span{font-size:11px;color:var(--muted)}.yours{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;background:var(--key);font-size:14px}.stats-page{display:flex;flex-direction:column;gap:20px}.stats-block{display:flex;flex-direction:column;gap:10px}.dist{display:flex;flex-direction:column;gap:6px}.dist>div{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center;font-size:13px;font-variant-numeric:tabular-nums}.dist em{font-style:normal;color:var(--muted)}.dist .bar.zero{background:none;color:var(--muted);padding:0;justify-content:flex-start;font-weight:650}.dist .bar{height:22px;min-width:26px;padding-right:7px;border-radius:2px;display:flex;align-items:center;justify-content:flex-end;color:var(--on-fill);font-size:12px;font-weight:700}.picker{display:flex;justify-content:space-between;align-items:center;gap:12px}.picker select{height:34px;max-width:60%;padding:0 10px;border:1.5px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);font-family:inherit;font-size:14px;font-weight:650}.cmp{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}.cmp th{padding:0 0 6px;text-align:right;font-size:12px;font-weight:650;color:var(--muted)}.cmp td{padding:8px 0;border-top:1px solid var(--line);text-align:right;white-space:nowrap}.cmp td:first-child,.cmp th:first-child{text-align:left;color:var(--muted);white-space:normal}.cmp td+td{padding-left:12px}.cmp td:not(:first-child):after{content:"";display:inline-block;width:6px;height:6px;margin-left:6px;vertical-align:middle;border-radius:50%}.cmp td.win{font-weight:800}.cmp td.win:after{background:var(--fg)}.leaderboard-section{display:flex;flex-direction:column;gap:14px}.you-rank{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.you-rank b{display:block;font-size:36px;line-height:1;font-weight:800;font-stretch:72%}.list{list-style:none;display:flex;flex-direction:column}.lrow{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;padding:11px 8px;border-top:1px solid var(--line);font-size:15px;font-variant-numeric:tabular-nums}.lrow .r{color:var(--muted);font-weight:650}.lrow.top .r{color:var(--fg);font-weight:800}.lrow .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lrow .pts{font-weight:700}.lrow.me{border-top-color:transparent;border-radius:6px;background:var(--key);font-weight:700}.lrow.me+.lrow{border-top-color:transparent}.play-history{display:flex;flex-direction:column;gap:12px}.hrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}.hrow:first-child{border-top:0}.hrow b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hrow .when{grid-column:1;font-size:12px;color:var(--muted)}.hrow .right{grid-column:2;grid-row:1 / span 2;display:flex;align-items:center;gap:8px}.shortcuts{display:flex;flex-direction:column;gap:6px}.srow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.srow:first-child{border-top:0}.srow>div{display:flex;flex-direction:column;gap:2px;min-width:0}.srow b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.srow .sub{font-size:12px}.srow .btn{flex:none}:root{--bg: #FFFFFF;--fg: #15171A;--muted: #687078;--line: #D7DADE;--line-strong: #9EA4AA;--key: #E3E6E9;--key-strong: #C8CDD2;--exact: #4A9A5E;--close: #C99A2E;--far: #7B8087;--on-fill: #FFFFFF;--scrim: rgba(21, 23, 26, .38);--shadow: rgba(21, 23, 26, .16);--error: #B3261E;--font: "Archivo", "Helvetica Neue", Arial, sans-serif;--head-h: 56px;--content-w: 500px}@media (prefers-color-scheme: dark){:root{--bg: #131416;--fg: #F1F2F3;--muted: #9AA1A8;--line: #33363B;--line-strong: #5C6168;--key: #2E3136;--key-strong: #464A50;--exact: #4C9160;--close: #B98F2C;--far: #5D6168;--scrim: rgba(0, 0, 0, .55);--shadow: rgba(0, 0, 0, .5);--error: #F2867E;color-scheme:dark}}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:650}.sub{color:var(--muted);font-size:14px}.exact-bg{background:var(--exact)}.close-bg{background:var(--close)}.far-bg{background:var(--far)}.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:3px;font-weight:700;font-size:12px;color:var(--on-fill);white-space:nowrap;font-variant-numeric:tabular-nums}.chip.exact{background:var(--exact)}.chip.close{background:var(--close)}.chip.far{background:var(--far)}.chip.none{background:var(--key);color:var(--muted)}.app-container{min-height:100dvh;display:flex;flex-direction:column}.app-container.game-view{height:var(--real-vh, 100dvh);min-height:0;overflow:hidden}.btn{height:48px;padding:0 18px;border:0;border-radius:6px;font-size:15px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.btn.ink{background:var(--fg);color:var(--bg)}.btn.line{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1.5px var(--line-strong)}.btn.text{background:none;color:var(--muted);height:36px;font-weight:600}.btn.wide{width:100%}.btn.mini{height:30px;padding:0 12px;font-size:13px;border-radius:5px}.btn:disabled{opacity:.4;cursor:default}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border:0;background:none;color:var(--fg);border-radius:8px;position:relative;cursor:pointer;flex:none}.icon-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.icon-btn:disabled{color:var(--line);cursor:default}.app-head{height:var(--head-h);flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 max(8px,env(safe-area-inset-right),calc((100% - var(--content-w)) / 2)) 0 max(8px,env(safe-area-inset-left),calc((100% - var(--content-w)) / 2));border-bottom:1px solid var(--line)}.head-r{display:flex;justify-content:flex-end;align-items:center}.wordmark{background:none;border:0;cursor:pointer;font-weight:800;font-stretch:72%;font-size:28px;letter-spacing:.005em;white-space:nowrap;color:var(--fg)}.head-signin{height:32px;padding:0 12px;border:0;border-radius:6px;background:var(--fg);color:var(--bg);font-weight:700;font-size:13px;cursor:pointer}.badge{position:absolute;top:5px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--fg);color:var(--bg);font-size:10px;font-weight:700;display:grid;place-items:center}@media (max-width: 400px){.wordmark{font-size:24px}.app-head .icon-btn{width:36px}}@media (max-width: 340px){.wordmark{font-size:21px}.app-head .icon-btn{width:32px}}.game{flex:1;min-height:0;width:100%;max-width:var(--content-w);margin:0 auto;display:flex;flex-direction:column;position:relative}.game-hidden{filter:blur(8px);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.clock{height:3px;flex:none;background:var(--line)}.clock i{display:block;height:100%;background:var(--fg);transition:width .1s linear}.meta{flex:none;display:flex;justify-content:space-between;gap:12px;padding:10px 16px 0;font-size:13px;color:var(--muted)}.meta b{color:var(--fg);font-weight:650}.meta .timer{font-variant-numeric:tabular-nums;white-space:nowrap}.meta .timer.over{color:var(--fg);font-weight:650}.meta-r{display:flex;align-items:baseline;gap:12px;white-space:nowrap}.give-up{border:0;background:none;padding:0;font-size:13px;font-weight:650;color:var(--fg);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.target{flex:none;text-align:center;padding-top:4px}.target-num{font-size:clamp(60px,12dvh,100px);line-height:.92;font-weight:800;font-stretch:70%;letter-spacing:.03em;font-variant-numeric:tabular-nums}.closest{flex:none;height:30px;display:flex;justify-content:center;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.board{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:clamp(4px,.9dvh,8px);padding:4px 16px}.eqrow{display:grid;grid-template-columns:1.4fr .95fr 1.4fr .4fr 1.7fr;gap:6px;align-items:center;width:100%;max-width:340px;margin:0 auto}.cell{height:clamp(36px,6.4dvh,52px);border:2px solid var(--line);border-radius:2px;display:grid;place-items:center;font-weight:750;font-size:clamp(19px,3.3dvh,26px);font-stretch:85%;font-variant-numeric:tabular-nums}.cell.filled{border-color:var(--line-strong)}.cell.cursor{border-color:var(--fg)}.cell.op{font-size:clamp(21px,3.5dvh,27px)}.cell.res.exact,.cell.res.close,.cell.res.far{color:var(--on-fill)}.cell.res.exact{background:var(--exact);border-color:var(--exact)}.cell.res.close{background:var(--close);border-color:var(--close)}.cell.res.far{background:var(--far);border-color:var(--far)}.cell.flip{animation:flip .5s ease-in-out}.eq{text-align:center;color:var(--muted);font-weight:700;font-size:20px}.eqrow.shake{animation:shake .4s ease}@keyframes flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.keys{flex:none;display:flex;flex-direction:column;gap:8px;padding:8px 8px max(14px,env(safe-area-inset-bottom))}.krow{display:flex;gap:6px}.krow.results{padding:0 6%}.key{flex:1;min-width:0;height:clamp(44px,7dvh,56px);border:0;border-radius:4px;background:var(--key);color:var(--fg);font-weight:750;font-size:21px;font-stretch:85%;font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation}.key:active:not(:disabled){filter:brightness(.92)}.key.derived{background:var(--key-strong)}.key.ghost{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line);cursor:default}.key.dim{opacity:.38;cursor:default}.key.op{font-size:25px}.key.word{flex:1.55;font-size:13px;font-stretch:100%;letter-spacing:.08em;text-transform:uppercase}.key.ink{background:var(--fg);color:var(--bg)}.toast{position:absolute;top:120px;left:50%;transform:translate(-50%);z-index:50;max-width:calc(100% - 32px);padding:10px 14px;border-radius:4px;background:var(--fg);color:var(--bg);font-size:14px;font-weight:650;text-align:center;animation:toast-in .15s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.cover{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;text-align:center}.cover-panel{display:flex;flex-direction:column;align-items:center;gap:4px}.count{font-size:170px;line-height:1;font-weight:800;font-stretch:70%;animation:pop 1s ease-out}@keyframes pop{0%{transform:scale(1.3);opacity:0}25%{transform:scale(1);opacity:1}to{opacity:.85}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:var(--scrim);animation:fade-in .25s ease-out both}.sheet{position:fixed;left:50%;bottom:0;z-index:901;transform:translate(-50%);width:100%;max-width:var(--content-w);max-height:calc(100dvh - 40px);overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:10px 20px max(20px,env(safe-area-inset-bottom));background:var(--bg);border-radius:16px 16px 0 0;box-shadow:0 -12px 40px var(--shadow);animation:sheet-up .3s ease-out both}.scrim.delayed,.sheet.delayed{animation-delay:.8s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translate(-50%,40px);opacity:0}to{transform:translate(-50%);opacity:1}}.grab{width:36px;height:4px;border-radius:2px;background:var(--line);align-self:center;flex:none}.sheet-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.sheet-title{font-size:26px;line-height:1.05;font-weight:800;font-stretch:78%}.sheet .close-x{margin:-6px -10px 0 0}.sheet p{font-size:15px;line-height:1.45}.sheet .eqrow.example{max-width:260px;margin:0}.sheet .eqrow.example .cell{height:40px;font-size:19px}.solve-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.solve-time{font-size:56px;line-height:.9;font-weight:800;font-stretch:70%;font-variant-numeric:tabular-nums}.statrow{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;text-align:center}.statrow b{display:block;font-size:30px;line-height:1.05;font-weight:800;font-stretch:75%;font-variant-numeric:tabular-nums}.statrow span{display:block;font-size:11px;line-height:1.2;color:var(--muted)}.sharebox{background:var(--key);border-radius:6px;padding:12px 14px;font-size:14px;line-height:1.45;white-space:pre-line;font-variant-numeric:tabular-nums}.actions{display:flex;flex-direction:column;gap:8px}.pair{display:flex;gap:8px}.pair .btn{flex:1}.vs{margin:4px 0 14px;border-top:1px solid var(--line)}.vs>div{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}.vs>div>span:first-child{font-weight:650}.vs>div.won>span:last-child{font-weight:750}.challenge-line{margin:0 0 14px;color:var(--muted)}.challenge-friend{margin-top:14px;text-align:center;font-size:14px}.challenge-friend button{background:none;border:0;color:var(--fg);font-size:14px;font-weight:650;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.legend{display:flex;flex-direction:column;gap:8px;font-size:14px}.legend div{display:flex;align-items:center;gap:10px}.legend i{width:22px;height:22px;border-radius:2px;flex:none}.landing{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px 32px;text-align:center}.landing-mark{width:76px;height:76px;border-radius:14px;background:var(--fg);color:var(--bg);display:grid;place-items:center;font-weight:800;font-stretch:68%;font-size:40px;letter-spacing:-.02em}.landing-title{font-size:48px;line-height:.95;font-weight:800;font-stretch:70%}.landing-desc{font-size:18px;line-height:1.4;max-width:24ch}.landing-actions{display:flex;flex-direction:column;gap:10px;width:100%;max-width:240px;margin-top:8px}.landing-date{margin-top:18px;font-size:13px;color:var(--muted)}.landing-date b{display:block;color:var(--fg);font-weight:650}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--bg)}.loading{font-size:13px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.verify-container{margin:10px 16px 0;padding:10px 14px;border-radius:6px;background:var(--key);font-size:14px;text-align:center}.verify-error{box-shadow:inset 0 0 0 1.5px var(--error)}.verify-hint{color:var(--muted);margin-top:4px}.verify-error button{margin-top:8px;height:32px;padding:0 14px;border:0;border-radius:6px;background:var(--fg);color:var(--bg);font-weight:700;cursor:pointer}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;text-align:left}.form-group label{font-size:13px;font-weight:650;color:var(--muted)}.form-group input,.inline-form input{height:46px;width:100%;padding:0 12px;border:1.5px solid var(--line-strong);border-radius:6px;background:var(--bg);color:var(--fg);font-family:inherit;font-size:16px}.form-group input::-moz-placeholder,.inline-form input::-moz-placeholder{color:var(--muted)}.form-group input::placeholder,.inline-form input::placeholder{color:var(--muted)}.form-group input:focus,.inline-form input:focus{outline:none;border-color:var(--fg)}.auth-error,.auth-message{font-size:14px;margin-bottom:12px;text-align:left}.auth-error{color:var(--error)}.auth-message{color:var(--fg)}.auth-submit{width:100%;height:48px;border:0;border-radius:6px;background:var(--fg);color:var(--bg);font-size:15px;font-weight:700;cursor:pointer}.auth-submit:disabled{opacity:.4;cursor:default}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:24px 20px;background:var(--bg)}.auth-modal{width:100%;max-width:340px;display:flex;flex-direction:column;align-items:center;text-align:center}.auth-modal form{width:100%}.auth-modal h2{font-size:18px;margin-bottom:18px}.auth-close{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));width:40px;height:40px;border:0;background:none;color:var(--fg);font-size:28px;line-height:1;cursor:pointer}.auth-modal .auth-close{position:absolute}.auth-logo{width:64px;height:64px;border-radius:12px;background:var(--fg);color:var(--bg);display:grid;place-items:center;font-weight:800;font-stretch:68%;font-size:34px;margin-bottom:14px}.auth-title,.auth-mode-title{font-size:32px;line-height:1;font-weight:800;font-stretch:72%;margin-bottom:22px}.auth-forgot,.auth-resend,.auth-switch button{background:none;border:0;cursor:pointer;font-size:14px;font-weight:650;color:var(--fg);text-decoration:underline;text-underline-offset:3px}.auth-forgot{margin-top:14px;color:var(--muted)}.auth-resend{margin-top:12px}.auth-switch{margin-top:26px;font-size:14px;color:var(--muted)}.auth-switch-tight{margin-top:10px}.auth-switch button:disabled{opacity:.4;cursor:default}.auth-sent-icon{width:64px;height:64px;border-radius:12px;border:2px solid var(--fg);display:grid;place-items:center;margin-bottom:18px}.auth-sent-icon svg{width:32px;height:32px;fill:none;stroke:var(--fg);stroke-width:1.8;stroke-linejoin:round}.auth-sent-text{font-size:15px;line-height:1.5;color:var(--muted);margin:-8px 0 24px}.auth-sent-email{display:block;margin:4px 0 10px;font-size:17px;color:var(--fg);overflow-wrap:anywhere}.dark-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--scrim)}.profile-modal,.friends-modal{width:100%;max-width:440px;max-height:85dvh;overflow-y:auto;padding:22px 20px;border-radius:12px;background:var(--bg);box-shadow:0 20px 50px var(--shadow)}.profile-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.profile-title{font-size:28px;line-height:1;font-weight:800;font-stretch:75%}.profile-logout{width:40px;height:40px;display:grid;place-items:center;border:0;background:none;color:var(--muted);cursor:pointer}.profile-logout svg{width:20px;height:20px}.profile-section{padding:14px 0;border-top:1px solid var(--line)}.profile-section:first-of-type{border-top:0}.profile-section h3,.friends-section-title{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:650;margin-bottom:10px}.inline-form{display:flex;gap:8px}.inline-form input{flex:1;min-width:0}.auth-submit.inline-submit{width:auto;padding:0 16px;height:46px;flex:none}.friends-list{list-style:none}.friend-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.friend-item:first-child{border-top:0}.friend-info{display:flex;flex-direction:column;gap:2px;min-width:0}.friend-name{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-status{font-size:12px;color:var(--muted)}.friend-actions{display:flex;gap:6px;flex:none}.friend-accept,.friend-remove{height:30px;padding:0 12px;border:0;border-radius:5px;font-size:13px;font-weight:700;cursor:pointer}.friend-accept{background:var(--fg);color:var(--bg)}.friend-remove{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1.5px var(--line-strong)}.friends-empty,.friends-loading{color:var(--muted);font-size:14px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
