:root{--bg:#0d0b09;--bg-2:#14110e;--panel:#1b1714;--panel-2:#231e1a;--line:#fff4e017;--line-strong:#fff4e02e;--text:#f4ecdd;--text-2:#cdbfa8;--muted:#9a8b78;--accent:#f2b45a;--accent-deep:#c98a2e;--red:#e4573f;--green:#5ccb8f;--blue:#6fb3ff;--shadow:0 18px 50px #00000073;--radius:18px;--radius-sm:12px;--display:"Big Shoulders Display", "Arial Narrow", Impact, sans-serif;--body:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;background-image:radial-gradient(1200px 500px at 50% -200px, #f2b45a1f, transparent 60%), linear-gradient(180deg, #100e0b 0%, var(--bg) 320px);min-height:100vh;margin:0;font-size:16px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4{font-family:var(--display);letter-spacing:.01em;margin:0;line-height:1}h1{font-size:44px;font-weight:900}h2{font-size:28px;font-weight:800}h3{font-size:20px;font-weight:800}p{margin:0}.num{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:.01em;font-weight:800}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.up{color:var(--green)}.down{color:var(--red)}.accent{color:var(--accent)}.mono{font-variant-numeric:tabular-nums}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:40;-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom:1px solid var(--line);background:#0d0b09b8;position:sticky;top:0}.topbar-inner{align-items:center;gap:18px;max-width:1080px;margin:0 auto;padding:12px 18px;display:flex}.wordmark{font-family:var(--display);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:10px;font-size:24px;font-weight:900;display:flex}.wordmark .pin{background:linear-gradient(160deg, var(--accent), var(--accent-deep));color:#1a1207;border-radius:8px;place-items:center;width:28px;height:28px;font-size:15px;display:grid;box-shadow:0 6px 16px #f2b45a59}.wordmark small{font-family:var(--body);letter-spacing:.14em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:500}.nav{gap:4px;margin-left:auto;display:none}.nav a{color:var(--text-2);border-radius:10px;padding:8px 12px;font-size:14px;font-weight:500}.nav a:hover{color:var(--text);background:#ffffff0d}.nav a.active{color:var(--accent);background:#f2b45a1a}.topbar .me{align-items:center;gap:8px;margin-left:auto;display:flex}.nav+.me{margin-left:8px}.avatar{background:var(--panel-2);border:1px solid var(--line-strong);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:17px;display:grid}.avatar.lg{width:56px;height:56px;font-size:28px}.avatar.xl{width:84px;height:84px;font-size:44px}.tabbar{z-index:40;-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:#100d0be6;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);letter-spacing:.02em;border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;font-size:11px;font-weight:600;display:flex}.tabbar a .ico{font-size:20px;line-height:1}.tabbar a.active{color:var(--accent)}.tabbar a.cta{color:#1a1207}.tabbar a.cta .ico{background:linear-gradient(160deg, var(--accent), var(--accent-deep));border-radius:50%;place-items:center;width:44px;height:44px;margin-top:-18px;font-size:22px;display:grid;box-shadow:0 10px 24px #f2b45a66}.tabbar a.cta span:not(.ico){color:var(--accent)}main.page{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:22px 18px 110px}@media (width>=900px){.nav{display:flex}.tabbar{display:none}main.page{padding:34px 24px 60px}}.stack{flex-direction:column;gap:14px;display:flex}.stack-lg{flex-direction:column;gap:24px;display:flex}.row{align-items:center;gap:12px;display:flex}.row.wrap{flex-wrap:wrap}.between{justify-content:space-between}.grid{gap:14px;display:grid}.grid-2{grid-template-columns:1fr}.grid-3,.grid-4{grid-template-columns:1fr 1fr}@media (width>=700px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}.card{background:linear-gradient(180deg, #ffffff06, transparent 40%), var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card.pad-lg{padding:24px}.card.hero{background:radial-gradient(700px 260px at 80% -60px, #f2b45a38, transparent 60%), radial-gradient(500px 220px at 0% 120%, #e4573f1f, transparent 60%), var(--panel);border-color:#f2b45a40}.card.warm{background:linear-gradient(180deg, #f2b45a1a, #f2b45a05), var(--panel);border-color:#f2b45a59}.card.danger{border-color:#e4573f59}.card-title{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.card-title h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:15px;font-family:var(--body);font-weight:700}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.divider{background:var(--line);height:1px;margin:6px 0}.stat{flex-direction:column;gap:2px;display:flex}.stat .label{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.stat .value{font-family:var(--display);font-size:40px;font-weight:900;line-height:.95}.stat .value.sm{font-size:30px}.stat .sub{color:var(--text-2);font-size:12px}.btn{border:1px solid var(--line-strong);background:var(--panel-2);color:var(--text);white-space:nowrap;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:15px;font-weight:600;transition:transform 80ms,background .15s,opacity .15s;display:inline-flex}.btn:hover{background:#2a2420}.btn:active{transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(160deg, var(--accent), var(--accent-deep));color:#1a1207;border-color:#0000;box-shadow:0 10px 26px #f2b45a47}.btn.primary:hover{filter:brightness(1.05)}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--text);background:#ffffff0d}.btn.danger{color:#ff9a88;border-color:#e4573f66}.btn.lg{border-radius:16px;padding:16px 22px;font-size:17px}.btn.sm{border-radius:10px;padding:7px 12px;font-size:13px}.btn.block{width:100%}.btn.icon{width:40px;height:40px;padding:10px}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--text-2);font-size:13px;font-weight:600}.field .hint{color:var(--muted);font-size:12px}.input,select.input,textarea.input{border:1px solid var(--line-strong);width:100%;color:var(--text);background:#00000040;border-radius:12px;outline:none;padding:12px 14px;font-size:16px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #f2b45a2e}.input.num{font-family:var(--display);text-align:center;letter-spacing:.04em;font-size:28px;font-weight:800}select.input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 20px),calc(100% - 14px);background-repeat:no-repeat;background-size:6px 6px;padding-right:36px}.stepper{grid-template-columns:44px 1fr 44px;align-items:center;gap:8px;display:grid}.stepper .btn.icon{width:44px;height:52px;font-size:22px;font-weight:700}.switch{cursor:pointer;align-items:center;gap:10px;display:inline-flex}.switch input{appearance:none;background:var(--panel-2);border:1px solid var(--line-strong);border-radius:999px;width:42px;height:24px;transition:background .15s;position:relative}.switch input:after{content:"";background:var(--muted);border-radius:50%;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:3px;left:3px}.switch input:checked{border-color:var(--accent);background:#f2b45a4d}.switch input:checked:after{background:var(--accent);transform:translate(18px)}.seg{border:1px solid var(--line);background:#0000004d;border-radius:12px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--muted);background:0 0;border:0;border-radius:9px;padding:8px 14px;font-size:14px;font-weight:600}.seg button.on{background:var(--panel-2);color:var(--text);box-shadow:0 2px 8px #0000004d}.error{color:#ff9a88;font-size:14px}.notice{background:#6fb3ff1a;border:1px solid #6fb3ff40;border-radius:12px;padding:10px 14px;font-size:14px}.notice.warn{background:#f2b45a1a;border-color:#f2b45a4d}.notice.ok{background:#5ccb8f1a;border-color:#5ccb8f4d}.pill{letter-spacing:.04em;color:var(--text-2);border:1px solid var(--line);background:#ffffff0f;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.pill.accent{color:var(--accent);background:#f2b45a24;border-color:#f2b45a4d}.pill.green{color:var(--green);background:#5ccb8f1f;border-color:#5ccb8f4d}.pill.red{color:#ff9a88;background:#e4573f1f;border-color:#e4573f4d}.pill.blue{color:var(--blue);background:#6fb3ff1f;border-color:#6fb3ff4d}.badge{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.badge .em{font-size:20px}.badge .nm{font-size:13px;font-weight:700}.badge .ct{color:var(--muted);font-size:12px}.badge.t3{background:linear-gradient(160deg,#f2b45a29,#f2b45a0a);border-color:#f2b45a66}.badge.t4{background:linear-gradient(160deg,#6fb3ff2e,#6fb3ff0a);border-color:#6fb3ff80}.badge.locked{opacity:.45;filter:grayscale()}.table-wrap{margin:0 -18px;padding:0 18px;overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:14px}.tbl th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:11px}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;padding:11px 10px}.tbl tr:last-child td{border-bottom:0}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:#ffffff08}.tbl tr.me td{background:#f2b45a12}.tbl td.r,.tbl th.r{text-align:right}.tbl .rank{font-family:var(--display);width:36px;color:var(--text-2);font-size:22px;font-weight:900}.tbl .rank.top{color:var(--accent)}.tbl .name{align-items:center;gap:10px;font-weight:600;display:flex}.tbl .pts{font-family:var(--display);font-size:22px;font-weight:900}.move{margin-left:6px;font-size:11px;font-weight:700}.frames{grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;display:grid}@media (width<=480px){.frames{gap:2px}.frame .marks{justify-content:center;gap:1px;min-height:14px;padding:2px 1px 0;font-size:10px}.frame .marks span{min-width:8px}.frame .cum{font-size:14px}.frame input{padding:7px 0;font-size:13px}.frames.edit .frame .cum{font-size:12px!important}}.frame{border:1px solid var(--line);text-align:center;background:#00000059;border-radius:8px;overflow:hidden}.frame .marks{min-height:18px;color:var(--text-2);justify-content:flex-end;gap:2px;padding:3px 4px 0;font-size:12px;font-weight:700;display:flex}.frame .marks span{min-width:12px}.frame .marks span.x{color:var(--accent)}.frame .marks span.sp{color:var(--green)}.frame .cum{font-family:var(--display);padding:0 0 4px;font-size:18px;font-weight:800}.frame.empty .cum{color:var(--line-strong)}.frame.tenth{grid-column:span 1}.frames.edit .frame{padding:0}.frame input{text-align:center;text-transform:uppercase;background:0 0;border:0;outline:none;width:100%;padding:8px 2px;font-size:15px;font-weight:700}.frame input:focus{background:#f2b45a1f}.frame .no{color:var(--muted);letter-spacing:.05em;padding-top:3px;font-size:10px}.spark{display:block}.progress{background:#ffffff12;border-radius:999px;height:8px;overflow:hidden}.progress>div{background:linear-gradient(90deg, var(--accent-deep), var(--accent));border-radius:999px;height:100%}.game-slot{border:1px dashed var(--line-strong);background:#0003;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:76px;display:flex}.game-slot.done{background:#f2b45a14;border-style:solid;border-color:#f2b45a66}.game-slot .lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.game-slot .sc{font-family:var(--display);font-size:32px;font-weight:900;line-height:1}.game-slot .hc{color:var(--muted);font-size:11px}.toast-wrap{z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 16px;display:flex;position:fixed;bottom:84px;left:0;right:0}.toast{pointer-events:auto;border:1px solid var(--line-strong);box-shadow:var(--shadow);background:#241f1a;border-radius:14px;max-width:420px;padding:12px 16px;font-weight:600;animation:.25s pop}.toast.ok{border-color:#5ccb8f80}.toast.err{border-color:#e4573f80}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}@media (width>=900px){.toast-wrap{bottom:28px}}.modal-back{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:70;background:#0009;place-items:end center;padding:0;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line-strong);width:100%;max-width:560px;padding:22px 20px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;max-height:92vh;animation:.22s rise;overflow:auto}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@media (width>=700px){.modal-back{place-items:center;padding:20px}.modal{border-radius:22px}}.celebrate{text-align:center;padding:10px 0 4px}.celebrate .big{font-family:var(--display);background:linear-gradient(180deg, #fff2d6, var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-size:96px;font-weight:900;line-height:.9}.celebrate .badges{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.shimmer{background:#ffffff0d;border-radius:12px;position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);animation:1.2s infinite shim;position:absolute;inset:0}@keyframes shim{0%{transform:translate(-100%)}to{transform:translate(100%)}}.spinner{border:2px solid #fff3;border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.landing-hero{text-align:center;padding:40px 0 20px}.landing-hero h1{text-transform:uppercase;font-size:clamp(54px,12vw,108px);line-height:.88}.landing-hero h1 span{color:var(--accent);display:block}.landing-hero p.lead{max-width:520px;color:var(--text-2);margin:18px auto 0;font-size:18px}.feature{align-items:flex-start;gap:14px;display:flex}.feature .ico{background:#f2b45a1f;border:1px solid #f2b45a40;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.feature h3{font-family:var(--body);margin-bottom:4px;font-size:16px;font-weight:700}.feature p{color:var(--text-2);font-size:14px}.lane{background:repeating-linear-gradient(90deg, var(--accent-deep) 0 26px, transparent 26px 34px);opacity:.35;border-radius:999px;height:6px}.hl{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.hl:last-child{border-bottom:0}.hl .v{font-family:var(--display);margin-left:auto;font-size:24px;font-weight:900}.photo-prev{object-fit:contain;background:#000;border-radius:12px;width:100%;max-height:260px}.tabs{gap:4px;padding-bottom:2px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:10px;padding:9px 14px;font-weight:600}.tabs button.on{background:var(--panel-2);border-color:var(--line-strong);color:var(--text)}.kv{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:8px 0;font-size:14px;display:flex}.kv:last-child{border-bottom:0}.kv b{font-family:var(--display);font-size:18px;font-weight:800}.list-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.list-row:last-child{border-bottom:0}.list-row.click{cursor:pointer}.list-row .grow{flex:1;min-width:0}.list-row .ttl{font-weight:600}.ellip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.center{text-align:center}.empty{text-align:center;color:var(--muted);padding:28px 12px}.empty .big{margin-bottom:8px;font-size:40px}
