@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(./be-vietnam-pro-vietnamese-400-normal-zlEY3-7j.woff2) format("woff2"),url(./be-vietnam-pro-vietnamese-400-normal-BdPyuduI.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(./be-vietnam-pro-latin-ext-400-normal-0slToPcK.woff2) format("woff2"),url(./be-vietnam-pro-latin-ext-400-normal-CAV9EJEJ.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(./be-vietnam-pro-latin-400-normal-b8ymZRaE.woff2) format("woff2"),url(./be-vietnam-pro-latin-400-normal-yim3LC58.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(./be-vietnam-pro-vietnamese-500-normal-TANtbk6n.woff2) format("woff2"),url(./be-vietnam-pro-vietnamese-500-normal-C-u96TJj.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(./be-vietnam-pro-latin-ext-500-normal-GzipT5gY.woff2) format("woff2"),url(./be-vietnam-pro-latin-ext-500-normal-Chf1C1N4.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(./be-vietnam-pro-latin-500-normal-BFUaPJDQ.woff2) format("woff2"),url(./be-vietnam-pro-latin-500-normal-CjE-N4Dw.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(./be-vietnam-pro-vietnamese-600-normal-CrdqsjGL.woff2) format("woff2"),url(./be-vietnam-pro-vietnamese-600-normal-BXI3hfff.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(./be-vietnam-pro-latin-ext-600-normal-Bb-tHBQ3.woff2) format("woff2"),url(./be-vietnam-pro-latin-ext-600-normal-BBmZhxSt.woff) format("woff");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(./be-vietnam-pro-latin-600-normal-2BKReCdn.woff2) format("woff2"),url(./be-vietnam-pro-latin-600-normal-xFlx60GF.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--surface: rgba(18, 20, 22, .62);--surface-hi: rgba(255, 255, 255, .06);--line: rgba(255, 255, 255, .08);--text: #f1eee8;--text-2: rgba(241, 238, 232, .64);--text-3: rgba(241, 238, 232, .4);--accent: #e2c27f;--bv: #58b98d;--ng: #6c9be0;--uoc: #e2a250;--hn: #ff6a4d;--cd: #4aa8ff;--font: "Be Vietnam Pro", system-ui, -apple-system, "Segoe UI", sans-serif;--r: 12px;--gap: 12px;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;background:#121416;color:var(--text);font:400 12.5px/1.45 var(--font);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}button:focus-visible,input:focus-visible{outline:1.5px solid var(--accent);outline-offset:2px}.hidden{display:none!important}#app{position:fixed;inset:0}#app canvas{display:block}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);box-shadow:0 8px 28px #00000047}#brand{position:fixed;top:calc(var(--gap) + env(safe-area-inset-top,0px));left:calc(var(--gap) + env(safe-area-inset-left,0px));z-index:5;display:flex;align-items:baseline;gap:10px;padding:9px 14px}#brand .name{font-weight:600;font-size:14px;letter-spacing:.1px}#brand .cap{color:var(--text-3);font-size:11.5px}#rail{position:fixed;left:calc(var(--gap) + env(safe-area-inset-left,0px));top:64px;z-index:5;padding:5px;display:flex;flex-direction:column;gap:2px}#rail .sep{height:1px;margin:4px 6px;background:var(--line)}.tool{position:relative;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--text-3);cursor:pointer;display:grid;place-items:center;transition:color .15s,background .15s}.tool svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.tool:hover{color:var(--text);background:var(--surface-hi)}.tool.on{color:var(--accent)}.tool .badge{position:absolute;right:2px;bottom:2px;min-width:11px;padding:0 2px;border-radius:3px;font-size:8px;font-weight:600;line-height:11px;text-align:center;color:#15130f;background:var(--accent)}#tip{position:fixed;z-index:30;pointer-events:none;padding:4px 8px;border-radius:6px;font-size:11.5px;white-space:nowrap;color:var(--text);background:#0c0d0eeb;border:1px solid var(--line)}#legend{position:fixed;left:62px;top:64px;z-index:5;padding:8px 12px;display:grid;gap:4px;font-size:11.5px;color:var(--text-2)}.sw{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:7px}.sw.bv{background:var(--bv)}.sw.ng{background:var(--ng)}.sw.uoc{background:var(--uoc)}#side{position:fixed;top:calc(var(--gap) + env(safe-area-inset-top,0px));right:calc(var(--gap) + env(safe-area-inset-right,0px));width:252px;max-height:calc(100% - 110px);z-index:5;display:flex;flex-direction:column;overflow:hidden}.tabs{display:flex;gap:2px;padding:4px;border-bottom:1px solid var(--line)}.tab{flex:1;border:0;background:transparent;color:var(--text-3);padding:6px 8px;border-radius:7px;cursor:pointer;font-size:12px;font-weight:500}.tab:hover{color:var(--text)}.tab.on{color:var(--text);background:var(--surface-hi)}.side-tg{flex:none;width:28px;border:0;background:transparent;border-radius:7px;cursor:pointer;display:grid;place-items:center;color:var(--text-3)}.side-tg:hover{color:var(--text);background:var(--surface-hi)}.side-tg svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transform:rotate(180deg);transition:transform .2s}#side.collapsed .side-tg svg{transform:none}#side.collapsed .pane{display:none}#side.collapsed .tabs{border-bottom:0}#side.collapsed .tab.on{background:transparent;color:var(--text-3)}.pane{overflow:auto;padding:4px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}.place{width:100%;display:flex;align-items:center;gap:9px;padding:6px 8px;border:0;border-radius:7px;background:transparent;text-align:left;cursor:pointer}.place:hover,.place.on{background:var(--surface-hi)}.place .src{flex:none;width:6px;height:6px;border-radius:50%}.place .txt{min-width:0;display:flex;flex-direction:column}.place .nm{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.place .mt{font-size:10.5px;color:var(--text-3)}.place .h{margin-left:auto;white-space:nowrap;flex:none;font-size:11.5px;color:var(--text-2);font-variant-numeric:tabular-nums}.pw{padding:8px 8px 10px;display:grid;gap:10px}.pw .kpis{display:grid;grid-template-columns:1fr 1fr;gap:6px}.pw .kpi{padding:8px 10px;border-radius:8px;background:var(--surface-hi)}.pw .kpi b{display:block;font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}.pw .kpi span{font-size:10.5px;color:var(--text-3)}.pw .lab{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:-4px}.pw .seg{display:flex;padding:2px;border-radius:8px;background:var(--surface-hi)}.pw .seg button{flex:1;border:0;padding:5px;border-radius:6px;background:transparent;color:var(--text-3);cursor:pointer;font-size:11.5px}.pw .seg button.on{color:#15130f;background:var(--accent);font-weight:500}.pw .line{display:flex;align-items:center;gap:8px;color:var(--text-2);font-size:12px}.pw .line i{width:14px;height:2px;border-radius:1px}.pw table{width:100%;border-collapse:collapse;font-size:12px}.pw td{padding:4px 0;color:var(--text-2);border-top:1px solid var(--line)}.pw td:last-child{text-align:right;color:var(--text);font-variant-numeric:tabular-nums}#info{position:fixed;top:calc(var(--gap) + env(safe-area-inset-top,0px));right:calc(var(--gap) + env(safe-area-inset-right,0px));width:252px;z-index:6;padding:14px 14px 12px}#info .kind{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}#info h2{margin:3px 24px 10px 0;font-size:16px;font-weight:600;line-height:1.25;text-wrap:balance}#info dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:5px 12px;font-size:12px}#info dt{color:var(--text-3)}#info dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}#info dd .sw{margin:0 6px 0 0}#info p{margin:10px 0 0;padding-top:9px;border-top:1px solid var(--line);color:var(--text-2);font-size:11.5px;line-height:1.5}#infoClose{position:absolute;top:8px;right:8px;width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--text-3);font-size:17px;cursor:pointer}#infoClose:hover{color:var(--text);background:var(--surface-hi)}#compass{position:fixed;right:calc(var(--gap) + env(safe-area-inset-right,0px));bottom:calc(var(--gap) + env(safe-area-inset-bottom,0px));z-index:5;width:40px;height:40px;padding:3px;border-radius:50%;cursor:pointer}#compass svg{width:100%;height:100%}#compass .n{fill:var(--hn)}#compass .s{fill:#f1eee88c}#dock{position:fixed;left:50%;bottom:calc(var(--gap) + env(safe-area-inset-bottom,0px));transform:translate(-50%);width:min(660px,calc(100% - 140px));z-index:5;padding:8px 12px 8px 8px;display:flex;align-items:center;gap:12px}#play{flex:none;width:32px;height:32px;border:0;border-radius:8px;background:var(--surface-hi);color:var(--text);display:grid;place-items:center;cursor:pointer}#play svg{width:14px;height:14px;fill:currentColor}#play.on{background:var(--accent);color:#15130f}.when{flex:none;display:flex;flex-direction:column;gap:1px}#timeTxt{font-size:17px;font-weight:500;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:.2px}#date{width:104px;padding:0;border:0;background:transparent;color:var(--text-3);font:400 10.5px var(--font)}.track{position:relative;flex:1;min-width:0;height:32px}#trackBg{position:absolute;left:0;right:0;top:7px;height:4px;border-radius:2px;opacity:.9}#hour{position:absolute;left:0;right:0;top:0;width:100%;height:18px;margin:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}#hour::-webkit-slider-runnable-track{height:18px;background:transparent}#hour::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:3px;border-radius:50%;background:#fff;border:2px solid var(--accent);box-shadow:0 1px 4px #00000080}#hour::-moz-range-thumb{width:9px;height:9px;border-radius:50%;background:#fff;border:2px solid var(--accent)}#hour::-moz-range-track{background:transparent}#sunTxt{position:absolute;left:0;right:0;bottom:0;font-size:10.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chips{flex:none;display:flex;gap:2px}.chips button{border:0;padding:5px 8px;border-radius:7px;background:transparent;color:var(--text-2);font-size:11.5px;cursor:pointer}.chips button:hover{color:var(--text);background:var(--surface-hi)}.lbl{display:flex;flex-direction:column;align-items:center;pointer-events:none;transform:translateY(-50%)}.lbl .t{padding:2px 7px;border-radius:6px;font:500 11.5px var(--font);color:#fff;white-space:nowrap;background:#0e0f108c}.lbl .stem{width:1px;height:14px;background:#ffffff8c}.lbl .dot{width:4px;height:4px;border-radius:50%;background:#fff}.lbl.minor .t{font-size:10.5px;color:#ffffffd9;background:#0e0f1066}#loading{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#121416;transition:opacity .7s}.ld{width:220px;display:grid;gap:14px;text-align:center}.ld-title{font-size:20px;font-weight:600;letter-spacing:.2px}.ld-bar{height:2px;border-radius:1px;overflow:hidden;background:#ffffff14}.ld-bar i{display:block;width:0;height:100%;background:var(--accent);transition:width .3s}#ldtxt{font-size:11px;color:var(--text-3)}.ld{width:min(320px,calc(100vw - 48px))}.ld-row{display:flex;align-items:center;gap:10px}.ld-row .ld-bar{flex:1}#ldpct{font-size:12px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;min-width:36px;text-align:right}#ldlist{list-style:none;margin:0;padding:0;display:grid;gap:5px;text-align:left;font-size:11.5px}#ldlist li{display:flex;align-items:center;gap:8px;color:var(--text-3);opacity:.55;transition:opacity .2s,color .2s}#ldlist li .n{flex:1}#ldlist li .ms{font-variant-numeric:tabular-nums;font-size:10.5px}#ldlist li .st{width:12px;height:12px;flex:none;border-radius:50%;border:1.5px solid currentColor;box-sizing:border-box}#ldlist li.on{opacity:1;color:var(--text-2)}#ldlist li.on .st{border-color:var(--accent);border-right-color:transparent;animation:ldspin .8s linear infinite}#ldlist li.done{opacity:.9;color:var(--text-2)}#ldlist li.done .st{border:0;background:var(--accent);-webkit-mask:radial-gradient(circle,#000 60%,transparent 62%)}#ldlist li.done .st:after{content:""}@keyframes ldspin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){#ldlist li.on .st{animation:none}}@media (max-width: 860px){#side,.chips{display:none}#dock{width:calc(100% - 2 * var(--gap) - 52px);left:var(--gap);transform:none}}@media (max-width: 480px){#brand .cap{display:none}#rail,#legend{top:auto;bottom:72px}#info{left:var(--gap);right:var(--gap);width:auto;top:auto;bottom:64px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.lbl.inner .t{background:#7a1a12d9;color:#f6dd9a;font-size:11px}.inner-note{margin-top:8px;font-size:12px;line-height:1.45;color:#ffffffd1}.inner-note.muted{color:#ffffff8c}#info .srcsw{margin-top:10px;padding-top:9px;border-top:1px solid var(--line);display:grid;gap:6px}#info .srcsw .lab{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}#info .srcsw .seg{display:flex;padding:2px;border-radius:8px;background:var(--surface-hi)}#info .srcsw .seg button{flex:1;border:0;padding:5px 4px;border-radius:6px;background:transparent;color:var(--text-2);cursor:pointer;font-size:11.5px}#info .srcsw .seg button.on{color:#15130f;background:var(--accent);font-weight:500}.peel{position:fixed;right:calc(var(--gap) + env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.peel.hidden{display:none}.peel .pl-row{display:flex;gap:14px}.peel .pl-c{display:flex;flex-direction:column;align-items:center;gap:8px}.peel .pl-t{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}.peel .pl-n{font-size:11px;font-weight:500;color:var(--text-2);text-align:center;max-width:150px;line-height:1.3}.peel .pl-s{font-size:10px;color:var(--text-3);text-align:center;max-width:150px;line-height:1.3}.peel .pl-s:empty{display:none}.peel input[type=range]{writing-mode:vertical-lr;direction:rtl;width:22px;height:180px;accent-color:var(--accent);cursor:ns-resize}#info:not(.hidden)~.peel,body:has(#info:not(.hidden)) .peel{right:calc(var(--gap) + 264px + env(safe-area-inset-right,0px))}#info{max-height:calc(100% - 2 * var(--gap) - 72px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}#info .ctl{margin-top:12px;padding:10px 11px 9px;border-radius:10px;background:var(--surface-hi);border:1px solid var(--line);display:grid;gap:2px}#info .ctl .lab{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-bottom:2px}#info .ctl .rg{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px;font-size:12px;color:var(--text-2);cursor:pointer}#info .ctl output{color:var(--text);font-size:11.5px;font-variant-numeric:tabular-nums}#info .ctl input[type=range]{width:100%;margin:4px 0 0;accent-color:var(--accent);cursor:ew-resize}#info .ctl .pl-s{font-size:10.5px;line-height:1.35;color:var(--text-3);margin-top:2px}#info .ctl .pl-s:empty{display:none}#info p.inner-note{font-size:11.5px;color:var(--text-2)}.kp-ui{color:var(--text);font-family:var(--font);transition:opacity .3s ease}.kp-ui.hidden{display:none}.kp-hide{display:none!important}.kp-dock{position:fixed;left:50%;transform:translate(-50%);bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:7;display:flex;flex-direction:column;max-width:calc(100vw - 24px);user-select:none;-webkit-user-select:none}.kp-head{display:flex;align-items:baseline;gap:10px;padding:8px 12px 7px;border-bottom:1px solid var(--line)}.kp-title{font-weight:600;font-size:13px;letter-spacing:.1px;color:var(--text)}.kp-count{font-size:11.5px;color:var(--text-3);font-variant-numeric:tabular-nums;margin-right:auto}.kp-head{padding-right:8px}.kp-off{white-space:nowrap;flex:none;display:flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--text-2);font:inherit;font-size:11.5px;font-weight:500;cursor:pointer;align-self:center}.kp-off:hover{color:var(--accent);border-color:var(--accent)}.kp-off svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.kp-x{width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--text-3);font-size:16px;cursor:pointer;align-self:center}.kp-x:hover{color:var(--text);background:var(--surface-hi)}.kp-body{display:flex;align-items:stretch;gap:6px;padding:6px}.kp-cards{display:grid;grid-template-columns:repeat(4,104px);gap:4px}.kp-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 4px 7px;border:0;border-radius:9px;background:transparent;color:var(--text);font:inherit;cursor:grab;touch-action:none;transition:background .15s,transform .15s}.kp-card:hover{background:var(--surface-hi);transform:translateY(-1px)}.kp-card:active{cursor:grabbing}.kp-card.dragging{background:var(--surface-hi);transform:none}.kp-thumb{display:block;width:92px;height:58px;filter:drop-shadow(0 4px 5px rgba(0,0,0,.35));transition:transform .3s cubic-bezier(.3,1.6,.5,1)}.kp-card:hover .kp-thumb{transform:rotate(-4deg) translateY(-1px)}.kp-name{font-weight:600;font-size:12.5px;line-height:1.2;color:var(--text);white-space:nowrap}.kp-desc{font-size:10.5px;line-height:1.2;color:var(--text-3);white-space:nowrap}.kp-tools{display:flex;flex-direction:column;justify-content:center;gap:2px;padding-left:6px;border-left:1px solid var(--line)}.kp-tool{min-width:88px;padding:7px 10px;border:0;border-radius:7px;background:transparent;color:var(--text-3);font:inherit;font-size:12px;font-weight:500;text-align:left;cursor:pointer;touch-action:manipulation;display:flex;align-items:center;gap:8px;transition:color .15s,background .15s}.kp-tool svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.kp-tool:hover{color:var(--text);background:var(--surface-hi)}.kp-tool[aria-pressed=true]{color:var(--accent);background:var(--surface-hi)}.kp-ui button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.kp-far{display:none}.kp-dock.far .kp-body{opacity:.4;pointer-events:none;filter:saturate(.4)}.kp-dock.far .kp-far{display:block;padding:2px 12px 10px;font-size:12.5px;font-weight:500;color:var(--accent);text-align:center}.kp-hint{position:fixed;left:50%;transform:translate(-50%);bottom:calc(226px + env(safe-area-inset-bottom,0px));z-index:7;padding:5px 12px;border-radius:999px;font-size:12px;color:var(--text);background:var(--surface);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;pointer-events:none;transition:opacity .8s ease}.kp-hint.gone{opacity:0}.kp-toast{position:fixed;left:50%;top:calc(var(--gap) + env(safe-area-inset-top,0px));transform:translate(-50%,-8px);z-index:40;padding:7px 14px;border-radius:999px;background:#0c0d0eeb;color:var(--text);border:1px solid var(--line);font:500 12.5px var(--font);box-shadow:0 8px 28px #00000047;opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease;white-space:nowrap;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis}.kp-toast.show{opacity:1;transform:translate(-50%)}@media (max-width: 740px){.kp-dock{left:12px;right:12px;transform:none;max-width:none;bottom:calc(118px + env(safe-area-inset-bottom,0px))}.kp-body{flex-direction:column}.kp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.kp-thumb{width:100%;max-width:92px;height:auto;aspect-ratio:92/58}.kp-tools{flex-direction:row;padding:6px 0 0;border-left:0;border-top:1px solid var(--line)}.kp-tool{flex:1;min-width:0;justify-content:center}.kp-hint{bottom:calc(348px + env(safe-area-inset-bottom,0px))}}@media (max-width: 420px){.kp-desc{display:none}.kp-hint{font-size:11px}}@media (prefers-reduced-motion: reduce){.kp-card,.kp-thumb,.kp-toast,.kp-ui{transition:none}}.ok-ui{color:var(--text);font-family:var(--font)}.ok-ui.hidden{display:none}.ok-dock{position:fixed;left:50%;transform:translate(-50%);bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:7;width:min(344px,calc(100vw - 24px));user-select:none;-webkit-user-select:none}.ok-head{display:flex;align-items:baseline;gap:10px;padding:8px 8px 7px 12px;border-bottom:1px solid var(--line)}.ok-title{font-weight:600;font-size:13px}.ok-sub{font-size:11.5px;color:var(--text-3);margin-right:auto}.ok-x{width:24px;height:24px;border:0;border-radius:6px;background:transparent;color:var(--text-3);font-size:16px;cursor:pointer;align-self:center}.ok-x:hover{color:var(--text);background:var(--surface-hi)}.ok-off{white-space:nowrap;flex:none;display:flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--text-2);font:inherit;font-size:11.5px;font-weight:500;cursor:pointer;align-self:center}.ok-off:hover{color:var(--accent);border-color:var(--accent)}.ok-off svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.ok-body{display:grid;gap:7px;padding:9px 12px 11px}.ok-lab{font-size:10px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.ok-seg{display:flex;padding:2px;border-radius:8px;background:var(--surface-hi)}.ok-seg button{flex:1;border:0;padding:6px 4px;border-radius:6px;background:transparent;color:var(--text-2);cursor:pointer;font:inherit;font-size:12px}.ok-seg button:hover{color:var(--text)}.ok-seg button.on{color:#15130f;background:var(--accent);font-weight:500}.ok-body input[type=range]{width:100%;margin:2px 0 4px;accent-color:var(--accent);cursor:ew-resize}.ok-shake{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-hi);color:var(--text);font:inherit;font-size:12.5px;font-weight:500;cursor:pointer}.ok-shake:hover{border-color:var(--accent);color:var(--accent)}.ok-shake svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.ok-far{display:none}.ok-dock.far .ok-body{opacity:.4;pointer-events:none;filter:saturate(.4)}.ok-dock.far .ok-far{display:block;padding:0 12px 10px;font-size:12.5px;font-weight:500;color:var(--accent);text-align:center}.ok-ui button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (max-width: 740px){.ok-dock{bottom:calc(118px + env(safe-area-inset-bottom,0px))}}.ok-sub{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.ok-lab .may-v{float:right;text-transform:none;letter-spacing:0;color:var(--text-2);font-variant-numeric:tabular-nums}#intro{position:fixed;inset:0;z-index:60;overflow:hidden;background:transparent;color:#ece9e2;font-family:Be Vietnam Pro,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-user-select:none;user-select:none;touch-action:none}#intro .in-paper{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 45%,#14171b,#0b0d10 62%,#07080a)}#intro .in-plan,#intro .in-tips{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform,opacity}#intro .in-tips{mix-blend-mode:screen}#intro .in-head{position:absolute;left:0;right:0;top:22px;text-align:center;pointer-events:none}#intro .in-t{font-size:15px;font-weight:500;letter-spacing:.42em;text-transform:uppercase;padding-left:.42em}#intro .in-s{margin-top:6px;font-size:11px;letter-spacing:.08em;color:#ece9e280}#intro .in-deco{position:absolute;inset:0;pointer-events:none}#intro .in-north{position:absolute;width:40px;height:40px}#intro .in-north svg{width:100%;height:100%;fill:none;stroke:#ece9e28c;stroke-width:1}#intro .in-north .f{fill:#ece9e2bf;stroke:none}#intro .in-north text{fill:#ece9e2b3;stroke:none;font-size:6px;text-anchor:middle;font-family:inherit}#intro .in-scale{position:absolute;height:18px;font-size:9.5px;color:#ece9e28c;font-variant-numeric:tabular-nums}#intro .in-scale i{position:absolute;left:0;top:0;height:4px;border:1px solid rgba(236,233,226,.5);border-top:0;background:linear-gradient(90deg,rgba(236,233,226,.55) 50%,transparent 50%)}#intro .in-scale span{position:absolute;top:6px;transform:translate(-50%);white-space:nowrap}#intro .in-scale span:first-of-type{transform:none}#intro .in-load{position:absolute;left:50%;bottom:30px;width:min(360px,calc(100vw - 32px));transform:translate(-50%);padding:12px 16px 10px;border-radius:12px;background:#1012159e;border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 40px #00000059;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}#intro .in-load.gone{opacity:0;transform:translate(-50%,14px);pointer-events:none}#intro .in-row{display:flex;align-items:baseline;justify-content:space-between}#intro .in-lab{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#ece9e28c}#intro .in-pct{font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}#intro .in-bar{position:relative;height:1px;margin:8px 0;background:#ffffff1a;overflow:hidden}#intro .in-bar i{position:absolute;inset:0;background:#e2c27f;transform-origin:0 50%;transform:scaleX(0);transition:transform .35s ease}#intro .in-win{height:66px;overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(transparent,#000 22%,#000 78%,transparent)}#intro .in-steps{list-style:none;margin:0;padding:0;transition:transform .45s cubic-bezier(.2,.7,.2,1)}#intro .in-steps li{height:22px;display:flex;align-items:center;gap:9px;font-size:11.5px;color:#ece9e2e6;transition:opacity .4s ease}#intro .in-steps .n{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#intro .in-steps .ms{font-size:10.5px;color:#ece9e273;font-variant-numeric:tabular-nums}#intro .in-steps .st{flex:none;width:7px;height:7px;border-radius:50%;border:1px solid rgba(236,233,226,.35)}#intro .in-steps li.done .st{border-color:#e2c27f;background:#e2c27f}#intro .in-steps li.on .st{border-color:#e2c27f;animation:inPulse 1s ease-in-out infinite}@keyframes inPulse{50%{box-shadow:0 0 0 4px #e2c27f2e}}#intro .in-hint{position:absolute;left:50%;bottom:40px;transform:translate(-50%,10px);display:flex;align-items:center;gap:12px;padding:9px 16px;border-radius:999px;font-size:12px;color:#ece9e2c7;white-space:nowrap;background:#1012158c;border:1px solid rgba(255,255,255,.07);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity .7s ease .25s,transform .7s cubic-bezier(.2,.7,.2,1) .25s}#intro .in-hint.show{opacity:1;transform:translate(-50%)}#intro .in-hint b{font-weight:500;color:#ece9e2}#intro .in-hint em{font-style:normal;margin:0 8px;opacity:.4}#intro .in-hint.nudge{animation:inNudge .5s ease}@keyframes inNudge{30%{transform:translate(-50%,-6px)}60%{transform:translate(-50%,2px)}}#intro .in-mouse{position:relative;flex:none;width:13px;height:19px;border:1.2px solid rgba(236,233,226,.7);border-radius:7px}#intro .in-mouse i{position:absolute;left:50%;top:4px;width:2px;height:4px;margin-left:-1px;border-radius:1px;background:#e2c27f;animation:inWheel 1.6s ease-in-out infinite}@keyframes inWheel{0%{transform:translateY(4px);opacity:0}30%{opacity:1}to{transform:translateY(-2px);opacity:0}}@media (max-width: 600px){#intro .in-hint{font-size:11px;white-space:normal;text-align:left;width:calc(100vw - 48px)}#intro .in-hint em{display:none}#intro .in-head{top:14px}#intro .in-t{font-size:13px}}#intro.in-light{color:#1d1c1a}#intro.in-light .in-paper{background:radial-gradient(120% 90% at 50% 45%,#fbf9f4,#f2eee5 70%,#e9e4d8)}#intro.in-light .in-s,#intro.in-light .in-lab,#intro.in-light .in-steps .ms,#intro.in-light .in-scale{color:#1d1c1a8c}#intro.in-light .in-load,#intro.in-light .in-hint{background:#ffffffb3;border-color:#00000014;box-shadow:0 10px 30px #00000014}#intro.in-light .in-steps li,#intro.in-light .in-hint,#intro.in-light .in-hint b{color:#1d1c1a}#intro.in-light .in-north svg{stroke:#1d1c1a8c}#intro.in-light .in-north .f,#intro.in-light .in-north text{fill:#1d1c1abf}#intro.in-light .in-scale i{border-color:#1d1c1a80;background:linear-gradient(90deg,rgba(29,28,26,.55) 50%,transparent 50%)}#intro.in-light .in-tips{mix-blend-mode:multiply}#brand,#rail,#side,#info,#compass,#dock{transition:opacity .7s ease}body.intro-on #brand,body.intro-on #rail,body.intro-on #side,body.intro-on #info,body.intro-on #compass,body.intro-on #dock,body.intro-on #tip,body.intro-on #legend{opacity:0!important;pointer-events:none!important}html:not(.nointro) #loading{display:none!important}
