:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--lab-bg:#f3f4f2;--lab-bg-accent:#f3f4f2;--lab-panel:#fafaf8;--lab-sider:#e9ebe8;--lab-ink:#2e3330;--lab-muted:#5e6661;--lab-line:#d9ddd8;--lab-line-soft:#e6e9e5;--lab-accent:#3f6a58;--lab-accent-soft:#e6efe9;--lab-accent-strong:#2d4f41;--lab-warn-bg:#eef0ea;--lab-danger:#a05048;--lab-code-keyword:#245a86;--lab-code-string:#8a4038;--lab-code-comment:#5e6661;--lab-code-number:#8a5a20;--lab-code-title:#2d4f41;--lab-code-type:#3f6a58;--lab-code-meta:#5c4a78;--lab-shadow:0 1px 0 #28302a08, 0 10px 28px #28302a0a;--lab-stage:#e7f0ea;--lab-stage-raise:#f5faf7;--lab-stage-idle:#d5e4db;--lab-stage-ink:#1f2a26;--lab-stage-muted:#4a5c54;--lab-stage-line:#7fa090;--lab-stage-accent:#3f6a58;--lab-stage-bright:#2d4f41;--lab-stage-done:#5f8f78;--lab-stage-plinth-l:#b7cec1;--lab-stage-plinth-r:#a3bdb0;--lab-stage-plinth-done-l:#5f8f78;--lab-stage-plinth-done-r:#4e7a66;--lab-stage-shadow-fill:#24302c;--lab-stage-shadow-opacity:.14;--lab-stage-road-shadow-opacity:.1;--lab-stage-dust:#2d4f4147;--lab-stage-ember:var(--lab-stage-bright);--lab-stage-on-done:#f5faf7;--lab-stage-glow:color-mix(in srgb, var(--lab-stage-accent) 50%, transparent);--lab-radius:10px;--lab-sider-w:300px;--lab-aside-w:248px;--lab-header:52px;--lab-measure:42rem;--lab-text-caption:12px;--lab-text-small:13px;--lab-text-ui:14px;--lab-text-body:15px;--lab-text-h2:16px;--lab-text-page:22px;--lab-text-h1:24px;--font-sans:"PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--lab-bg:#1c1f1d;--lab-bg-accent:#1c1f1d;--lab-panel:#252925;--lab-sider:#212421;--lab-ink:#d0d5d1;--lab-muted:#919a94;--lab-line:#343a36;--lab-line-soft:#2b2f2c;--lab-accent:#8fb5a0;--lab-accent-soft:#2a3530;--lab-accent-strong:#c5ddd0;--lab-warn-bg:#2a2c26;--lab-danger:#d4a39a;--lab-code-keyword:#9ec3e0;--lab-code-string:#e7b8b0;--lab-code-comment:#919a94;--lab-code-number:#e4c98a;--lab-code-title:#c5ddd0;--lab-code-type:#8fb5a0;--lab-code-meta:#d4c0e4;--lab-shadow:0 12px 32px #00000047;--lab-stage:#1a2420;--lab-stage-raise:#2e4036;--lab-stage-idle:#26382f;--lab-stage-ink:#d0d5d1;--lab-stage-muted:#919a94;--lab-stage-line:#6d8b7c;--lab-stage-accent:#8fb5a0;--lab-stage-bright:#c5ddd0;--lab-stage-done:#3f6a58;--lab-stage-plinth-l:#24362d;--lab-stage-plinth-r:#1a2822;--lab-stage-plinth-done-l:#2d4f41;--lab-stage-plinth-done-r:#243f34;--lab-stage-shadow-fill:#000;--lab-stage-shadow-opacity:.45;--lab-stage-road-shadow-opacity:.28;--lab-stage-dust:#c5ddd073;--lab-stage-ember:var(--lab-stage-bright);--lab-stage-on-done:#c5ddd0;--lab-stage-glow:color-mix(in srgb, var(--lab-stage-bright) 65%, transparent)}.app-shell{background:0 0;min-height:100vh}.app-sider{z-index:30;inset:0 auto 0 0;overflow:hidden;width:var(--lab-sider-w)!important;max-width:var(--lab-sider-w)!important;min-width:var(--lab-sider-w)!important;background:var(--lab-sider)!important;border-right:1px solid var(--lab-line)!important;height:100vh!important;position:fixed!important}.app-sider .ant-layout-sider-children{flex-direction:column;height:100%;display:flex}.app-content{min-width:0;width:calc(100% - var(--lab-sider-w));margin-left:var(--lab-sider-w);flex-direction:column;flex:auto;min-height:100vh;display:flex}.app-header{z-index:20;height:var(--lab-header);background:color-mix(in srgb, var(--lab-panel) 92%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--lab-line);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand nav tools";align-items:center;column-gap:28px;padding:0 22px;display:grid;position:sticky;top:0}.brand-lockup{color:inherit;grid-area:brand;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brand-mark{background:var(--lab-accent);width:26px;height:26px;color:var(--lab-panel);letter-spacing:.02em;border-radius:7px;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex}html[data-theme=dark] .brand-mark{color:var(--lab-bg)}.brand-text{flex-direction:column;min-width:0;line-height:1.1;display:flex}.brand-text strong{font-size:14px;font-weight:600}.brand-text small{color:var(--lab-muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.top-nav{grid-area:nav;justify-content:center;align-items:center;gap:4px;min-width:0;height:100%;display:flex;overflow:auto hidden}.top-nav-item{display:inline-flex}.top-nav-btn.ant-btn{box-sizing:border-box;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:6px;min-width:36px;font-weight:500;line-height:1;transition:background-color .15s,color .15s;box-shadow:none!important;color:var(--lab-muted)!important;background:0 0!important;border:0!important;height:36px!important;padding-inline:12px!important;display:inline-flex!important}.top-nav-btn.ant-btn .ant-btn-icon{justify-content:center;align-items:center;line-height:0;display:inline-flex;margin-inline-end:0!important}.top-nav-btn.ant-btn.ant-btn-variant-text:not(:disabled):hover,.top-nav-btn.ant-btn.ant-btn-variant-text:not(:disabled):active,.top-nav-btn.ant-btn:hover,.top-nav-btn.ant-btn:focus-visible,.top-nav-btn.ant-btn:active{box-shadow:none!important;color:var(--lab-ink)!important;background:var(--lab-line-soft)!important;border:0!important}.top-nav-btn.ant-btn.is-active,.top-nav-btn.ant-btn.is-active.ant-btn-variant-text:not(:disabled):hover,.top-nav-btn.ant-btn.is-active.ant-btn-variant-text:not(:disabled):active,.top-nav-btn.ant-btn.is-active:hover,.top-nav-btn.ant-btn.is-active:focus-visible,.top-nav-btn.ant-btn.is-active:active{box-shadow:none!important;color:var(--lab-accent-strong)!important;background:var(--lab-accent-soft)!important;border:0!important}.header-tools{grid-area:tools;align-items:center;gap:2px;display:flex}.header-tools .ant-btn.ant-btn-text{width:36px;height:36px;color:var(--lab-muted);padding:0}.header-tools .ant-btn.ant-btn-text:hover,.header-tools .ant-btn.ant-btn-text:focus-visible{color:var(--lab-ink)!important;background:var(--lab-line-soft)!important}.header-count{color:var(--lab-muted);font-variant-numeric:tabular-nums;padding-right:4px;font-size:13px}.workspace{grid-template-columns:minmax(0, 1fr) var(--lab-aside-w);column-gap:40px;width:100%;margin:0;padding:0 36px 0 32px;display:grid}.workspace.is-workbench{grid-template-columns:minmax(0,1fr)}.workspace{flex:1;align-items:start;min-height:0}.app-main{width:auto;min-width:0;padding:36px 0 88px}.app-main:focus,.app-main:focus-visible{outline:none}.app-aside{width:auto;top:var(--lab-header);max-height:calc(100vh - var(--lab-header));padding:36px 0 48px;position:sticky;overflow:auto}.sider-head{border-bottom:1px solid var(--lab-line-soft);padding:16px 14px 12px}.sider-label{letter-spacing:.12em;text-transform:uppercase;color:var(--lab-muted);margin-bottom:10px;font-size:11px;font-weight:600;display:block}.track-switch{grid-template-columns:1fr 1fr;display:grid}.track-switch.is-triple{grid-template-columns:1fr 1fr 1fr}.track-switch{background:color-mix(in srgb, var(--lab-ink) 5%, transparent);border-radius:10px;gap:2px;padding:3px}.track-switch .ant-btn{height:32px;font-weight:500;box-shadow:none!important;color:var(--lab-muted)!important;background:0 0!important;border:0!important;border-radius:8px!important}.track-switch .ant-btn-primary{font-weight:600;background:var(--lab-panel)!important;color:var(--lab-ink)!important;box-shadow:0 1px 2px #1c191514!important}.study-mode{margin-top:8px}.ant-menu-item-disabled:has(.menu-hold){display:none}.path-menu.ant-menu{flex:1;padding:8px 8px 20px;overflow:auto;background:0 0!important;border-inline-end:0!important}.path-menu.ant-menu .ant-menu-submenu-title,.path-menu.ant-menu .ant-menu-item{border-radius:8px!important;width:100%!important;margin-inline:0!important}.path-menu.ant-menu>.ant-menu-submenu>.ant-menu-submenu-title{font-weight:600;height:36px!important;margin-block:2px 0!important;padding-inline:10px 28px!important;line-height:36px!important}.path-menu.ant-menu>.ant-menu-submenu>.ant-menu-sub{padding-block-start:2px!important}.path-menu.ant-menu .ant-menu-sub>.ant-menu-submenu+.ant-menu-submenu{margin-block-start:6px!important}.path-menu.ant-menu .ant-menu-sub .ant-menu-submenu>.ant-menu-submenu-title{min-height:30px;color:var(--lab-muted);white-space:normal;font-size:13px;font-weight:600;background:0 0!important;height:auto!important;margin-block:0!important;padding-block:5px!important;padding-inline:18px 28px!important;line-height:1.35!important}.path-menu.ant-menu .ant-menu-sub .ant-menu-submenu-active>.ant-menu-submenu-title,.path-menu.ant-menu .ant-menu-sub .ant-menu-submenu-selected>.ant-menu-submenu-title{color:var(--lab-ink)!important;background:0 0!important}.path-menu.ant-menu .ant-menu-item{white-space:normal;height:auto!important;margin-block:0!important;padding-block:5px!important;padding-inline-end:10px!important;line-height:1.4!important}.path-menu.ant-menu .ant-menu-sub .ant-menu-sub .ant-menu-item{padding-inline-start:26px!important}.path-menu.ant-menu .ant-menu-sub .ant-menu-sub{background:0 0!important;padding-block:0!important}.path-menu.ant-menu .ant-menu-sub.ant-menu-inline{background:0 0!important}.path-menu.ant-menu .ant-menu-item-selected{box-shadow:inset 2px 0 0 var(--lab-accent);font-weight:600;background:var(--lab-accent-soft)!important;color:var(--lab-accent-strong)!important}.path-menu.ant-menu .ant-menu-submenu-selected>.ant-menu-submenu-title{color:var(--lab-ink)}.path-menu.ant-menu a.group-label,.path-menu.ant-menu a.lesson-label{color:inherit;text-decoration:none}.group-label{align-items:center;gap:8px;width:100%;display:flex}.group-index{color:var(--lab-muted);font-variant-numeric:tabular-nums;width:1.4em;font-size:12px}.group-name{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.section-label{align-items:center;gap:8px;width:100%;display:flex}.section-label span:first-child{flex:1;min-width:0}.group-count{color:var(--lab-muted);font-variant-numeric:tabular-nums;letter-spacing:.02em;flex:none;margin-inline-end:2px;font-size:12px}.section-label .group-count{margin-inline-end:0}.lesson-label{white-space:normal;grid-template-columns:5px minmax(0,1fr) auto;align-items:start;column-gap:6px;font-size:13px;line-height:1.4;display:grid}.lesson-label .since-chip{color:var(--lab-muted);letter-spacing:.02em;white-space:nowrap;margin-top:.15em;font-size:11px}.lesson-status{background:var(--lab-line);border-radius:50%;width:5px;height:5px;margin-top:.55em}.ant-menu-item-selected .lesson-status,.lesson-status.is-done{background:var(--lab-accent)}.sider-foot{border-top:1px solid var(--lab-line-soft);padding:12px 16px 16px}.sider-foot a{color:var(--lab-ink);margin-top:6px;font-size:13px;text-decoration:none;display:block}.sider-foot a:hover{color:var(--lab-accent)}.aside-stack{flex-direction:column;gap:22px;display:flex}.aside-block+.aside-block{border-top:1px solid var(--lab-line-soft);padding-top:22px}.aside-label{letter-spacing:.12em;text-transform:uppercase;color:var(--lab-muted);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.aside-block h5{letter-spacing:.02em;margin:0 0 8px;font-size:13px;font-weight:650}.progress-figure{font-family:var(--font-serif);font-size:var(--lab-text-page);letter-spacing:-.03em;margin:2px 0 6px;line-height:1}.text-link{text-align:left;width:100%;color:var(--lab-accent-strong);cursor:pointer;background:0 0;border:0;padding:5px 0;font-size:13.5px;line-height:1.45;text-decoration:none;display:block}.text-link:hover{color:var(--lab-accent)}.aside-block .ant-progress{margin-top:12px}.aside-block .ant-progress-rail,.aside-block .ant-progress-track{border-radius:99px;height:4px!important}.aside-block .ant-progress-rail{background:var(--lab-line)!important}.mobile-only{display:none!important}@media (width<=1180px){.app-header{column-gap:12px;padding-inline:16px}.brand-text small,.nav-label-wide{display:none}.top-nav{justify-content:flex-end;gap:0}.top-nav-btn.ant-btn{width:36px;min-width:36px;padding-inline:0!important}.top-nav .ant-badge-count{top:2px;margin-top:0!important;inset-inline-end:2px!important;transform:none!important}}@media (width<=1100px){.workspace{grid-template-columns:1fr;padding-inline:28px}.app-aside{display:none}}@media (width<=860px){.app-sider{display:none!important}.app-content{width:100%;max-width:100%;margin-left:0}.app-header{padding-top:env(safe-area-inset-top,0px);min-height:var(--lab-header);grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"menu brand nav tools";height:auto}.mobile-only{grid-area:menu;display:inline-flex!important}.app-main{padding:24px 0 56px}}@media (width<=720px){.workspace{padding-inline:16px}.brand-text,.header-count{display:none}.app-header{column-gap:8px;padding-inline:10px}.top-nav{scrollbar-width:none;justify-content:flex-start;gap:0;overflow-x:auto}.top-nav::-webkit-scrollbar{display:none}.top-nav>.ant-badge,.top-nav-item{flex:32px;justify-content:center;min-width:32px;max-width:40px;display:flex}.top-nav-btn.ant-btn{width:100%;min-width:0;height:40px!important;padding-inline:0!important}.header-tools .ant-btn.ant-btn-text,.mobile-only.ant-btn{width:40px;height:40px}}.page-kicker{color:var(--lab-muted);letter-spacing:.04em;align-items:center;gap:10px;margin-bottom:14px;font-size:12px;display:inline-flex}.page-kicker .dot{background:var(--lab-line);border-radius:50%;width:3px;height:3px}.page-kicker a{color:inherit}.hero-title,.page-title{font-family:var(--font-serif);letter-spacing:-.025em;color:var(--lab-ink);font-weight:650;line-height:1.18}.hero-title{font-size:var(--lab-text-page);margin:0 0 12px}.page-title,.ant-typography.page-title{margin:0 0 12px;font-size:var(--lab-text-h2)!important}.hero-lead{font-size:var(--lab-text-body);color:var(--lab-muted);max-width:46rem;margin:0 0 22px;line-height:1.7}.path-strip{border:1px solid var(--lab-line-soft);background:var(--lab-panel);color:var(--lab-ink);border-radius:12px;margin:0 0 18px;padding:14px 16px;font-size:14px;line-height:1.6}.path-strip p{margin:0 0 8px}.path-strip .path-strip-kicker{color:var(--lab-muted);letter-spacing:.04em;flex-wrap:wrap;gap:8px 14px;font-size:12px;display:flex}.path-strip .path-strip-label{color:var(--lab-muted);margin-top:10px;font-size:12px}.path-strip ul{margin:0 0 10px;padding-left:1.2em}.path-strip a{color:var(--lab-accent-strong);text-decoration:none}.path-stage{perspective:1200px;width:100%;min-width:0;max-width:52rem;margin-inline:auto;container-type:inline-size}.path-world .path-map-scroll{border:1px solid var(--lab-line);background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--lab-accent) 12%, transparent), transparent 42%), var(--lab-panel);border-bottom:0;border-radius:16px 16px 0 0;max-height:none;margin:0;overflow:visible}.path-atlas .path-map-scroll,.path-scenes .path-map-scroll{border-bottom:1px solid var(--lab-line);border-radius:16px}.path-scenes .path-map-scroll+.atlas-kicker,.path-scenes .encounter-meters+.atlas-kicker{margin-top:22px}.deliver-step{padding:8px 4px 16px}.deliver-step .ink-seal{text-align:left;width:100%}.path-scenes .encounter-pause{margin-top:12px}.path-world .here{border-radius:0 0 16px 16px;margin:0 0 18px}.path-world .here-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:8px;display:flex}.path-world .here-row .hero-title{margin:0}.path-world .here-row .encounter-go{flex:none}.path-world .quest-board.is-place{margin-top:4px}.path-world .quest-board.is-place>.quest-lane{margin-bottom:8px}.place-steps{flex-wrap:wrap;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.place-steps button{border:1px solid var(--lab-line-soft);min-height:36px;color:var(--lab-ink);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:baseline;gap:6px;padding:6px 12px;line-height:1.35;display:inline-flex}.place-steps button span{color:var(--lab-muted);font-variant-numeric:tabular-nums;font-weight:650}.place-steps button.is-on{border-color:var(--lab-accent);background:var(--lab-accent-soft);color:var(--lab-accent-strong)}.place-steps button.is-on span{color:inherit}.place-preview{color:var(--lab-ink);margin:0 0 12px;line-height:1.5}.current-task{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:12px;margin:0 0 16px;padding:14px 16px 12px}.current-task p{margin:0 0 8px}.current-task h2,.current-task h3{margin:0 0 6px}.current-task h3{margin-top:14px}.current-task-lead{color:var(--lab-muted)}.current-task-kicker{color:var(--lab-muted);font-size:var(--lab-text-caption);letter-spacing:.04em;margin:0 0 2px}.current-task-note{color:var(--lab-muted);font-size:var(--lab-text-small)}.current-task-block,.current-task-lab,.current-task-leave{margin-top:12px}.current-task button{border:1px solid var(--lab-line);color:var(--lab-ink);cursor:pointer;background:0 0;border-radius:8px;padding:6px 10px}.current-task button[aria-pressed=true]{border-color:var(--lab-accent);background:var(--lab-accent-soft)}.current-task-switch,.current-task-checks,.current-task-actions,.choice-list{gap:8px;margin:12px 0;display:grid}.choice-list button{text-align:left;border:1px solid var(--line,#00000029);color:inherit;background:0 0;border-radius:10px;padding:10px 12px}.choice-list button.is-right{border-color:var(--ink,currentColor)}.choice-list button.is-wrong{opacity:.55}.current-task-score,.current-task-leave>div{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}.current-task-actions,.current-task-switch{flex-direction:column;align-items:stretch}.current-task-option{text-align:left;align-items:baseline;gap:10px;display:flex}.current-task-option-time{color:var(--lab-muted);font-variant-numeric:tabular-nums;flex:0 0 4.5em}.current-task-option[aria-pressed=true] .current-task-option-time{color:var(--lab-accent-strong)}.current-task-facts{grid-template-columns:4.5em minmax(0,1fr);gap:6px 12px;margin:10px 0 0;display:grid}.current-task-facts dt{color:var(--lab-muted)}.current-task-facts dd{margin:0}.current-task-checks{flex-direction:column;align-items:stretch}.current-task-checks button{text-align:left}.current-task-explained{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.current-task-explained small{color:var(--lab-muted);font-size:var(--lab-text-caption);line-height:1.4}.current-task-answer{margin-top:12px}.current-task-answer summary,.current-task-more summary{cursor:pointer}.current-task-answer p{white-space:pre-wrap;margin-top:8px}.current-task-more{margin-top:8px}.current-task-more summary{color:var(--lab-muted);font-size:var(--lab-text-small)}.current-task-leave button:hover{color:var(--lab-ink)}.current-task-leave{border-top:1px solid var(--lab-line-soft);padding-top:8px}.current-task-leave button{color:var(--lab-muted);border-color:#0000}.current-task-draft{margin-top:12px;display:block}.current-task button:focus-visible{outline:1px solid var(--lab-accent);outline-offset:3px}.current-task-pause{border:1px solid var(--lab-line);border-radius:8px;margin:8px 0;padding:8px 10px}@media (width<=720px){.current-task button{min-height:44px}.current-task-facts{grid-template-columns:1fr;gap:2px}.current-task-facts dd{margin-bottom:8px}}.current-task textarea,.current-task-command{width:100%;margin-top:4px;display:block}.current-task-command{border:1px solid var(--lab-line);background:var(--lab-bg);color:var(--lab-ink);border-radius:8px;padding:8px 10px;font-size:13px;overflow-x:auto}.path-stage .hero-title{margin-bottom:6px}.path-stage .hero-lead{margin-bottom:12px}.path-jumps{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.path-jumps button{background:var(--lab-sider);color:var(--lab-ink);cursor:pointer;border:0;border-radius:999px;padding:6px 12px}.path-continue{color:var(--lab-muted);font-size:var(--lab-text-small);margin:4px 0 20px}.encounter{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:12px;margin:0 0 16px;padding:16px 16px 12px}.encounter-kicker{color:var(--lab-muted);font-size:var(--lab-text-caption);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px;display:flex}.encounter-goal,.encounter-note,.encounter-settle,.path-fold-lead{color:var(--lab-muted);margin:0 0 12px;line-height:1.5}.encounter-settle{color:var(--lab-ink)}.ability-strip{margin-bottom:16px}.ability-kicker{color:var(--lab-muted);font-size:var(--lab-text-small);letter-spacing:.04em;margin:0 0 4px}.ability-goal{color:var(--lab-ink);margin:0 0 12px;font-size:1.05rem;font-weight:650;line-height:1.45}.ability-note{color:var(--lab-muted);font-size:var(--lab-text-small);margin:0 0 10px;line-height:1.45}.gate-verify{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:12px;margin:0 0 18px;padding:14px 16px}.gate-verify h2{margin:0 0 10px;font-size:1.05rem}.gate-verify-list{gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.gate-verify-list li{color:var(--lab-muted);flex-wrap:wrap;justify-content:space-between;gap:6px 12px;font-size:.92rem;line-height:1.4;display:flex}.gate-verify-face{color:var(--lab-ink);font-weight:600}.gate-verify-face.is-pending{color:var(--lab-muted)}.gate-verify-face.is-passed{color:var(--lab-accent-strong,var(--lab-accent))}.encounter-meters{gap:8px;margin:0 0 14px;display:grid}.encounter-meter{color:var(--lab-ink);font-size:var(--lab-text-small);grid-template-columns:auto 1fr;align-items:center;gap:4px 12px;display:grid}.encounter-meter>span:nth-child(2){color:var(--lab-muted);justify-self:end}.encounter-meter .encounter-track{grid-column:1/-1}.encounter-track{background:var(--lab-sider);border-radius:999px;height:4px;display:block;overflow:hidden}.encounter-track span{border-radius:inherit;background:var(--lab-accent);height:100%;transition:width .7s cubic-bezier(.22,1,.36,1);display:block}.encounter-actions,.encounter-pause{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.encounter-actions{margin-bottom:10px}.encounter-actions button,.encounter-pause button{background:var(--lab-sider);min-height:44px;color:var(--lab-ink);cursor:pointer;border:0;border-radius:999px;padding:6px 14px}.encounter-go{background:var(--lab-accent-strong)!important;color:var(--lab-panel)!important}.encounter-go:disabled{cursor:default;opacity:.72}.encounter-pause{color:var(--lab-muted);font-size:var(--lab-text-small)}.encounter-pause details{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.encounter-pause summary{cursor:pointer;list-style:none}.encounter-pause summary::-webkit-details-marker{display:none}.encounter-pause button{background:0 0;min-height:36px;padding:4px 8px}.encounter-side{color:var(--lab-ink);flex-direction:column;gap:2px;margin:0 0 12px;text-decoration:none;display:flex}.encounter-side small{color:var(--lab-muted)}.path-fold-lead{padding:12px 14px 0}.path-fold .path-map-scroll,.path-fold .quest-board{margin:12px 14px 14px}@keyframes encounter-settle-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:no-preference){.path-stop.is-here{box-shadow:0 0 0 4px color-mix(in srgb, var(--lab-accent) 28%, transparent)}.encounter-settle{animation:.7s cubic-bezier(.22,1,.36,1) encounter-settle-in}}.path-fold{scroll-margin-top:calc(var(--lab-header) + 12px);border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:12px;margin:0 0 16px}.path-fold summary{cursor:pointer;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.path-fold summary span{font-weight:650}.path-fold summary small{color:var(--lab-muted);font-size:var(--lab-text-small);line-height:1.45}.path-fold[open] summary{border-bottom:1px solid var(--lab-line-soft)}@media (width<=720px){.path-jumps button,.path-side-tabs button,.path-fold summary,.quest-filters button,.quest-node,.quest-card button{min-height:44px}}.path-fold .current-task,.path-fold .path-sides{border:0;border-radius:0;margin:0}.path-fold-wait{color:var(--lab-muted);margin:0;padding:12px 14px}.path-sides{margin-top:0;padding:12px 14px 14px}.path-sides h2{margin:0;font-size:1.05rem}.path-sides-lead,.path-side p,.path-side li{color:var(--lab-muted);font-size:.92rem;line-height:1.55}.path-sides-lead{margin:6px 0 0}.path-side-tabs{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.path-side-tabs button{border:1px solid var(--lab-line);color:var(--lab-ink);cursor:pointer;background:0 0;border-radius:8px;padding:6px 10px}.path-side-tabs button[aria-selected=true]{border-color:var(--lab-accent);background:var(--lab-accent-soft)}.quest-board{flex-direction:column;gap:16px;margin:8px 0 28px;display:flex}.quest-map,.quest-lane,.quest-card,.quest-seal{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:12px}.quest-map,.quest-lane{scroll-margin-top:calc(var(--lab-header) + 12px);padding:12px 14px 14px}.quest-map-lead,.quest-note,.quest-card p,.quest-facts dd{color:var(--lab-muted);font-size:.92rem;line-height:1.55}.quest-lane h2,.quest-card h3,.quest-seal-title{margin:0 0 6px;font-size:1.05rem}.quest-filters,.quest-nodes,.quest-cards,.quest-stages,.quest-rewards{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.quest-filters button,.quest-node,.quest-card button,.quest-mark input{border:1px solid var(--lab-line);color:var(--lab-ink);background:0 0;border-radius:8px}.quest-filters button,.quest-node,.quest-card button{cursor:pointer;text-align:left;padding:8px 10px}.quest-filters button[aria-pressed=true],.quest-node[aria-current=true],.quest-node[aria-pressed=true]{border-color:var(--lab-accent);background:var(--lab-accent-soft)}.quest-node{flex-direction:column;gap:2px;min-width:9.5rem;max-width:16rem;display:flex}.quest-node.is-side{border-style:dashed}.quest-node.is-boss{border-width:2px}.quest-node-kind,.quest-seal-kicker{color:var(--lab-accent-strong);font-size:var(--lab-text-small)}.quest-node-kind,.quest-card-head h3{align-items:center;gap:4px;display:inline-flex}.quest-icon{flex:none}.quest-node-state{color:var(--lab-muted);font-size:var(--lab-text-small)}.quest-cards{align-items:stretch}.quest-cards>li{flex:16rem}.quest-card{padding:12px}.quest-facts{grid-template-columns:4.5rem 1fr;gap:4px 8px;margin:8px 0;display:grid}.quest-facts dt{font-size:var(--lab-text-small)}.quest-mark{flex-direction:column;gap:4px;margin:8px 0;font-size:.92rem;display:flex}.quest-mark input{padding:8px}.quest-card button:disabled{cursor:not-allowed;opacity:.55}.quest-rewards{margin-top:8px}.quest-rewards li{background:var(--lab-sider);font-size:var(--lab-text-small);border-radius:999px;padding:4px 8px}.quest-seal{margin-top:12px;padding:14px;animation:.64s quest-seal-in}.quest-seal ul{margin:8px 0 0;padding-left:1.2rem}.quest-notice{margin:0}.quest-fold{border:1px solid var(--lab-line);background:linear-gradient(180deg, #ffffff59, transparent 28px), var(--lab-panel);box-shadow:inset 0 1px 0 #ffffff73, 0 8px 0 var(--lab-sider);border-radius:12px;margin-top:10px}.quest-fold summary{cursor:pointer;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;list-style:none;display:flex}.quest-fold summary::-webkit-details-marker{display:none}.quest-fold summary span:first-of-type{font-weight:650}.quest-chevron{flex:none;transition:transform .18s}.quest-fold[open]>summary .quest-chevron{transform:rotate(180deg)}.quest-fold .quest-progress,.quest-fold .quest-cards{margin:0 14px 14px}.quest-card-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.quest-card-head h3{margin-right:auto}.quest-card.is-locked{opacity:.72}.quest-card.is-starred{border-color:var(--lab-accent)}.quest-card.is-unlocking{animation:.72s quest-unlock}.quest-diff{background:var(--lab-sider);font-size:var(--lab-text-caption);border-radius:999px;padding:2px 8px;display:inline-block;box-shadow:inset 0 -1px #0000001f}.quest-diff.is-加压,.quest-diff.is-挑战{color:var(--lab-danger)}.quest-stars{color:var(--lab-muted);gap:2px;display:inline-flex}.quest-stars svg.is-on{color:var(--lab-accent-strong)}.quest-progress{color:var(--lab-muted);font-size:var(--lab-text-caption);font-variant-numeric:tabular-nums;grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.quest-progress-track{background:color-mix(in srgb, var(--lab-ink) 12%, transparent);border-radius:999px;height:2px;display:block;overflow:hidden}.quest-progress-track>span{border-radius:inherit;background:var(--lab-ink);height:100%;display:block}.quest-rewards .is-preview{opacity:.72}.quest-rewards .is-earned{box-shadow:inset 0 -2px #00000014}@keyframes quest-unlock{0%{box-shadow:0 0 0 0 var(--lab-accent)}to{box-shadow:0 0 0 10px #0000}}@media (width<=720px){.quest-nodes,.quest-cards{flex-direction:column}.quest-node,.quest-cards>li{width:100%;max-width:none}}@keyframes quest-seal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.path-side{border:1px solid var(--lab-line);border-radius:12px;margin:0;padding:12px 14px}.path-side h3{margin:0 0 4px;font-size:1rem}.path-side ul{margin:8px 0;padding-left:1.15rem}.path-side-links{flex-wrap:wrap;gap:4px 10px;margin-top:2px;display:flex}.path-side-links a{color:var(--lab-accent-strong,var(--lab-accent))}.path-side-objective{color:inherit;margin:0 0 4px;font-size:.98rem;line-height:1.55}.path-side-when,.path-side-step,.path-side-evidence,.path-side-hold{margin:6px 0 0}.path-fold-mark{border:1px solid var(--lab-line-soft);background:var(--lab-panel,transparent);border-radius:10px;gap:10px;margin:0 14px 14px;padding:12px 14px;display:grid}.path-fold-mark p{color:var(--lab-muted);margin:0;line-height:1.5}.path-fold-mark button{border:1px solid var(--lab-line);background:var(--lab-accent-soft,transparent);color:inherit;font:inherit;cursor:pointer;border-radius:8px;justify-self:start;padding:8px 14px}.path-fold-mark button:disabled{opacity:.55;cursor:not-allowed}.path-map-scroll{scroll-margin-top:calc(var(--lab-header) + 12px);overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-width:thin;max-height:min(70svh,100svh - 200px);margin:4px 0 8px;overflow:auto}.path-map{position:relative}.campaign{width:100%;height:100%;display:block;overflow:visible}.campaign-road,.campaign-road-shadow,.campaign-walk,.campaign-gleam,.campaign-arrow{fill:none;stroke-linecap:round;stroke-linejoin:round}.campaign-road-shadow{stroke:var(--lab-stage-shadow-fill);stroke-width:16px;opacity:var(--lab-stage-road-shadow-opacity)}.campaign-road{stroke:color-mix(in srgb, var(--lab-stage-accent) 62%, transparent);stroke-width:2px;stroke-dasharray:1.5 8}.campaign.is-quiet-road .campaign-road{stroke:color-mix(in srgb, var(--lab-stage-line) 75%, transparent)}.campaign-walk{stroke:var(--lab-stage-accent);stroke-width:11px;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--lab-stage-accent) 70%, transparent))}.campaign-gleam{stroke:var(--lab-stage-bright);stroke-width:2.4px;stroke-dasharray:.02 .98;opacity:.7;animation:3.8s linear infinite campaign-gleam}.campaign-arrow{fill:var(--lab-stage-bright);stroke:none}@keyframes campaign-gleam{to{stroke-dashoffset:-1px}}.plinth-shadow{fill:var(--lab-stage-shadow-fill);opacity:var(--lab-stage-shadow-opacity)}.plinth.is-here .plinth-shadow{opacity:calc(var(--lab-stage-shadow-opacity) + .16)}.plinth-side-l,.plinth-side-r,.plinth-top{stroke-linejoin:round}.plinth-side-l{fill:var(--lab-stage-plinth-l);stroke:var(--lab-stage-line);stroke-width:1.15px}.plinth-side-r{fill:var(--lab-stage-plinth-r);stroke:var(--lab-stage-line);stroke-width:1.15px}.plinth-top{fill:var(--lab-stage-idle);stroke:var(--lab-stage-line);stroke-width:1.5px}.plinth.is-live:not(.is-done) .plinth-top,.plinth.is-here:not(.is-done) .plinth-top{fill:var(--lab-stage-raise);stroke:var(--lab-stage-bright);stroke-width:1.9px}.plinth.is-done .plinth-top{fill:var(--lab-stage-done);stroke:var(--lab-stage-bright)}.plinth.is-done .plinth-side-l{fill:var(--lab-stage-plinth-done-l);stroke:var(--lab-stage-accent)}.plinth.is-done .plinth-side-r{fill:var(--lab-stage-plinth-done-r);stroke:var(--lab-stage-line)}.plinth.is-done .plinth-num{fill:var(--lab-stage-on-done)}.plinth.is-live .plinth-num,.plinth.is-here .plinth-num{fill:var(--lab-stage-ink)}.plinth-gem{fill:var(--lab-stage-accent);stroke:var(--lab-stage-bright);stroke-width:1px;filter:drop-shadow(0 0 4px color-mix(in srgb, var(--lab-stage-accent) 80%, transparent))}.plinth-num{font-family:var(--font-serif);fill:var(--lab-stage-ink);font-size:13px;font-weight:560}.atlas-lead{margin:0 0 18px}.atlas-title{font-family:var(--font-serif,Georgia, serif);color:var(--lab-ink);margin:0 0 6px;font-size:clamp(1.45rem,2.4vw,1.85rem);font-weight:650;line-height:1.2}.atlas-blurb{max-width:36rem;color:var(--lab-muted);margin:0;font-size:.95rem;line-height:1.5}.skill-lead{padding:4px 0 8px;position:relative}.skill-lead:after{content:"";background:linear-gradient(90deg, color-mix(in srgb, var(--lab-accent) 85%, transparent), color-mix(in srgb, var(--lab-accent) 20%, transparent));width:min(12rem,42%);height:2px;box-shadow:0 0 18px color-mix(in srgb, var(--lab-accent) 55%, transparent);border-radius:999px;margin-top:16px;display:block}.skill-lead .atlas-title{font-size:var(--lab-text-h2);letter-spacing:0;color:var(--lab-ink);font-weight:600}.skill-lead-kicker{color:color-mix(in srgb, var(--lab-accent) 72%, var(--lab-muted));font-size:var(--lab-text-caption);letter-spacing:0;margin:0 0 6px;font-weight:600}.skill-lead-blurb{max-width:28rem;color:color-mix(in srgb, var(--lab-ink) 72%, var(--lab-muted));font-size:var(--lab-text-ui);margin-top:10px;line-height:1.55}.skill-lead-meter{color:var(--lab-ink);font-size:var(--lab-text-caption);flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0;font-weight:500;display:flex}.skill-lead-bar{background:color-mix(in srgb, var(--lab-line) 75%, transparent);border-radius:999px;width:4.8rem;height:4px;display:inline-block;overflow:hidden}.skill-lead-bar i{background:var(--lab-accent);height:100%;display:block}.skill-scenes{flex-wrap:wrap;gap:8px;margin:14px 0 0;display:flex}.skill-scene{border:1px solid color-mix(in srgb, var(--lab-accent) 35%, transparent);background:color-mix(in srgb, var(--lab-stage) 70%, transparent);min-height:32px;color:var(--lab-ink);font:inherit;font-size:var(--lab-text-caption);cursor:pointer;border-radius:999px;padding:4px 12px}.skill-scene[aria-pressed=true]{border-color:var(--lab-accent);background:color-mix(in srgb, var(--lab-accent) 22%, var(--lab-stage));color:var(--lab-ink);font-weight:600}.skill-scene-note{max-width:28rem;color:var(--lab-muted);margin:8px 0 0;font-size:.88rem;line-height:1.45}.skill-find{border:1px solid color-mix(in srgb, var(--lab-stage-accent) 45%, transparent);background:color-mix(in srgb, var(--lab-stage) 78%, transparent);width:min(100%,18rem);min-height:32px;color:var(--lab-stage-ink);font:inherit;font-size:var(--lab-text-caption);border-radius:999px;margin:18px 0 0;padding:4px 12px;display:block}.skill-find::placeholder{color:var(--lab-stage-muted)}.skill-find:focus-visible{outline:2px solid var(--lab-stage-accent);outline-offset:2px}.skill-find-note{color:var(--lab-stage-muted);margin:8px 0 0;font-size:.88rem}.skill-transfer{margin-top:0}.skill-transfer:not([open])>:not(summary){display:none}.skill-transfer summary{width:fit-content;color:var(--lab-stage-ink);font-size:var(--lab-text-caption);cursor:pointer}.skill-transfer-note,.skill-transfer-preview{color:var(--lab-stage-muted);font-size:var(--lab-text-caption);margin:8px 0 0}.skill-transfer-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.skill-transfer-actions .skill-scene{margin:0}.skill-transfer-actions .skill-scene:disabled{cursor:not-allowed;opacity:.45}.skill-crests{flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.skill-crest{border:1px solid color-mix(in srgb, var(--lab-line) 80%, transparent);min-width:5.4rem;color:var(--lab-muted);border-radius:14px;justify-items:center;gap:2px;margin:0;padding:8px 10px;display:grid}.skill-crest-mark{font-family:var(--font-serif,Georgia, serif);letter-spacing:.12em;font-size:.95rem;font-weight:650}.skill-crest-title{text-align:center;max-width:7rem;font-size:11px;line-height:1.35}.skill-crest[data-lit]{border-color:var(--lab-accent);color:var(--lab-ink);background:color-mix(in srgb, var(--lab-accent) 14%, transparent);box-shadow:0 0 18px color-mix(in srgb, var(--lab-accent) 42%, transparent)}.skill-cycle-note,.skill-advice{max-width:36rem;color:var(--lab-muted);margin:8px 0 0;font-size:.86rem;line-height:1.45}.skill-advice{color:var(--lab-ink)}.skill-trunks{grid-template-columns:repeat(auto-fit,minmax(7.2rem,1fr));gap:10px 14px;margin:12px 0 0;padding:0;list-style:none;display:grid}.skill-trunks li{margin:0}.skill-trunk-name{color:var(--lab-ink);font-size:.82rem;font-weight:650}.skill-trunk-count{color:var(--lab-muted);margin-top:2px;font-size:11px;display:block}.skill-trunk-meter,.skill-meter,.skill-lane-track{border-radius:999px;display:block;overflow:hidden}.skill-trunk-meter i,.skill-meter i,.skill-lane-track i{height:100%;display:block}.skill-trunk-meter{background:color-mix(in srgb, var(--lab-line) 70%, transparent);height:4px;margin-top:4px}.skill-trunk-meter i{background:var(--lab-accent)}.skill-meter{background:color-mix(in srgb, var(--lab-stage-line) 75%, transparent);opacity:0;grid-area:rank;width:2.4rem;height:2px;max-height:0;margin-top:0}.skill-meter i{background:var(--lab-stage-accent)}.skill-rank{color:var(--lab-stage-muted);font-size:var(--lab-text-caption);letter-spacing:0;text-align:left;grid-area:rank}.skill-relic[data-rank=read] .skill-rank,.skill-relic[data-rank=practiced] .skill-rank{color:var(--lab-stage-bright)}.skill-relic[data-rank=practiced] .skill-meter i{background:var(--lab-stage-bright)}.skill-lead-fire{background:var(--lab-accent);width:.55rem;height:.55rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--lab-accent) 28%, transparent), 0 0 14px color-mix(in srgb, var(--lab-accent) 75%, transparent);border-radius:50%;animation:1.8s ease-in-out infinite skill-ignite-pulse}@media (prefers-reduced-motion:reduce){.skill-lead-fire{animation:none}}.skill-relic[data-focus] .skill-open{outline:2px solid var(--lab-accent);outline-offset:3px}.skill-return{margin:0 0 12px}.skill-return a{border:1px solid color-mix(in srgb, var(--lab-accent) 40%, transparent);background:color-mix(in srgb, var(--lab-accent) 12%, transparent);max-width:100%;min-height:32px;color:var(--lab-ink);font-size:var(--lab-text-caption);border-radius:999px;align-items:center;padding:4px 12px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}@media (width<=860px){.skill-return{top:var(--lab-header);z-index:8;background:color-mix(in srgb, var(--lab-bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);margin-inline:-16px;padding:8px 16px;position:sticky}}.skill-board{scrollbar-width:none;scroll-snap-type:x proximity;border:1px solid color-mix(in srgb, var(--lab-stage-accent) 36%, var(--lab-line));background:radial-gradient(circle at 14% 0%, color-mix(in srgb, var(--lab-stage-accent) 16%, transparent), transparent 34%), linear-gradient(180deg, var(--lab-stage-raise) 0%, var(--lab-stage) 100%);height:auto;max-height:min(70vh,40rem);box-shadow:var(--lab-shadow);color:var(--lab-stage-ink);box-shadow:var(--lab-shadow), inset 0 1px 0 color-mix(in srgb, var(--lab-stage-raise) 80%, transparent);border-radius:18px;align-items:flex-start;gap:0;margin-top:16px;padding:16px 8px 12px;scroll-padding-inline:8px;display:flex;position:relative;overflow:auto hidden}.skill-board:before{content:"";pointer-events:none;background-image:radial-gradient(1.2px 1.2px at 6% 18%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 18% 62%, var(--lab-stage-dust), transparent), radial-gradient(1.4px 1.4px at 31% 28%, color-mix(in srgb, var(--lab-stage-accent) 55%, transparent), transparent), radial-gradient(1px 1px at 44% 78%, var(--lab-stage-dust), transparent), radial-gradient(1.2px 1.2px at 57% 16%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 69% 48%, color-mix(in srgb, var(--lab-stage-accent) 50%, transparent), transparent), radial-gradient(1.3px 1.3px at 81% 72%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 93% 34%, var(--lab-stage-dust), transparent);position:absolute;inset:0}.skill-board::-webkit-scrollbar{width:0;height:0;display:none}.skill-lane{--skill-stone:44px;--skill-gap:8px;z-index:1;scrollbar-width:none;flex:0 0 13rem;height:auto;min-height:0;max-height:calc(min(70vh,40rem) - 32px);margin:0;position:relative}.skill-lane::-webkit-scrollbar{width:0;height:0;display:none}.skill-lane{overscroll-behavior-y:contain;scroll-snap-align:start;box-shadow:none;background:0 0;border:0;border-radius:0;padding:4px 10px 8px;overflow:hidden auto}.skill-lane h2{color:var(--lab-stage-bright);font-size:var(--lab-text-small);letter-spacing:0;text-align:left;background:0 0;margin:0;padding:0;font-weight:650;line-height:1.35}.skill-lane[data-warm] h2{text-shadow:0 0 12px var(--lab-stage-glow)}.skill-lane[data-lane-lit] h2{color:var(--lab-stage-bright)}.skill-lane ol{z-index:1;gap:2px;margin:2px 0 8px;padding:0;list-style:none;display:grid;position:relative}.skill-lane-head{box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--lab-stage-line) 42%, transparent);justify-content:space-between;align-items:center;gap:8px;margin:0 0 12px;padding:0 0 8px;display:flex}.skill-lane-meter{color:var(--lab-stage-muted);font-size:var(--lab-text-caption);letter-spacing:0;background:0 0;flex-direction:row;align-items:center;gap:6px;margin:0;padding:0;display:flex}.skill-lane-track{background:color-mix(in srgb, var(--lab-stage-line) 75%, transparent);width:1.4rem;height:2px}.skill-lane-track i{background:var(--lab-stage-accent)}.skill-lane[data-lane-lit] .skill-lane-track i{background:var(--lab-stage-bright);box-shadow:0 0 8px var(--lab-stage-glow)}.skill-group{z-index:1;background:0 0;border-radius:0;margin:0;padding:0;position:relative}.skill-group:has(.skill-group-toggle):before{content:"";z-index:0;top:0;bottom:0;left:calc(var(--skill-stone) / 2);background:color-mix(in srgb, var(--lab-stage-line) 58%, transparent);pointer-events:none;width:2px;position:absolute;transform:translate(-50%)}.skill-group:first-of-type:has(.skill-group-toggle):before{top:calc(var(--skill-stone) / 2)}.skill-group:last-child[data-shut]:before{height:calc(var(--skill-stone) / 2);bottom:auto}.skill-group:has([data-live]):before{background:linear-gradient(to bottom, transparent, color-mix(in srgb, var(--lab-stage-accent) 80%, transparent) 16%, var(--lab-stage-bright) 50%, color-mix(in srgb, var(--lab-stage-accent) 80%, transparent) 84%, transparent)}.skill-group:not(:has(.skill-group-toggle)) ol{position:relative}.skill-group:not(:has(.skill-group-toggle)) ol:before{content:"";z-index:0;top:calc(8px + var(--skill-stone) / 2);bottom:calc(8px + var(--skill-stone) / 2);left:calc(var(--skill-stone) / 2);background:color-mix(in srgb, var(--lab-stage-line) 58%, transparent);pointer-events:none;width:2px;position:absolute;transform:translate(-50%)}.skill-group h3{z-index:1;color:var(--lab-stage-muted);margin:0 0 8px;margin-left:calc(var(--skill-stone) + var(--skill-gap));font-size:var(--lab-text-small);letter-spacing:0;text-align:left;font-weight:650;position:relative}.skill-group-toggle{z-index:1;grid-template-columns:var(--skill-stone) minmax(0, 1fr);width:100%;min-height:44px;color:var(--lab-stage-ink);font:inherit;font-size:var(--lab-text-small);letter-spacing:0;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-areas:"mark name";align-items:center;column-gap:8px;margin:0;padding:0 0 6px;font-weight:650;line-height:1.3;display:grid;position:relative}.skill-knot{width:var(--skill-stone);height:var(--skill-stone);grid-area:mark;place-items:center;display:grid}.skill-knot svg{width:var(--skill-stone);height:var(--skill-stone);display:block;overflow:visible}.skill-knot polygon{fill:color-mix(in srgb, var(--lab-stage-line) 16%, var(--lab-stage-raise));stroke:var(--lab-stage-line);stroke-width:1.6px}.skill-group-name{min-width:0;font-size:var(--lab-text-small);text-align:left;word-break:keep-all;grid-area:name}.skill-group-count{z-index:1;color:var(--lab-stage-muted);font-size:var(--lab-text-caption);font-variant-numeric:tabular-nums;letter-spacing:0;pointer-events:none;grid-area:mark;place-self:center;font-weight:600}.skill-group-toggle[data-lit] .skill-knot polygon{fill:color-mix(in srgb, var(--lab-stage-accent) 26%, var(--lab-stage-raise));stroke:var(--lab-stage-accent)}.skill-group-toggle[data-lit] .skill-group-count{color:var(--lab-stage-bright)}.skill-group-toggle[aria-expanded=true] .skill-knot polygon{fill:color-mix(in srgb, var(--lab-stage-accent) 22%, var(--lab-stage-raise));stroke:var(--lab-stage-accent)}.skill-group-toggle[data-live] .skill-knot polygon{fill:color-mix(in srgb, var(--lab-stage-accent) 46%, var(--lab-stage-raise));stroke:var(--lab-stage-bright)}.skill-group-toggle[data-live]:not([aria-expanded=true]) .skill-knot svg{filter:drop-shadow(0 0 8px var(--lab-stage-glow))}.skill-group-toggle[data-live] .skill-group-name,.skill-group-toggle[data-live] .skill-group-count,.skill-group-toggle[aria-expanded=true] .skill-group-name{color:var(--lab-stage-bright)}.skill-group-toggle:hover .skill-knot polygon,.skill-group-toggle:focus-visible .skill-knot polygon{stroke:var(--lab-stage-bright)}.skill-group-toggle:focus-visible{outline:2px solid var(--lab-stage-accent);outline-offset:2px}.skill-group-head{cursor:default}.skill-group-head h3{color:inherit;font-size:inherit;font-weight:inherit;margin:0}.skill-group-head:hover .skill-knot polygon{stroke:var(--lab-stage-line)}.skill-group-head[data-lit]:hover .skill-knot polygon{stroke:var(--lab-stage-accent)}.skill-group-head[data-live]:hover .skill-knot polygon{stroke:var(--lab-stage-bright)}.skill-group[data-shut]{margin-bottom:8px;padding-bottom:0}.skill-lane.is-bridge{align-self:start}.skill-relic{text-align:left;justify-items:stretch;padding-top:8px;display:grid;position:relative}.skill-open{grid-template-columns:var(--skill-stone) minmax(0, 1fr);width:100%;color:inherit;font:inherit;font-size:var(--lab-text-small);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:16px;grid-template-areas:"seal copy""seal rank";align-items:center;gap:0 8px;margin:0;padding:0;display:grid}.skill-open:focus-visible{outline:2px solid var(--lab-stage-accent);outline-offset:3px}div.skill-open{cursor:default}.skill-copy{grid-area:copy;min-width:0}.skill-copy h3{color:var(--lab-stage-ink);font-family:inherit;font-size:var(--lab-text-small);text-align:left;margin:0;font-weight:650;line-height:1.3}.skill-copy p,.skill-note,.skill-gate,.skill-empty{color:var(--lab-stage-muted);margin:0;font-size:12px;line-height:1.45}.skill-copy p{word-break:keep-all;opacity:0;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:9.6rem;max-height:0;display:-webkit-box;overflow:hidden}@media (hover:hover) and (pointer:fine){.skill-open:hover .skill-copy p,.skill-open:focus-visible .skill-copy p{opacity:1;max-height:2.6rem;margin-top:2px}}.skill-gate{max-width:calc(100% - var(--skill-stone) - var(--skill-gap));margin:1px 0 0 calc(var(--skill-stone) + var(--skill-gap));color:var(--lab-stage-muted);font:inherit;font-size:var(--lab-text-caption);text-align:left;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;cursor:pointer;background:0 0;border:0;padding:0;line-height:1.3;overflow:hidden}.skill-open:hover .skill-meter,.skill-open:focus-visible .skill-meter{opacity:1;max-height:2px;margin-top:4px}.skill-relic:hover .skill-gate,.skill-relic:focus-within .skill-gate{text-underline-offset:3px;text-decoration:underline}.skill-sigil{width:var(--skill-stone);height:var(--skill-stone);grid-area:seal;justify-self:center;overflow:visible}.skill-seal{fill:var(--lab-stage-idle);stroke:var(--lab-stage-line);stroke-width:1.5px}.skill-glyph{fill:none;stroke:var(--lab-stage-ink);stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.skill-orbit,.skill-gem{fill:none;stroke:#0000;stroke-width:1.2px}.skill-relic[data-light=lit] .skill-seal{fill:var(--lab-stage-done);stroke:var(--lab-stage-bright)}.skill-relic[data-light=lit] .skill-sigil{filter:drop-shadow(0 0 6px var(--lab-stage-glow))}.skill-relic[data-light=lit] .skill-glyph{stroke:var(--lab-stage-bright)}.skill-relic[data-light=research] .skill-seal{fill:color-mix(in srgb, var(--lab-stage-accent) 34%, var(--lab-stage-raise));stroke:var(--lab-stage-bright);stroke-width:2px}.skill-relic[data-light=research] .skill-sigil{filter:drop-shadow(0 0 8px var(--lab-stage-glow))}.skill-relic[data-light=research] .skill-copy h3,.skill-relic[data-rank=research] .skill-rank{color:var(--lab-stage-bright)}.skill-relic[data-light=research] .skill-rank{font-variant-numeric:tabular-nums;white-space:nowrap}.skill-relic[data-light=research] .skill-glyph{stroke:var(--lab-stage-bright)}.skill-relic[data-light=research] .skill-gem{fill:var(--lab-stage-bright);stroke:none}.skill-relic[data-light=research] .skill-orbit{stroke:var(--lab-stage-accent);stroke-dasharray:7 9}.skill-relic[data-light=ready] .skill-seal{fill:var(--lab-stage-idle);stroke:var(--lab-stage-accent)}.skill-relic[data-light=dim] .skill-sigil{opacity:.5}.skill-relic[data-light=dim] .skill-copy h3,.skill-relic[data-light=dim] .skill-copy p,.skill-relic[data-light=dim] .skill-rank{color:var(--lab-stage-muted)}.skill-relic[data-light=dim] .skill-rank{opacity:0;max-height:0;overflow:hidden}@media (hover:hover) and (pointer:fine){.skill-relic[data-light=dim] .skill-gate{opacity:0;max-height:0;margin-top:0;overflow:hidden}.skill-relic[data-light=dim]:hover .skill-rank,.skill-relic[data-light=dim]:hover .skill-gate,.skill-relic[data-light=dim] .skill-gate:focus-visible{opacity:1;max-height:1.6rem;margin-top:1px}}.skill-relic[data-boost] .skill-gem{fill:var(--lab-stage-accent);stroke:none}.skill-note{max-width:12rem;margin-top:4px}@media (prefers-reduced-motion:no-preference){.skill-relic{animation:.64s both skill-rise;animation-delay:calc(var(--i,0) * 40ms)}.skill-relic[data-light=research] .skill-orbit{transform-origin:50%;animation:7s linear infinite skill-orbit}.skill-relic[data-light=research] .skill-sigil{animation:1.1s ease-out skill-burn}.skill-crest[data-lit]{animation:1.2s ease-out skill-burn}.skill-open:hover .skill-sigil,.skill-open:focus-visible .skill-sigil,.skill-group-toggle:hover .skill-knot,.skill-group-toggle:focus-visible .skill-knot{transform:translateY(-3px)}}.skill-sigil,.skill-knot{transition:transform .18s}@keyframes skill-rise{0%{opacity:0;transform:translateY(10px)}}@keyframes skill-burn{50%{filter:drop-shadow(0 0 8px var(--lab-stage-glow)) drop-shadow(0 0 16px color-mix(in srgb, var(--lab-stage-accent) 65%, transparent))}}@keyframes skill-orbit{to{transform:rotate(1turn)}}@keyframes skill-ready{50%{stroke-width:2.2px}}@keyframes skill-stars{50%{opacity:.55}}@media (width>=961px){.path-stage.skill-page{flex-direction:column;max-width:min(100%,72rem);display:flex}.skill-lead{display:contents}.skill-lead:after{display:none}.skill-board{order:2}.skill-follow{order:3}.skill-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-top:14px;display:flex}.skill-controls .skill-scenes,.skill-controls .skill-find{margin:0}.skill-controls .skill-find{width:min(100%,16rem)}.skill-controls .skill-scene-note,.skill-controls .skill-find-note{flex-basis:100%;margin:0}.skill-follow{gap:10px;margin-top:14px;display:grid}.skill-crests,.skill-trunks{margin-top:0}.skill-trunks{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (width<=960px){.skill-page{flex-direction:column;display:flex}.skill-lead,.skill-controls{display:contents}.skill-find{top:var(--lab-header);z-index:6;background:color-mix(in srgb, var(--lab-bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:100%;position:sticky}.skill-follow{order:3;margin-top:8px}.skill-board{height:auto;max-height:clamp(22rem, 100dvh - var(--lab-header) - 15rem, 40rem);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;order:2;min-height:0;padding:14px 8px 12px}.skill-lane{max-height:calc(clamp(22rem, 100dvh - var(--lab-header) - 15rem, 40rem) - 28px);flex-basis:min(78vw,17.5rem);padding:4px 8px 8px}.skill-lane.is-bridge{flex-basis:min(70vw,14rem)}.skill-copy p{max-width:none}.skill-lead{padding-right:4px}.skill-lead-blurb{font-size:var(--lab-text-ui);order:3}}.skill-empty{margin:12px 0 0}.atlas-kicker{color:var(--lab-muted);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:12px}.atlas-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;margin:0 0 10px;padding:0 2px;display:flex}.atlas-role{color:var(--lab-muted);margin:0;font-size:.86rem;line-height:1.4}.atlas-panel{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:16px;margin:0;padding:14px 14px 12px}.atlas-panel .path-map-scroll{background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--lab-accent) 10%, transparent), transparent 46%), transparent;border:0;border-radius:12px;margin:0}.path-atlas .atlas-panel.is-main{margin-bottom:14px}.atlas-secondary{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.atlas-exam,.atlas-drill-panel{margin-top:14px}.atlas-drill-block{margin-top:18px}.atlas-drill-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.atlas-drill-block .atlas-kicker{text-transform:none}.path-world .atlas-drill-block .path-map-scroll{max-height:none;overflow:visible}.path-rubric{margin:8px 0 0;padding:0;font-size:13px;line-height:1.45;list-style:none}.exam-figure{margin:12px 0 16px}.exam-figure img{border-radius:12px;width:100%;height:auto;display:block}.boss-stage{gap:14px;display:grid}.boss-hero{border:1px solid var(--lab-line);background:linear-gradient(165deg, color-mix(in srgb, var(--lab-accent) 12%, var(--lab-panel)) 0%, var(--lab-panel) 48%), var(--lab-panel);border-radius:16px;margin:0;padding:18px 18px 16px}.boss-hero-title{font-family:var(--font-serif,Georgia, serif);color:var(--lab-ink);margin:6px 0 8px;font-size:clamp(1.5rem,2.6vw,1.9rem);font-weight:650;line-height:1.2}.boss-hero-goal{max-width:36rem;color:var(--lab-muted);margin:0 0 10px;line-height:1.5}.boss-hero-meter{color:var(--lab-accent-strong,var(--lab-accent));margin:0;font-size:.88rem;font-weight:650}.boss-grades{gap:8px;margin:0;padding:0;list-style:none;display:grid}.boss-grade{border:1px solid var(--lab-line);background:var(--lab-panel);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px 12px;margin:0;padding:12px 14px;display:grid}.boss-grade.is-here{border-color:var(--lab-accent);background:var(--lab-accent-soft);box-shadow:inset 3px 0 0 var(--lab-accent)}.boss-grade.is-done{border-color:color-mix(in srgb, var(--lab-accent) 30%, var(--lab-line))}.boss-grade-num{font-variant-numeric:tabular-nums;color:var(--lab-muted);font-weight:700}.boss-grade.is-here .boss-grade-num,.boss-grade.is-done .boss-grade-num{color:var(--lab-ink)}.boss-grade-copy{gap:2px;min-width:0;display:grid}.boss-grade-name{color:var(--lab-ink);font-weight:700}.boss-grade-detail{color:var(--lab-muted);font-size:.9rem;line-height:1.4}.boss-grade-state{color:var(--lab-muted);white-space:nowrap;font-size:.82rem}.boss-grade.is-here .boss-grade-state{color:var(--lab-accent-strong,var(--lab-accent));font-weight:650}.boss-mark{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:12px;gap:10px;padding:14px;display:grid}.boss-mark .encounter-go{justify-self:start}@media (width<=720px){.atlas-secondary{grid-template-columns:1fr}}.campaign-night{border:1px solid color-mix(in srgb, var(--lab-stage-accent) 36%, var(--lab-line));background:radial-gradient(circle at 14% 0%, color-mix(in srgb, var(--lab-stage-accent) 16%, transparent), transparent 34%), linear-gradient(180deg, var(--lab-stage-raise) 0%, var(--lab-stage) 100%);box-shadow:var(--lab-shadow);color:var(--lab-stage-ink);border-radius:18px;position:relative;overflow:hidden}.campaign-night:before{content:"";pointer-events:none;background-image:radial-gradient(1.2px 1.2px at 7% 22%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 24% 68%, var(--lab-stage-dust), transparent), radial-gradient(1.3px 1.3px at 41% 18%, color-mix(in srgb, var(--lab-stage-accent) 50%, transparent), transparent), radial-gradient(1px 1px at 63% 74%, color-mix(in srgb, var(--lab-stage-accent) 45%, transparent), transparent), radial-gradient(1.2px 1.2px at 82% 30%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 93% 58%, var(--lab-stage-dust), transparent);position:absolute;inset:0}.campaign-night>*{z-index:1;position:relative}.campaign-night .atlas-kicker,.campaign-night .atlas-role,.campaign-night .path-note,.campaign-night .boss-hero-goal{color:var(--lab-stage-muted)}.campaign-night .atlas-kicker{color:var(--lab-stage-accent);letter-spacing:.16em}.scene-banner{color:var(--lab-stage-ink);font-family:var(--font-serif,Georgia, serif);letter-spacing:.03em;margin:0 0 12px;font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:650;line-height:1.25}.path-scenes.campaign-night{padding:18px 14px 16px}.path-scenes.campaign-night .path-map-scroll,.campaign-night .path-map-scroll{background:0 0;border:0}.campaign-night .encounter-meter{color:var(--lab-stage-ink)}.campaign-night .encounter-meter>span:nth-child(2){color:var(--lab-stage-bright)}.campaign-night .encounter-track{background:color-mix(in srgb, var(--lab-stage-ink) 12%, transparent);height:5px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lab-stage-accent) 28%, transparent)}.campaign-night .encounter-track span{background:var(--lab-stage-accent);box-shadow:none}.campaign-night .path-advise button,.campaign-night .path-skip,.campaign-night .encounter-pause button,.campaign-night .encounter-pause summary{color:var(--lab-stage-bright)}.campaign-night .boss-hero-title{color:var(--lab-stage-ink)}.campaign-night .boss-hero-meter{color:var(--lab-stage-accent)}.path-atlas .atlas-title{letter-spacing:.02em;color:var(--lab-ink);font-size:clamp(1.85rem,4vw,2.45rem)}@media (prefers-reduced-motion:no-preference){.campaign-night:before{animation:4.8s ease-in-out infinite skill-stars}.plinth.is-done .plinth-stone{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--lab-stage-bright) 55%, transparent))}.plinth.is-here .plinth-stone,.plinth.is-live .plinth-stone{animation:2.2s ease-in-out infinite plinth-ready}}@keyframes plinth-ready{50%{filter:drop-shadow(0 0 7px color-mix(in srgb, var(--lab-stage-accent) 85%, transparent))}}.atlas-back{gap:16px;margin:0 0 10px;display:flex}.atlas-back button{color:var(--lab-muted);font:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}.traveler-shadow{fill:var(--lab-stage-shadow-fill);opacity:var(--lab-stage-shadow-opacity)}.traveler-cloak,.traveler-hood,.traveler-arm,.traveler-hand,.traveler-fingers,.traveler-pommel,.traveler-leg{fill:var(--lab-stage-ink)}.traveler-cape{fill:var(--lab-stage-ink);opacity:.5;transform-box:fill-box;transform-origin:100% 20%;animation:2.2s ease-in-out infinite traveler-cape}.traveler-leg.is-back{opacity:.72}.traveler-visor{fill:none;stroke:var(--lab-stage-raise);stroke-width:1.7px;stroke-linecap:round}.traveler-collar{fill:none;stroke:var(--lab-stage-accent);stroke-width:2px;stroke-linecap:round}.traveler-swing{transform-box:fill-box;transform-origin:0 100%;animation:2.2s ease-in-out infinite traveler-swing}.traveler-grip{fill:none;stroke:var(--lab-stage-accent);stroke-width:2.8px;stroke-linecap:round}.traveler-blade{fill:var(--lab-stage-ink)}.traveler-edge{fill:none;stroke:var(--lab-stage-accent);stroke-width:1.05px;stroke-linecap:round}.traveler-guard{fill:none;stroke:var(--lab-stage-accent);stroke-width:3.2px;stroke-linecap:round}.traveler-body{transform-box:fill-box;transform-origin:46% 100%;animation:2.2s ease-in-out infinite traveler-strike}@keyframes traveler-strike{0%,34%{transform:rotate(0)}48%{transform:rotate(6deg)}to{transform:rotate(0)}}@keyframes traveler-cape{0%,34%{transform:rotate(0)}52%{transform:rotate(-14deg)}to{transform:rotate(0)}}@keyframes traveler-swing{0%,34%{transform:rotate(-18deg)}46%{transform:rotate(54deg)}58%{transform:rotate(46deg)}to{transform:rotate(-18deg)}}.path-stops{z-index:1;margin:0;padding:0;list-style:none;position:absolute;inset:0}.path-stop{--route-label:max(5.75rem, min(8.25rem, calc(var(--slot,140px) - 20px)));width:var(--route-label);max-width:var(--route-label);color:inherit;font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;margin:0;padding:0;display:flex;position:absolute;transform:translate(-50%,-24px)}.path-stop:focus-visible{outline:1px solid var(--lab-accent);outline-offset:3px}.path-map.is-single .path-stop{--route-label:max(5.75rem, min(8.5rem, calc(var(--slot,140px) - 24px)))}.stop-hit{flex:none;width:52px;height:44px}.route-name{-webkit-line-clamp:3;width:100%;max-width:100%;color:var(--lab-stage-ink);letter-spacing:.01em;word-break:normal;overflow-wrap:break-word;-webkit-box-orient:vertical;margin-top:6px;font-size:13px;font-weight:550;line-height:1.4;display:-webkit-box;overflow:hidden}.route-state{-webkit-line-clamp:2;width:100%;min-height:1.2em;color:var(--lab-stage-muted);word-break:normal;overflow-wrap:break-word;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;line-height:1.35;display:-webkit-box;overflow:hidden}.path-stop:hover .route-name,.path-stop:focus-visible .route-name{color:var(--lab-stage-bright)}.path-stop[aria-current=page] .route-name,.path-stop.is-done .route-name{color:var(--lab-stage-bright);font-weight:600}.path-stop.is-live .route-state,.is-live .route-state{color:var(--lab-stage-bright)}.path-stop:focus-visible{outline-color:var(--lab-stage-accent)}.path-quest{transform-origin:top;max-width:40rem;margin-top:0;animation:.64s cubic-bezier(.16,1,.3,1) path-arrive}.path-quest h2{font-family:var(--font-serif);letter-spacing:-.02em;margin:2px 0 12px;font-size:32px;font-weight:560;line-height:1.2}.path-quest h3{color:var(--lab-muted);scroll-margin-top:calc(var(--lab-header) + 16px);margin:32px 0 8px;font-size:13px;font-weight:500}.quest-index{font-family:var(--font-serif);font-variant-numeric:tabular-nums;color:var(--lab-muted);margin:0;font-size:13px;font-weight:560}@keyframes path-arrive{0%{opacity:0;clip-path:inset(0 0 18%);transform:translateY(22px)rotateX(12deg)}to{opacity:1;clip-path:inset(0);transform:none}}.path-pass{font-family:var(--font-serif);margin:0;font-size:20px;font-weight:560;line-height:1.55}.path-milestone{font-family:var(--font-serif);margin:12px 0 0;font-size:17px;font-weight:560;line-height:1.55}.path-live{margin:12px 0 0;font-size:14px;line-height:1.5}.quest-when{color:var(--lab-muted);margin:18px 0 0;font-size:13px}.quest-meters{flex-wrap:wrap;gap:14px 32px;margin-top:14px;display:flex}.quest-meter{width:11rem;color:var(--lab-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:6px 10px;font-size:13px;display:flex}.quest-track{background:color-mix(in srgb, var(--lab-ink) 12%, transparent);flex-basis:100%;height:2px;display:block}.quest-track>span{background:var(--lab-ink);height:100%;display:block}.path-how{margin:0;padding:0;list-style:none}.path-how li{margin:0 0 12px;line-height:1.7}.path-how li:last-child{margin-bottom:0}.path-trail{counter-reset:step;margin:0;padding:0;list-style:none}.path-trail>li{counter-increment:step;grid-template-columns:1.75rem minmax(0,1fr);align-items:baseline;column-gap:8px;padding:5px 0;display:grid}.path-trail>li:before{content:counter(step, decimal-leading-zero);font-family:var(--font-serif);font-variant-numeric:tabular-nums;color:var(--lab-muted);font-size:13px;font-weight:560}.path-trail>li.is-read:before{color:color-mix(in srgb, var(--lab-ink) 28%, transparent)}.path-trail>li.is-next{padding-top:10px;padding-bottom:10px}.path-trail>li.is-next:before{color:var(--lab-accent-strong)}.path-trail>li.is-side{margin-left:1.75rem}.path-trail a{color:var(--lab-ink);text-decoration:none}.path-trail a:hover{text-underline-offset:.18em;text-decoration:underline}.path-trail .is-read a{color:var(--lab-muted)}.path-trail .trail-face{color:var(--lab-muted);margin-left:8px;font-size:12px}.path-trail .is-next .trail-face{color:var(--lab-accent-strong)}.path-trail .is-next a{font-family:var(--font-serif);font-weight:560}.path-trail em{color:var(--lab-muted);margin-left:8px;font-size:12px;font-style:normal}.path-trail p{color:var(--lab-muted);margin:2px 0 0;font-size:13px;line-height:1.55}.path-trail .trail-or{color:var(--lab-muted);margin:2px 0;font-size:12px;display:block}.ink-list{margin:0;padding:0;list-style:none}.ink-seal{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:0;grid-template-columns:16px minmax(0,1fr);align-items:start;gap:10px;margin:0;padding:5px 0;line-height:1.6;display:grid}.ink-seal:focus-visible{outline:1px solid var(--lab-accent);outline-offset:3px}.ink-dot{border:1px solid color-mix(in srgb, var(--lab-ink) 40%, transparent);background:0 0;border-radius:1px;width:9px;height:9px;margin-top:6px}.ink-seal[aria-pressed=true] .ink-dot{background:var(--lab-ink);border-color:var(--lab-ink)}.ink-seal[aria-pressed=true]{color:var(--lab-muted)}.path-note{color:var(--lab-muted);margin:14px 0 0;font-size:13px;line-height:1.6}.path-advise button,.path-skip{color:var(--lab-ink);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.skill-ignite{border:1px solid color-mix(in srgb, var(--lab-stage-accent) 36%, var(--lab-line));background:radial-gradient(circle at 14% 0%, color-mix(in srgb, var(--lab-stage-accent) 16%, transparent), transparent 34%), linear-gradient(180deg, var(--lab-stage-raise) 0%, var(--lab-stage) 100%);width:100%;box-shadow:var(--lab-shadow);color:var(--lab-stage-ink);background:radial-gradient(circle at 18% 58%, color-mix(in srgb, var(--lab-stage-ember) 22%, transparent), transparent 28%), radial-gradient(circle at 92% 18%, color-mix(in srgb, var(--lab-stage-accent) 18%, transparent), transparent 26%), linear-gradient(180deg, var(--lab-stage-raise) 0%, var(--lab-stage) 100%);font:inherit;text-align:left;cursor:pointer;isolation:isolate;border-radius:18px;grid-template-columns:minmax(13rem,1fr) auto auto;align-items:center;gap:4px 18px;margin:18px 0 4px;padding:8px 22px 10px 8px;transition:transform .22s,box-shadow .22s;display:grid;position:relative;overflow:hidden}.skill-ignite:before{content:"";pointer-events:none;background-image:radial-gradient(1.2px 1.2px at 8% 22%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 28% 74%, var(--lab-stage-dust), transparent), radial-gradient(1.3px 1.3px at 46% 16%, color-mix(in srgb, var(--lab-stage-ember) 70%, transparent), transparent), radial-gradient(1px 1px at 72% 78%, color-mix(in srgb, var(--lab-stage-accent) 55%, transparent), transparent), radial-gradient(1.2px 1.2px at 88% 28%, var(--lab-stage-dust), transparent);position:absolute;inset:0}.skill-ignite>*{z-index:1;position:relative}.skill-ignite:hover,.skill-ignite:focus-visible{box-shadow:0 0 0 1px color-mix(in srgb, var(--lab-stage-accent) 35%, transparent), 0 18px 40px color-mix(in srgb, var(--lab-stage-accent) 18%, transparent);outline:none;transform:translateY(-2px)}.skill-ignite:focus-visible{outline:2px solid var(--lab-stage-ember);outline-offset:3px}.skill-ignite-chart{aspect-ratio:3.28;width:100%;height:auto;max-height:7.6rem;overflow:visible}.skill-ignite-chart line{stroke:color-mix(in srgb, var(--lab-stage-accent) 72%, transparent);stroke-width:1.25px;stroke-linecap:round}.skill-ignite-chart line.is-hot{stroke:color-mix(in srgb, var(--lab-stage-ember) 75%, transparent)}.skill-ignite-ring{fill:color-mix(in srgb, var(--lab-stage-raise) 70%, transparent);stroke:color-mix(in srgb, var(--lab-stage-accent) 80%, transparent);stroke-width:1.15px}.skill-ignite-core{fill:var(--lab-stage-accent)}.skill-ignite-star.is-ready .skill-ignite-ring{stroke:var(--lab-stage-bright)}.skill-ignite-star.is-ready .skill-ignite-core{fill:var(--lab-stage-bright)}.skill-ignite-star.is-lit .skill-ignite-ring{stroke:var(--lab-stage-bright)}.skill-ignite-star.is-lit .skill-ignite-core{fill:var(--lab-stage-bright);filter:drop-shadow(0 0 5px color-mix(in srgb, var(--lab-stage-accent) 80%, transparent))}.skill-ignite-star.is-research .skill-ignite-core{fill:var(--lab-stage-ember);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--lab-stage-ember) 80%, transparent))}.skill-ignite-orbit{fill:none;stroke:var(--lab-stage-ember);stroke-width:1.1px;stroke-dasharray:3 4;transform-box:fill-box;transform-origin:50%}.skill-ignite-copy{gap:4px;min-width:0;display:grid}.skill-ignite-kicker{color:var(--lab-stage-ember);letter-spacing:.2em;font-size:.72rem;font-weight:650}.skill-ignite-title{font-family:var(--font-serif,Georgia, "Songti SC", serif);letter-spacing:.04em;color:var(--lab-stage-ink);font-size:clamp(1.4rem,2.5vw,1.8rem);font-weight:650;line-height:1.15}.skill-ignite-meta{color:var(--lab-stage-muted);font-size:.9rem;line-height:1.45}.skill-ignite-meta b{color:var(--lab-stage-ink);font-weight:650}.skill-ignite-now{color:var(--lab-stage-ember)}.skill-ignite-go{color:var(--lab-stage-ember);letter-spacing:.16em;align-content:center;justify-items:center;gap:1px;font-size:.92rem;font-weight:650;display:grid}.skill-ignite-flame{width:26px;height:34px;filter:drop-shadow(0 0 8px color-mix(in srgb, var(--lab-stage-ember) 55%, transparent));overflow:visible}.skill-ignite-flame-outer{fill:var(--lab-stage-ember)}.skill-ignite-flame-core{fill:color-mix(in srgb, var(--lab-stage-ember) 40%, white);transform-box:fill-box;transform-origin:50% 70%}.skill-ignite:hover .skill-ignite-flame,.skill-ignite:focus-visible .skill-ignite-flame{filter:drop-shadow(0 0 12px color-mix(in srgb, var(--lab-stage-ember) 85%, transparent))}@keyframes skill-ignite-pulse{50%{opacity:.92;transform:translate(-50%,-50%)scale(1.18)}}@keyframes skill-ignite-flicker{50%{opacity:.65}}@media (width<=720px){.skill-ignite{border-radius:22px;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"chart chart""copy go";gap:6px 10px;margin:14px 0 2px;padding:10px 12px 14px}.skill-ignite-chart{aspect-ratio:3.28;grid-area:chart;max-height:4.8rem}.skill-ignite-copy{grid-area:copy}.skill-ignite-go{grid-area:go;align-self:center;min-width:3.25rem;min-height:44px;padding:6px 2px}.skill-ignite-title{font-size:clamp(1.25rem,6.2vw,1.55rem)}.skill-ignite-meta{font-size:.82rem}.skill-ignite-kicker{letter-spacing:.14em}.path-atlas .atlas-title{font-size:clamp(1.45rem,7vw,1.95rem)}.path-atlas .atlas-blurb{font-size:.92rem}.atlas-panel{border-radius:14px;padding:10px 8px 8px}.path-atlas .path-map-scroll{-webkit-overflow-scrolling:touch;overflow:auto visible}.path-stop{--route-label:max(5.5rem, min(7.75rem, calc(var(--slot,140px) - 14px)))}.path-map.is-single .path-stop{--route-label:max(5.5rem, min(7.75rem, calc(var(--slot,140px) - 16px)))}.stop-hit{width:56px;height:52px}.route-name{-webkit-line-clamp:3;font-size:12px}.route-state{font-size:11px}.atlas-head{gap:4px 8px;margin-bottom:8px}.atlas-role{font-size:.8rem}}@media (prefers-reduced-motion:reduce){.skill-ignite,.skill-ignite-orbit,.skill-ignite-flame-core{transition:none;animation:none}.skill-ignite:hover,.skill-ignite:focus-visible{transform:none}}@media (prefers-reduced-motion:no-preference){.skill-ignite:before{animation:4.8s ease-in-out infinite skill-stars}.skill-ignite-orbit{animation:7s linear infinite skill-orbit}.skill-ignite-star.is-lit .skill-ignite-core{animation:3.4s ease-in-out infinite skill-burn}.skill-ignite-flame-core{animation:1.6s ease-in-out infinite skill-ignite-flicker}}.path-enter{border:0;border-top:1px solid color-mix(in srgb, var(--lab-ink) 14%, transparent);border-bottom:1px solid color-mix(in srgb, var(--lab-ink) 14%, transparent);width:100%;color:var(--lab-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 14px;margin-top:28px;padding:16px 2px;display:grid}.path-enter small{color:var(--lab-muted);grid-area:1/1;font-size:12px}.path-enter strong{font-family:var(--font-serif);overflow-wrap:anywhere;grid-area:1/2;font-size:22px;font-weight:560;line-height:1.35}.path-enter:hover .path-enter-go{transform:translate(4px)}.path-enter:focus-visible{outline:1px solid var(--lab-accent);outline-offset:4px}.path-enter-job{color:var(--lab-muted);grid-area:2/2;font-size:13px;line-height:1.55}.path-enter-go{font-family:var(--font-serif);color:var(--lab-accent-strong);grid-area:1/3/span 2;align-self:center;font-size:22px;line-height:1;transition:transform .18s}@media (prefers-reduced-motion:reduce){.ink-dot,.path-enter-go,.encounter-track span{transition:none}.path-map-scroll{scroll-behavior:auto}.traveler-body,.traveler-cape,.traveler-leg.is-front,.traveler-swing,.plinth.is-done .plinth-stone,.plinth.is-live .plinth-stone,.plinth.is-here .plinth-stone,.campaign-night:before{animation:none}.path-quest,.campaign-gleam,.traveler-body,.traveler-cape,.traveler-leg.is-front,.traveler-swing,.quest-seal,.quest-card.is-unlocking,.quest-chevron{transition:none;animation:none}}.path-quest.is-sheet h2{margin-bottom:4px;font-size:22px}.path-quest.is-sheet h3{margin-top:20px}.path-quest.is-sheet .path-enter{margin-top:14px}.path-quest.is-sheet .path-pass{margin-top:18px;font-size:16px}@container (width<=540px){.path-quest h2{font-size:26px}.path-pass{font-size:18px}.quest-meters{grid-template-columns:1fr}}.path-turn{margin-top:28px}.path-turn .path-turn-prev{color:var(--lab-muted);margin-bottom:8px;font-size:13px;text-decoration:none;display:inline-block}.path-gate{border:1px solid var(--lab-line-soft);background:var(--lab-panel);border-radius:12px;margin:0 0 20px;padding:16px 18px}.path-gate header{align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.path-gate header>span{color:var(--lab-muted);font-variant-numeric:tabular-nums;font-size:13px}.path-gate header h2{margin:0;font-size:18px;font-weight:650}.path-gate header p{color:var(--lab-muted);margin:2px 0 0;font-size:13px}.path-gate p{margin:0 0 8px;line-height:1.6}.path-gate ol{margin:10px 0 0;padding-left:1.2em}.path-gate ol li{margin:4px 0;line-height:1.5}.path-gate ol em{color:var(--lab-muted);margin-left:8px;font-size:12px;font-style:normal}.path-gate a{color:inherit}.toolbar{align-items:center;gap:16px;width:100%;display:flex}.toolbar-search{flex:1;min-width:0}.toolbar-meta{color:var(--lab-muted);white-space:nowrap;flex:none;font-size:13px}.notice-bar{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:14px 16px;display:flex}.notice-bar strong{margin-bottom:4px;display:block}.notice-bar p{color:var(--lab-muted);margin:0;line-height:1.55}.metric-line{border-top:1px solid var(--lab-line-soft);border-bottom:1px solid var(--lab-line-soft);color:var(--lab-muted);flex-wrap:wrap;gap:6px 0;margin:28px 0 8px;padding:12px 0;font-size:13px;display:flex}.metric-line span{border-right:1px solid var(--lab-line);margin-right:16px;padding-right:16px}.metric-line span:last-child{border-right:0;margin-right:0;padding-right:0}.metric-line strong{color:var(--lab-ink);font-variant-numeric:tabular-nums;font-weight:650}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin:8px 0 4px;display:flex}.lesson-list{flex-direction:column;display:flex}.lesson-row{text-align:left;border:0;border-bottom:1px solid var(--lab-line-soft);cursor:pointer;width:100%;color:inherit;background:0 0;border-radius:8px;align-items:flex-start;gap:14px;margin-inline:-8px;padding:15px 8px;text-decoration:none;display:flex}.lesson-row:hover{background:color-mix(in srgb, var(--lab-accent) 6%, transparent)}.lesson-row strong{font-size:var(--lab-text-ui);margin-bottom:3px;font-weight:600;display:block}.lesson-row p{color:var(--lab-muted);font-size:var(--lab-text-small);margin:0;line-height:1.55}.lesson-row-mark{border:1.5px solid var(--lab-line);width:22px;height:22px;color:var(--lab-accent);border-radius:50%;flex:none;justify-content:center;align-items:center;margin-top:2px;font-size:11px;display:inline-flex}.lesson-row.is-static{cursor:default}.lesson-row.is-static:hover{background:0 0}.ai-figure-library img{border-radius:.5rem;width:100%;max-width:52rem;height:auto;margin:0 auto;display:block}.ai-figure-library figcaption{color:var(--text-muted,#5c6570);margin-top:.65rem;font-size:.9rem;line-height:1.45}.ai-figure{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:12px;flex-direction:column;gap:12px;margin:0;padding:16px;display:flex}.ai-figure figcaption,.ai-figure .ai-warn,.ai-figure .ai-dropped{color:var(--lab-muted);font-size:var(--lab-text-small);margin:0;line-height:1.55}.ai-figure .ai-warn{color:var(--lab-danger);background:color-mix(in srgb, var(--lab-danger) 10%, var(--lab-panel));border-radius:8px;padding:10px 12px}.ai-flow,.ai-split{align-items:stretch;gap:10px;display:flex}.ai-flow-col{flex-direction:column;flex:1}.ai-arrow{color:var(--lab-accent);align-self:center;font-size:18px;line-height:1}.ai-card{border:1px solid var(--lab-line);background:var(--lab-bg);border-radius:10px;flex:1;min-width:0;padding:12px}.ai-card strong{margin-bottom:6px;display:block}.ai-card p,.ai-card li{color:var(--lab-muted);font-size:var(--lab-text-small);margin:0;line-height:1.55}.ai-card p+p{margin-top:6px}.ai-card ol{margin:0;padding-left:1.2em}.ai-card li+li{margin-top:4px}.ai-card.is-accent{background:var(--lab-accent-soft);border-color:var(--lab-accent)}.ai-card.is-warn{border-color:var(--lab-danger)}.ai-sentence{font-family:var(--font-serif);margin:0;font-size:20px;line-height:1.4}.ai-sentence span{border-bottom:2px solid var(--lab-accent);color:var(--lab-accent);margin-left:8px;padding:0 8px;display:inline-block}.ai-candidates{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ai-candidates li{border:1px solid var(--lab-line);background:var(--lab-bg);border-radius:10px;flex-direction:column;gap:2px;min-width:96px;padding:10px 12px;display:flex}.ai-candidates small{color:var(--lab-muted)}.ai-candidates .is-pick{background:var(--lab-accent-soft);border-color:var(--lab-accent)}.ai-dropped span{border:1px solid var(--lab-danger);color:var(--lab-danger);border-radius:999px;margin-right:8px;padding:1px 6px;font-size:12px}.ai-dropped s{text-decoration:line-through}.ai-window{border:1.5px solid var(--lab-accent);background:var(--lab-accent-soft);border-radius:12px;padding:12px}.ai-window span{color:var(--lab-accent-strong);letter-spacing:.04em;margin-bottom:8px;font-size:12px;display:block}.ai-window p{background:var(--lab-panel);border-radius:8px;margin:0;padding:8px 10px}.ai-window p+p{margin-top:8px}.ai-docs{flex-direction:column;flex:1;gap:8px;display:flex}.ai-docs p{border:1px solid var(--lab-line);background:var(--lab-bg);border-radius:10px;margin:0;padding:10px 12px}.ai-docs .is-pick{background:var(--lab-accent-soft);border-color:var(--lab-accent)}.ai-sheet{border:1px solid var(--lab-line);background:var(--lab-bg);border-radius:10px;flex-direction:column;flex:1;gap:7px;padding:12px;display:flex}.ai-sheet span{background:var(--lab-line);border-radius:4px;height:8px;display:block}.ai-sheet small{color:var(--lab-muted)}.ai-grid{grid-template-columns:88px repeat(3,1fr);gap:6px;display:grid}.ai-grid span{border:1px solid var(--lab-line);background:var(--lab-bg);text-align:center;border-radius:8px;padding:10px 8px}.ai-grid .is-head{color:var(--lab-muted);font-size:var(--lab-text-small);background:0 0;border-color:#0000}.ai-grid .is-pick{background:var(--lab-accent-soft);border-color:var(--lab-accent)}.ai-checks{flex:1;margin:0;padding-left:1.2em}.ai-checks li+li{margin-top:10px}.ai-checks .is-pick{color:var(--lab-accent);font-weight:600}.ai-checks .is-warn{color:var(--lab-danger)}@media (width<=720px){.ai-flow,.ai-split{flex-direction:column}.ai-flow .ai-arrow{transform:rotate(90deg)}}.reading-copy{flex-direction:column;gap:14px;display:flex}.reading-copy p{margin:0;line-height:1.75}.source-list{flex-direction:column;display:flex}.note-nav{justify-content:space-between;gap:16px;display:flex}.note-nav a{color:inherit;text-decoration:none}.note-nav a:hover{color:var(--lab-accent)}.ai-outcomes ul,.ai-term-list{margin:0;padding-left:1.2em;line-height:1.7}.ai-experiment,.ai-quiz{border:1px solid var(--lab-line-soft);background:var(--lab-panel);border-radius:10px;margin-top:8px;padding:14px 16px}.ai-quiz+.ai-quiz{margin-top:12px}.source-row{border-bottom:1px solid var(--lab-line-soft);color:inherit;flex-direction:column;gap:2px;padding:12px 0;text-decoration:none;display:flex}.source-row strong{font-weight:600}.source-row small{color:var(--lab-muted);line-height:1.5}.source-row:hover strong{color:var(--lab-accent)}.lesson-row.is-done .lesson-row-mark{background:var(--lab-accent-soft);border-color:#0000}.article-shell{width:100%;max-width:var(--lab-measure);flex-direction:column;gap:22px;min-width:0;margin-inline:auto;display:flex}.article-shell:has(.lab-grid){gap:16px;max-width:68rem}.article-shell:has(.lab-grid) .hero-lead{margin-bottom:0}.article-shell:has(.lesson-with-outline){max-width:calc(var(--lab-measure) + 196px)}.lesson-with-outline{grid-template-columns:168px minmax(0,1fr);align-items:start;column-gap:28px;width:100%;display:grid}.lesson-with-outline>.lesson-outline{top:calc(var(--lab-header) + 16px);position:sticky}.lesson-body{flex-direction:column;gap:22px;min-width:0;display:flex}[id^=lesson-]{scroll-margin-top:calc(var(--lab-header) + 24px)}.lesson-outline{gap:2px;display:grid}.lesson-outline button{text-align:left;color:var(--lab-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;align-items:baseline;gap:8px;padding:6px;font-size:13px;line-height:1.35;display:flex}.lesson-outline button:hover{color:var(--lab-accent);background:var(--lab-accent-soft)}.lesson-outline button.is-current{color:var(--lab-accent-strong);background:var(--lab-accent-soft);font-weight:600}.lesson-outline button span{font-variant-numeric:tabular-nums;opacity:.8;font-size:11px}.compact-outline{border-block:1px solid var(--lab-line);padding-block:12px;display:none}.compact-outline summary{cursor:pointer;color:var(--lab-accent-strong);font-size:14px}.compact-outline .lesson-outline{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:8px}.source-pagination{margin-top:24px}@media (width<=1100px){.article-shell:has(.lesson-with-outline){max-width:var(--lab-measure)}.lesson-with-outline{display:block}.lesson-with-outline>.lesson-outline{display:none}.compact-outline{display:block}}@media (width<=720px){.compact-outline .lesson-outline{grid-template-columns:1fr}.hero-actions.ant-space{width:100%;display:flex!important}.hero-actions.ant-space .ant-space-item{flex:calc(50% - 6px);min-width:0}.hero-actions.ant-space .ant-btn{width:100%}}.lesson-hero .eyebrow{letter-spacing:.04em;color:var(--lab-muted);font-size:12px}.lesson-hero h1{font-family:var(--font-serif);font-size:var(--lab-text-h1);letter-spacing:-.02em;margin:8px 0 12px;font-weight:650;line-height:1.35}.prompt-box{font-family:var(--font-sans);font-size:var(--lab-text-body);color:var(--lab-ink);border-left:2px solid var(--lab-accent);margin:0 0 12px;padding-left:14px;line-height:1.7}.meta-line{color:var(--lab-muted);flex-wrap:wrap;gap:8px 14px;font-size:13px;display:flex}.meta-line .since-badge{color:var(--lab-ink);font-weight:600}.point-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.point-list li{font-size:var(--lab-text-body);padding-left:16px;line-height:1.7;position:relative}.point-list li:before{content:"";background:var(--lab-accent);border-radius:50%;width:5px;height:5px;position:absolute;top:.62em;left:0}.core-panel{background:var(--lab-panel);border:1px solid var(--lab-line);box-shadow:var(--lab-shadow);border-radius:14px;padding:16px 18px}.panel-label,.section-index{letter-spacing:.12em;text-transform:uppercase;color:var(--lab-muted);margin-bottom:10px;font-size:11px;font-weight:600;display:block}.panel-label{color:var(--lab-accent)}.lesson-core{font-size:var(--lab-text-body);flex-direction:column;gap:14px;max-width:46rem;margin:0;line-height:1.7;display:flex}.core-lead{color:var(--lab-ink);margin:0;font-size:1.05em;font-weight:600;line-height:1.65}.lesson-ref{color:var(--lab-accent);text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:1px}.lesson-ref:hover{color:var(--lab-ink)}.term-gloss{display:inline}.term-gloss__term{color:var(--lab-ink);font:inherit;cursor:pointer;text-underline-offset:.18em;background:0 0;border:0;margin:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:1px;display:inline}.term-gloss__term:hover,.term-gloss__term[aria-expanded=true]{color:var(--lab-accent)}.term-gloss__popup{z-index:80;box-sizing:border-box;border:1px solid var(--lab-line);border-radius:var(--lab-radius);background:var(--lab-panel);min-width:10rem;max-width:min(18rem,100vw - 24px);box-shadow:var(--lab-shadow);color:var(--lab-ink);font-size:var(--lab-text-small);text-align:left;white-space:normal;padding:10px 12px;line-height:1.55;position:fixed}.term-gloss__popup-term{color:var(--lab-accent-strong);margin-bottom:4px;font-weight:600;display:block}.term-gloss__popup-body{color:var(--lab-ink);display:block}.core-facets{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}@media (width<=640px){.core-facets{grid-template-columns:1fr}}.core-facet{background:var(--lab-bg);border:1px solid var(--lab-line);border-radius:10px;grid-template-columns:auto 1fr;align-items:start;gap:10px 12px;padding:10px 12px;display:grid}.core-facet p{margin:0;line-height:1.65}.core-facet-label{letter-spacing:.12em;text-transform:uppercase;color:var(--lab-accent);margin-top:2px;font-size:11px;font-weight:600;display:block}.core-beats{counter-reset:core-beat;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.core-beats li{counter-increment:core-beat;padding:0 0 0 1.75rem;line-height:1.65;position:relative}.core-beats li:before{content:counter(core-beat, decimal-leading-zero);letter-spacing:.04em;color:var(--lab-muted);font-variant-numeric:tabular-nums;font-size:.72em;font-weight:650;position:absolute;top:.15em;left:0}.model-map{border-collapse:collapse;width:100%;max-width:46rem;margin:16px 0 0;font-size:.95em;line-height:1.5}.model-map caption{caption-side:top;text-align:left;letter-spacing:.04em;color:var(--lab-muted,#66706c);margin-bottom:8px;font-size:.78em}.model-map th,.model-map td{border-bottom:1px solid var(--lab-line);vertical-align:top;text-align:left;padding:8px 10px 8px 0}.model-map thead th{color:var(--lab-muted,#66706c);letter-spacing:.04em;font-size:.78em;font-weight:600}.model-map tbody th{width:32%;padding-right:16px;font-weight:600}.concept-figure{margin:2px 0 16px}.concept-figure .ant-image{width:100%;display:block}.concept-figure .ant-image-img{background:#f6f7f4;border:1px solid #d9ddd8;border-radius:12px;width:100%;height:auto;display:block}.concept-figure .ant-image-cover{letter-spacing:.06em;background:linear-gradient(#2e333000 52%,#2e333080);justify-content:flex-end;align-items:flex-end;padding:0 12px 10px;font-size:13px}.section-block{border-top:1px solid var(--lab-line-soft);padding-top:4px}.section-block h2{font-size:var(--lab-text-h2);letter-spacing:-.01em;margin:0 0 10px;font-weight:650}.section-block p,.section-block .body{line-height:1.7;font-size:var(--lab-text-body);white-space:pre-wrap;margin:0}.deep-stack{flex-direction:column;gap:18px;display:flex}.deep-item h3{font-size:var(--lab-text-body);margin:0 0 6px;font-weight:650}.deep-item p{line-height:1.7;font-size:var(--lab-text-body);margin:0}.example-box{background:var(--lab-warn-bg);line-height:1.7;font-size:var(--lab-text-body);border-radius:10px;padding:16px 18px}.example-box .rich-blocks{flex-direction:column;gap:12px;display:flex}.example-box p{white-space:pre-wrap;margin:0}.rich-blocks{flex-direction:column;gap:12px;display:flex}.rich-blocks>p{margin:0}.lesson-code{border:1px solid var(--lab-line);background:color-mix(in srgb, var(--lab-ink) 6%, var(--lab-panel));white-space:pre;-webkit-overflow-scrolling:touch;border-radius:10px;max-width:100%;margin:0;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;line-height:1.55;overflow:auto hidden}.lesson-code code{font-family:inherit}.lesson-code .hljs-keyword,.lesson-code .hljs-selector-tag,.lesson-code .hljs-name{color:var(--lab-code-keyword)}.lesson-code .hljs-string,.lesson-code .hljs-regexp{color:var(--lab-code-string)}.lesson-code .hljs-comment,.lesson-code .hljs-doctag{color:var(--lab-code-comment);font-style:italic}.lesson-code .hljs-number,.lesson-code .hljs-literal{color:var(--lab-code-number)}.lesson-code .hljs-title,.lesson-code .hljs-section{color:var(--lab-code-title)}.lesson-code .hljs-type,.lesson-code .hljs-built_in,.lesson-code .hljs-attr,.lesson-code .hljs-attribute,.lesson-code .hljs-property{color:var(--lab-code-type)}.lesson-code .hljs-meta,.lesson-code .hljs-tag{color:var(--lab-code-meta)}.lesson-code[data-lang]:before{content:attr(data-lang);letter-spacing:.06em;text-transform:uppercase;color:var(--lab-muted);margin-bottom:8px;font-size:.72em;display:block}.ref-list{flex-direction:column;display:flex}.ref-list a{border-bottom:1px solid var(--lab-line-soft);color:var(--lab-ink);padding:11px 0;text-decoration:none}.ref-list a:hover{color:var(--lab-accent)}.next-card{text-align:left;border:0;border-top:1px solid var(--lab-line);border-bottom:1px solid var(--lab-line);cursor:pointer;width:100%;color:inherit;background:0 0;justify-content:space-between;align-items:center;gap:16px;padding:18px 2px;text-decoration:none;display:flex}.next-card small{color:var(--lab-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.next-card strong{font-size:var(--lab-text-body);font-family:var(--font-serif);margin-top:4px;font-weight:650;display:block}.next-card:hover strong{color:var(--lab-accent)}.knowledge-group+.knowledge-group{margin-top:8px}.knowledge-row{text-align:left;border:0;border-bottom:1px solid var(--lab-line-soft);cursor:pointer;width:calc(100% + 16px);color:inherit;background:0 0;border-radius:8px;margin-inline:-8px;padding:14px 8px;text-decoration:none;display:block}.knowledge-row:hover{background:color-mix(in srgb, var(--lab-accent) 6%, transparent)}.knowledge-row strong{font-size:var(--lab-text-ui);margin-bottom:6px;display:block}.knowledge-row ul{color:var(--lab-muted);font-size:var(--lab-text-small);margin:0;padding-left:18px;line-height:1.55}.audit-steps{border-top:1px solid var(--lab-line-soft);border-bottom:1px solid var(--lab-line-soft);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;padding:4px 0 8px;display:grid}.audit-step small{letter-spacing:.12em;text-transform:uppercase;color:var(--lab-muted);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.audit-step strong{font-size:var(--lab-text-ui);margin-bottom:6px;display:block}.audit-step p{color:var(--lab-muted);font-size:var(--lab-text-small);margin:0;line-height:1.55}.audit-case{border-bottom:1px solid var(--lab-line-soft);padding:18px 0}.audit-case h3{font-family:var(--font-serif);font-size:var(--lab-text-h2);margin:6px 0 0;font-weight:650}.audit-case .wrong{color:var(--lab-danger);margin:8px 0;line-height:1.65}.audit-case .right{margin:0 0 10px;line-height:1.7}.subject-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:10px;display:grid}.subject-tile{text-align:left;border:1px solid var(--lab-line);background:var(--lab-panel);cursor:pointer;color:inherit;border-radius:10px;padding:14px 14px 13px}.subject-tile:hover{border-color:color-mix(in srgb, var(--lab-accent) 45%, var(--lab-line))}.subject-tile strong,.subject-tile span{display:block}.subject-tile span{color:var(--lab-muted);margin-top:6px;font-size:12px}.file-row{text-align:left;border:0;border-bottom:1px solid var(--lab-line-soft);cursor:pointer;width:100%;color:inherit;background:0 0;align-items:flex-start;gap:12px;padding:14px 0;display:flex}.file-row:hover strong{color:var(--lab-accent)}.file-row:disabled{opacity:.6;cursor:progress}.file-format{letter-spacing:.06em;min-width:42px;color:var(--lab-muted);flex:none;margin-top:3px;font-size:11px}.local-reading{max-width:46rem;line-height:1.75}.local-reading h1,.local-reading h2,.local-reading h3,.local-reading h4{font-family:var(--font-serif);margin:1.4em 0 .6em;line-height:1.3}.local-reading p,.local-reading pre{white-space:pre-wrap;margin:0 0 .9em}.local-reading pre{background:color-mix(in srgb, var(--lab-ink) 5%, var(--lab-panel));border-radius:10px;padding:12px 14px;overflow:auto}.local-reading figure{margin:0 0 1.2em}.local-reading img{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:10px;max-width:100%;height:auto;display:block}.local-reading figcaption{color:var(--lab-muted);margin-top:6px;font-size:12px}.source-frame{background:var(--lab-panel);border:1px solid var(--lab-line);border-radius:12px;padding:12px;overflow:auto}.source-frame img{max-width:100%;height:auto;display:block}.source-frame.is-zoomed img{max-width:none}.lab-switch{background:color-mix(in srgb, var(--lab-ink) 5%, transparent);border-radius:10px;grid-template-columns:1fr 1fr;gap:2px;width:min(100%,280px);padding:3px;display:grid}.lab-switch a{height:32px;color:var(--lab-muted);border-radius:8px;justify-content:center;align-items:center;font-weight:500;text-decoration:none;display:flex}.lab-switch a[aria-current=page]{background:var(--lab-panel);color:var(--lab-ink);font-weight:600;box-shadow:0 1px 2px #1c191514}.lab-note{background:var(--lab-panel);border:1px solid var(--lab-line);color:var(--lab-muted);font-size:var(--lab-text-small);border-radius:8px;margin:0;padding:8px 12px;line-height:1.5}.lab-note.is-ok{border-color:var(--lab-accent);background:var(--lab-accent-soft);color:var(--lab-ink)}.lab-note.is-bad{border-color:var(--lab-danger);background:color-mix(in srgb, var(--lab-danger) 10%, var(--lab-panel));color:var(--lab-ink)}.lab-grid{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start;gap:28px;display:grid}.lab-fields,.lab-side,.lab-tools{flex-direction:column;gap:14px;display:flex}.lab-side{top:calc(var(--lab-header) + 16px);max-height:calc(100vh - var(--lab-header) - 32px);padding-right:4px;position:sticky;overflow:auto}.lab-kicker{font-size:var(--lab-text-small);color:var(--lab-muted);margin:4px 0 0;font-weight:600}.lab-field,.lab-inline label,.lab-tool label{font-size:var(--lab-text-small);color:var(--lab-muted);flex-direction:column;gap:6px;font-weight:600;display:flex}.lab-field textarea,.lab-inline input,.lab-tool input:not([type=checkbox]),.lab-tool select{width:100%;font:inherit;font-weight:400;font-size:var(--lab-text-body);color:var(--lab-ink);background:var(--lab-panel);border:1px solid var(--lab-line);border-radius:8px;padding:8px 10px}.lab-field textarea{resize:vertical;line-height:1.55}.lab-field textarea:focus,.lab-inline input:focus,.lab-tool input:focus,.lab-tool select:focus{outline:2px solid var(--lab-accent);outline-offset:1px;border-color:var(--lab-accent)}.lab-inline{gap:12px;display:flex}.lab-inline label{flex:1}.lab-tool{border:1px solid var(--lab-line);background:var(--lab-panel);border-radius:10px;flex-direction:column;gap:10px;padding:12px;display:flex}.lab-tool-head{grid-template-columns:minmax(0,1fr) 112px;gap:10px;display:grid}.lab-tool-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.lab-checkline{flex:16em;align-items:center;gap:8px;min-width:12em;color:var(--lab-ink)!important;flex-direction:row!important;font-weight:400!important}.lab-checkline input{flex:none;width:auto}.lab-checkline span{min-width:0;line-height:1.4}.lab-actions{flex-wrap:wrap;gap:8px;display:flex}.lab-checks,.lab-log,.lab-diff{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lab-checks li,.lab-log li,.lab-diff li{border:1px solid var(--lab-line-soft);background:var(--lab-bg);border-radius:8px;padding:8px 10px;line-height:1.5}.lab-checks li{grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:8px;display:grid}.lab-mark{font-size:var(--lab-text-caption);grid-area:1/1;font-weight:700;line-height:1.7}.lab-checks strong{min-width:0;font-size:var(--lab-text-small);color:var(--lab-ink);grid-area:1/2;font-weight:600;display:block}.lab-checks li>span:not(.lab-mark){min-width:0;color:var(--lab-muted);font-size:var(--lab-text-small);grid-column:2;display:block}.lab-checks .is-ok .lab-mark{color:var(--lab-accent-strong)}.lab-checks .is-bad,.lab-log .is-stop,.lab-diff .is-drop{border-color:var(--lab-danger);background:color-mix(in srgb, var(--lab-danger) 8%, var(--lab-bg))}.lab-checks .is-bad .lab-mark,.lab-diff .is-drop{color:var(--lab-danger)}.lab-log .is-wait,.lab-diff .is-add{border-color:var(--lab-accent);background:var(--lab-accent-soft)}.lab-diff li{font-size:var(--lab-text-small)}.lab-diff .is-drop{text-decoration:line-through}.lab-copy{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}@media (width<=1100px){.lab-grid{grid-template-columns:1fr}.lab-side{max-height:none;padding-right:0;position:static;overflow:visible}}.lab-code{white-space:pre-wrap;border:1px solid var(--lab-line);background:var(--lab-bg);border-radius:8px;max-height:240px;margin:0;padding:12px;font-size:12px;line-height:1.5;overflow:auto}.pager{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=720px){.toolbar{flex-wrap:wrap}.toolbar-search{flex:100%}.notice-bar{flex-direction:column;align-items:flex-start}.audit-steps,.lab-grid{grid-template-columns:1fr}.lab-side{max-height:none;padding-right:0;position:static;overflow:visible}.lab-tool-head{grid-template-columns:1fr}.metric-line span{border-right:0;margin-right:12px;padding-right:0}.core-panel,.example-box{padding:14px}.lesson-hero h1{overflow-wrap:anywhere;font-size:1.35rem}.prompt-box{padding-left:12px}}@media (width>=961px){.skill-lead .atlas-title{font-size:var(--lab-text-h2)}.path-atlas .atlas-title{font-size:26px}.atlas-title{font-size:22px}.skill-lead-blurb{font-size:14px}.skill-ignite-title,.boss-hero-title,.lesson-hero h1{font-size:20px}.lesson-body p{font-size:15px}}.route-fx{--fx-ms:1s;z-index:100;pointer-events:auto;background:#121614;position:fixed;inset:0;overflow:hidden}.route-fx-gl,.route-fx-fallback,.route-fx-camera{width:100%;height:100%;display:block;position:absolute;inset:0}.route-fx-fallback{background:radial-gradient(circle at 50% 45%,#3f6a588c,#0000 42%),linear-gradient(#1a211e,#101412)}.route-fx.is-warp{opacity:0;animation:fx-warp-veil var(--fx-ms) cubic-bezier(.22, 1, .36, 1) forwards;background:0 0}.route-fx.is-warp .route-fx-gl,.route-fx.is-warp .route-fx-fallback{animation:fx-warp-drift var(--fx-ms) cubic-bezier(.22, 1, .36, 1) forwards}.route-fx.is-warp .route-fx-gl{background:#141a17}.route-fx.is-warp .route-fx-scan,.route-fx.is-warp .route-fx-neon{display:none}.route-fx-scan{pointer-events:none;opacity:.35;mix-blend-mode:overlay;background:repeating-linear-gradient(#ffffff0d 0 1px,#0000 1px 4px);position:absolute;inset:0}.route-fx-neon{pointer-events:none;animation:fx-neon var(--fx-ms) linear forwards;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #8fb5a000}.route-fx.is-splice{background:var(--lab-stage);animation:fx-duel-veil var(--fx-ms) ease forwards}.route-fx.is-catalog{top:calc(var(--lab-header) + env(safe-area-inset-top,0px));pointer-events:none;animation:fx-roster-veil var(--fx-ms) ease forwards;background:0 0}.fx-duel,.fx-roster{position:absolute;inset:0}.fx-duel-stage{width:min(760px,92vw);height:min(460px,72vh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fx-duel-road{background:linear-gradient(90deg, transparent, var(--lab-stage-line), transparent);opacity:.7;border-radius:999px;height:10px;position:absolute;bottom:9%;left:6%;right:6%}.fx-duel-gate{width:22%;height:62%;position:absolute;bottom:14%;right:8%}.fx-duel-glow{background:radial-gradient(circle at 50% 70%, var(--lab-stage-glow), transparent 70%);opacity:0;animation:fx-duel-glow var(--fx-ms) ease forwards;position:absolute;inset:16% 18% 0}.fx-duel-opening{background:#14201c;position:absolute;inset:18% 18% 0;overflow:hidden}.fx-duel-door{background:color-mix(in srgb, var(--lab-stage-ink) 16%, var(--lab-stage-raise));width:50%;position:absolute;top:0;bottom:0}.fx-duel-door.is-left{animation:fx-door-left var(--fx-ms) ease-in forwards;left:0}.fx-duel-door.is-right{animation:fx-door-right var(--fx-ms) ease-in forwards;right:0}.fx-duel-post{background:color-mix(in srgb, var(--lab-stage-ink) 28%, var(--lab-stage-plinth-l));border-radius:2px 2px 0 0;width:18%;position:absolute;top:10%;bottom:0}.fx-duel-post.is-left{left:4%}.fx-duel-post.is-right{right:4%}.fx-duel-lintel{background:color-mix(in srgb, var(--lab-stage-ink) 34%, var(--lab-stage-plinth-l));border-radius:2px;height:16%;position:absolute;top:4%;left:0;right:0}.fx-duel-slash{background:var(--lab-stage-accent);transform-origin:0;height:2px;animation:fx-duel-slash var(--fx-ms) ease-out forwards;position:absolute;top:48%;left:22%;right:22%;transform:scaleX(0)}.fx-duel-walker{width:22%;height:auto;animation:fx-duel-walk var(--fx-ms) cubic-bezier(.33, 0, .2, 1) forwards;position:absolute;bottom:12%;left:6%;overflow:visible}.fx-duel-shadow{fill:var(--lab-stage-shadow-fill);opacity:var(--lab-stage-shadow-opacity)}.fx-duel-cloak,.fx-duel-hood,.fx-duel-arm,.fx-duel-pommel,.fx-duel-leg{fill:var(--lab-stage-ink)}.fx-duel-blade{fill:var(--lab-stage-accent);stroke:var(--lab-stage);stroke-width:1.4px}.fx-duel-cape{fill:var(--lab-stage-ink);opacity:.5;transform-box:fill-box;transform-origin:90% 15%;animation:fx-duel-cape var(--fx-ms) ease forwards}.fx-duel-leg{transform-box:fill-box;transform-origin:30% 0}.fx-duel-leg.is-front{animation:fx-duel-stride var(--fx-ms) linear forwards}.fx-duel-leg.is-back{opacity:.72;animation:fx-duel-stride-back var(--fx-ms) linear forwards}.fx-duel-visor,.fx-duel-edge,.fx-duel-guard{fill:none;stroke:var(--lab-stage-accent);stroke-linecap:round}.fx-duel-visor{stroke-width:1.7px}.fx-duel-edge{stroke-width:1.05px}.fx-duel-guard{stroke-width:2.5px}.fx-duel-collar{fill:none;stroke:var(--lab-stage-accent);stroke-width:2px;stroke-linecap:round}.fx-duel-grip{fill:none;stroke:var(--lab-stage-ink);stroke-width:2.5px;stroke-linecap:round}.fx-duel-sword{transform-box:fill-box;transform-origin:30% 88%;animation:fx-duel-raise var(--fx-ms) ease forwards}.fx-roster-dim{background:color-mix(in srgb, var(--lab-stage-shadow-fill) 46%, transparent);position:absolute;inset:0}.fx-roster-slot{top:20px;left:calc(var(--lab-sider-w) + 32px);right:calc(var(--lab-aside-w) + 76px);justify-content:center;display:flex;position:absolute}.fx-roster-sheet{width:min(var(--lab-measure), 100%);border:1px solid var(--lab-line);background:var(--lab-panel);height:min(280px,42vh);box-shadow:var(--lab-shadow);clip-path:inset(0 0 100%);animation:fx-roster-unroll var(--fx-ms) cubic-bezier(.22, 1, .36, 1) forwards;border-radius:12px;padding:18px 22px 16px}.fx-roster-roll{background:linear-gradient(180deg, color-mix(in srgb, var(--lab-ink) 16%, var(--lab-line)), var(--lab-panel) 70%);height:14px;box-shadow:0 6px 0 var(--lab-panel);border-radius:999px;margin:-8px 12px 16px;display:block}.fx-roster-kicker{color:var(--lab-ink);font-family:var(--font-serif,Georgia, serif);font-size:var(--lab-text-h2);letter-spacing:.12em;margin-bottom:12px;display:block}.fx-roster-row{background:radial-gradient(circle at 14px 50%, transparent 5px, var(--lab-line) 6px, var(--lab-line) 7px, transparent 8px), linear-gradient(90deg, transparent 28px, var(--lab-line-soft) 28px);border-radius:999px;height:28px;margin-top:10px;display:block}.fx-roster-row:nth-child(3){width:86%}.fx-roster-row:nth-child(4){width:72%}.fx-roster-row:nth-child(5){width:64%}.route-fx-camera{transform-origin:50% 45%;animation:fx-pull var(--fx-ms) ease-out forwards;background:radial-gradient(circle,#0000 20%,#080a09b8 72%),linear-gradient(#141c1833,#080a098c)}.route-fx.is-lite .route-fx-scan,.route-fx.is-lite .route-fx-gl{display:none}@media (width<=1100px){.fx-roster-slot{left:calc(var(--lab-sider-w) + 28px);right:28px}}@media (width<=860px){.fx-roster-slot{left:28px;right:28px}}@media (width<=720px){.fx-duel-stage{left:16px;right:16px;top:calc(env(safe-area-inset-top,0px) + 8px);bottom:calc(env(safe-area-inset-bottom,0px) + 12px);width:auto;height:auto;transform:none}.fx-duel-gate{width:min(200px,58vw);height:min(240px,34vh);inset:8% auto auto 50%;transform:translate(-50%)}.fx-duel-road{height:3px;bottom:14%;left:14%;right:14%}.fx-duel-walker{left:50%;bottom:calc(10% + env(safe-area-inset-bottom,0px));width:min(120px,34vw);animation-name:fx-duel-climb}.fx-roster-slot{top:12px;left:16px;right:16px}.fx-roster-sheet{width:100%;height:min(220px,36dvh);padding:14px 16px 12px}}@media (width<=720px) and (height<=520px){.fx-duel-gate{height:min(140px,34vh)}.fx-duel-walker{width:min(64px,20vw)}.fx-roster-sheet{height:min(140px,32dvh)}}@keyframes fx-warp-veil{0%{opacity:0}22%{opacity:1}45%{opacity:1}to{opacity:0}}@keyframes fx-warp-drift{0%{transform:translateY(12px)scale(1.03)}to{transform:translateY(0)scale(1)}}@keyframes fx-duel-veil{0%,74%{opacity:1}to{opacity:0}}@keyframes fx-duel-walk{0%{opacity:1;transform:translate(0)}64%{opacity:1;transform:translate(170%)}to{opacity:0;transform:translate(210%)}}@keyframes fx-duel-climb{0%{opacity:1;transform:translate(-50%)}72%{opacity:1;transform:translate(-50%,-145%)}to{opacity:0;transform:translate(-50%,-175%)}}@keyframes fx-duel-raise{0%,40%{transform:rotate(8deg)}70%{transform:rotate(-18deg)}to{transform:rotate(-14deg)}}@keyframes fx-duel-cape{0%,50%{transform:rotate(7deg)}to{transform:rotate(-2deg)}}@keyframes fx-duel-stride{0%{transform:rotate(10deg)}16%{transform:rotate(-16deg)}32%{transform:rotate(12deg)}48%{transform:rotate(-10deg)}64%{transform:rotate(4deg)}to{transform:rotate(0)}}@keyframes fx-duel-stride-back{0%{transform:rotate(-8deg)}16%{transform:rotate(14deg)}32%{transform:rotate(-10deg)}48%{transform:rotate(8deg)}64%{transform:rotate(-2deg)}to{transform:rotate(0)}}@keyframes fx-duel-glow{0%,50%{opacity:0}72%{opacity:1}to{opacity:.4}}@keyframes fx-duel-slash{0%,58%{opacity:0;transform:scaleX(0)}72%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@keyframes fx-door-left{0%,48%{transform:translate(0)}to{transform:translate(-108%)}}@keyframes fx-door-right{0%,48%{transform:translate(0)}to{transform:translate(108%)}}@keyframes fx-roster-veil{0%,72%{opacity:1}to{opacity:0}}@keyframes fx-roster-unroll{0%{clip-path:inset(0 0 100%)}16%{clip-path:inset(0 0 78%)}70%{clip-path:inset(0)}to{clip-path:inset(0)}}@keyframes fx-pull{0%{opacity:1;transform:perspective(900px)translateZ(120px)scale(1.12)}to{opacity:0;transform:perspective(900px)translateZ(0)scale(1)}}@keyframes fx-neon{0%{box-shadow:inset 0 0 #8fb5a000}28%{box-shadow:inset 0 0 0 2px #c4a15ad9,inset 0 0 24px #3f6a5859}to{box-shadow:inset 0 0 #8fb5a000}}@media (prefers-reduced-motion:reduce){.route-fx{display:none}}.drill{width:min(960px,100%);color:var(--lab-stage-ink);margin:0 auto}.drill-kicker{color:var(--lab-stage-accent);font-size:var(--lab-text-caption);letter-spacing:.14em;margin:0 0 6px}.drill h1{font-family:var(--font-serif);margin:0;font-size:20px;font-weight:600;line-height:1.35}.drill-lead{color:var(--lab-stage-muted);font-size:var(--lab-text-ui);margin:10px 0 0;line-height:1.7}.drill-mast{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px;display:flex}.drill-meters{flex:none;align-items:flex-end;gap:18px;margin:0;display:flex}.drill-meters p{flex-direction:column;align-items:flex-start;margin:0;display:flex}.drill-meters b{font-family:var(--font-serif);font-size:var(--lab-text-page);font-weight:600;line-height:1}.drill-meters span{color:var(--lab-stage-muted);font-size:var(--lab-text-caption);margin-top:4px}.drill-report-link,.drill-back,.drill-lesson{color:var(--lab-stage-bright);border-bottom:1px solid color-mix(in srgb, var(--lab-stage-accent) 55%, transparent);text-decoration:none}.drill-back{font-size:var(--lab-text-small);margin-bottom:14px;display:inline-block}.drill-badges{background:radial-gradient(1.2px 1.2px at 18% 22%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 74% 70%, var(--lab-stage-dust), transparent), var(--lab-stage);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lab-stage-line) 45%, transparent);border-radius:22px;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 6px;margin:16px 0 0;padding:12px 8px 14px;list-style:none;display:grid}.drill-badges li{text-align:center;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:8px 8px 10px;display:flex}.drill-badges strong,.drill-badges small{display:block}.drill-badges strong{font-size:var(--lab-text-small);font-weight:600;line-height:1.3}.drill-badges small{color:var(--lab-stage-muted);font-size:12px;line-height:1.45}.drill-badges .is-locked strong{color:var(--lab-stage-muted)}.drill-crest{width:36px;height:36px;box-shadow:inset 0 0 0 1.5px var(--lab-stage-line);background:0 0;border-radius:13px 13px 6px 6px}.drill-badges .is-earned .drill-crest{background:var(--lab-stage-done);box-shadow:inset 0 -6px 0 var(--lab-stage-plinth-done-r), 0 0 0 3px color-mix(in srgb, var(--lab-stage-done) 28%, transparent);position:relative}.drill-badges .is-earned .drill-crest:after{content:"";border:solid var(--lab-stage-on-done);border-width:0 2px 2px 0;width:6px;height:11px;position:absolute;top:7px;left:13px;transform:rotate(45deg)}.drill-block{margin-top:22px}.drill-block h2{color:var(--lab-stage-accent);font-size:var(--lab-text-caption);letter-spacing:.14em;margin:0 0 8px;font-weight:600;line-height:1.4}.drill-roads{background:radial-gradient(1.2px 1.2px at 12% 18%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 78% 64%, var(--lab-stage-dust), transparent), radial-gradient(1.1px 1.1px at 46% 88%, var(--lab-stage-dust), transparent), var(--lab-stage);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lab-stage-line) 45%, transparent);border-radius:22px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;padding:6px;list-style:none;display:grid}.drill-roads>li{min-width:0}.drill-roads a{height:100%;color:inherit;border-radius:16px;flex-direction:column;gap:8px;padding:16px 14px 14px;text-decoration:none;display:flex;position:relative}.drill-roads .is-live a{background:var(--lab-stage-raise);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lab-stage-accent) 55%, transparent), 0 10px 22px color-mix(in srgb, var(--lab-stage-shadow-fill) 10%, transparent)}.drill-roads .is-cleared a{background:color-mix(in srgb, var(--lab-stage-done) 16%, transparent)}.drill-roads em{-webkit-line-clamp:2;color:var(--lab-stage-muted);-webkit-box-orient:vertical;margin:0;font-style:normal;line-height:1.6;display:-webkit-box;overflow:hidden}.drill-road-index{color:var(--lab-stage-accent);letter-spacing:.08em;font-size:12px;font-weight:600;line-height:1.2}.drill-road-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.drill-road-head strong{min-width:0;font-size:var(--lab-text-h2);font-weight:600;line-height:1.3}.drill-roads .drill-state{color:var(--lab-stage-muted);white-space:nowrap;border-radius:999px;flex:none;margin-top:2px;padding:3px 0;font-size:12px;font-weight:600;line-height:1.3}.drill-roads .is-open .drill-state{color:var(--lab-stage-on-done);background:var(--lab-stage-accent);padding:3px 9px}html[data-theme=dark] .drill-roads .is-open .drill-state,html[data-theme=dark] .drill-path .is-open .drill-state{color:var(--lab-stage-bright);background:color-mix(in srgb, var(--lab-stage-accent) 16%, var(--lab-stage-raise));box-shadow:inset 0 0 0 1px var(--lab-stage-accent)}html[data-theme=dark] .drill-path .is-live .drill-stone{background:linear-gradient(180deg, var(--lab-stage-raise), var(--lab-stage-idle));color:var(--lab-stage-bright);box-shadow:inset 0 -7px 0 color-mix(in srgb, var(--lab-stage-accent) 50%, #14201c), 0 0 0 1.5px var(--lab-stage-accent), 0 0 16px var(--lab-stage-glow)}html[data-theme=dark] .drill-pebbles .is-here:before{box-shadow:inset 0 0 0 1.5px var(--lab-stage-bright);background:0 0}html[data-theme=dark] .drill-go:not(.is-quiet){background:color-mix(in srgb, var(--lab-stage-accent) 18%, var(--lab-stage-raise));color:var(--lab-stage-bright);box-shadow:inset 0 0 0 1px var(--lab-stage-accent)}.drill-roads .is-live .drill-state{color:var(--lab-stage-bright);box-shadow:inset 0 0 0 1.5px var(--lab-stage-accent);background:0 0;padding:2px 8px}.drill-roads .is-cleared .drill-state{color:var(--lab-stage-bright);background:color-mix(in srgb, var(--lab-stage-done) 22%, transparent);padding:3px 9px}.drill-pebbles{align-items:center;margin-top:auto;padding-top:8px;display:flex}.drill-pebbles i{flex:1 1 0;align-items:center;min-width:0;height:14px;display:flex}.drill-pebbles i:before{content:"";width:8px;height:8px;box-shadow:inset 0 0 0 1.5px var(--lab-stage-line);border-radius:3px 3px 2px 2px;flex:none}.drill-pebbles i:after{content:"";background:color-mix(in srgb, var(--lab-stage-line) 70%, transparent);border-radius:99px;flex:auto;height:2px;margin-left:2px}.drill-pebbles i:last-child{flex:none}.drill-pebbles i:last-child:after{display:none}.drill-pebbles .is-done:before{background:var(--lab-stage-done);box-shadow:0 0 8px color-mix(in srgb, var(--lab-stage-done) 50%, transparent)}.drill-pebbles .is-done:after{background:color-mix(in srgb, var(--lab-stage-accent) 72%, transparent)}.drill-pebbles .is-here:before{width:10px;height:10px;box-shadow:inset 0 0 0 1.5px var(--lab-stage-accent);background:0 0}.drill-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.drill-path a,.drill-gate-lock{color:inherit;background:var(--lab-stage);border:1px solid var(--lab-stage-line);border-radius:18px;align-items:flex-start;gap:12px;padding:16px;text-decoration:none;display:flex}.drill-gate-copy{flex-direction:column;gap:6px;display:flex}.drill-path small{color:var(--lab-stage-muted);font-size:var(--lab-text-caption)}.drill-path strong{font-size:var(--lab-text-body);line-height:1.35}.drill-path em,.drill-roads em{color:var(--lab-stage-muted);font-style:normal;font-size:var(--lab-text-small);line-height:1.6}.drill-path{background:radial-gradient(90px 28% at 40px 0, var(--lab-stage-glow), transparent 72%), radial-gradient(1.4px 1.4px at 18% 12%, var(--lab-stage-dust), transparent), radial-gradient(1.2px 1.2px at 12% 46%, var(--lab-stage-dust), transparent), radial-gradient(1px 1px at 78% 28%, var(--lab-stage-dust), transparent), radial-gradient(1.3px 1.3px at 64% 70%, var(--lab-stage-dust), transparent), radial-gradient(1.1px 1.1px at 46% 88%, var(--lab-stage-dust), transparent), var(--lab-stage);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lab-stage-line) 45%, transparent), inset 0 0 80px color-mix(in srgb, var(--lab-stage-glow) 35%, transparent);border-radius:22px;flex-direction:column;margin:4px 0 0;padding:8px 6px;list-style:none;display:flex;position:relative}.drill-path li{position:relative}.drill-path li:before{content:"";background:color-mix(in srgb, var(--lab-stage-line) 70%, transparent);z-index:0;border-radius:99px;width:2px;position:absolute;top:56px;bottom:-12px;left:33px}.drill-path li:last-child:before{display:none}.drill-path li:has(+.is-cleared):before{background:linear-gradient(180deg, var(--lab-stage-bright), var(--lab-stage-accent));box-shadow:0 0 6px 1px var(--lab-stage-glow), 0 0 16px var(--lab-stage-glow)}.drill-path a,.drill-gate-lock{box-shadow:none;background:0 0;border:0;border-radius:16px;grid-template-columns:44px minmax(0,1fr);align-items:start;column-gap:14px;padding:12px 14px 12px 12px;display:grid}.drill-path .is-open .drill-gate-copy,.drill-path .is-live .drill-gate-copy,.drill-path .is-cleared .drill-gate-copy{border-radius:14px;margin:-2px 0;padding:8px 12px 10px}.drill-path .is-live .drill-gate-copy{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--lab-stage-accent) 40%, transparent);background:0 0}.drill-path .is-cleared .drill-gate-copy{background:color-mix(in srgb, var(--lab-stage-done) 16%, var(--lab-stage-raise))}.drill-stone{z-index:1;width:44px;height:44px;color:var(--lab-stage-muted);font-size:var(--lab-text-small);font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1.5px var(--lab-stage-line);background:0 0;border-radius:16px 16px 8px 8px;place-items:center;font-weight:650;display:grid;position:relative}.drill-path .is-live .drill-stone{background:var(--lab-stage-raise);color:var(--lab-stage-bright);box-shadow:inset 0 -7px 0 color-mix(in srgb, var(--lab-stage-accent) 45%, var(--lab-stage-idle)), 0 0 0 1.5px var(--lab-stage-accent), 0 0 16px var(--lab-stage-glow)}.drill-path .is-cleared .drill-stone{background:var(--lab-stage-done);color:var(--lab-stage-on-done);box-shadow:inset 0 -7px 0 var(--lab-stage-plinth-done-r), 0 0 14px color-mix(in srgb, var(--lab-stage-done) 42%, transparent)}.drill-gate-copy{flex-direction:column;gap:4px;min-width:0;padding-top:1px;display:flex}.drill-gate-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.drill-gate-head strong{min-width:0;font-size:var(--lab-text-body);line-height:1.35}.drill-path .is-locked .drill-gate-copy em{color:color-mix(in srgb, var(--lab-stage-muted) 78%, transparent)}.drill-path .is-locked~.is-locked .drill-state{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.drill-path em{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.drill-state{color:var(--lab-stage-muted);white-space:nowrap;border-radius:999px;flex:none;margin-top:2px;padding:3px 0;font-size:12px;font-weight:600;line-height:1.3}.drill-path .is-open .drill-state{color:var(--lab-stage);background:var(--lab-stage-accent);padding:3px 9px}.drill-path .is-live .drill-state{color:var(--lab-stage-bright);box-shadow:inset 0 0 0 1.5px var(--lab-stage-accent);background:0 0;padding:2px 8px}.drill-path .is-cleared .drill-state{color:var(--lab-stage-bright);background:color-mix(in srgb, var(--lab-stage-done) 22%, transparent);padding:3px 9px}.drill-sheet{background:var(--lab-stage-raise);border:1px solid var(--lab-stage-line);border-radius:20px;padding:22px 22px 26px}.drill-sheet h2{font-size:var(--lab-text-h2);margin:8px 0 12px;font-weight:600;line-height:1.5}.drill-progress,.drill-point,.drill-kind{color:var(--lab-stage-muted);font-size:var(--lab-text-small);margin:0}.drill-kind{margin-bottom:8px}.drill-track{background:var(--lab-stage-idle);border-radius:99px;height:6px;margin:10px 0 14px;overflow:hidden}.drill-track span{border-radius:inherit;background:var(--lab-stage-accent);height:100%;display:block}.drill-dots{flex-wrap:wrap;gap:6px;margin:10px 0 14px;display:flex}.drill-dots i{background:var(--lab-stage-idle);border-radius:99px;width:22px;height:6px}.drill-dots .is-done{background:var(--lab-stage-done)}.drill-dots .is-now{background:var(--lab-stage-accent)}.drill-options{flex-direction:column;gap:10px;margin:16px 0;padding:0;list-style:none;display:flex}.drill-option{text-align:left;border:1px solid var(--lab-stage-line);background:var(--lab-stage);width:100%;color:var(--lab-stage-ink);font-size:var(--lab-text-small);cursor:pointer;border-radius:14px;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:12px;padding:12px 14px;display:grid}.drill-option i{border:1px solid var(--lab-stage-line);border-radius:50%;place-items:center;width:32px;height:32px;font-size:13px;font-style:normal;display:grid}.drill-option:focus-visible{outline:2px solid var(--lab-stage-accent);outline-offset:2px}.drill-options.is-multi .drill-option i{border-radius:8px}.drill-option.is-picked{border-color:var(--lab-stage-accent);box-shadow:inset 0 0 0 1px var(--lab-stage-accent)}.drill-option.is-picked i{background:var(--lab-stage-accent);border-color:var(--lab-stage-accent);color:var(--lab-stage)}.drill-option.is-right{border-color:var(--lab-stage-done);background:color-mix(in srgb, var(--lab-stage-done) 14%, var(--lab-stage-raise))}.drill-option.is-wrong{border-color:var(--lab-danger);background:color-mix(in srgb, var(--lab-danger) 10%, var(--lab-stage-raise))}.drill-option.is-right.is-picked,.drill-option.is-wrong.is-picked{box-shadow:inset 0 0 0 2px var(--lab-stage-accent)}.drill-option:disabled{cursor:default;opacity:1}.drill-why{color:var(--lab-stage-muted);font-size:var(--lab-text-small);margin:6px 0 0 46px;line-height:1.6}.drill-explain{background:var(--lab-stage);border-radius:12px;margin-top:8px;padding:12px 14px;line-height:1.7}.drill-explain p{margin:0 0 8px}.drill-explain.is-right{box-shadow:inset 3px 0 0 var(--lab-stage-done)}.drill-explain.is-wrong{box-shadow:inset 3px 0 0 var(--lab-danger)}.drill-go{background:var(--lab-stage-bright);min-height:42px;color:var(--lab-stage-on-done);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;margin-top:8px;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}.drill-go:disabled{opacity:.45;cursor:default}.drill-go:focus-visible{outline:2px solid var(--lab-stage-accent);outline-offset:3px}.drill-go.is-quiet{color:var(--lab-stage-bright);box-shadow:inset 0 0 0 1px var(--lab-stage-line);background:0 0}.drill-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.drill-issue{color:var(--lab-danger);line-height:1.6}.drill-misses{margin:0 0 12px;padding:0;list-style:none}.drill-misses li{border-top:1px solid var(--lab-stage-line);flex-direction:column;gap:4px;padding:10px 0;display:flex}.drill-misses span{color:var(--lab-stage-muted);line-height:1.5}.drill-meter{width:112px;height:112px}.drill-meter text{fill:var(--lab-stage-ink);font-size:var(--lab-text-h2);text-anchor:middle;font-family:var(--font-serif)}.drill-meter-track,.drill-meter-value{fill:none;stroke-width:8px}.drill-meter-track{stroke:var(--lab-stage-idle)}.drill-meter-value{stroke:var(--lab-stage-accent);stroke-linecap:round;transform-origin:60px 60px;transform:rotate(-90deg)}.drill-meter.is-passed .drill-meter-value{stroke:var(--lab-stage-done)}.drill-seal{flex:none;width:42px;height:42px}.drill-seal-ring,.drill-seal-core,.drill-seal-mark,.drill-seal-lock{fill:none;stroke:var(--lab-stage-line);stroke-width:1.6px}.drill-seal.is-open .drill-seal-ring,.drill-seal.is-live .drill-seal-ring{stroke:var(--lab-stage-accent)}.drill-seal.is-live .drill-seal-core{fill:color-mix(in srgb, var(--lab-stage-accent) 35%, transparent);stroke:var(--lab-stage-accent)}.drill-seal.is-cleared .drill-seal-ring,.drill-seal.is-cleared .drill-seal-core{stroke:var(--lab-stage-done)}.drill-seal.is-cleared .drill-seal-core{fill:var(--lab-stage-done)}.drill-seal-mark{stroke:var(--lab-stage-on-done);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.drill-report-courses{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px;padding:0;list-style:none;display:grid}.drill-report-courses a{min-height:96px;color:inherit;background:var(--lab-stage);border:1px solid var(--lab-stage-line);border-radius:16px;flex-direction:column;gap:6px;padding:14px;text-decoration:none;display:flex}.drill-report-courses span{color:var(--lab-stage-muted)}.drill-weak{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.drill-weak li{background:var(--lab-stage-raise);border:1px solid var(--lab-stage-line);border-radius:16px;gap:12px;padding:14px;display:flex}.drill-weak p{color:var(--lab-stage-muted);margin:6px 0;line-height:1.6}@media (width<=1100px){.drill-roads,.drill-report-courses{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=800px){.drill-mast,.drill-roads,.drill-report-courses{grid-template-columns:1fr;display:grid}.drill-badges{grid-template-columns:repeat(2,minmax(0,1fr))}.drill-meters{justify-content:space-between}}@keyframes drill-stone-burn{50%{box-shadow:inset 0 -7px 0 color-mix(in srgb, var(--lab-stage-accent) 45%, var(--lab-stage-idle)), 0 0 0 4px color-mix(in srgb, var(--lab-stage-accent) 55%, transparent), 0 0 22px 4px var(--lab-stage-glow)}}@media (prefers-reduced-motion:no-preference){.drill-path a:hover .drill-stone{transform:translateY(-2px)}.drill-path .is-live .drill-stone{animation:2.8s ease-in-out infinite drill-stone-burn}}@media (prefers-reduced-motion:reduce){.drill-meter-value,.drill-seal,.drill-option,.drill-go,.drill-path .is-live .drill-stone{transition:none;animation:none}}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-sans);background:var(--lab-bg);color:var(--lab-ink);margin:0}html[data-theme=dark] body{-webkit-font-smoothing:antialiased}::selection{background:color-mix(in srgb, var(--lab-accent) 24%, transparent)}a{color:var(--lab-accent)}button,input,textarea{font:inherit}:focus-visible{outline:2px solid var(--lab-accent);outline-offset:2px}.muted{color:var(--lab-muted)}.ant-breadcrumb{min-width:0;max-width:100%;font-size:13px;overflow:hidden}.ant-breadcrumb ol{flex-wrap:nowrap;max-width:100%}.ant-breadcrumb .ant-breadcrumb-item{min-width:0}.ant-breadcrumb .ant-breadcrumb-link{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:12em;display:inline-block;overflow:hidden}.ant-breadcrumb li:last-child .ant-breadcrumb-link{max-width:16em}@media (width<=720px){html,body{overflow-x:clip}.ant-breadcrumb .ant-breadcrumb-link{max-width:7.5em}.ant-breadcrumb li:last-child .ant-breadcrumb-link{max-width:10em}}.ant-btn-primary{box-shadow:none}.skip-link{z-index:1000;background:var(--lab-panel);border:1px solid var(--lab-accent);border-radius:6px;padding:10px 16px;position:fixed;top:8px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.route-loading{box-sizing:border-box;width:min(100%, var(--lab-measure,42rem));min-height:16rem;color:var(--lab-muted);margin-inline:auto;padding:8px 0 40px}.route-loading-label{letter-spacing:.08em;margin:0 0 18px;font-size:12px}.route-opening{gap:14px;display:grid}.route-opening-rule{background:var(--lab-accent);border-radius:2px;width:36px;height:3px}.route-opening-line{background:color-mix(in srgb, var(--lab-line,#d9ddd8) 85%, transparent);border-radius:999px;width:100%;height:12px}.route-opening-line.is-title{background:color-mix(in srgb, var(--lab-ink,#2e3330) 14%, var(--lab-line,#d9ddd8));width:46%;height:22px}.route-opening-line.is-short{width:68%}@media (prefers-reduced-motion:no-preference){.route-opening-line{animation:1.4s ease-in-out infinite route-ink}.route-opening-line.is-short{animation-delay:.18s}}@keyframes route-ink{0%,to{opacity:.4}50%{opacity:1}}.route-fail{padding:28px 0}.route-fail p{margin:0 0 12px}.route-fail button{border:1px solid var(--lab-line,var(--lab-muted));background:var(--lab-panel);color:inherit;font:inherit;cursor:pointer;border-radius:8px;padding:8px 14px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
