:root{--bg:#0b2230;--panel:#0c222ed1;--panel-solid:#12303f;--line:#dcf0ff29;--text:#f4f1e6;--muted:#a9c3cc;--accent:#f0b54a;--accent-strong:#ffc766;--accent-ink:#2a1a06;--sea:#3fc0c8;--danger:#ef6a5a;--ok:#8fd07a;--radius:14px;--font:"Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit}.btn{border:1px solid var(--line);min-height:42px;color:var(--text);cursor:pointer;background:#ffffff12;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:8px 16px;transition:background .15s,transform .1s;display:inline-flex}.btn:hover{background:#ffffff24}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:700}.btn-primary:hover{background:var(--accent-strong)}.btn-icon{width:42px;padding:0}.btn-sm{min-height:32px;padding:4px 12px;font-size:.85rem}.panel{background:linear-gradient(160deg,#163a4adb,var(--panel) 55%);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px)saturate(1.2);backdrop-filter:blur(10px)saturate(1.2);border-top-color:#ffe6b447;box-shadow:0 8px 24px #000a1259,inset 0 1px #ffffff0f}.kbd{border:1px solid var(--line);text-align:center;background:#ffffff1a;border-radius:6px;min-width:1.6em;padding:1px 6px;font-size:.8em;display:inline-block}.sheet{z-index:30;flex-direction:column;width:calc(min(560px,100vw - 24px));max-height:calc(min(78vh,680px));animation:.22s cubic-bezier(.2,.9,.3,1.2) sheet-in;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sheet-head{justify-content:space-between;align-items:center;gap:8px;padding:14px 16px 8px;display:flex}.sheet-head h2{margin:0;font-size:1.15rem}.sheet-body{padding:4px 16px 16px;overflow:auto}.sheet>*{flex-shrink:0}.sheet>.sheet-body{flex:auto;min-height:0}.tabs{flex-wrap:wrap;gap:6px;padding:0 16px 8px;display:flex}.tab{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:.85rem}.tab.on{background:var(--accent);color:var(--accent-ink);border-color:#0000;font-weight:700}.row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;display:flex}.row:last-child{border-bottom:0}.row .grow{flex:1;min-width:0}.muted{color:var(--muted);font-size:.85rem}.icon{text-align:center;width:34px;font-size:1.5rem}.bar{background:#ffffff1f;border-radius:6px;height:6px;overflow:hidden}.bar>i{background:var(--sea);height:100%;display:block}@keyframes sheet-in{0%{opacity:0;transform:translate(-50%,-46%)scale(.96)}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}@media (pointer:coarse){.btn-sm,.tab{min-height:38px}}@media (width<=640px){.sheet{padding-bottom:env(safe-area-inset-bottom);border-bottom:0;border-radius:18px 18px 0 0;animation:.24s cubic-bezier(.2,.9,.3,1) sheet-up;inset:auto 0 0;transform:none;width:100%!important;max-height:calc(min(88dvh,88vh))!important}.sheet:before{content:"";background:#ffffff40;border-radius:999px;width:40px;height:4px;margin:8px auto 0;display:block}.sheet-head{padding:6px 14px}.sheet-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:4px 14px 14px}.tabs{scrollbar-width:none;flex-wrap:nowrap;padding:0 14px 8px;overflow-x:auto}.tab{flex:none}.row{flex-wrap:wrap}.row .grow{flex-basis:50%}}@media (height<=500px){.sheet{max-height:94dvh!important}}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}}@media (pointer:coarse){.experience .prompt.panel{display:none}}@media (prefers-reduced-motion:reduce){.sheet{animation:none!important}}.rest-a{animation:tap-rest-a var(--rest,.33s) linear;cursor:wait}.rest-b{animation:tap-rest-b var(--rest,.33s) linear;cursor:wait}@keyframes tap-rest-a{0%{opacity:.45;filter:saturate(.4)}to{opacity:1;filter:none}}@keyframes tap-rest-b{0%{opacity:.45;filter:saturate(.4)}to{opacity:1;filter:none}}
