:root{--paper:#f4f2ec;--paper-deep:#ece9e0;--panel:#fffefa;--panel-soft:#faf8f2;--ink:#20262b;--ink-soft:#586779;--ink-faint:#636d77;--line:#d9d3c6;--line-strong:#bdb5a6;--line-dark:#303a42;--signal:#e65324;--signal-deep:#c8431a;--signal-ink:#a83712;--signal-soft:#fbe9e1;--teal:#1f7a68;--teal-ink:#176b5a;--teal-soft:#e3f1ec;--blue:#2c5f8a;--blue-soft:#e6eef5;--red:#b23a2e;--red-soft:#f7e7e4;--dark:#15191d;--dark-2:#1c2228;--dark-3:#242c33;--dark-line:#303a42;--dark-text:#e8e4da;--dark-muted:#b4bec6;--dark-faint:#98a3ac;--sans:"Noto Sans SC", "Source Han Sans SC", "HarmonyOS Sans SC", "Microsoft YaHei", system-ui, sans-serif;--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;--mono:"JetBrains Mono", "Cascadia Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--fs-12:.75rem;--fs-13:.8125rem;--fs-14:.875rem;--fs-16:1rem;--fs-18:1.125rem;--fs-22:1.375rem;--fs-28:1.75rem;--fs-40:2.5rem;--fs-56:3.5rem;--fs-72:4.5rem;--lh-tight:1.08;--lh-snug:1.35;--lh-body:1.75;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--s-20:80px;--s-24:96px;--s-30:120px;--r-control:4px;--r-panel:10px;--r-stage:0px;--r-pill:999px;--page-max:1440px;--gutter:88px;--rail:208px;--aside:420px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--t-fast:.12s;--t-base:.18s;--t-slow:.22s;--shadow-1:0 1px 0 #20262b0a;--shadow-2:0 12px 32px -18px #20262b47;--shadow-3:0 24px 64px -32px #20262b57}@media (width<=1100px){:root{--rail:192px;--aside:380px;--gutter:40px}}@media (width<=760px){:root{--gutter:20px}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-16);line-height:var(--lh-body);font-feature-settings:"palt" 1;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0}body.has-overlay{overflow:hidden}::selection{background:var(--signal);color:#fff}h1,h2,h3,h4,p,figure,blockquote{margin:0}h1,h2,h3,h4{font-weight:600;line-height:var(--lh-snug);text-wrap:balance}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{max-width:100%;display:block}ul,ol{margin:0;padding:0;list-style:none}code,kbd,pre,.mono{font-family:var(--mono);font-variant-ligatures:none}:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[data-view]{display:none}[data-view].is-active{display:block}.icon{flex:none}body.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}button.palette__item{text-align:left;cursor:pointer;background:0 0;border:0;width:100%}.quiz-option:disabled{cursor:default}.prototype-bar{z-index:90;justify-content:space-between;align-items:center;gap:var(--s-4);background:var(--dark);min-height:34px;color:var(--dark-muted);font-family:var(--mono);letter-spacing:.04em;padding:6px 20px;font-size:11px;display:flex;position:relative}.prototype-bar strong{color:var(--dark-text);font-weight:500}.prototype-bar .dot{background:var(--signal);vertical-align:1px;border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}.prototype-bar nav{gap:14px;display:flex}.prototype-bar a{color:var(--dark-muted);transition:color var(--t-fast) var(--ease)}.prototype-bar a:hover,.prototype-bar a:focus-visible{color:var(--dark-text)}.site-header{z-index:80;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}.site-header__inner{align-items:center;gap:var(--s-10);width:min(100%, var(--page-max));min-height:68px;padding:0 var(--gutter);margin:0 auto;display:flex}.brand{flex:none;align-items:center;gap:10px;display:inline-flex}.brand__mark{width:30px;height:30px;color:var(--ink)}.brand__word{flex-direction:column;gap:1px;line-height:1;display:flex}.brand__word b{letter-spacing:.04em;font-size:18px;font-weight:700}.brand__word span{font-family:var(--mono);letter-spacing:.24em;color:var(--ink-soft);font-size:9px}.site-nav{align-items:center;gap:4px;margin-right:auto;display:flex}.site-nav a{border-radius:var(--r-control);color:var(--ink-soft);font-size:var(--fs-14);transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);padding:8px 12px;position:relative}.site-nav a:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 4%, transparent)}.site-nav a.is-current{color:var(--ink);font-weight:600}.site-nav a.is-current:after{content:"";background:var(--ink);height:2px;position:absolute;bottom:1px;left:12px;right:12px}.header-actions{align-items:center;gap:10px;display:flex}.icon-btn{border-radius:var(--r-control);width:36px;height:36px;color:var(--ink-soft);transition:all var(--t-fast) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{border-color:var(--line);background:var(--panel);color:var(--ink)}.search-trigger{border:0;border-bottom:1px solid var(--line-strong);min-width:200px;height:34px;color:var(--ink-faint);font-size:var(--fs-13);transition:color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);background:0 0;border-radius:0;align-items:center;gap:10px;padding:0 2px 0 0;display:inline-flex}.search-trigger:hover{border-color:var(--ink);color:var(--ink)}.search-trigger kbd{border:1px solid var(--line);color:var(--ink-faint);background:0 0;border-radius:3px;margin-left:auto;padding:1px 4px;font-size:11px}.menu-trigger{display:none}.page{width:min(100%, var(--page-max));padding:0 var(--gutter);margin:0 auto}.section{padding-top:var(--s-20);padding-bottom:var(--s-20)}.section--tight{padding-top:var(--s-12);padding-bottom:var(--s-12)}.section-rule{justify-content:space-between;align-items:baseline;gap:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line);margin-bottom:var(--s-8);display:flex}.section-rule__index{font-family:var(--mono);letter-spacing:.16em;color:var(--ink-faint);font-size:11px}.section-rule h2{font-size:var(--fs-28);letter-spacing:-.02em}.section-rule__note{max-width:360px;color:var(--ink-soft);font-size:var(--fs-14);text-align:right}.section-rule__actions{align-items:center;gap:20px;display:flex}.demo-legend{color:var(--ink-faint);font-family:var(--mono);white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.demo-legend i{background:var(--ink);width:5px;height:5px}.eyebrow{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:10px;font-size:11px;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:var(--ink);width:14px;height:1px}.display{font-size:clamp(44px,5.4vw,72px);font-weight:700;line-height:var(--lh-tight);letter-spacing:-.045em}.display .period{background:var(--signal);color:#0000;vertical-align:.06em;border-radius:50%;width:.14em;height:.14em;margin-left:.06em;display:inline-block}.lede{max-width:34em;color:var(--ink-soft);font-size:var(--fs-18);line-height:1.7}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.mono-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.btn{border-radius:var(--r-control);height:44px;color:var(--ink);font-size:var(--fs-14);white-space:nowrap;transition:background var(--t-base) var(--ease), border-color var(--t-base) var(--ease), color var(--t-base) var(--ease), transform var(--t-base) var(--ease);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:9px;padding:0 18px;font-weight:600;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn--primary{background:var(--signal-deep);color:#fff}.btn--primary:hover{background:var(--signal-ink)}.btn--ghost{border-color:var(--line-strong);color:var(--ink);background:0 0}.btn--ghost:hover{border-color:var(--ink-soft);background:var(--panel)}.btn--quiet{height:36px;color:var(--ink-soft);padding:0 10px;font-weight:500}.btn--quiet:hover{background:color-mix(in srgb, var(--ink) 5%, transparent);transform:none}.btn--dark{background:var(--dark);color:var(--dark-text)}.btn--dark:hover{background:var(--dark-3)}.btn--sm{height:36px;font-size:var(--fs-13);padding:0 12px}.btn[disabled],.btn.is-disabled{opacity:.42;cursor:not-allowed;transform:none}.btn.is-loading{pointer-events:none}.btn.is-loading:after{content:"";border:1.5px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.7s linear infinite spin}.btn.is-error{border-color:var(--red);color:var(--red)}@keyframes spin{to{transform:rotate(360deg)}}.chip{border-radius:var(--r-control);background:var(--paper-deep);height:26px;color:var(--ink-soft);font-size:var(--fs-13);white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:0 9px;display:inline-flex}.chip--active{border-color:var(--ink);background:var(--ink);color:var(--paper)}.chip--signal{border-color:color-mix(in srgb, var(--signal) 30%, var(--line));background:var(--signal-soft);color:var(--signal-deep)}.chip--mono{font-family:var(--mono);letter-spacing:.04em;font-size:11px}.status{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:inline-flex}.status:before{content:"";border:1px solid var(--line-strong);background:0 0;border-radius:50%;width:8px;height:8px}.status--done:before{border-color:var(--ink);background:var(--ink)}.status--active:before{border-color:var(--ink);background:linear-gradient(90deg, var(--ink) 50%, transparent 50%)}.status--locked:before{border:1px solid var(--line-strong);background:0 0}.status--error{color:var(--red)}.status--error:before{background:var(--red)}.badge{background:var(--dark);height:22px;color:var(--dark-text);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:4px;align-items:center;gap:5px;padding:0 8px;font-size:11px;display:inline-flex}.badge--soft{background:var(--paper-deep);color:var(--ink-soft)}.badge--signal{background:var(--signal-soft);color:var(--signal-deep)}.panel{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel)}.panel--soft{background:var(--panel-soft)}.panel__head{justify-content:space-between;align-items:center;gap:var(--s-4);border-bottom:1px solid var(--line);padding:14px 18px;display:flex}.panel__body{padding:18px}.dark-stage{border-radius:var(--r-stage);background:var(--dark);color:var(--dark-text);position:relative;overflow:hidden}.dark-stage:before{content:"";pointer-events:none;background-image:linear-gradient(90deg,#ffffff09 1px,#0000 1px),linear-gradient(#ffffff09 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 50% 0,#000 20%,#0000 75%);mask-image:radial-gradient(at 50% 0,#000 20%,#0000 75%)}.dark-stage>*{position:relative}.field{flex-direction:column;gap:7px;display:flex}.field label{font-size:var(--fs-13);color:var(--ink-soft);font-weight:600}.input,.select{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel);height:40px;color:var(--ink);font-size:var(--fs-14);transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);padding:0 12px}.input:hover,.select:hover{border-color:var(--line-strong)}.input:focus,.select:focus{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft);outline:none}.input::placeholder{color:var(--ink-faint)}.site-footer{margin-top:var(--s-20);border-top:1px solid var(--line);background:var(--paper-deep)}.site-footer__inner{gap:var(--s-10);width:min(100%, var(--page-max));padding:48px var(--gutter) 40px;grid-template-columns:1.4fr 1fr 1fr 1fr;margin:0 auto;display:grid}.site-footer__brand p{max-width:280px;color:var(--ink-soft);font-size:var(--fs-13);margin-top:12px;line-height:1.7}.site-footer h4{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:12px;font-size:12px;font-weight:500}.site-footer li+li{margin-top:7px}.site-footer li a{color:var(--ink-soft);font-size:var(--fs-13)}.site-footer li a:hover{color:var(--ink)}.site-footer__note{justify-content:space-between;gap:var(--s-6);width:min(100%, var(--page-max));padding:16px var(--gutter) 28px;border-top:1px solid var(--line);color:var(--ink-soft);margin:0 auto;font-size:11px;display:flex}@media (width<=1080px){.site-header__inner{gap:var(--s-6);padding:0 24px}.site-nav{gap:0}}@media (width<=860px){.site-nav,.search-trigger span,.header-actions .btn--ghost{display:none}.prototype-bar{justify-content:center;padding:6px 12px;font-size:11px}.prototype-bar nav{display:none}.search-trigger{border-bottom:0;justify-content:center;width:36px;min-width:0;padding:0}.search-trigger kbd{display:none}.menu-trigger{display:inline-flex}.site-header__inner{min-height:60px;padding:0 20px}.site-footer__inner{grid-template-columns:1fr 1fr;padding:36px 20px 28px}.site-footer__note{flex-direction:column;padding:16px 20px 24px}}@media (width<=520px){.site-footer__inner{gap:var(--s-8);grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.site-footer__inner{width:min(100%, var(--page-max));padding:32px var(--gutter);border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:40px;margin:0 auto;display:grid}.site-footer__brand p{max-width:320px;color:var(--ink-soft);margin-top:8px;font-size:12px}.site-footer__links{color:var(--ink-soft);flex-wrap:wrap;gap:22px;font-size:13px;display:flex}.site-footer__links a:hover{color:var(--ink)}.site-footer__meta{color:var(--ink-soft);font-family:var(--mono);flex-direction:column;align-items:flex-end;gap:4px;font-size:11px;display:flex}.site-footer__meta a{color:var(--ink)}.site-footer__note{border-top:1px solid var(--line);color:var(--ink-soft);padding-top:12px;font-size:12px}@media (width<=760px){.site-footer__inner{grid-template-columns:1fr;align-items:start;gap:20px;padding-top:24px;padding-bottom:24px}.site-footer__meta{align-items:flex-start}.search-trigger{border-bottom:0;justify-content:center;width:36px;min-width:0;height:36px}.search-trigger kbd{display:none}}.hero{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:start;gap:clamp(40px,6vw,88px);padding:56px 0 0;display:grid}.hero__copy{min-width:0}.hero__title{margin:22px 0}.hero__lede{max-width:30em}.hero__actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.hero__meta{border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:34px;padding-top:16px;display:grid}.hero__meta span{flex-direction:column;gap:3px;display:flex}.hero__meta i{font-family:var(--sans);color:var(--ink-faint);letter-spacing:.04em;font-size:11px;font-style:normal}.hero__meta b{color:var(--ink);font-family:var(--mono);letter-spacing:-.01em;font-size:15px;font-weight:500}.stage{flex-direction:column;min-height:560px;display:flex;position:relative}.stage__head{border-bottom:1px solid var(--dark-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:16px 20px;display:flex}.stage__title{min-width:0;font-family:var(--mono);letter-spacing:.08em;color:var(--dark-muted);align-items:center;gap:10px;font-size:12px;display:flex}.stage__title b{white-space:nowrap;color:var(--dark-text);font-weight:500}.stage__step{font-family:var(--mono);letter-spacing:.08em;color:var(--dark-muted);white-space:nowrap;flex:none;margin-left:auto;font-size:11px}.stage__plot{flex:1;padding:20px 20px 6px}.stage__plot svg{width:100%;height:100%;overflow:visible}.stage__readout{border-top:1px solid var(--dark-line);align-items:flex-end;gap:28px;margin:0 20px 16px;padding-top:14px;display:flex}.stage__readout>span{flex-direction:column;gap:2px;display:flex}.stage__readout i{font-family:var(--mono);letter-spacing:.04em;color:var(--dark-muted);font-size:11px;font-style:normal}.stage__readout .stage__legend>span{flex-direction:row;align-items:center;gap:6px;display:inline-flex}.stage__readout b{font-family:var(--mono);color:var(--dark-text);font-size:16px;font-weight:500;line-height:1.1}.stage__readout .stage__readout-water b{color:#a9d1e2;font-size:40px;line-height:.95}.stage__readout-water small{color:var(--dark-muted);margin-left:4px;font-size:13px;font-weight:400}.stage__readout .stage__readout-water{min-width:72px}.stage__readout .stage__readout-water i{color:#a9d1e2}.stage__legend{font-family:var(--mono);letter-spacing:.03em;color:var(--dark-muted);flex-wrap:nowrap;justify-content:flex-end;align-items:flex-start;gap:4px;margin-left:auto;font-size:11px;flex-direction:column!important}.stage__legend i{border-radius:1px;width:10px;height:10px;margin:0;display:inline-block}.stage__legend i.is-water{background:#2c5f8abf;border:1px solid #78b4dc80}.stage__legend i.is-bar{background:#252d34;border:1px solid #4a565f}.stage__legend i.is-pointer{background:var(--signal);border-radius:0;width:12px;height:1px}.stage__caption{min-height:56px;color:var(--dark-text);align-items:flex-start;gap:10px;padding:0 20px 14px;font-size:15px;line-height:1.65;display:flex}.stage__caption:before{content:"›";color:var(--dark-muted);font-family:var(--mono);font-size:16px;line-height:1.2}.stage__code{border:1px solid var(--dark-line);border-radius:var(--r-control);font-family:var(--mono);color:var(--dark-muted);background:#00000038;margin:0 20px;padding:14px 16px;font-size:12.5px;line-height:1.8;overflow:hidden}.stage__code .ln{white-space:nowrap;opacity:.4;display:block}.stage__code .ln.is-active{color:var(--dark-text);opacity:1;box-shadow:inset 2px 0 0 var(--signal);margin-left:-8px;padding-left:8px}.stage__code .kw{color:#e0a06a}.stage__code .fn{color:#8fc4b0}.stage__code .num{color:#d98b74}.stage__controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:14px 20px 18px;display:flex}.stage__controls-group{align-items:center;gap:6px;display:flex}.stage-btn{border:1px solid var(--dark-line);border-radius:var(--r-control);height:34px;color:var(--dark-muted);font-family:var(--mono);letter-spacing:.06em;transition:all var(--t-fast) var(--ease);background:0 0;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:11px;display:inline-flex}.stage-btn:hover:not(:disabled){border-color:var(--dark-text);color:var(--dark-text)}.stage-btn:disabled{opacity:.35;cursor:not-allowed}.stage-btn--primary{border-color:var(--dark-line);background:var(--dark-2);color:var(--dark-text)}.stage-btn--primary:hover:not(:disabled){border-color:var(--signal);background:var(--dark-3);color:var(--dark-text)}.stage-play-icon{color:var(--signal);display:inline-flex}.stage-btn--icon{width:34px;padding:0}.range{font-family:var(--mono);color:var(--dark-muted);align-items:center;gap:8px;font-size:11px;display:flex}.range input{width:92px;accent-color:var(--dark-muted)}.index-strip__caption{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-faint);padding-bottom:10px;font-size:11px}.index-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.index-strip__item{border-left:1px solid var(--line);gap:14px;padding:18px 20px;display:flex}.index-strip__item:first-child{border-left:0;padding-left:0}.index-strip__num{font-family:var(--mono);color:var(--ink-faint);padding-top:3px;font-size:11px}.index-strip__body b{font-size:var(--fs-14);font-weight:600;display:block}.index-strip__body span{color:var(--ink-faint);font-size:12px}.paths-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.path-card{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);min-height:196px;transition:transform var(--t-base) var(--ease), border-color var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);flex-direction:column;padding:22px;display:flex;position:relative}.path-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-3px)}.path-card__top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.path-card__index{font-family:var(--mono);letter-spacing:.12em;color:var(--signal);font-size:11px}.path-card__count{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.path-card h3{font-size:var(--fs-22);letter-spacing:-.01em;margin-top:26px}.path-card p{color:var(--ink-soft);font-size:var(--fs-13);margin-top:8px;line-height:1.65}.path-card__foot{align-items:center;gap:12px;margin-top:auto;padding-top:22px;padding-right:22px;display:flex}.progress{background:var(--paper-deep);border-radius:2px;flex:1;height:3px;overflow:hidden}.progress span{background:var(--ink);height:100%;display:block}.path-card__pct{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.path-card__arrow{color:var(--line-strong);transition:color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);position:absolute;bottom:20px;right:20px}.path-card:hover .path-card__arrow{color:var(--signal);transform:translate(3px)}#paths{border-top:1px solid var(--line);padding-top:40px}#paths .section-rule{border-top:0;padding-top:0}.path-ledger{border-top:1px solid var(--ink)}.path-ledger__all{color:var(--ink-soft);align-items:center;gap:6px;padding:16px 0;font-size:13px;display:inline-flex}.path-ledger__all:hover{color:var(--ink)}.path-pending-foot{border-top:1px solid var(--line);color:var(--ink-faint);flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:16px 0;font-size:12px;display:flex}.path-pending-foot__name{color:var(--ink-soft)}.path-pending-foot__name+.path-pending-foot__name:before{content:"、"}.path-line{border-bottom:1px solid var(--line);transition:background var(--t-fast) var(--ease);grid-template-columns:92px minmax(0,1.15fr) 190px 236px 20px;align-items:center;gap:24px;padding:20px 4px 20px 0;display:grid}.path-line:hover{background:color-mix(in srgb, var(--panel) 70%, transparent)}.path-line__index{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-faint);font-size:11px}.path-line--pending{opacity:.55}.path-line__name{flex-direction:column;gap:4px;min-width:0;display:flex}.path-line__name b{font-size:var(--fs-18);letter-spacing:-.02em;font-weight:600}.path-line__name em{color:var(--ink-soft);font-size:13px;font-style:normal}.path-line__avail{font-family:var(--mono);color:var(--ink-soft);white-space:nowrap;font-size:12px}.path-line__avail i{color:var(--ink-faint);font-style:normal}.path-line__done{flex-direction:column;gap:7px;display:flex}.path-line__done .progress{flex:none;width:100%;height:4px}.path-line__count{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-soft);font-size:12px}.path-line__arrow{color:var(--line-strong);transition:color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease)}.path-line:hover .path-line__arrow{color:var(--ink);transform:translate(3px)}.demo-mark{font-family:var(--mono);letter-spacing:.06em;color:var(--ink-faint);align-items:center;gap:5px;font-size:11px;font-weight:400;display:inline-flex}.demo-mark:before{content:"";border:1px solid var(--ink-faint);background:0 0;width:4px;height:4px}.keyframes{border-top:1px solid var(--ink)}.keyframes__head{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-faint);justify-content:space-between;align-items:center;gap:24px;padding:12px 0 14px;font-size:11px;display:flex}.keyframes__head a{color:var(--ink);align-items:center;gap:8px;font-size:12px;display:inline-flex}.keyframes__head a:hover{color:var(--signal)}.keyframes__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding-bottom:8px;display:grid}.keyframe{border:1px solid var(--line);background:var(--panel);--key-bar:#e5e1d7;--key-bar-done:#d5dfe3;--key-water:#3f6b84;--key-water-line:#8fbed4;margin:0;padding:12px 12px 10px}.keyframe figcaption{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-faint);justify-content:space-between;align-items:baseline;gap:8px;font-size:10px;display:flex}.keyframe figcaption em{color:var(--ink);font-style:normal}.keyframe svg{width:100%;height:auto;margin-top:8px}.keyframe p{color:var(--ink-soft);margin-top:4px;font-size:12px;line-height:1.5}.run-timeline{margin-right:calc(-1 * var(--gutter))}.run-timeline__head{border-bottom:1px solid var(--dark-line);font-family:var(--mono);letter-spacing:.04em;color:var(--dark-muted);justify-content:space-between;align-items:center;gap:16px;padding:17px 22px;font-size:11px;display:flex}.run-timeline__head span:first-child{color:var(--dark-text)}.run-timeline__scroll{overflow-x:auto}.run-timeline__chart{width:100%;height:auto;display:block}.run-timeline__steps{font-family:var(--mono);color:var(--dark-muted);grid-template-columns:repeat(4,minmax(0,1fr));padding:0 0 14px;font-size:13px;display:grid}.run-timeline__steps span{text-align:center}.run-timeline__foot{border-top:1px solid var(--dark-line);justify-content:space-between;align-items:baseline;gap:24px;padding:14px 22px 16px;display:flex}.run-timeline__foot code{font-family:var(--mono);color:var(--dark-text);font-size:12px}.run-timeline__foot>span{color:var(--dark-muted);font-size:14px}.evidence__meta{border-top:1px solid var(--line);font-family:var(--mono);color:var(--ink-faint);justify-content:space-between;align-items:center;gap:24px;margin-top:24px;padding-top:16px;font-size:12px;display:flex}.evidence__meta a{color:var(--ink);align-items:center;gap:6px;display:inline-flex}.evidence__meta a:hover{color:var(--signal)}.start-band{margin:0 0 var(--s-20);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;padding:36px 48px;display:grid}.start-band__qid{font-family:var(--mono);letter-spacing:-.06em;color:var(--dark-faint);font-size:56px;font-weight:500;line-height:.9}.start-band__label{font-family:var(--mono);letter-spacing:.08em;color:var(--dark-muted);font-size:12px}.start-band__body h2{letter-spacing:-.035em;color:var(--dark-text);margin-top:8px;font-size:clamp(28px,3vw,40px)}.start-band__body p{max-width:42em;color:var(--dark-muted);font-size:var(--fs-14);margin-top:8px;line-height:1.65}.rows{border-top:1px solid var(--line)}.row{border-bottom:1px solid var(--line);transition:background var(--t-fast) var(--ease), padding var(--t-fast) var(--ease);grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 8px;display:grid}.row:hover{background:var(--panel);padding-left:14px;padding-right:14px}.row__qid{font-family:var(--mono);color:var(--ink-faint);font-size:12px}.row__title{font-size:var(--fs-16);letter-spacing:-.01em;font-weight:600}.row__sub{color:var(--ink-faint);align-items:center;gap:8px;margin-top:5px;font-size:12px;display:flex}.row__tags{gap:6px;display:flex}.row__right{align-items:center;gap:18px;display:flex}.row__arrow{color:var(--line-strong);opacity:.35;transition:transform var(--t-fast) var(--ease), color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease)}.row:hover .row__arrow{color:var(--ink);opacity:1;transform:translate(3px)}.manifesto{grid-template-columns:1.1fr 1fr;align-items:start;gap:64px;display:grid}.manifesto__quote{letter-spacing:-.02em;font-size:clamp(24px,2.6vw,34px);font-weight:600;line-height:1.45}.manifesto__quote em{color:var(--signal);font-style:normal}.manifesto__list{border-top:1px solid var(--line);gap:0;display:grid}.manifesto__item{border-bottom:1px solid var(--line);grid-template-columns:48px 1fr;gap:16px;padding:18px 0;display:grid}.manifesto__item span{font-family:var(--mono);color:var(--ink-faint);padding-top:3px;font-size:11px}.manifesto__item b{font-size:var(--fs-14);display:block}.manifesto__item p{color:var(--ink-soft);font-size:var(--fs-13);margin-top:4px;line-height:1.65}.cta-band{margin:0 0 var(--s-20);border-radius:var(--r-stage);background:var(--dark);color:var(--dark-text);justify-content:space-between;align-items:center;gap:32px;padding:44px 48px;display:flex}.cta-band h2{letter-spacing:-.03em;font-size:clamp(26px,3vw,38px)}.cta-band p{color:var(--dark-muted);font-size:var(--fs-14);margin-top:8px}.library-head{justify-content:space-between;align-items:flex-end;gap:32px;padding:56px 0 32px;display:flex}.library-head h1{letter-spacing:-.04em;margin-top:0;font-size:clamp(32px,3.4vw,44px)}.library-head p{max-width:360px;color:var(--ink-soft);font-size:var(--fs-14);text-align:right}.filter-row{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px 32px;padding:8px 0;display:flex}.filter-select{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.04em;align-items:center;gap:8px;font-size:11px;display:flex}.filter-select select{border:0;border-bottom:1px solid var(--line-strong);height:28px;color:var(--ink);font-family:var(--sans);letter-spacing:0;background-color:#0000;border-radius:0;padding:0 18px 0 0;font-size:13px}.filter-reset{border:0;border-bottom:1px solid var(--line-strong);color:var(--ink-soft);font-family:var(--mono);background:0 0;padding:4px 0;font-size:11px}.library-continue{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--ink) 3%, transparent);align-items:center;gap:14px;padding:14px 12px;display:flex}.library-continue__label{color:var(--signal);font-family:var(--mono);letter-spacing:.06em;font-size:11px}.library-continue b{font-size:15px;font-weight:600}.library-continue__action{color:var(--ink);margin-left:auto;font-size:12px}.problem-row{padding:7px 0}.problem-row.is-learning{box-shadow:inset 2px 0 0 var(--signal)}.problem-row__diff.diff-1{color:var(--ink-faint);font-weight:400}.problem-row__diff.diff-2{color:var(--ink-soft);font-weight:500}.problem-row__diff.diff-3{color:var(--ink);font-weight:600}.filter-bank__group{align-items:center;gap:4px;display:flex}.filter-bank__group+.filter-bank__group{border-left:1px solid var(--line);padding-left:24px}.filter-bank__label{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.03em;white-space:nowrap;flex:none;margin-right:4px;font-size:12px}.filter-bank__list{flex-wrap:wrap;gap:1px;display:flex}.filter-bank__list button{color:var(--ink-soft);font-size:var(--fs-13);white-space:nowrap;transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border:0;border-radius:2px;padding:4px 7px;line-height:1.3}.filter-bank__list button:hover{background:color-mix(in srgb, var(--ink) 4%, transparent);color:var(--ink)}.filter-bank__list button.is-active{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink);font-weight:600}.filter-bank__list button i{color:var(--ink-faint);font-family:var(--mono);margin-left:4px;font-size:10.5px;font-style:normal;font-weight:400}.library-layout{padding-bottom:80px;display:block}.filters{flex-direction:column;gap:18px;display:flex;position:sticky;top:92px}.filter-group__label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);justify-content:space-between;align-items:center;margin-bottom:6px;font-size:11px;display:flex}.filter-list{flex-direction:column;gap:2px;display:flex}.filter-list button{width:100%;color:var(--ink-soft);font-size:var(--fs-13);text-align:left;transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:0 0;border:0;border-radius:3px;justify-content:space-between;align-items:center;gap:8px;margin-left:0;padding:5px 8px 5px 12px;line-height:1.3;display:flex;position:relative}.filter-list button:hover{background:color-mix(in srgb, var(--ink) 4%, transparent);color:var(--ink)}.filter-list button.is-active{color:var(--ink);background:0 0;font-weight:600}.filter-list button.is-active:before{content:"";background:var(--signal);width:3px;position:absolute;top:7px;bottom:7px;left:0}.filter-list button span{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.problem-table__foot{border-top:1px solid var(--ink);color:var(--ink-faint);font-family:var(--mono);justify-content:space-between;align-items:center;gap:24px;padding:12px 0;font-size:11px;display:flex}.library-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:10px 0;display:flex}.library-search{flex:1;position:relative}.library-search .input{border:0;border-bottom:1px solid var(--line);background:0 0;border-radius:0;width:100%;height:36px;padding-left:30px}.library-search .input:focus{border-color:var(--ink);box-shadow:none}.library-search svg{color:var(--ink-faint);position:absolute;top:50%;left:4px;transform:translateY(-50%)}.library-count{font-family:var(--mono);color:var(--ink-faint);white-space:nowrap;font-size:11px}.select--bare{border:0;border-bottom:1px solid var(--line);height:36px;font-family:var(--mono);color:var(--ink-soft);background-color:#0000;border-radius:0;padding:0 24px 0 8px;font-size:11px}.select--bare:focus{border-color:var(--ink);box-shadow:none}.active-filters{flex-wrap:wrap;gap:6px;min-height:0;padding-top:12px;display:flex}.active-filters:empty{display:none}.active-filters .chip button{color:inherit;background:0 0;border:0;margin-left:2px;padding:0;display:inline-flex}.problem-table{margin-top:8px}.problem-row{border-bottom:1px solid var(--line);transition:background var(--t-fast) var(--ease);grid-template-columns:48px minmax(0,1fr) 130px 76px 96px 18px;align-items:center;gap:16px;padding:11px 0;display:grid;position:relative}.problem-row--head{z-index:20;background:var(--paper);color:var(--ink-faint);font-family:var(--mono);letter-spacing:.04em;border-bottom:1px solid var(--line-strong);padding:9px 0;font-size:12px;position:sticky;top:68px}.problem-row--head:hover{background:0 0}.problem-row:hover{background:color-mix(in srgb, var(--panel) 72%, transparent)}.problem-row__qid{font-family:var(--mono);color:var(--ink-faint);white-space:nowrap;font-size:13px}.demo-dot{background:var(--ink);vertical-align:1px;width:5px;height:5px;margin-left:6px;display:inline-block}.problem-row__blank{color:var(--line-strong);font-family:var(--mono);font-size:11px}.problem-row__main{min-width:0}.problem-row__title{letter-spacing:-.012em;align-items:center;gap:8px;font-size:17px;font-weight:600;display:flex}.problem-row__objective{color:var(--ink-soft);margin-top:4px;font-size:14px;line-height:1.6}.problem-row__track{color:var(--ink-soft);font-size:13px}.problem-row__diff{font-family:var(--mono);color:var(--ink-soft);font-size:12px}.problem-row__arrow{color:var(--line-strong);opacity:.35;transition:opacity var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease)}.problem-row:hover .problem-row__arrow,.problem-row:focus-visible .problem-row__arrow{color:var(--ink);opacity:1;transform:translate(3px)}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:80px 20px;display:none}.empty-state.is-visible{display:flex}.empty-state__mark{border:1px dashed var(--line-strong);width:56px;height:56px;color:var(--ink-faint);border-radius:50%;place-items:center;display:grid}.skeleton-row{border-bottom:1px solid var(--line);grid-template-columns:56px 1fr 120px 92px;gap:16px;padding:18px 10px;display:grid}.skeleton{background:linear-gradient(90deg, var(--paper-deep) 25%, var(--panel) 50%, var(--paper-deep) 75%);background-size:200% 100%;border-radius:3px;height:12px;animation:1.4s linear infinite shimmer}.skeleton--short{width:60%}@keyframes shimmer{to{background-position:-200% 0}}.study-shell{grid-template-columns:var(--rail) minmax(0, 1fr);width:100%;max-width:1440px;padding:0 var(--gutter);align-items:start;margin:0 auto;display:grid}body.focus-mode .study-shell{max-width:980px;display:block}body.focus-mode .study-rail{display:none}body.focus-mode .study-main{border:0;padding-top:48px}.study-rail{flex-direction:column;height:calc(100vh - 68px);padding:34px 28px 24px 0;display:flex;position:sticky;top:68px;overflow:auto}.study-rail__label{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);font-size:12px}.study-rail__title{margin-top:6px;font-size:14px;font-weight:600}.study-rail__progress{margin:16px 0 22px}.study-rail__progress .progress{height:2px}.study-rail__progress-meta{font-family:var(--mono);color:var(--ink-soft);justify-content:space-between;margin-top:8px;font-size:12px;display:flex}.chapter-nav{flex-direction:column;gap:1px;display:flex}.chapter-nav a{color:var(--ink-soft);font-size:var(--fs-13);transition:color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);border-radius:3px;align-items:center;gap:10px;padding:9px 10px 9px 12px;display:flex;position:relative}.chapter-nav a span{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.chapter-nav a:hover{background:color-mix(in srgb, var(--ink) 4%, transparent);color:var(--ink)}.chapter-nav a.is-current{color:var(--ink);background:0 0;font-weight:600}.chapter-nav a.is-current:before{content:"";background:var(--ink);width:2px;position:absolute;top:8px;bottom:8px;left:0}.chapter-nav a.is-done span{color:var(--teal)}.study-rail__foot{border-top:1px solid var(--line);margin-top:auto;padding-top:20px}.study-rail__foot a{color:var(--ink-soft);justify-content:space-between;align-items:center;padding:7px 0;font-size:12px;display:flex}.study-rail__foot a:hover{color:var(--signal)}.study-main{border-left:1px solid var(--line);min-width:0;padding:34px clamp(32px,4.4vw,64px) 100px}.study-topbar,.study-figure,.related,.study-nav{max-width:1008px}.study-head,.content-block,.study-main>.objective-card{max-width:880px}.study-workstation{grid-template-columns:minmax(0,460px) minmax(0,1fr);align-items:start;gap:40px;max-width:1008px;margin-top:24px;display:grid}.study-workstation .study-head{max-width:none;padding:0}.study-workstation .study-head h1{margin-top:0}.study-workstation .study-figure{max-width:none;margin:0}.study-workstation .study-figure__bar{margin-top:0}.study-actions .btn--quiet{padding:0 8px;font-size:12px}.study-next-top{white-space:nowrap;margin-left:8px}@media (width<=1180px){.study-actions .btn--quiet span{display:none}.study-actions .btn--quiet{justify-content:center;width:36px;padding:0}}@media (width<=1240px){.study-workstation{grid-template-columns:minmax(0,1fr);gap:32px}.study-workstation .study-figure{margin-top:0}}.study-head,.content-block{scroll-margin-top:84px}.mobile-chapters,.aside-mobile-head,.mobile-demo-trigger,.aside-backdrop{display:none}body.has-sheet{overflow:hidden}.study-topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding-bottom:18px;display:flex}.breadcrumb{font-family:var(--mono);color:var(--ink-faint);align-items:center;gap:8px;font-size:11px;display:flex}.breadcrumb a:hover{color:var(--signal)}.study-actions{align-items:center;gap:4px;display:flex}.study-actions .btn--quiet.is-on{color:var(--ink)}.study-head{padding:38px 0 8px}.study-head h1{letter-spacing:-.04em;margin:12px 0 10px;font-size:clamp(34px,3.6vw,44px);font-weight:700}.study-head__sub{max-width:34em;color:var(--ink-soft);font-size:16px;line-height:1.8}.study-meta{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;margin-top:22px;font-size:11px;display:flex}.study-meta>i{color:var(--line-strong);font-style:normal}.study-meta .status{border-left:1px solid var(--line);font-family:var(--sans);letter-spacing:0;margin-left:10px;padding-left:14px;font-size:12px}.study-figure{margin:48px 0 0}.study-figure__bar{border-bottom:1px solid var(--line);font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:12px;font-size:11px;display:flex}.study-figure figcaption{border-top:1px solid var(--line);color:var(--ink-soft);justify-content:space-between;align-items:baseline;gap:28px;margin-top:12px;padding-top:12px;font-size:13px;line-height:1.6;display:flex}.study-figure figcaption>span{max-width:62em}.study-figure figcaption a{color:var(--ink);white-space:nowrap;flex:none;align-items:center;gap:6px;display:inline-flex}.study-figure figcaption a:hover{color:var(--signal)}.study-figure .aside-tabs{border-color:var(--line);background:0 0;width:max-content;margin-bottom:10px}.study-figure__canvas{min-width:0}.study-figure .stage,.study-figure .timeline{box-shadow:none}.study-figure .aside-panel{margin-top:0}.objective-card{border-left:2px solid var(--ink);background:color-mix(in srgb, var(--ink) 3%, transparent);margin:36px 0 8px;padding:24px 26px;position:relative}.objective-card__label{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-faint);font-size:12px}.objective-card ul{gap:7px;margin-top:14px;display:grid}.objective-card li{color:var(--ink-soft);font-size:var(--fs-14);gap:10px;line-height:1.65;display:flex}.objective-card li:before{content:"—";color:var(--line-strong)}.objective-card__question{border-top:1px solid var(--line);color:var(--ink);font-size:var(--fs-14);margin-top:16px;padding-top:14px;font-weight:600}.objective-card__question span{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.08em;margin-right:8px;font-size:12px}.content-block{border-top:1px solid var(--line);margin-top:40px;padding:40px 0 8px}.content-block__head{align-items:baseline;gap:14px;margin-bottom:20px;display:flex}.content-block__index{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.content-block h2{font-size:var(--fs-22);letter-spacing:-.02em}.content-block__note{color:var(--ink-faint);margin-left:auto;font-size:11px}.prose{max-width:42em;color:var(--ink);font-size:var(--fs-16);line-height:1.85}.prose p+p{margin-top:14px}.prose code{border:1px solid var(--line);background:var(--panel);border-radius:4px;padding:1px 5px;font-size:.88em}.io-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.io-card{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);padding:18px 20px}.io-card__label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:8px;margin-bottom:8px;font-size:11px;display:flex}.io-card__label:before{content:"";background:var(--teal);width:6px;height:6px}.io-card:last-child .io-card__label:before{background:var(--blue)}.io-card p{font-size:var(--fs-14);line-height:1.7}.constraint-grid{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;margin-top:16px;display:grid;overflow:hidden}.constraint-grid div{background:var(--panel);padding:14px 16px}.constraint-grid b{font-family:var(--mono);font-size:var(--fs-14);font-weight:600;display:block}.constraint-grid span{color:var(--ink-faint);font-size:11px}.sample{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);margin-top:16px;overflow:hidden}.sample__tabs{border-bottom:1px solid var(--line);gap:2px;padding:8px;display:flex}.sample__tab{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.04em;background:0 0;border:0;border-radius:6px;padding:6px 12px;font-size:11px}.sample__tab.is-active{background:var(--ink);color:var(--paper)}.sample__grid{grid-template-columns:1fr 1fr;display:grid}.sample__cell{padding:16px 18px}.sample__cell+.sample__cell{border-left:1px solid var(--line)}.sample__cell h4{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:8px;font-size:11px;font-weight:500}.sample__cell pre{color:var(--ink);white-space:pre-wrap;margin:0;font-size:13px;line-height:1.75}.sample__why{border-top:1px solid var(--line);background:var(--panel-soft);color:var(--ink-soft);gap:10px;padding:14px 18px;font-size:13px;line-height:1.7;display:flex}.sample__why b{color:var(--signal-ink);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;flex:none;padding-top:3px;font-size:11px}.derivation{border-top:1px solid var(--line)}.derivation details{border-bottom:1px solid var(--line)}.derivation summary{cursor:pointer;font-size:var(--fs-14);align-items:center;gap:14px;padding:16px 4px;font-weight:600;list-style:none;display:flex}.derivation summary::-webkit-details-marker{display:none}.derivation summary:before{content:"+";border:1px solid var(--line);width:22px;height:22px;color:var(--ink-soft);font-family:var(--mono);transition:all var(--t-fast) var(--ease);border-radius:50%;place-items:center;font-size:12px;font-weight:400;display:grid}.derivation details[open] summary:before{content:"−";border-color:var(--signal);background:var(--signal);color:#fff}.derivation summary span{font-family:var(--mono);color:var(--ink-faint);font-size:11px;font-weight:400}.derivation details p{max-width:42em;color:var(--ink-soft);font-size:var(--fs-14);padding:0 4px 18px 40px;line-height:1.8}.hint-ladder{gap:8px;display:grid}.hint{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel);overflow:hidden}.hint__trigger{width:100%;color:var(--ink);font-size:var(--fs-13);text-align:left;background:0 0;border:0;align-items:center;gap:12px;padding:12px 16px;font-weight:600;display:flex}.hint__trigger i{background:var(--paper-deep);width:22px;height:22px;color:var(--ink-soft);font-family:var(--mono);border-radius:50%;place-items:center;font-size:11px;font-style:normal;display:grid}.hint__trigger span{color:var(--ink-faint);font-family:var(--mono);margin-left:auto;font-size:11px;font-weight:400}.hint__body{color:var(--ink-soft);font-size:var(--fs-13);padding:0 16px 16px 50px;line-height:1.75;display:none}.hint.is-open .hint__body{display:block}.hint.is-open .hint__trigger i{background:var(--signal-soft);color:var(--signal)}.code-reader{border:1px solid var(--dark);border-radius:var(--r-panel);background:var(--dark);color:var(--dark-text);overflow:hidden}.code-reader__bar{border-bottom:1px solid var(--dark-line);align-items:center;gap:4px;padding:8px 10px;display:flex}.code-tab{color:var(--dark-muted);font-family:var(--mono);background:0 0;border:0;border-radius:5px;padding:6px 10px;font-size:11px}.code-tab.is-active{background:var(--dark-3);color:var(--dark-text)}.code-reader__actions{gap:2px;margin-left:auto;display:flex}.code-reader__actions button{width:28px;height:28px;color:var(--dark-muted);background:0 0;border:0;border-radius:5px;place-items:center;display:grid}.code-reader__actions button:hover{background:var(--dark-3);color:var(--dark-text)}.code-body{max-height:460px;font-family:var(--mono);grid-template-columns:42px minmax(0,1fr);font-size:12.5px;line-height:1.85;display:grid;overflow:auto}.code-gutter{border-right:1px solid var(--dark-line);color:var(--dark-faint);text-align:right;-webkit-user-select:none;user-select:none;padding:14px 0}.code-gutter span{padding:0 10px 0 0;display:block}.code-lines{white-space:pre;tab-size:4;padding:14px 18px 14px 14px}.code-lines .line{border-left:2px solid #0000;border-radius:2px;padding:0 6px;display:block}.code-lines .line.is-hl{border-left-color:var(--signal);background:#e653241a}.code-lines .kw{color:#e0a06a}.code-lines .fn{color:#8fc4b0}.code-lines .str{color:#c9b47e}.code-lines .num{color:#d98b74}.code-lines .cm{color:#66727c}.code-reader__note{border-top:1px solid var(--dark-line);color:var(--dark-muted);padding:12px 16px;font-size:12px;line-height:1.65}.complexity-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.complexity-card{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);padding:18px 20px}.complexity-card b{font-family:var(--mono);letter-spacing:-.02em;font-size:22px;font-weight:500;display:block}.complexity-card span{color:var(--ink-faint);font-size:11px}.complexity-card p{color:var(--ink-soft);font-size:var(--fs-13);margin-top:8px;line-height:1.65}.pitfalls{border-top:1px solid var(--line);gap:0;display:grid}.pitfalls li{border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:var(--fs-13);grid-template-columns:28px 1fr;gap:12px;padding:12px 0;line-height:1.7;display:grid}.pitfalls li span{font-family:var(--mono);color:var(--red);padding-top:3px;font-size:11px}.quiz-list{gap:16px;display:grid}.quiz-card{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);padding:22px 24px}.quiz-card__label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-size:11px}.quiz-card h3{font-size:var(--fs-16);margin-top:8px;font-weight:600}.quiz-options{gap:8px;margin-top:16px;display:grid}.quiz-option{border:1px solid var(--line);border-radius:var(--r-control);color:var(--ink-soft);font-size:var(--fs-13);text-align:left;transition:all var(--t-fast) var(--ease);background:0 0;align-items:center;gap:10px;padding:10px 12px;display:flex}.quiz-option:hover{border-color:var(--line-strong);color:var(--ink)}.quiz-option i{border:1px solid var(--line);width:20px;height:20px;font-family:var(--mono);border-radius:50%;place-items:center;font-size:11px;font-style:normal;display:grid}.quiz-option.is-selected{border-color:var(--ink);color:var(--ink)}.quiz-option.is-correct{border-color:var(--teal);background:var(--teal-soft);color:var(--teal)}.quiz-option.is-wrong{border-color:var(--red);background:var(--red-soft);color:var(--red)}.quiz-feedback{border-left:2px solid var(--teal);background:var(--teal-soft);color:var(--teal);font-size:var(--fs-13);margin-top:14px;padding:12px 14px;line-height:1.7;display:none}.quiz-feedback.is-visible{display:block}.quiz-feedback.is-wrong{border-color:var(--red);background:var(--red-soft);color:var(--red)}.quiz-actions{gap:8px;margin-top:16px;display:flex}.related{flex-wrap:wrap;gap:8px;display:flex}.study-nav{grid-template-columns:1fr 1fr;gap:16px;margin-top:48px;display:grid}.study-nav a{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);transition:border-color var(--t-fast) var(--ease);padding:18px 20px}.study-nav a:hover{border-color:var(--line-strong)}.study-nav span{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-faint);font-size:11px}.study-nav b{font-size:var(--fs-14);margin-top:6px;display:block}.study-nav a:last-child{text-align:right}.resizer{cursor:col-resize;background:0 0;height:calc(100vh - 68px);position:sticky;top:68px}.resizer:after{content:"";background:var(--line-strong);width:2px;height:48px;transition:background var(--t-fast) var(--ease);border-radius:1px;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.resizer:hover:after{background:var(--signal)}.study-aside{border-left:1px solid var(--line);background:var(--paper);height:calc(100vh - 68px);position:sticky;top:68px;overflow:auto}.aside-inner{padding:20px 20px 28px}.aside-tabs{background:0 0;border:0;border-radius:0;gap:2px;padding:0;display:flex}.aside-tab{border:0;border-bottom:1px solid var(--line);color:var(--ink-faint);font-family:var(--mono);letter-spacing:.06em;background:0 0;border-radius:0;flex:1;padding:8px 14px;font-size:11px}.aside-tab.is-active{color:var(--ink);border-bottom-color:var(--ink);background:0 0}.aside-panel{margin-top:14px;display:none}.aside-panel.is-active{display:block}.timeline{border-radius:var(--r-stage);padding:18px}.timeline__head{font-family:var(--mono);letter-spacing:.08em;color:var(--dark-muted);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:11.5px;display:flex}.timeline__head b{color:var(--dark-text);font-weight:500}.chars{gap:8px;padding:14px 0;display:grid}.char{border:1px solid var(--dark-line);background:var(--dark-2);width:auto;height:82px;transition:all var(--t-fast) var(--ease);border-radius:3px;flex-direction:column;justify-content:flex-end;align-items:center;display:flex}.char b{font-family:var(--mono);color:var(--dark-text);font-size:19px;font-weight:500}.char span{font-family:var(--mono);color:var(--dark-faint);padding-bottom:6px;font-size:11px}.char.is-done{background:#202831;border-color:#4a565f}.char.is-current{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 18%, var(--dark-2));transform:translateY(-3px)}.char.is-current b{color:#ffb99e}.timeline__caption{min-height:50px;color:var(--dark-text);padding:8px 0 4px;font-size:14.5px;line-height:1.65}.timeline__caption b{color:var(--dark-text);font-weight:500}.timeline__controls{border-top:1px solid var(--dark-line);flex-wrap:wrap;align-items:center;gap:6px;padding-top:10px;display:flex}.timeline__controls .range{margin-left:auto}.var-table{border-collapse:collapse;width:100%;font-family:var(--mono);margin-top:12px;font-size:12px}.var-table th,.var-table td{border-bottom:1px solid var(--line);text-align:left;padding:7px 8px}.var-table th{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:11px;font-weight:500}.var-table td{color:var(--ink-soft)}.var-table tr.is-current td{background:var(--signal-soft);color:var(--signal-deep)}.aside-code{border-radius:var(--r-panel);background:var(--dark);color:var(--dark-text);overflow:hidden}.aside-code .code-lines{padding:16px;font-size:12px;line-height:1.8}.aside-code .line.is-hl{background:#e6532429}.aside-legend{border-top:1px solid var(--dark-line);color:var(--dark-muted);flex-wrap:wrap;gap:14px;margin:0 18px 16px;padding-top:12px;font-size:11px;display:flex}.aside-legend span{align-items:center;gap:5px;display:inline-flex}.aside-legend i{background:#87929c;border-radius:2px;width:7px;height:7px}.aside-legend i.is-current{background:var(--signal)}.aside-legend i.is-pending{background:#3a444d}.lab-head{justify-content:space-between;align-items:flex-end;gap:32px;padding:56px 0 32px;display:flex}.lab-head h1{letter-spacing:-.04em;margin-top:0;font-size:clamp(32px,3.4vw,44px)}.lab-head p{max-width:380px;color:var(--ink-soft);font-size:var(--fs-14);text-align:right}.lab-featured{grid-template-columns:minmax(0,1fr) 360px;align-items:stretch;gap:0;margin-bottom:40px;display:grid}.lab-stage{min-height:520px}.lab-stage__body{grid-template-columns:minmax(0,1fr) 240px;gap:12px;padding:18px;display:grid}.graph-wrap{border:1px solid var(--dark-line);border-radius:var(--r-control);background:#00000024;min-height:320px;position:relative}.graph-wrap svg{width:100%;height:100%}.graph-legend{color:var(--dark-muted);font-family:var(--mono);gap:14px;font-size:11px;display:flex;position:absolute;bottom:12px;left:12px}.graph-legend span{align-items:center;gap:6px;display:inline-flex}.graph-legend i{border:1px solid #3a444d;border-radius:50%;width:7px;height:7px}.graph-legend i.is-done{background:#69757e;border-color:#69757e}.graph-legend i.is-current{border-color:var(--signal)}.graph-legend i.is-pending{border-style:dashed}.step-table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:11.5px}.step-table th,.step-table td{border-bottom:1px solid var(--dark-line);text-align:right;color:var(--dark-muted);padding:6px}.step-table th:first-child,.step-table td:first-child{text-align:left}.step-table th{color:var(--dark-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:500}.step-table tr.is-current td{color:var(--dark-text);background:#e653241f}.step-table td b{color:var(--signal);font-weight:500}.lab-side{border-left:1px solid var(--line);flex-direction:column;height:100%;padding-left:24px;display:flex}.lab-note{background:0 0;border:0;border-radius:0;flex-direction:column;height:100%;padding:4px 0 0;display:flex}.lab-note p{color:var(--ink-soft);font-size:var(--fs-13);margin-top:8px;line-height:1.7}.lab-note ul{border-top:1px solid var(--line);gap:8px;margin-top:14px;padding-top:14px;display:grid}.lab-note li{color:var(--ink-soft);gap:8px;font-size:12px;display:flex}.lab-note li:before{content:"·";color:var(--signal)}.anim-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.anim-card{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);min-height:170px;transition:all var(--t-base) var(--ease);flex-direction:column;padding:16px;display:flex}.anim-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-2);transform:translateY(-2px)}.anim-card__viz{align-items:flex-end;gap:3px;height:42px;margin-bottom:14px;display:flex}.anim-card__viz i{background:var(--line-strong);transition:height var(--t-base) var(--ease);border-radius:2px 2px 0 0;flex:1}.anim-card:hover .anim-card__viz i{background:var(--signal)}.anim-card__viz i:nth-child(2n){opacity:.55}.anim-card__meta{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);text-transform:uppercase;justify-content:space-between;align-items:center;font-size:10.5px;display:flex}.anim-card h3{font-size:var(--fs-14);margin-top:6px;font-weight:600}.anim-card__foot{color:var(--ink-faint);justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;font-size:11px;display:flex}.lab-facts{border-top:1px solid var(--line);gap:0;margin-top:18px;display:grid}.lab-facts div{border-bottom:1px solid var(--line);grid-template-columns:64px minmax(0,1fr);gap:12px;padding:10px 0;display:grid}.lab-facts dt{color:var(--ink-faint);font-size:11px}.lab-facts dd{font-family:var(--mono);color:var(--ink);margin:0;font-size:11.5px;line-height:1.6}.lab-note--quiet{background:0 0;border-style:dashed}.lab-legend{border-top:1px solid var(--line);color:var(--ink-soft);flex-wrap:wrap;gap:8px 16px;margin-top:14px;padding-top:12px;font-size:12px;display:flex}.lab-legend span{align-items:center;gap:6px;display:inline-flex}.lab-legend i{border:1px solid var(--line-strong);border-radius:50%;width:7px;height:7px}.lab-legend i.is-done{background:#69757e;border-color:#69757e}.lab-legend i.is-current{border-color:var(--signal)}.lab-note__link{color:var(--ink);align-items:center;gap:6px;margin-top:14px;font-size:12px;display:inline-flex}.lab-note__link:hover{color:var(--signal)}.lab-index{padding-bottom:56px}.lab-family__head{grid-template-columns:48px minmax(0,1fr);align-items:start;gap:16px;display:grid}.lab-family__index{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.lab-family__main h3{font-size:var(--fs-22);letter-spacing:-.02em}.lab-family__main p{color:var(--ink-soft);margin-top:4px;font-size:13.5px;line-height:1.6}.lab-family__count{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-faint);margin-left:10px;font-size:12px;font-weight:400}.lab-family__rows{border-top:1px solid var(--line);margin-top:16px}.lab-row{border-bottom:1px solid var(--line);transition:background var(--t-fast) var(--ease);grid-template-columns:48px minmax(0,1fr) 96px 16px;align-items:center;gap:16px;padding:10px 0;display:grid}.lab-row__main b{font-size:15px;font-weight:600;display:block}.lab-row__main span{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:14px;line-height:1.55;display:block;overflow:hidden}.lab-row--head{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.06em;border-bottom:0;padding:9px 0;font-size:11px}.lab-row--head:hover{background:0 0}.lab-row:hover{background:color-mix(in srgb, var(--panel) 70%, transparent)}.lab-row__qid{font-family:var(--mono);color:var(--ink-faint);font-size:13px}.lab-row__name{font-size:var(--fs-14);font-weight:600}.lab-row__obj{min-width:0;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.lab-row__arrow{color:var(--line-strong);opacity:.35;transition:opacity var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease)}.lab-row:hover .lab-row__arrow,.lab-row:focus-visible .lab-row__arrow{color:var(--ink);opacity:1;transform:translate(3px)}.status--ready:before{background:var(--ink)}.status--planned:before{background:var(--line-strong)}.system-head{padding:56px 0 32px}.system-head h1{letter-spacing:-.04em;margin-top:14px;font-size:clamp(36px,4vw,54px)}.system-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;padding-bottom:80px;display:grid}.swatches{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.swatch{border:1px solid var(--line);border-radius:var(--r-control);overflow:hidden}.swatch i{height:54px;display:block}.swatch span{background:var(--panel);font-family:var(--mono);color:var(--ink-soft);padding:7px 9px;font-size:10.5px;display:block}.type-specimen{gap:14px;display:grid}.type-specimen>div{border-bottom:1px solid var(--line);align-items:baseline;gap:16px;padding-bottom:12px;display:flex}.type-specimen span{width:74px;font-family:var(--mono);color:var(--ink-faint);flex:none;font-size:10.5px}.state-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.state-grid>div{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel);flex-direction:column;gap:8px;padding:14px;display:flex}.state-grid span{font-family:var(--mono);color:var(--ink-faint);font-size:10.5px}.overlay{z-index:120;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#15191d6b;justify-content:center;align-items:flex-start;padding:12vh 20px 20px;display:none;position:fixed;inset:0}.overlay.is-open{display:flex}.palette{border:1px solid var(--line-strong);border-radius:var(--r-panel);background:var(--panel);width:min(100%,620px);box-shadow:var(--shadow-3);overflow:hidden}.palette__input{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette__input input{font-size:var(--fs-16);background:0 0;border:0;outline:none;flex:1}.palette__input kbd{border:1px solid var(--line);color:var(--ink-faint);border-radius:4px;padding:3px 6px;font-size:11px}.palette__results{max-height:360px;padding:6px;overflow:auto}.palette__item{color:var(--ink-soft);font-size:var(--fs-13);border-radius:6px;align-items:center;gap:12px;padding:10px 12px;display:flex}.palette__item:hover,.palette__item.is-active{background:var(--paper);color:var(--ink)}.palette__item span:first-child{font-family:var(--mono);color:var(--ink-faint);width:36px;font-size:11px}.palette__item b{font-weight:600}.palette__item em{color:var(--ink-faint);margin-left:auto;font-size:11px;font-style:normal}.palette__foot{border-top:1px solid var(--line);color:var(--ink-faint);gap:16px;padding:10px 16px;font-size:11px;display:flex}.modal{border:1px solid var(--line-strong);border-radius:var(--r-panel);background:var(--panel);width:min(100%,1040px);max-height:80vh;box-shadow:var(--shadow-3);overflow:auto}.modal__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;display:flex}.modal__head h2{font-size:var(--fs-18)}.modal__body{padding:22px}.version-grid{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.version-col{border:1px solid var(--line);border-radius:var(--r-control);overflow:hidden}.version-col h4{border-bottom:1px solid var(--line);background:var(--panel-soft);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);padding:10px 12px;font-size:10.5px;font-weight:500}.version-col div{color:var(--ink-soft);padding:14px;font-size:12px;line-height:1.7}.mobile-drawer{z-index:110;background:var(--paper);flex-direction:column;padding:20px;display:none;position:fixed;inset:0}.mobile-drawer.is-open{display:flex}.mobile-drawer__head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.mobile-drawer nav{flex-direction:column;padding-top:12px;display:flex}.mobile-drawer nav a{border-bottom:1px solid var(--line);font-size:var(--fs-18);padding:14px 0;font-weight:600}@media (width<=1240px){.study-shell{grid-template-columns:var(--rail) minmax(0, 1fr)}.study-main{border-right:0}.path-line{grid-template-columns:76px minmax(0,1.1fr) 160px 210px 20px;gap:18px}.start-band{grid-template-columns:130px minmax(0,1fr) auto;gap:28px;padding:36px 40px}.start-band__qid{font-size:74px}.lab-family{grid-template-columns:240px minmax(0,1fr);gap:32px}}@media (width<=1080px){.hero{grid-template-columns:1fr;gap:40px;padding-top:52px;padding-bottom:32px}.hero__copy{max-width:720px}.stage{min-height:440px}.paths-grid{grid-template-columns:repeat(2,1fr)}.library-layout{grid-template-columns:170px minmax(0,1fr);gap:28px}.manifesto{grid-template-columns:1fr;gap:32px}.lab-featured{grid-template-columns:1fr}.lab-side{grid-template-columns:1fr 1fr;display:grid}}@media (width<=900px){.page{padding:0 24px}.section{padding:56px 0}.library-head,.lab-head{flex-direction:column;align-items:flex-start;gap:16px}.library-head p,.lab-head p{text-align:left}.library-layout{grid-template-columns:1fr}.filter-bank{padding:4px 0;display:block}.filter-bank__group{border-bottom:1px solid var(--line);border-left:0;padding:7px 0}.filter-bank__group+.filter-bank__group{padding-left:0}.filter-bank__group:last-child{border-bottom:0}.filter-bank__list{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.filter-bank__list::-webkit-scrollbar{display:none}.problem-row{grid-template-columns:40px minmax(0,1fr) 96px;gap:12px}.problem-row__track,.problem-row__diff,.problem-row--head,.problem-row__arrow{display:none}.study-shell{grid-template-columns:1fr}.study-rail{display:none}.study-main{border-left:0;border-right:0;padding:24px 0 80px}.mobile-chapters{z-index:30;margin:0 calc(-1 * var(--gutter)) 10px;padding:10px var(--gutter);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);scrollbar-width:none;gap:6px;display:flex;position:sticky;top:68px;overflow-x:auto}.mobile-chapters::-webkit-scrollbar{display:none}.mobile-chapters a{color:var(--ink-soft);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:8px 2px;font-size:12px}.mobile-chapters a.is-current{border-bottom-color:var(--ink);color:var(--ink);background:0 0}.study-head,.content-block{scroll-margin-top:132px}.study-head h1{font-size:clamp(34px,7vw,46px)}.anim-grid{grid-template-columns:repeat(2,1fr)}.path-line{grid-template-columns:64px minmax(0,1fr) 190px 18px;gap:16px}.path-line__avail{display:none}.lab-family{padding:20px 0 0}.lab-family__head{grid-template-columns:40px minmax(0,1fr);gap:2px 10px}.lab-family__index{grid-row:1}.start-band{grid-template-columns:minmax(0,1fr);gap:16px;padding:32px 28px}.start-band .btn{justify-self:start}.study-figure{margin-top:36px}.run-timeline__chart,.run-timeline__steps{min-width:780px}.study-figure__canvas,.study-figure__canvas>.stage,.study-figure__canvas .timeline{min-width:0}.study-figure figcaption{flex-direction:column;gap:8px}.study-figure__canvas .chars{grid-template-columns:repeat(5,minmax(0,1fr))!important}.system-grid{grid-template-columns:1fr}.index-strip{grid-template-columns:repeat(2,1fr)}.index-strip__item:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-left:0}.index-strip__item:nth-child(4){border-top:1px solid var(--line)}}@media (width<=700px){.section-rule{flex-direction:column;align-items:flex-start;gap:8px}.section-rule__note{text-align:left;max-width:none}}@media (width<=640px){.page{padding:0 20px}.path-line{grid-template-columns:44px minmax(0,1fr) 18px;gap:10px 12px;padding:16px 0}.path-line__name b{font-size:var(--fs-16)}.path-line__done,.path-line__pending{grid-column:2}.path-line__arrow{grid-area:1/3/span 2}.run-timeline__head{flex-wrap:wrap;gap:4px 16px}.run-timeline__foot{flex-direction:column;align-items:flex-start;gap:8px}.start-band{grid-template-columns:1fr;gap:14px}.start-band .btn{grid-column:1}.lab-row{grid-template-columns:40px minmax(0,1fr) 88px 14px;gap:10px}.lab-row__main span{white-space:normal}.lab-row__arrow,.lab-row--head{display:none}.problem-table__foot{border-top:1px solid var(--ink);color:var(--ink-faint);font-family:var(--mono);justify-content:space-between;align-items:center;gap:24px;padding:12px 0;font-size:11px;display:flex}.library-toolbar{flex-wrap:wrap}.library-search{flex:100%}.library-count{order:2}.library-toolbar .select{order:3;margin-left:auto}.filters{flex-direction:column}.filter-group{min-width:0}.filter-list{flex-flow:wrap}.hero{padding-top:40px}.hero__actions .btn{flex:1}.stage{min-height:0}.stage__plot{padding:14px 14px 0}.stage__controls{flex-wrap:wrap}.stage__controls .range{order:3;justify-content:flex-end;width:100%}.paths-grid{grid-template-columns:1fr}.row{grid-template-columns:46px minmax(0,1fr) auto;gap:12px}.row__tags,.row__right .status{display:none}.problem-row{grid-template-columns:36px minmax(0,1fr) 80px;gap:10px}.problem-row__arrow{display:none}.io-grid,.sample__grid,.complexity-grid{grid-template-columns:1fr}.sample__cell+.sample__cell{border-left:0;border-top:1px solid var(--line)}.constraint-grid{grid-template-columns:1fr 1fr}.study-main{padding:20px 20px 64px}.mobile-chapters{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px;top:60px}.study-topbar{flex-wrap:wrap}.study-actions .btn--quiet span{display:none}.study-head__sub{font-size:var(--fs-16)}.content-block{margin-top:32px;padding-top:32px}.content-block__note{display:none}.code-body{grid-template-columns:34px minmax(0,1fr);font-size:11px}.study-nav,.lab-stage__body,.anim-grid,.lab-side{grid-template-columns:1fr}.swatches{grid-template-columns:1fr 1fr}.state-grid,.version-grid{grid-template-columns:1fr}}.problem-table .problem-row:not(.problem-row--head){padding:7px 0}.problem-table .problem-row__objective{margin-top:2px;font-size:13px;line-height:1.4}.lab-family--plates{padding:24px 0 0}.lab-plates{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;display:grid}.lab-plate{border:1px solid var(--line);background:var(--panel);min-width:0;transition:border-color var(--t-fast) var(--ease);flex-direction:column;display:flex}.lab-plate:hover{border-color:var(--line-strong)}.lab-plate .mini-demo{border-bottom:1px solid var(--line)}.lab-plate__meta{flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 12px 11px;display:flex}.lab-plate__meta b{font-size:14px;font-weight:600}.lab-plate__meta>span{width:100%;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.lab-plate__meta em{font-size:11px;font-style:normal}@media (width<=1080px){.lab-plates{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.lab-plates{grid-template-columns:1fr}}.lab-index{border-top:1px solid var(--ink);padding-bottom:56px}.lab-family{border-top:1px solid var(--line);padding:0}.lab-family:first-child{border-top:0}.lab-family__row{text-align:left;width:100%;transition:background var(--t-fast) var(--ease);background:0 0;border:0;grid-template-columns:48px minmax(0,1.15fr) minmax(0,.95fr) 104px 20px;align-items:center;gap:24px;padding:20px 4px 20px 0;display:grid}.lab-family__row:hover{background:color-mix(in srgb, var(--panel) 70%, transparent)}.lab-family__index{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);font-size:11px}.lab-family__main{flex-direction:column;gap:3px;min-width:0;display:flex}.lab-family__main b{font-size:var(--fs-18);letter-spacing:-.02em;font-weight:600}.lab-family__main em{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-style:normal;overflow:hidden}.lab-family__names{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.lab-family__count{font-family:var(--mono);text-align:right;color:var(--ink-faint);font-size:11px}.lab-family__toggle{color:var(--ink-faint);font-family:var(--mono);text-align:center;font-size:17px;line-height:1}.lab-family.is-open .lab-family__row{background:color-mix(in srgb, var(--panel) 60%, transparent)}.lab-family.is-open .lab-family__toggle{color:var(--signal)}.lab-family__body{padding:0 0 28px 72px}.lab-grid{flex-wrap:wrap;gap:16px;display:flex}.lab-tile{border:1px solid var(--line);background:var(--panel);min-width:0;transition:border-color var(--t-fast) var(--ease);flex:0 0 292px}.lab-tile:hover{border-color:var(--line-strong)}.lab-tile .mini-demo{border-bottom:1px solid var(--line)}.lab-tile__meta{flex-direction:column;gap:3px;padding:10px 12px 12px;display:flex}.lab-tile__line{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.lab-tile__line b{font-size:14px;font-weight:600}.lab-tile__line em{flex:none;font-size:11px;font-style:normal}.lab-tile__meta>span{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.45;overflow:hidden}.lab-note__link{border-top:1px solid var(--line);margin-top:auto;padding-top:16px;font-size:13px}@media (width<=1080px){.lab-family__row{grid-template-columns:40px minmax(0,1fr) 88px 16px;gap:16px}.lab-family__names{display:none}.lab-family__body{padding-left:56px}}@media (width<=700px){.lab-family__row{grid-template-columns:28px minmax(0,1fr) 16px;gap:12px;padding:16px 0}.lab-family__count{display:none}.lab-family__body{padding:0 0 20px}.lab-tile{flex:100%}.keyframes__grid{grid-template-columns:1fr}}.study-objectives .mono-label{margin-bottom:10px;display:block}.study-objectives ul{gap:8px;display:grid}.study-objectives li{color:var(--ink-soft);gap:10px;font-size:13px;line-height:1.65;display:flex}.study-objectives li:before{content:"—";color:var(--line-strong)}.key-question{border-bottom:1px solid var(--line);align-items:baseline;gap:14px;max-width:880px;padding:18px 0 6px;display:flex}.key-question span{font-family:var(--mono);letter-spacing:.12em;color:var(--ink-faint);flex:none;font-size:10px}.key-question p{color:var(--ink);font-size:var(--fs-16);line-height:1.75}.cipher-sim{border-top:1px solid var(--dark-line);grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:14px;padding-top:12px;display:grid}.cipher-sim__label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dark-faint);margin-bottom:6px;font-size:9px;display:block}.cipher-sim__code{border:1px solid var(--dark-line);background:#0000002e;min-width:0;max-height:156px;overflow:auto}.cipher-sim__code .code-lines{padding:8px 10px;font-size:10.5px;line-height:1.7}.cipher-sim__vars{min-width:0;max-height:156px;overflow:auto}.cipher-sim .var-table{margin-top:0;font-size:10.5px}.cipher-sim .var-table th,.cipher-sim .var-table td{border-bottom:1px solid var(--dark-line);color:var(--dark-muted);padding:4px 6px}.cipher-sim .var-table th{color:var(--dark-faint)}.cipher-sim .var-table tr.is-current td{color:var(--dark-text);background:#e6532429}@media (width<=760px){.cipher-sim{grid-template-columns:1fr}}.paths-resume{border-top:1px solid var(--ink);border-bottom:1px solid var(--line);align-items:center;gap:12px;height:56px;display:flex}.paths-resume__label{font-family:var(--mono);letter-spacing:.14em;color:var(--signal);font-size:10px}.paths-resume b{font-size:15px;font-weight:600}.paths-resume__meta{color:var(--ink-faint);font-size:12px}.paths-resume__action{color:var(--ink);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.path-entry{border-bottom:1px solid var(--line);scroll-margin-top:84px}.path-entry__row{text-align:left;width:100%;min-height:72px;transition:background var(--t-fast) var(--ease);background:0 0;border:0;grid-template-columns:56px minmax(0,1.2fr) minmax(0,1fr) 150px 20px;align-items:center;gap:20px;padding:12px 0;display:grid}.path-entry__row:hover:not(:disabled){background:color-mix(in srgb, var(--panel) 65%, transparent)}.path-entry__row:disabled{cursor:default}.path-entry__index{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);white-space:nowrap;font-size:11px}.path-entry__main{flex-direction:column;gap:3px;min-width:0;display:flex}.path-entry__main b{letter-spacing:-.02em;font-size:17px;font-weight:600}.path-entry__main em{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-style:normal;overflow:hidden}.path-entry__next{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.path-entry__progress{align-items:center;gap:10px;display:flex}.path-entry__count{font-family:var(--mono);color:var(--ink-soft);white-space:nowrap;font-size:12px}.path-entry__progress .progress{width:80px;height:3px}.path-entry__toggle{color:var(--ink-faint);font-family:var(--mono);text-align:center;font-size:16px;line-height:1}.path-entry.is-open .path-entry__toggle{color:var(--signal)}.path-entry__body{padding:0 0 20px 56px}.path-entry__body .path-table__head{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:0 0;margin-top:0;padding:8px 0;position:static}.path-problem__main em{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12.5px;font-style:normal;display:block;overflow:hidden}.path-entry__foot{color:var(--ink-faint);justify-content:space-between;align-items:center;gap:20px;padding-top:12px;font-size:12px;display:flex}@media (width<=1080px){.path-entry__row{grid-template-columns:44px minmax(0,1fr) 120px 16px;gap:14px}.path-entry__next{display:none}.path-entry__body{padding-left:44px}}@media (width<=760px){.path-entry__row{grid-template-columns:34px minmax(0,1fr) 16px}.path-entry__progress{display:none}.path-entry__body{padding-left:0}.path-problem__track,.path-problem__diff,.path-entry__body .path-table__head span:nth-child(3),.path-entry__body .path-table__head span:nth-child(4){display:none}.path-problem,.path-entry__body .path-table__head{grid-template-columns:40px minmax(0,1fr) 80px 16px}}.filter-query{border-bottom:1px solid var(--line-strong);min-width:180px;height:28px;color:var(--ink-faint);flex:220px;align-items:center;gap:6px;display:flex;position:relative}.filter-query .input{background:0 0;border:0;outline:none;width:100%;height:26px;padding:0;font-size:13px}.filter-query .input:focus{box-shadow:none;border-color:#0000}.filter-select--sort{margin-left:auto}.library-continue{background:0 0;height:48px;padding:0 12px}.library-continue__meta{color:var(--ink-faint);font-size:12px}.library-continue__label{letter-spacing:.1em}.problem-row__arrow{opacity:0}.problem-row:hover .problem-row__arrow,.problem-row:focus-visible .problem-row__arrow,.problem-row.is-learning .problem-row__arrow{opacity:1}.problem-row--head span:nth-child(5){padding-left:15px}@media (width<=900px){.filter-select--sort{margin-left:0}.filter-query{flex-basis:100%}}.filter-row{border-top:0}.path-index{border-top:0;margin-top:0}.content-block h2{font-size:var(--fs-28)}@media (width<=760px){.content-block h2{font-size:var(--fs-22)}.keyframes__grid{grid-template-columns:1fr}}@media (width>=701px) and (width<=1080px){.keyframes__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.filter-query__label{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.04em;flex:none;font-size:11px}.site-footer__note{color:var(--ink-soft);font-size:12px}.site-footer__note a{color:var(--ink)}.site-footer__note a:hover{color:var(--signal)}.study-head__sub{font-size:16.5px}@media (width<=760px){.keyframes__head{flex-direction:column;align-items:flex-start;gap:6px}.path-entry__row{grid-template-columns:30px minmax(0,1fr) auto 14px}.path-entry__progress{display:flex}.path-entry__progress .progress{display:none}.path-line{grid-template-columns:44px minmax(0,1fr) 16px;gap:6px 12px;padding:16px 0}.path-line__index{grid-area:1/1}.path-line__name{grid-area:1/2}.path-line__done{flex-direction:row;grid-area:2/2/auto/4;align-items:center;gap:10px}.path-line__done .progress{flex:1}.path-line__arrow{grid-area:1/3}.filter-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px 12px;padding:12px 0;display:grid}.filter-select{flex-direction:column;align-items:flex-start;gap:2px}.filter-select select{width:100%;padding-right:12px}.filter-query{grid-column:1/-1}.filter-select--sort{grid-column:1/2;margin-left:0}.filter-reset{grid-column:3/4;justify-self:end}.stage__plot svg{height:auto}}.lab-featured>.stage{height:100%}.lab-grid--three{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lab-grid--three .lab-tile{flex:none}@media (width<=760px){.lab-grid--three{display:flex}.lab-grid--three .lab-tile{flex:100%}}.cipher-states{border-top:1px solid var(--ink)}.cipher-states__head{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-faint);justify-content:space-between;align-items:center;gap:24px;padding:12px 0 14px;font-size:12px;display:flex}.cipher-states__head a{color:var(--ink);align-items:center;gap:8px;font-size:12px;display:inline-flex}.cipher-states__head a:hover{color:var(--signal)}.cipher-states__rows{border-top:1px solid var(--line)}.cipher-state{border-bottom:1px solid var(--line);grid-template-columns:150px minmax(0,1fr);align-items:center;gap:10px 20px;padding:10px 0;display:grid}.cipher-state__meta span{font-family:var(--mono);letter-spacing:.04em;color:var(--ink);font-size:12px;display:block}.cipher-state__meta em{color:var(--ink-faint);margin-top:2px;font-size:12px;font-style:normal;display:block}.cipher-state__cells{grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;display:grid}.cipher-cell{border:1px solid var(--line);background:var(--panel);flex-direction:column;justify-content:center;align-items:center;gap:1px;height:50px;display:flex}.cipher-cell b{color:var(--ink-soft);font-family:var(--mono);font-size:18px;font-weight:500;line-height:1}.cipher-cell span{color:var(--ink-faint);font-family:var(--mono);font-size:10px}.cipher-cell.is-done{background:#dde6e7;border-color:#b9c9ce}.cipher-cell.is-done b{color:var(--ink)}.cipher-cell.is-current{border-color:var(--signal);box-shadow:inset 0 -2px 0 var(--signal)}.cipher-cell.is-current b{color:var(--signal-deep)}.cipher-state__note{color:var(--ink-soft);grid-column:2;margin-top:-2px;font-size:12px;line-height:1.5}.path-directory{border-top:1px solid var(--ink)}.path-directory__row{border-bottom:1px solid var(--line);height:56px;transition:background var(--t-fast) var(--ease);grid-template-columns:100px minmax(0,1fr) 80px 20px;align-items:center;gap:24px;display:grid}.path-directory__row:hover{background:color-mix(in srgb, var(--panel) 70%, transparent)}.path-directory__row.is-pending{opacity:.45}.path-directory__index{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);font-size:11px}.path-directory__name{align-items:baseline;gap:14px;min-width:0;display:flex}.path-directory__name b{letter-spacing:-.01em;flex:none;font-size:15px;font-weight:600}.path-directory__name em{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-style:normal;overflow:hidden}.path-directory__count{font-family:var(--mono);color:var(--ink-soft);text-align:right;white-space:nowrap;font-size:12px}.path-directory__arrow{color:var(--line-strong);font-family:var(--mono);text-align:right;font-size:13px}.path-directory__row:hover .path-directory__arrow{color:var(--ink)}@media (width<=760px){.cipher-state{grid-template-columns:72px minmax(0,1fr);gap:6px 10px;padding:8px 0}.cipher-state__cells{gap:3px}.cipher-cell{height:38px}.cipher-cell b{font-size:13px}.cipher-cell span{font-size:8px}.cipher-state__note{grid-column:1/-1;font-size:11px}.cipher-states__head{flex-direction:column;align-items:flex-start;gap:4px}.path-directory__row{grid-template-columns:62px minmax(0,1fr) 52px 14px;gap:10px;height:52px}.path-directory__name em{display:none}.path-directory__count{font-size:11px}}.study-workstation{grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:32px}.study-spec{border-top:1px solid var(--line);margin:20px 0 0}.study-spec>div{border-bottom:1px solid var(--line);grid-template-columns:54px minmax(0,1fr);gap:10px;padding:7px 0;display:grid}.study-spec dt{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.study-spec dd{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12.5px;line-height:1.55;display:-webkit-box;overflow:hidden}.study-spec code{color:var(--ink);font-family:var(--mono);font-size:11.5px}.study-spec__sample dd{-webkit-line-clamp:initial;flex-wrap:wrap;gap:4px 8px;display:flex}.study-objectives{border-top:0;margin-top:20px;padding-top:14px}.study-next-strip{border:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);width:100%;height:46px;color:var(--ink);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding:0;font-size:13px;display:flex}.study-next-strip:hover{color:var(--signal)}.cipher-sim__code,.cipher-sim__vars{max-height:190px}.cipher-sim__code .code-lines{font-size:11.5px}.cipher-sim .var-table{font-size:11px}@media (width<=1240px){.study-workstation{grid-template-columns:minmax(0,1fr)}}.problem-table--grouped .problem-row{padding:8px 0}.problem-table--grouped .problem-row__title{font-size:15px}.problem-table--grouped .problem-row__objective{font-size:12.5px}.problem-group{border-bottom:1px solid var(--line-strong);grid-template-columns:48px minmax(0,1fr) auto;align-items:baseline;gap:12px;padding:16px 0 7px;display:grid}.problem-group__index{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-faint);font-size:11px}.problem-group b{font-size:14px;font-weight:600}.problem-group em{color:var(--ink-faint);font-size:12px;font-style:normal}.diff-ticks{align-items:center;gap:3px;display:inline-flex}.diff-ticks i{background:var(--line);width:6px;height:4px;display:block}.diff-ticks i.is-on{background:var(--blue)}.problem-table--grouped .problem-row.is-learning .problem-row__arrow{color:var(--signal);font-family:var(--mono);white-space:nowrap;font-size:11px}.problem-table--grouped .problem-row__arrow{font-family:var(--mono);justify-self:end;font-size:11px}@media (width<=900px){.problem-table--grouped .problem-row{grid-template-columns:36px minmax(0,1fr) 76px;gap:10px}.problem-table--grouped .diff-ticks,.problem-table--grouped .problem-row__arrow{display:none}.problem-table--grouped .status,.problem-table--grouped .state-content{grid-column:3;justify-self:end}.problem-group{grid-template-columns:36px minmax(0,1fr) auto}}.path-entry.is-pending{opacity:.45}.path-entry.is-pending .path-entry__row{min-height:56px}.study-head h1{font-size:48px}.mono-label,.section-rule__index,.path-entry__index,.path-line__index,.path-directory__index,.lab-family__index,.study-rail__label,.breadcrumb,.study-meta{font-size:12px}@media (width<=760px){.library-head h1,.paths-head h1,.lab-head h1{font-size:34px}.study-head h1{font-size:40px}.mono-label,.section-rule__index,.path-entry__index,.lab-family__index,.study-rail__label,.breadcrumb,.study-meta{font-size:11px}}.study-main{padding:34px clamp(24px,3vw,40px) 100px}.study-workstation{grid-template-columns:minmax(0,400px) minmax(0,1fr)}.path-directory__index,.problem-group__index,.lab-family__count,.study-spec dt{font-size:12px}@media (width<=1240px){.study-workstation{grid-template-columns:minmax(0,1fr)}.study-workstation>*{min-width:0}}.hero__title{font-size:clamp(56px,6vw,64px)}.display .period{background:var(--ink)}.cipher-sim__code .line{gap:8px;display:flex}.cipher-sim__code .line-no{color:var(--dark-faint);flex:none;font-style:normal}@media (width<=760px){.hero__title{font-size:52px}}.lab-list{border-top:1px solid var(--line)}.lab-item{border-bottom:1px solid var(--line);transition:background var(--t-fast) var(--ease);grid-template-columns:200px minmax(0,1fr) 130px 24px;align-items:center;gap:18px;padding:12px 0;display:grid}.lab-item:hover{background:color-mix(in srgb, var(--panel) 70%, transparent)}.lab-item__thumb{border:1px solid var(--dark-line);background:var(--dark);overflow:hidden}.lab-item__thumb .mini-demo{aspect-ratio:16/9}.lab-item__main{flex-direction:column;gap:4px;min-width:0;display:flex}.lab-item__line{align-items:baseline;gap:10px;display:flex}.lab-item__line b{letter-spacing:-.01em;font-size:16px;font-weight:600}.lab-item__line em{font-size:11px;font-style:normal}.lab-item__main>span{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.55;overflow:hidden}.lab-item__track{color:var(--ink-faint);text-align:right;font-size:12px}.lab-item__arrow{color:var(--line-strong);font-family:var(--mono);text-align:right;font-size:14px}.lab-item:hover .lab-item__arrow{color:var(--ink)}@media (width<=1080px){.lab-item{grid-template-columns:160px minmax(0,1fr) 20px}.lab-item__track{display:none}}@media (width<=760px){.lab-item{grid-template-columns:120px minmax(0,1fr) 16px;gap:12px}.lab-item__thumb .mini-demo{aspect-ratio:16/10}.lab-item__line{flex-wrap:wrap;gap:2px 8px}.lab-item__line b{font-size:14px}.lab-item__main>span{white-space:normal;font-size:12px}}.lab-item{grid-template-columns:240px minmax(0,1fr) 130px 24px;padding:14px 0}.lab-item__thumb{border-color:var(--line);background:var(--paper-deep)}@media (width<=1080px){.lab-item{grid-template-columns:190px minmax(0,1fr) 20px}}@media (width<=760px){.lab-item{grid-template-columns:130px minmax(0,1fr) 16px}}.lab-catalog{border-top:1px solid var(--ink)}.lab-catalog__group{border-bottom:1px solid var(--line)}.lab-catalog__head{border-bottom:1px solid var(--line-strong);grid-template-columns:48px minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:18px 0 9px;display:grid}.lab-catalog__index{font-family:var(--mono);color:var(--ink-faint);font-size:12px}.lab-catalog__head b{font-size:15px;font-weight:600}.lab-catalog__head em{color:var(--ink-soft);margin-left:10px;font-size:12px;font-style:normal}.lab-catalog__count{font-family:var(--mono);color:var(--ink-faint);font-size:12px}.lab-catalog__row{border-bottom:1px solid var(--line);transition:background var(--t-fast) var(--ease);grid-template-columns:64px minmax(0,1fr) 130px 96px 20px;align-items:center;gap:16px;padding:10px 0;display:grid}.lab-catalog__row:hover{background:color-mix(in srgb, var(--panel) 70%, transparent)}.lab-catalog__qid{color:var(--ink-faint);font-family:var(--mono);font-size:12px}.lab-catalog__main{align-items:baseline;gap:12px;min-width:0;display:flex}.lab-catalog__main b{flex:none;font-size:15px;font-weight:600}.lab-catalog__main em{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-style:normal;overflow:hidden}.lab-catalog__track{color:var(--ink-faint);text-align:right;font-size:12px}.lab-catalog__arrow{color:var(--line-strong);font-family:var(--mono);text-align:right;font-size:14px}.lab-catalog__row:hover .lab-catalog__arrow{color:var(--ink)}@media (width<=900px){.lab-catalog__head em{display:none}.lab-catalog__row{grid-template-columns:44px minmax(0,1fr) 78px 16px;gap:10px}.lab-catalog__track{display:none}}@media (width<=760px){.lab-catalog__row{grid-template-columns:40px minmax(0,1fr) 70px}.lab-catalog__arrow{display:none}.lab-catalog__main{flex-direction:column;gap:2px}.lab-catalog__main em{white-space:normal}}.run-strip{border-top:1px solid var(--ink);--key-bar:#e5e1d7;--key-bar-done:#d5dfe3;--key-water-fill:#cfe0e7;--key-water:#3f6b84;--key-line:#d9d3c6;--key-line-strong:#bdb5a6;--key-text:#20262b;--key-muted:#636d77}.run-strip__head{font-family:var(--mono);letter-spacing:.03em;color:var(--ink-faint);justify-content:space-between;align-items:center;gap:24px;padding:12px 0 10px;font-size:12px;display:flex}.run-strip__head a{color:var(--ink);align-items:center;gap:8px;font-size:12px;display:inline-flex}.run-strip__head a:hover{color:var(--signal)}.run-strip__scroll{padding:4px 0 10px;overflow-x:auto}.run-strip svg{width:100%;height:auto;display:block}@media (width<=760px){.run-strip__head{flex-direction:column;align-items:flex-start;gap:4px}.run-strip svg{width:900px;max-width:none}}.diff-meter{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:5px;font-size:12px;display:inline-flex}.diff-meter i{border:1px solid var(--line-strong);border-radius:50%;width:5px;height:5px}.diff-meter i.is-on{border-color:var(--ink);background:var(--ink)}.diff-meter em{margin-left:3px;font-style:normal}.path-prior-note{border-top:1px solid var(--line);color:var(--ink-faint);font-family:var(--mono);letter-spacing:.02em;padding:10px 0;font-size:11px}.path-directory__note{border-bottom:1px solid var(--line);color:var(--ink-faint);font-family:var(--mono);padding:12px 0;font-size:11px;display:block}.library-head h1,.paths-head h1,.lab-head h1{font-size:44px}.study-next-strip{border-top:1px solid var(--line);height:64px;margin-top:8px;font-size:14px}@media (width<=900px){.problem-table--grouped .diff-meter{display:none}}.key-question+.study-next-strip{max-width:880px}.lab-note h3{font-size:20px}.lab-note .mono-label{margin-bottom:6px}.display,.hero__title,.section-rule h2,.content-block h2,.study-head h1,.library-head h1,.paths-head h1,.lab-head h1{font-family:var(--serif);letter-spacing:-.02em;font-weight:600}.problem-group b,.lab-catalog__head b{font-family:var(--serif);font-weight:600}.library-head__aside{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.library-head__resume,.paths-head__resume{color:var(--ink);white-space:nowrap;font-size:13px}.library-head__resume:hover,.paths-head__resume:hover{color:var(--signal)}.library-head__aside p{color:var(--ink-faint);font-family:var(--mono);font-size:12px}.path-entry.is-pending .path-entry__row{opacity:.45;min-height:56px}.path-entry.is-pending .path-entry__arrow{display:none}.run-strip__legend{color:var(--ink-faint);font-family:var(--mono);align-items:center;gap:18px;padding:2px 0 6px;font-size:11px;display:flex}.run-strip__legend span{align-items:center;gap:6px;display:inline-flex}.run-strip__legend i{width:10px;height:10px;display:block}.run-strip__legend i.is-bar{border:1px solid var(--key-line-strong);background:var(--key-bar)}.run-strip__legend i.is-water{border:1px solid var(--key-water);background:var(--key-water-fill)}.run-strip__legend i.is-line{border-top:1.6px solid var(--key-water);height:0}.paths-head__resume{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.hero__progress,.path-entry.is-open .path-entry__toggle{color:var(--ink)}.problem-table--grouped .problem-row,.problem-table--grouped .problem-row--head{grid-template-columns:48px minmax(0,1fr) 160px 120px 96px 90px}@media (width<=900px){.problem-table--grouped .problem-row__track{display:none}}@media (width>=761px){.search-trigger{min-width:260px}}.search-trigger kbd{color:var(--ink-faint);border:0;padding:0}.site-footer__note{border-top:0}@media (width<=760px){.site-footer__links{gap:14px}}.cipher-cover{flex-direction:column;min-height:440px;padding:18px 20px;display:flex}.cipher-cover__head{border-bottom:1px solid var(--dark-line);color:var(--dark-muted);font-family:var(--mono);letter-spacing:.08em;justify-content:space-between;align-items:center;padding-bottom:12px;font-size:11px;display:flex}.cipher-cover__head .badge{margin-right:8px}.cipher-cover__rows{flex-direction:column;flex:1;justify-content:space-evenly;gap:12px;padding:16px 0;display:flex}.cipher-cover__row{grid-template-columns:58px minmax(0,1fr);align-items:center;gap:6px 12px;display:grid}.cipher-cover__step{color:var(--dark-muted);font-family:var(--mono);letter-spacing:.05em;font-size:10px}.cipher-cover__cells{grid-template-columns:repeat(10,minmax(0,1fr));gap:4px;display:grid}.cipher-cover__cell{border:1px solid var(--dark-line);background:var(--dark-2);flex-direction:column;justify-content:center;align-items:center;gap:1px;height:44px;display:flex}.cipher-cover__cell b{color:var(--dark-muted);font-family:var(--mono);font-size:14px;font-weight:500;line-height:1}.cipher-cover__cell span{color:var(--dark-faint);font-family:var(--mono);font-size:8px}.cipher-cover__cell.is-done{background:#202831;border-color:#46525b}.cipher-cover__cell.is-done b{color:var(--dark-text)}.cipher-cover__cell.is-current{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 18%, var(--dark-2))}.cipher-cover__cell.is-current b{color:#ffb99e}.cipher-cover__formula{color:var(--dark-text);font-family:var(--mono);grid-column:2;font-size:11px}.cipher-cover__foot{border-top:1px solid var(--dark-line);color:var(--dark-faint);padding-top:10px;font-size:11px}.lab-specimen-index{border-top:1px solid var(--ink)}.lab-specimen-group{border-bottom:1px solid var(--line)}.lab-specimen-head{border-bottom:1px solid var(--line-strong);align-items:baseline;gap:14px;padding:16px 0 8px;display:flex}.lab-specimen-head__index{font-family:var(--mono);color:var(--ink-faint);font-size:12px}.lab-specimen-head b{font-family:var(--serif);font-size:16px;font-weight:600}.lab-specimen-head em{color:var(--ink-soft);font-size:12px;font-style:normal}.lab-specimen-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;display:grid}.lab-specimen{border-bottom:1px solid var(--line);grid-template-columns:132px minmax(0,1fr);align-items:center;gap:14px;padding:10px 0;display:grid}.lab-specimen__thumb{border:1px solid var(--dark-line);background:var(--dark);width:132px;height:74px;overflow:hidden}.lab-specimen__meta{flex-direction:column;gap:2px;min-width:0;display:flex}.lab-specimen__meta span{color:var(--ink-faint);font-family:var(--mono);font-size:10px}.lab-specimen__meta b{font-size:15px;font-weight:600}.lab-specimen__meta em{color:var(--ink-soft);font-size:12px;font-style:normal}@media (width<=760px){.lab-specimen-grid{grid-template-columns:1fr}.lab-specimen{grid-template-columns:112px minmax(0,1fr);gap:10px}.lab-specimen__thumb{width:112px;height:63px}.lab-specimen-head{flex-wrap:wrap;gap:2px 10px}.lab-specimen-head em{width:100%}}.path-entry__row{grid-template-columns:56px minmax(0,1fr) 200px 20px}.path-entry__main small{color:var(--ink-faint);font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:400;overflow:hidden}.path-entry__progress{justify-content:flex-end}.path-blocks{gap:3px;display:inline-flex}.path-blocks i{border:1px solid var(--line-strong);background:0 0;width:14px;height:14px;display:block}.path-blocks i.is-on{border-color:var(--ink);background:var(--ink)}.path-blocks i.is-current{border-color:var(--signal)}.path-entry.is-open .path-entry__row{background:color-mix(in srgb, var(--panel) 60%, transparent);box-shadow:inset 2px 0 0 var(--signal)}.path-entry__body{border-left:1px solid var(--line)}@media (width<=1080px){.path-entry__row{grid-template-columns:44px minmax(0,1fr) 150px 16px}}@media (width<=760px){.path-entry__main small{white-space:normal}.path-entry__progress{display:none}.problem-table--grouped .problem-row,.problem-table--grouped .problem-row--head{grid-template-columns:36px minmax(0,1fr) 72px;gap:10px}.problem-table--grouped .problem-row--head,.problem-table--grouped .problem-row__track,.problem-table--grouped .problem-row__diff,.problem-table--grouped .problem-row__arrow{display:none}.path-entry__row{grid-template-columns:minmax(52px,auto) minmax(0,1fr) 16px}.path-entry__count{display:none}}.knapsack-scroll{padding:14px 14px 0;overflow:auto}.knapsack-table{border-collapse:collapse;width:100%;color:var(--dark-text);font-family:var(--mono);font-size:11px}.knapsack-table th,.knapsack-table td{border:1px solid var(--dark-line);text-align:center;min-width:30px;padding:6px 4px}.knapsack-table thead th{color:var(--dark-faint);font-size:10px;font-weight:500}.knapsack-table tbody th{color:var(--dark-muted);text-align:left;white-space:nowrap;padding-right:8px;font-weight:500}.knapsack-table td{color:var(--dark-muted);background:#0000001f}.knapsack-table td.is-current{border-color:var(--signal);color:#ffb99e;background:#e653243d;font-weight:600}.knapsack-table td.is-ref{outline:1px solid var(--teal);outline-offset:-1px;color:#8fc4b0}.knapsack-table td.is-future{opacity:.32}.knapsack-legend{color:var(--dark-faint);gap:14px;padding:8px 14px 14px;font-size:11px;display:flex}.knapsack-legend span{align-items:center;gap:5px;display:inline-flex}.knapsack-legend i{border:1px solid var(--dark-line);background:#252d34;width:8px;height:8px}.knapsack-legend i.is-current{border-color:var(--signal);background:#e6532480}.knapsack-legend i.is-ref{border-color:var(--teal);background:#1f7a6880}.knapsack-legend i.is-future{opacity:.35}.linked-scroll{padding:14px 14px 0;overflow:auto}.linked-svg{width:100%;height:auto}.linked-svg rect.is-current{fill:#3a2a24;stroke:var(--signal);stroke-width:2px}.linked-svg rect.is-prev{stroke:var(--teal);stroke-width:1.8px}.linked-svg rect.is-removed{opacity:.34;stroke:var(--red);stroke-dasharray:3 3}.linked-output{align-items:center;gap:10px;padding:0 14px 10px;display:flex}.linked-output b{color:var(--dark-text);font-family:var(--mono);letter-spacing:.04em;font-size:16px}.tree-legend i.is-prev{border-color:var(--teal);background:#1b2c28}.tree-legend i.is-removed{border-color:var(--red);background:#3a1f1b}.largest-scroll{padding:14px}.largest-array{flex-wrap:wrap;gap:8px;display:flex}.largest-cell{border:1px solid var(--dark-line);background:#1c2228;border-radius:6px;place-items:center;min-width:64px;height:54px;padding:0 10px;display:grid}.largest-cell b{color:var(--dark-text);font-family:var(--mono);font-size:15px;font-weight:500}.largest-cell.is-left{border-color:var(--signal);background:#3a2a24}.largest-cell.is-right{border-color:var(--blue);background:#2c5f8a33}.largest-cell.is-sorted{border-color:var(--teal);background:#1f7a6829}.max-scroll{padding:10px 14px 0}.max-svg{width:100%;height:auto}.max-output{align-items:center;gap:8px;padding:8px 14px 10px;display:flex}.max-output b{color:var(--dark-text);font-family:var(--mono);font-size:18px}.edit-scroll{padding:14px;overflow:auto}.edit-table{border-collapse:collapse;min-width:max-content;color:var(--dark-text);font-family:var(--mono);font-size:11px}.edit-table th,.edit-table td{border:1px solid var(--dark-line);text-align:center;min-width:30px;padding:6px 7px}.edit-table thead th,.edit-table tbody th{color:var(--dark-muted);background:#0000002e;font-weight:500}.edit-table tbody th{z-index:1;position:sticky;left:0}.edit-table td{color:var(--dark-muted);background:#0000001a}.edit-table td.is-current{border-color:var(--signal);color:#ffb99e;background:#e653243d;font-weight:600}.edit-table td.is-ref{outline:1px solid var(--teal);outline-offset:-1px;color:#8fc4b0}.edit-table td.is-future{opacity:.32}.edit-corner{font-size:10px}.three-scroll{padding:24px 14px 0;overflow:auto}.three-array{gap:14px;min-width:max-content;display:flex}.three-cell{border:1px solid var(--dark-line);background:#1c2228;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;width:54px;height:64px;display:flex;position:relative}.three-cell b{color:var(--dark-text);font-family:var(--mono);font-size:15px;font-weight:500}.three-cell>span:last-child{color:var(--dark-faint);font-family:var(--mono);margin-top:3px;font-size:8px}.three-pointer{color:var(--signal);font-family:var(--mono);letter-spacing:.08em;font-size:10px;position:absolute;top:-16px;left:50%;transform:translate(-50%)}.three-cell.is-i{border-color:var(--signal);background:#3a2a24}.three-cell.is-l{border-color:var(--teal);background:#1f7a682e}.three-cell.is-r{border-color:var(--blue);background:#2c5f8a33}.three-sum{align-items:center;gap:10px;padding:10px 14px 0;display:flex}.three-sum b{color:var(--dark-text);font-family:var(--mono);font-size:20px}.three-output{flex-wrap:wrap;align-items:center;gap:6px;padding:0 14px 10px;display:flex}.three-output>span:not(.mono-label){border:1px solid var(--dark-line);color:var(--dark-muted);font-family:var(--mono);border-radius:3px;padding:3px 7px;font-size:10px}.skyline-scroll{padding:10px 14px 0}.skyline-svg{width:100%;height:auto}.skyline-output{flex-wrap:wrap;align-items:center;gap:6px;padding:0 14px 10px;display:flex}.skyline-output>span:not(.mono-label){border:1px solid var(--dark-line);color:var(--dark-muted);font-family:var(--mono);border-radius:3px;padding:3px 6px;font-size:10px}.grid-scroll{padding:14px;overflow:auto}.grid-board{gap:5px;max-width:360px;margin:0 auto;display:grid}.grid-cell{border:1px solid var(--dark-line);min-height:54px;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);background:#1c2228;border-radius:4px;place-items:center;display:grid;position:relative}.grid-cell__cost{color:var(--dark-faint);font-family:var(--mono);font-size:8px;position:absolute;top:3px;left:5px}.grid-cell b{color:var(--dark-muted);font-family:var(--mono);font-size:15px;font-weight:500}.grid-cell.is-current{border-color:var(--signal);background:#3a2a24}.grid-cell.is-current b{color:#ffb99e}.grid-cell.is-ref{border-color:var(--teal)}.grid-cell.is-ref b{color:#8fc4b0}.grid-cell.is-path b{color:#8fc4b0}.grid-cell.is-future{opacity:.32}.grid-cell.is-wall{background:#0f1316;border-color:#2a323a}.grid-cell.is-wall b{color:var(--red);font-size:18px}.grid-cell.is-visited{border-color:color-mix(in srgb, var(--teal) 60%, var(--dark-line));background:#1f7a6829}.grid-cell.is-frontier{border-color:var(--blue);background:#2c5f8a33}.grid-cell.is-path{border-color:var(--teal);background:#1f7a6847}.maze-label{color:var(--dark-faint);font-family:var(--mono);font-size:8px;position:absolute;top:3px;right:5px}.grid-cell.is-start .maze-label{color:var(--signal)}.grid-cell.is-end .maze-label{color:var(--teal)}.tree-legend i.is-frontier{border-color:var(--blue);background:#2c5f8a80}.tree-scroll{padding:10px 14px 0}.tree-scroll svg{width:100%;height:auto}.tree-scroll circle.is-current{fill:#3a2a24;stroke:var(--signal);stroke-width:2px}.tree-scroll circle.is-visited{fill:#1b2c28;stroke:var(--teal)}.tree-output{align-items:center;gap:10px;padding:0 14px 10px;display:flex}.tree-output b{color:var(--dark-text);font-family:var(--mono);letter-spacing:.08em;font-size:16px}.tree-legend{color:var(--dark-faint);gap:14px;padding:8px 14px 14px;font-size:11px;display:flex}.tree-legend span{align-items:center;gap:5px;display:inline-flex}.tree-legend i{border:1px solid var(--dark-line);background:#1c2228;border-radius:50%;width:8px;height:8px}.tree-legend i.is-current{border-color:var(--signal);background:#3a2a24}.tree-legend i.is-visited{border-color:var(--teal);background:#1b2c28}.stage--compact{min-height:0;box-shadow:none}.stage--compact .stage__plot{min-height:210px}.stage--compact .lab-stage__body{grid-template-columns:1fr}.stage--compact .graph-wrap{min-height:230px}.stage--compact .stage__head{padding:12px 14px}.stage--compact .stage__caption{min-height:44px;padding:0 14px 10px;font-size:11px}.stage--compact .stage__controls{flex-wrap:wrap;padding:10px 14px 14px}.stage--compact .stage__controls .range{justify-content:flex-end;width:100%}.stage--compact .stage__step{font-size:10px}.study-aside .stage,.study-aside .lab-stage{border-radius:var(--r-panel)}.related a.chip:hover{border-color:var(--line-strong);color:var(--ink)}.study-demo-inline{display:none}.user-chip{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--panel);height:36px;color:var(--ink);font-family:var(--mono);letter-spacing:.04em;align-items:center;padding:0 12px;font-size:11px;display:inline-flex}.user-chip:before{content:"";background:var(--teal);border-radius:50%;width:6px;height:6px;margin-right:7px}.paths-head{justify-content:space-between;align-items:flex-end;gap:32px;padding:56px 0 32px;display:flex}.paths-head h1{letter-spacing:-.04em;margin-top:0;font-size:clamp(32px,3.4vw,44px)}.paths-head p{max-width:560px;color:var(--ink-soft);margin-top:12px;font-size:14px;line-height:1.7}.paths-head__note{text-align:right;flex:none;max-width:300px}.path-table__head{z-index:20;background:var(--paper);border-top:1px solid var(--ink);border-bottom:1px solid var(--line-strong);color:var(--ink-faint);font-family:var(--mono);letter-spacing:.04em;grid-template-columns:48px minmax(0,1fr) 130px 76px 96px 18px;align-items:center;gap:16px;margin-top:4px;padding:9px 0;font-size:12px;display:grid;position:sticky;top:68px}.path-section{border-top:1px solid var(--ink);padding:24px 0 0;scroll-margin-top:84px}.path-section:first-of-type{border-top:0}.path-section__head{grid-template-columns:48px minmax(0,1fr) auto;align-items:start;gap:16px;display:grid}.path-section__index{white-space:nowrap;font-family:var(--mono);letter-spacing:.06em;color:var(--ink-faint);font-size:11px}.path-section__main h2{letter-spacing:-.03em;margin:0;font-size:clamp(24px,2.2vw,30px)}.path-section__main p{max-width:44em;color:var(--ink-soft);margin-top:4px;font-size:14px;line-height:1.7}.path-section__aside{flex-direction:column;align-items:flex-end;gap:6px;padding-top:6px;display:flex}.path-section__stats{color:var(--ink-soft);font-family:var(--mono);white-space:nowrap;font-size:12px}.path-continue{color:var(--ink);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.path-continue:hover{color:var(--signal)}.path-section__progress{margin-top:10px}.path-section__progress .progress{width:100%;height:1px}.path-section__body{margin-top:14px}.path-row-head{border-bottom:1px solid var(--line-strong);color:var(--ink-faint);font-family:var(--mono);letter-spacing:.04em;grid-template-columns:48px minmax(0,1fr) 130px 76px 96px 18px;align-items:center;gap:16px;padding:8px 0;font-size:11px;display:grid}.path-online-band{border-top:1px solid var(--ink);color:var(--ink-soft);font-family:var(--mono);letter-spacing:.04em;padding:24px 0 10px;font-size:11px}.path-problem{border-bottom:1px solid var(--line);transition:background var(--t-fast) var(--ease);grid-template-columns:48px minmax(0,1fr) 130px 76px 96px 18px;align-items:center;gap:16px;padding:10px 0;display:grid}.path-problem:hover{background:color-mix(in srgb, var(--panel) 72%, transparent)}.path-problem__qid{font-family:var(--mono);color:var(--ink-faint);font-size:13px}.path-problem__main{min-width:0}.path-problem__main b{font-size:16px;font-weight:600;display:block}.path-problem__main span{color:var(--ink-soft);margin-top:3px;font-size:14px;line-height:1.55;display:block}.path-problem__track{color:var(--ink-soft);font-size:13px}.path-problem__diff{font-family:var(--mono);color:var(--ink-soft);align-items:center;gap:6px;font-size:12px;display:flex}.path-problem__arrow{color:var(--line-strong);opacity:.35;transition:opacity var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease)}.path-problem:hover .path-problem__arrow,.path-problem:focus-visible .path-problem__arrow{color:var(--ink);opacity:1;transform:translate(3px)}.path-empty-row{border-bottom:1px solid var(--line);color:var(--ink-soft);grid-template-columns:48px minmax(0,1fr) 130px 76px 88px 96px 18px;align-items:center;gap:16px;padding:16px 0;display:grid}.path-empty-row__main b{font-size:var(--fs-14);color:var(--ink-soft);font-weight:600;display:block}.path-empty-row__main span{color:var(--ink-faint);margin-top:3px;font-size:13px;display:block}.state-content{color:var(--ink-faint);white-space:nowrap;font-size:13px}.state-content.is-ready{color:var(--ink-soft)}.state-content.is-blocked{color:var(--ink-faint)}.diff-meter{flex:none;align-items:flex-end;gap:2px;height:12px;margin-right:0;display:inline-flex}.diff-meter b{background:var(--line-strong);width:3px}.diff-meter b:first-child{height:5px}.diff-meter b:nth-child(2){height:8px}.diff-meter b:nth-child(3){height:11px}.diff-meter.is-1 b:first-child,.diff-meter.is-2 b:nth-child(-n+2),.diff-meter.is-3 b{background:var(--ink)}@media (hover:none){.path-problem__arrow,.problem-row__arrow,.lab-row__arrow,.row__arrow{opacity:1}}.path-pending{border-top:1px solid var(--ink);padding:28px 0 8px}.path-pending__head{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:12px;display:flex}.path-pending__head h2{font-size:var(--fs-22);letter-spacing:-.02em}.path-pending__head p{color:var(--ink-soft);font-size:13px}.path-pending__row{opacity:.55;border-bottom:1px solid var(--line);grid-template-columns:48px minmax(0,1fr) 130px 96px;align-items:center;gap:16px;padding:14px 0;scroll-margin-top:84px;display:grid}.path-pending__index{white-space:nowrap;font-family:var(--mono);letter-spacing:.06em;color:var(--ink-faint);font-size:11px}.path-pending__main b{font-size:var(--fs-15,15px);font-weight:600;display:block}.path-pending__main span{color:var(--ink-soft);margin-top:3px;font-size:13px;display:block}.path-pending__count{color:var(--ink-faint);font-family:var(--mono);white-space:nowrap;font-size:12px}@media (width<=900px){.paths-head{flex-direction:column;align-items:flex-start;padding-top:40px}.paths-head__note{text-align:left;max-width:none}.path-section{padding:24px 0 0}.path-section__head{grid-template-columns:40px minmax(0,1fr);gap:4px 12px}.path-section__index{grid-row:1}.path-section__main,.path-section__aside{grid-column:2}.path-section__aside{align-items:flex-start;padding-top:0}.path-table__head,.path-row-head{display:none}.path-pending__row{grid-template-columns:40px minmax(0,1fr) 88px;gap:12px}.path-pending__count{display:none}.path-problem{grid-template-columns:40px minmax(0,1fr) 88px;gap:12px;padding:14px 0}.path-problem__track,.path-problem__diff,.path-problem__arrow{display:none}.path-empty-row{grid-template-columns:40px minmax(0,1fr) 88px;gap:12px}.path-empty-row>span:nth-child(3),.path-empty-row>span:nth-child(4),.path-empty-row>span:nth-child(6),.path-empty-row>span:nth-child(7){display:none}}.staff-head{justify-content:space-between;align-items:flex-end;gap:24px;padding:56px 0 32px;display:flex}.staff-head h1{letter-spacing:-.04em;margin-top:14px;font-size:clamp(36px,4vw,54px)}.staff-head p{max-width:560px;color:var(--ink-soft);margin-top:12px;font-size:14px}.staff-access{margin-bottom:80px;padding:32px}.staff-access h2{margin-top:10px;font-size:24px}.staff-access .btn{margin-top:20px}.staff-banner{border:1px solid var(--line);border-radius:var(--r-control);margin-bottom:16px;padding:10px 14px;font-size:13px}.staff-tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:20px;display:flex}.staff-tabs button{color:var(--ink-faint);background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 14px;font-size:13px}.staff-tabs button.is-active{border-bottom-color:var(--signal);color:var(--ink);font-weight:600}.staff-layout{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:24px;padding-bottom:80px;display:grid}.staff-user-table{border-collapse:collapse;width:100%;font-size:13px}.staff-user-table th,.staff-user-table td{border-bottom:1px solid var(--line);text-align:left;padding:10px 8px}.staff-user-table th{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:10px;font-weight:500}.staff-list{border-top:1px solid var(--line)}.staff-item{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;transition:background var(--t-fast) var(--ease);background:0 0;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 10px;display:grid}.staff-item:hover{background:var(--panel)}.staff-item.is-active{background:var(--panel);box-shadow:inset 2px 0 0 var(--signal)}.staff-item__qid{font-family:var(--mono);color:var(--ink-faint);font-size:11px}.staff-item b{font-size:14px;display:block}.staff-item span{color:var(--ink-faint);margin-top:3px;font-size:11px;display:block}.staff-state{background:var(--paper-deep);font-family:var(--mono);border-radius:4px;padding:3px 7px;color:var(--ink-soft)!important;font-size:9px!important}.staff-detail h2{font-size:22px}.staff-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex}.revision-list{border-top:1px solid var(--line)}.revision-row{border-bottom:1px solid var(--line);grid-template-columns:80px minmax(0,1fr) auto;align-items:center;gap:16px;padding:14px 0;display:grid}.revision-row b{font-size:13px}.revision-actions{align-items:center;gap:6px;display:flex}.editor-head{justify-content:space-between;align-items:flex-end;gap:24px;padding:40px 0 24px;display:flex}.editor-head h1{letter-spacing:-.04em;margin-top:10px;font-size:clamp(32px,3.4vw,46px)}.editor-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.editor-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:20px;padding-bottom:80px;display:grid}.editor-main{overflow:hidden}.editor-tabs{border-bottom:1px solid var(--line);gap:2px;padding:8px;display:flex;overflow-x:auto}.editor-tabs button{color:var(--ink-faint);font-family:var(--mono);letter-spacing:.04em;background:0 0;border:0;border-radius:6px;flex:none;padding:7px 11px;font-size:11px}.editor-tabs button.is-active{background:var(--ink);color:var(--paper)}.editor-body{padding:18px}.editor-form{gap:0;display:grid}.editor-form-section{border-bottom:1px solid var(--line);padding:16px 0}.editor-form-section:first-child{padding-top:0}.editor-form-section:last-child{border-bottom:0;padding-bottom:0}.editor-form .field>span{color:var(--ink-soft);margin-bottom:7px;font-size:13px;font-weight:600;display:block}.editor-form-textarea{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel);width:100%;color:var(--ink);font-family:var(--sans);resize:vertical;padding:10px 12px;font-size:13px;line-height:1.7}.editor-form-textarea:focus{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft);outline:none}.editor-form-listhead{justify-content:space-between;align-items:center;gap:12px;margin-top:18px;display:flex}.editor-item{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel-soft);margin-top:10px;padding:12px}.editor-item__head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.editor-help{color:var(--ink-soft);margin-bottom:10px;font-size:12px;line-height:1.7}.editor-help code{border:1px solid var(--line);background:var(--panel);border-radius:3px;padding:1px 4px;font-size:11px}.editor-textarea{border:1px solid var(--line);border-radius:var(--r-control);background:var(--dark);width:100%;min-height:560px;color:var(--dark-text);font-family:var(--mono);tab-size:2;resize:vertical;padding:14px;font-size:12px;line-height:1.75}.editor-textarea--code{min-height:520px}.editor-textarea:focus{border-color:var(--signal);box-shadow:0 0 0 3px var(--signal-soft);outline:none}.editor-previous{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel-soft);margin-top:16px;padding:12px}.editor-previous pre{max-height:200px;color:var(--ink-soft);white-space:pre-wrap;margin-top:8px;font-size:11px;line-height:1.6;overflow:auto}.source-upload{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel);height:36px;color:var(--ink-soft);cursor:pointer;align-items:center;margin-top:14px;padding:0 12px;font-size:12px;display:inline-flex;position:relative;overflow:hidden}.source-upload input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.source-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.source-col{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel-soft);color:var(--ink-soft);padding:14px;font-size:12px;line-height:1.7}.check-list{border-top:1px solid var(--line);margin-top:16px}.check-item{border-bottom:1px solid var(--line);color:var(--ink-soft);gap:8px;padding:8px 0;font-size:12px;display:flex}.check-item span{width:14px;color:var(--red)}.check-item.is-ok span{color:var(--teal)}.validation-box{border:1px solid var(--red);border-radius:var(--r-control);background:var(--red-soft);color:var(--red);flex-direction:column;gap:4px;margin-top:16px;padding:12px;font-size:12px;display:flex}.validation-box.is-ok{border-color:var(--teal);background:var(--teal-soft);color:var(--teal-ink)}.validation-box span{font-size:11px}.content-images{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:16px;display:grid}.content-images figure{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel);margin:0;padding:10px}.content-images img{border-radius:4px;width:100%;height:auto}.content-images figcaption,.source-images figcaption{color:var(--ink-faint);font-family:var(--mono);margin-top:6px;font-size:10px}.source-images{gap:10px;margin-top:10px;display:grid}.source-images figure{margin:0}.source-images img{border:1px solid var(--line);border-radius:4px;width:100%}.editor-preview-text{max-height:160px;color:var(--ink-soft);margin-top:10px;font-size:13px;line-height:1.7;overflow:auto}.editor-sample{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.editor-sample pre{color:var(--ink-soft);white-space:pre-wrap;margin-top:6px;font-size:11px;line-height:1.65}@media (width<=1000px){.editor-head{flex-direction:column;align-items:flex-start}.editor-actions{justify-content:flex-start}.editor-layout,.source-grid{grid-template-columns:1fr}}@media (width<=900px){.staff-head{flex-direction:column;align-items:flex-start;padding-top:40px}.staff-layout{grid-template-columns:1fr}}.auth-page{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);min-height:calc(100vh - 69px);display:grid}.auth-aside{background:var(--dark);color:var(--dark-text);flex-direction:column;justify-content:space-between;gap:48px;padding:56px 56px 40px;display:flex}.auth-aside .brand__word span{color:var(--dark-muted)}.auth-aside h1{letter-spacing:-.045em;margin:18px 0 20px;font-size:clamp(40px,4.6vw,64px);line-height:1.05}.auth-aside p{max-width:30em;color:var(--dark-muted);font-size:15px;line-height:1.8}.auth-aside__foot{border-top:1px solid var(--dark-line);color:var(--dark-faint);font-family:var(--mono);letter-spacing:.06em;flex-wrap:wrap;gap:18px;padding-top:20px;font-size:11px;display:flex}.auth-main{background:var(--paper);place-items:center;padding:56px 24px;display:grid}.auth-card{width:min(100%,440px)}.auth-tabs{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel-soft);gap:2px;margin-bottom:26px;padding:3px;display:flex}.auth-tabs button{height:34px;color:var(--ink-faint);background:0 0;border:0;border-radius:5px;flex:1;font-size:13px}.auth-tabs button.is-active{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #20262b14}.auth-form{gap:16px;margin-top:26px;display:grid}.auth-form .field span{color:var(--ink-soft);margin-bottom:7px;font-size:13px;font-weight:600;display:block}.auth-form .input{width:100%}.auth-error{border-left:2px solid var(--red);background:var(--red-soft);color:var(--red);padding:10px 12px;font-size:13px;line-height:1.6}.auth-actions{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.auth-hint{color:var(--ink-faint);margin-top:18px;font-size:12px}.auth-hint button{color:var(--signal-ink);font-size:inherit;background:0 0;border:0;font-weight:600}.auth-hint code{border:1px solid var(--line);background:var(--panel);border-radius:4px;padding:1px 5px;font-size:11px}@media (width<=900px){.auth-page{grid-template-columns:1fr;min-height:calc(100vh - 60px)}.auth-aside{display:none}.auth-main{padding:40px 20px 64px}}@media (width<=1240px){.study-demo-inline{color:var(--signal);display:inline-flex}}@media (width<=640px){.study-actions .study-demo-inline span{display:inline}.study-nav a:last-child:only-child{grid-column:1/-1}}.me-head{justify-content:space-between;align-items:flex-end;gap:32px;padding:56px 0 32px;display:flex}.me-head h1{letter-spacing:-.04em;margin-top:14px;font-size:clamp(34px,3.8vw,50px)}.me-head p{max-width:560px;color:var(--ink-soft);margin-top:12px;font-size:14px}.me-head__actions{flex-wrap:wrap;gap:8px;display:flex}.me-stats{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.me-stat{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);padding:18px 20px}.me-stat b{font-family:var(--mono);letter-spacing:-.03em;font-size:30px;font-weight:500;display:block}.me-stat span{color:var(--ink-faint);font-size:11px}.me-continue{border-radius:var(--r-panel);background:var(--dark);color:var(--dark-text);justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;padding:24px 26px;display:flex}.me-continue h2{letter-spacing:-.02em;margin-top:8px;font-size:26px}.me-continue p{max-width:42em;color:var(--dark-muted);margin-top:8px;font-size:13px;line-height:1.7}.me-continue__side{flex-direction:column;flex:none;align-items:flex-end;gap:10px;display:flex}.me-continue .mono-label{color:var(--dark-faint)}.me-continue .status{color:var(--dark-muted)}.me-continue .btn--ghost{border-color:var(--dark-line);color:var(--dark-text)}.me-continue .btn--ghost:hover{border-color:var(--dark-faint);background:var(--dark-3);color:var(--dark-text)}.me-layout{grid-template-columns:1.1fr .9fr;align-items:start;gap:20px;padding-bottom:80px;display:grid}.me-path-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 100px 40px;align-items:center;gap:12px;padding:10px 0;display:grid}.me-path-row b{font-size:13px}.me-path-row div span{color:var(--ink-faint);margin-top:2px;font-size:11px;display:block}.me-path-pct{color:var(--ink-faint);font-family:var(--mono);text-align:right;font-size:11px}.me-row{border-bottom:1px solid var(--line);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.me-row__qid{color:var(--ink-faint);font-family:var(--mono);font-size:11px}.me-row b{font-size:13px;display:block}.me-row div span{color:var(--ink-faint);margin-top:2px;font-size:11px;display:block}.me-note{border-bottom:1px solid var(--line);padding:12px 0;display:block}.me-note p{color:var(--ink-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:13px;line-height:1.65;display:-webkit-box;overflow:hidden}.me-empty{color:var(--ink-faint);padding:16px 0;font-size:13px;line-height:1.7}@media (width<=900px){.me-head{flex-direction:column;align-items:flex-start;padding-top:40px}.me-stats{grid-template-columns:1fr 1fr}.me-layout{grid-template-columns:1fr}.me-continue{flex-direction:column;align-items:flex-start}.me-continue__side{align-items:flex-start}}.account-head{justify-content:space-between;align-items:flex-end;gap:24px;padding:56px 0 32px;display:flex}.account-head h1{letter-spacing:-.04em;margin-top:14px;font-size:clamp(34px,3.8vw,50px)}.account-head p{max-width:560px;color:var(--ink-soft);margin-top:12px;font-size:14px}.account-layout{grid-template-columns:.9fr 1.1fr;align-items:start;gap:20px;padding-bottom:80px;display:grid}.account-profile{align-items:center;gap:16px;display:flex}.account-avatar{background:var(--dark);width:56px;height:56px;color:var(--dark-text);font-family:var(--mono);border-radius:50%;place-items:center;font-size:22px;display:grid}.account-profile h2{margin-bottom:6px;font-size:22px}.account-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-top:24px;padding-top:18px;display:flex}.account-form{gap:16px;display:grid}.account-form .field span{color:var(--ink-soft);margin-bottom:7px;font-size:13px;font-weight:600;display:block}.account-form .input{width:100%}@media (width<=900px){.account-head{flex-direction:column;align-items:flex-start;padding-top:40px}.account-layout{grid-template-columns:1fr}}.compare-empty{border:1px dashed var(--line);border-radius:var(--r-control);background:var(--panel-soft);color:var(--ink-soft);gap:6px;padding:28px;font-size:13px;display:grid}.compare-empty b{color:var(--ink);font-size:15px}.compare-summary{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.compare-count{color:var(--teal);font-family:var(--mono);letter-spacing:.04em;margin-left:auto;font-size:11px}.compare-count.is-dirty{color:var(--signal)}.compare-layout{grid-template-columns:176px minmax(0,1fr);align-items:start;gap:12px;display:grid}.compare-fields{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel-soft);flex-direction:column;gap:2px;max-height:540px;padding:6px;display:flex;overflow:auto}.compare-fields button{color:var(--ink-soft);text-align:left;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;font-size:12px;display:flex}.compare-fields button:hover{background:var(--panel);color:var(--ink)}.compare-fields button.is-active{background:var(--ink);color:var(--paper)}.compare-fields button i{color:var(--signal);font-family:var(--mono);letter-spacing:.04em;font-size:10px;font-style:normal}.compare-fields button.is-active i{color:var(--signal-soft)}.compare-panel{border:1px solid var(--line);border-radius:var(--r-control);min-width:0;overflow:hidden}.compare-panel__head{border-bottom:1px solid var(--line);background:var(--panel-soft);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.compare-panel__head b{font-size:13px;display:block}.compare-panel__head span:not(.mono-label){color:var(--ink-faint);margin-top:3px;font-size:11px;display:block}.compare-diff{background:var(--panel);max-height:520px;font-family:var(--mono);font-size:11px;line-height:1.65;overflow:auto}.compare-line{border-bottom:1px solid color-mix(in srgb, var(--line) 55%, transparent);grid-template-columns:34px minmax(0,1fr) 34px minmax(0,1fr);display:grid}.compare-line.is-del{background:var(--red-soft)}.compare-line.is-add{background:var(--teal-soft)}.compare-gutter{border-right:1px solid var(--line);color:var(--ink-faint);text-align:right;-webkit-user-select:none;user-select:none;padding:3px 5px}.compare-cell{border-right:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;min-height:1.65em;color:var(--ink);padding:3px 8px;font-family:inherit}.compare-cell:last-child{border-right:0}.compare-empty-inline{color:var(--ink-faint);font-family:var(--sans);padding:20px;font-size:12px}.compare-history{border-top:1px solid var(--line);gap:4px;margin-top:20px;padding-top:16px;display:grid}.compare-history>.mono-label{margin-bottom:6px}.compare-log{border-bottom:1px dashed var(--line);grid-template-columns:92px minmax(0,1fr);gap:10px;padding:8px 0;display:grid}.compare-log>.mono-label{color:var(--ink-faint)}.compare-log b{font-family:var(--mono);margin-right:8px;font-size:11px}.compare-log span{color:var(--ink-faint);font-size:11px}.compare-log p{color:var(--ink-soft);margin-top:4px;font-size:12px}@media (width<=900px){.compare-layout{grid-template-columns:1fr}.compare-fields{flex-direction:row;max-height:none;overflow-x:auto}.compare-fields button{flex:none}.compare-count{margin-left:0}.compare-line{grid-template-columns:28px minmax(0,1fr) 28px minmax(0,1fr);font-size:11px}}.josephus-layout{grid-template-columns:minmax(0,1fr) 214px;align-items:center;gap:20px;padding:10px 18px 2px;display:grid}.josephus-ring{aspect-ratio:1;width:100%;max-width:420px;margin:0 auto;position:relative}.josephus-orbit{border:1px dashed var(--dark-line);border-radius:50%;position:absolute;inset:11%}.josephus-seat{border:1px solid var(--dark-line);background:var(--dark-2);width:42px;height:42px;color:var(--dark-text);font-family:var(--mono);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border-radius:50%;place-items:center;font-size:12px;display:grid;position:absolute;transform:translate(-50%,-50%)}.josephus-seat b{font-weight:500}.josephus-seat.is-target{border-color:var(--signal);box-shadow:inset 0 0 0 1px var(--signal)}.josephus-seat.is-active{border-color:var(--signal);background:var(--signal);color:#fff;box-shadow:0 0 0 5px color-mix(in srgb, var(--signal) 20%, transparent)}.josephus-seat.is-last{border-color:var(--teal);background:var(--teal);color:#fff}.josephus-seat.is-removed:not(.is-last){color:var(--dark-faint);opacity:.45;background:0 0;border-style:dashed;text-decoration:line-through}.josephus-mark{background:var(--signal);color:#fff;border-radius:50%;place-items:center;width:15px;height:15px;font-size:8px;line-height:1;display:grid;position:absolute;top:-7px;right:-7px}.josephus-center{border:1px solid var(--dark-line);background:color-mix(in srgb, var(--dark) 78%, transparent);text-align:center;border-radius:10px;place-items:center;gap:3px;width:126px;padding:12px 8px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.josephus-center b{color:var(--dark-text);font-family:var(--mono);font-size:26px;line-height:1.1}.josephus-center b.is-out{color:var(--teal);font-size:15px}.josephus-center small{color:var(--dark-faint);font-family:var(--mono);font-size:9px}.josephus-side{min-width:0}.josephus-result{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:8px;padding:14px}.josephus-result.is-ready{border-color:var(--teal)}.josephus-result b{color:var(--dark-text);margin:6px 0 4px;font-size:18px;display:block}.josephus-result.is-ready b{color:var(--teal)}.josephus-result small{color:var(--dark-faint);font-family:var(--mono);font-size:10px}.josephus-order{flex-wrap:wrap;gap:5px;max-height:180px;margin-top:8px;display:flex;overflow:auto}.josephus-chip{border:1px solid var(--dark-line);color:var(--dark-muted);font-family:var(--mono);border-radius:3px;padding:3px 7px;font-size:10px}.josephus-chip.is-target{border-color:var(--signal);color:var(--signal)}@media (width<=760px){.josephus-layout{grid-template-columns:1fr;gap:14px;padding-inline:8px}.josephus-ring{max-width:330px}.josephus-seat{width:34px;height:34px;font-size:10px}.josephus-center{width:108px;padding:9px 6px}.josephus-center b{font-size:21px}.josephus-side{grid-template-columns:1fr 1fr;align-items:start;gap:12px;display:grid}.josephus-side>.mono-label{display:none}.josephus-order{max-height:120px;margin-top:0}}.gas-scroll{padding:14px 18px 4px;overflow-x:auto}.gas-strip{grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:6px;min-width:540px;display:grid}.gas-station{border:1px solid var(--dark-line);background:var(--dark-2);color:var(--dark-text);font-family:var(--mono);text-align:left;transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border-radius:6px;gap:2px;padding:12px 10px 10px;display:grid;position:relative}.gas-station.is-current{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 12%, var(--dark-2))}.gas-station.is-start{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}.gas-station.is-scanned:not(.is-current):not(.is-start){opacity:.55}.gas-station__index{color:var(--dark-faint);font-size:9px}.gas-station b{font-size:20px;font-weight:500;line-height:1.1}.gas-station__cost{color:var(--dark-muted);font-size:11px}.gas-station__delta{color:var(--teal);font-size:11px}.gas-station__delta.is-negative{color:var(--signal)}.gas-station__flag{background:var(--teal);color:#fff;letter-spacing:.08em;border-radius:2px;padding:1px 4px;font-size:8px;position:absolute;top:-7px;right:7px}.gas-dashboard{grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,.7fr)) minmax(0,1fr);gap:8px;padding:12px 18px 4px;display:grid}.gas-gauge,.gas-fact,.gas-result{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:6px;padding:10px 12px}.gas-gauge b{color:var(--dark-text);font-family:var(--mono);margin:4px 0 6px;font-size:24px;display:block}.gas-gauge__track{background:var(--dark-line);border-radius:2px;height:3px;overflow:hidden}.gas-gauge__track i{background:var(--signal);height:100%;transition:width .18s var(--ease);display:block}.gas-fact span{color:var(--dark-faint);font-family:var(--mono);font-size:9px;display:block}.gas-fact b{color:var(--dark-text);font-family:var(--mono);margin-top:5px;font-size:20px;display:block}.gas-fact b.is-negative{color:var(--signal)}.gas-result{align-content:center;gap:3px;display:grid}.gas-result.is-ready{border-color:var(--teal)}.gas-result b{color:var(--teal);font-size:17px}.gas-result:not(.is-ready) b{color:var(--dark-muted);font-size:14px}@media (width<=760px){.gas-dashboard{grid-template-columns:1fr 1fr}.gas-gauge,.gas-result{grid-column:span 2}.gas-scroll{padding-inline:8px}.gas-strip{min-width:460px}}.multi-layout{grid-template-columns:minmax(0,1fr) 196px;align-items:center;gap:20px;padding:16px 18px 4px;display:grid}.multi-grid{flex-direction:column;gap:6px;min-width:0;display:flex}.multi-row{gap:6px;display:grid}.multi-cell{border:1px solid var(--dark-line);background:var(--dark-2);min-height:62px;color:var(--dark-faint);font-family:var(--mono);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);border-radius:5px;place-items:center;display:grid;position:relative}.multi-cell__value{font-size:20px;line-height:1}.multi-cell__coord{color:var(--dark-faint);font-size:8px;position:absolute;bottom:3px;right:5px}.multi-cell.is-filled{color:var(--dark-text);background:color-mix(in srgb, var(--teal) 12%, var(--dark-2));border-color:color-mix(in srgb, var(--teal) 45%, var(--dark-line))}.multi-cell.is-source{color:var(--teal);border-color:var(--teal)}.multi-cell.is-frontier{border-style:dashed;border-color:var(--blue,#2c5f8a)}.multi-cell.is-current{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 15%, var(--dark-2));color:var(--signal);box-shadow:0 0 0 4px color-mix(in srgb, var(--signal) 16%, transparent)}.multi-side{gap:6px;display:grid}.multi-stat{border-bottom:1px dashed var(--dark-line);justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.multi-stat span{color:var(--dark-faint);font-family:var(--mono);font-size:9px}.multi-stat b{color:var(--dark-text);font-family:var(--mono);font-size:15px}.multi-result{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:6px;margin-top:8px;padding:10px}.multi-result.is-ready{border-color:var(--teal)}.multi-result b{color:var(--dark-muted);margin-top:4px;font-size:13px;display:block}.multi-result.is-ready b{color:var(--teal)}@media (width<=760px){.multi-layout{grid-template-columns:1fr;gap:12px;padding-inline:8px}.multi-cell{min-height:44px}.multi-cell__value{font-size:16px}.multi-side{grid-template-columns:1fr 1fr}.multi-stat{padding:6px 8px}.multi-result{grid-column:span 2;margin-top:0}}.pal-layout{gap:12px;padding:16px 18px 4px;display:grid}.pal-string{flex-wrap:wrap;gap:4px;display:flex}.pal-char{border:1px solid var(--dark-line);background:var(--dark-2);width:44px;height:50px;color:var(--dark-text);font-family:var(--mono);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);border-radius:5px;place-items:center;display:grid;position:relative}.pal-char b{font-size:18px;font-weight:500}.pal-char span{color:var(--dark-faint);font-size:8px;position:absolute;bottom:2px;right:4px}.pal-char.is-sub{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 16%, var(--dark-2))}.pal-char.is-boundary{box-shadow:inset 0 -2px 0 var(--signal)}.pal-dp{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:4px;display:grid}.pal-cell{border:1px solid var(--dark-line);background:var(--dark-2);font-family:var(--mono);border-radius:4px;gap:2px;padding:7px 8px;display:grid}.pal-cell span{color:var(--dark-faint);font-size:8px}.pal-cell b{color:var(--dark-text);font-size:15px}.pal-cell.is-zero b{color:var(--teal)}.pal-cell.is-current{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 12%, var(--dark-2))}.pal-cell.is-answer{border-color:var(--teal)}.pal-facts{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.pal-facts>div{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:5px;gap:2px;padding:8px 11px;display:grid}.pal-facts span{color:var(--dark-faint);font-family:var(--mono);font-size:8px}.pal-facts b{color:var(--dark-text);font-size:13px}.pal-facts b.is-yes{color:var(--teal)}.pal-facts b.is-no{color:var(--signal)}.pal-answer{min-width:116px;margin-left:auto}.pal-answer.is-ready{border-color:var(--teal)}.pal-answer.is-ready b{color:var(--teal);font-size:17px}@media (width<=760px){.pal-char{width:36px;height:42px}.pal-dp{grid-template-columns:repeat(auto-fit,minmax(48px,1fr))}.pal-answer{margin-left:0}}.sur-layout{grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:20px;padding:16px 18px 4px;display:grid}.sur-grid{gap:5px;display:grid}.sur-cell{border:1px solid var(--dark-line);background:var(--dark-2);min-height:56px;color:var(--dark-faint);font-family:var(--mono);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);border-radius:5px;place-items:center;font-size:19px;display:grid}.sur-cell.is-o{color:var(--dark-text);border-color:color-mix(in srgb, var(--dark-text) 20%, var(--dark-line))}.sur-cell.is-x{color:var(--dark-faint)}.sur-cell.is-safe{color:var(--teal);border-color:var(--teal);background:color-mix(in srgb, var(--teal) 14%, var(--dark-2))}.sur-cell.is-current{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 17%, var(--dark-2));color:var(--signal);box-shadow:0 0 0 4px color-mix(in srgb, var(--signal) 16%, transparent)}.sur-side{gap:6px;display:grid}.sur-stat{border-bottom:1px dashed var(--dark-line);justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.sur-stat span{color:var(--dark-faint);font-family:var(--mono);font-size:9px}.sur-stat b{color:var(--dark-text);font-family:var(--mono);font-size:15px}.sur-result{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:6px;margin-top:8px;padding:10px}.sur-result.is-ready{border-color:var(--signal)}.sur-result b{color:var(--dark-muted);margin-top:4px;font-size:13px;display:block}.sur-result.is-ready b{color:var(--signal)}@media (width<=760px){.sur-layout{grid-template-columns:1fr;gap:12px;padding-inline:8px}.sur-cell{min-height:42px;font-size:15px}.sur-side{grid-template-columns:1fr 1fr 1fr}.sur-stat{padding:6px}.sur-result{grid-column:span 3;margin-top:0}}.prob-layout{grid-template-columns:minmax(0,1fr) 196px;align-items:center;gap:20px;padding:16px 18px 4px;display:grid}.prob-canvas{border:1px solid var(--dark-line);background:linear-gradient(var(--dark-line) 1px, transparent 1px) 0 0 / 20% 20%, linear-gradient(90deg, var(--dark-line) 1px, transparent 1px) 0 0 / 20% 20%, var(--dark-2);border-radius:8px;place-items:center;min-width:0;padding:10px;display:grid}.prob-canvas svg{width:100%;max-height:440px;display:block}.prob-edge{stroke:var(--dark-line);stroke-width:1.4px;transition:stroke var(--t-fast) var(--ease), stroke-width var(--t-fast) var(--ease)}.prob-edge.is-current{stroke:var(--dark-muted)}.prob-edge.is-path{stroke:var(--signal);stroke-width:2.4px}.prob-edge-label{fill:var(--dark-muted);font-family:var(--mono);text-anchor:middle;font-size:2.2px}.prob-node circle{fill:var(--dark);stroke:var(--dark-line);stroke-width:1.1px;transition:fill var(--t-fast) var(--ease), stroke var(--t-fast) var(--ease)}.prob-node-id{fill:var(--dark-text);font-family:var(--mono);text-anchor:middle;dominant-baseline:middle;font-size:3.4px}.prob-node-value{fill:var(--dark-faint);font-family:var(--mono);text-anchor:middle;font-size:2.4px}.prob-node.is-visited circle{stroke:var(--teal)}.prob-node.is-visited .prob-node-value{fill:var(--teal)}.prob-node.is-start circle{stroke-dasharray:1.4 1.1}.prob-node.is-end circle{stroke-width:1.6px}.prob-node.is-current circle{fill:var(--signal);stroke:var(--signal);filter:drop-shadow(0 0 2px color-mix(in srgb, var(--signal) 50%, transparent))}.prob-node.is-current .prob-node-id{fill:#fff}.prob-node.is-relaxed circle{stroke:var(--blue,#2c5f8a);stroke-width:1.8px}.prob-side{gap:6px;display:grid}.prob-fact{border-bottom:1px dashed var(--dark-line);justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.prob-fact span{color:var(--dark-faint);font-family:var(--mono);font-size:9px}.prob-fact b{color:var(--dark-text);font-family:var(--mono);font-size:14px}.prob-result{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:6px;margin-top:8px;padding:10px}.prob-result.is-ready{border-color:var(--teal)}.prob-result b{color:var(--dark-muted);font-family:var(--mono);margin-top:4px;font-size:17px;display:block}.prob-result.is-ready b{color:var(--teal)}.prob-result small{color:var(--dark-faint);font-family:var(--mono);margin-top:4px;font-size:9px;display:block}@media (width<=760px){.prob-layout{grid-template-columns:1fr;gap:12px;padding-inline:8px}.prob-side{grid-template-columns:1fr 1fr}.prob-result{grid-column:span 2;margin-top:0}}.key-edge{stroke:#3a444d;stroke-width:1.4px}.key-node circle{fill:#1c2228;stroke:#3a444d;stroke-width:1.4px;transition:fill var(--t-fast) var(--ease), stroke var(--t-fast) var(--ease)}.key-node__value{fill:var(--dark-text);font-family:var(--mono);text-anchor:middle;font-size:13px;font-weight:600}.key-node.is-visited circle{stroke:var(--dark-muted)}.key-node.is-path circle{stroke:var(--signal);stroke-width:2px}.key-node.is-key circle{fill:color-mix(in srgb, var(--teal) 24%, var(--dark-2));stroke:var(--teal);stroke-width:2px}.key-node.is-current circle{fill:var(--signal);stroke:var(--signal)}.key-node.is-current .key-node__value{fill:#fff}.key-output{gap:8px;padding:10px 18px 2px;display:flex}.key-output>div{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:6px;gap:3px;min-width:132px;padding:9px 11px;display:grid}.key-output b{color:var(--dark-text);font-family:var(--mono);font-size:19px}.key-output>div:last-child b{color:var(--teal)}@media (width<=760px){.key-output{padding-inline:8px}}.key-tree svg{max-height:340px}.sg-scroll{padding:16px 18px 2px}.sg-row{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px;display:grid}.sg-cell{border:1px solid var(--dark-line);background:var(--dark-2);min-height:62px;color:var(--dark-text);font-family:var(--mono);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);border-radius:5px;place-items:center;display:grid;position:relative}.sg-cell b{font-size:21px;font-weight:500}.sg-cell__index{color:var(--dark-faint);font-size:8px;position:absolute;top:4px;left:6px}.sg-cell i{color:var(--signal);font-size:8px;font-style:normal;position:absolute;bottom:3px;right:4px}.sg-cell.is-result:not(.is-current){opacity:.7}.sg-cell.is-current{border-color:var(--signal);background:color-mix(in srgb, var(--signal) 16%, var(--dark-2));box-shadow:0 0 0 4px color-mix(in srgb, var(--signal) 16%, transparent)}.sg-cell.is-first{border-color:var(--blue,#2c5f8a);box-shadow:inset 0 0 0 1px var(--blue,#2c5f8a)}.sg-cell.is-second{border-color:var(--teal);box-shadow:inset 0 0 0 1px var(--teal)}.sg-results{margin-top:16px}.sg-result{border-bottom:1px solid var(--dark-line);min-height:34px;color:var(--dark-faint);font-family:var(--mono);place-items:center;font-size:13px;display:grid}.sg-result.is-ready{color:var(--dark-text)}.sg-result.is-zero{color:var(--dark-faint)}.sg-stats{gap:8px;padding:10px 18px 2px;display:flex}.sg-stats>div{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:5px;gap:3px;min-width:120px;padding:8px 10px;display:grid}.sg-stats span{color:var(--dark-faint);font-family:var(--mono);font-size:8px}.sg-stats b{color:var(--dark-text);font-family:var(--mono);font-size:16px}@media (width<=760px){.sg-scroll,.sg-stats{padding-inline:8px}.sg-cell{min-height:44px}.sg-cell b{font-size:16px}.sg-stats>div{flex:1;min-width:0}}.ie-canvas{border:1px solid var(--dark-line);background:linear-gradient(var(--dark-line) 1px, transparent 1px) 0 0 / 25% 50%, linear-gradient(90deg, var(--dark-line) 1px, transparent 1px) 0 0 / 25% 50%, var(--dark-2);border-radius:8px;min-height:210px;margin:10px 18px 0;position:relative}.ie-line{background:var(--dark-line);height:1px;position:absolute;top:55%;left:8%;right:8%}.ie-circle{border:1px solid var(--signal);background:var(--dark);width:74px;height:74px;color:var(--signal);font-family:var(--mono);transition:background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);border-radius:50%;place-items:center;display:grid;position:absolute;top:55%;transform:translate(-50%,-50%)}.ie-circle b{font-size:18px;line-height:1}.ie-circle span,.ie-circle small{color:var(--dark-faint);font-size:8px;line-height:1.2}.ie-circle small{color:var(--dark-muted)}.ie-circle.is-closed{border-color:var(--teal);background:color-mix(in srgb, var(--teal) 18%, var(--dark));color:var(--teal)}.ie-circle.is-current{box-shadow:0 0 0 5px color-mix(in srgb, var(--signal) 18%, transparent)}.ie-closed-range{background:var(--teal);opacity:.7;height:2px;position:absolute;top:calc(55% + 42px)}.ie-stats{gap:8px;padding:14px 18px 2px;display:flex}.ie-stats>div{border:1px solid var(--dark-line);background:var(--dark-2);border-radius:5px;gap:3px;min-width:112px;padding:8px 10px;display:grid}.ie-stats span{color:var(--dark-faint);font-family:var(--mono);font-size:8px}.ie-stats b{color:var(--dark-text);font-family:var(--mono);font-size:16px}.ie-result{margin-left:auto}.ie-result.is-ready{border-color:var(--teal)}.ie-result.is-ready b{color:var(--teal)}@media (width<=760px){.ie-canvas{min-height:180px;margin-inline:8px}.ie-circle{width:56px;height:56px}.ie-circle b{font-size:14px}.ie-stats{flex-wrap:wrap;padding-inline:8px}.ie-stats>div{flex:1;min-width:0}.ie-result{flex-basis:100%;margin-left:0}}.study-no-demo{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--panel);justify-items:start;gap:8px;margin:36px 0 0;padding:22px 24px;display:grid}.study-no-demo p{color:var(--ink-soft);font-size:13px;line-height:1.7}.rich-field{gap:6px;display:grid}.rich-toolbar{flex-wrap:wrap;gap:4px;display:flex}.rich-toolbar button{border:1px solid var(--line);background:var(--panel);color:var(--ink-soft);font-family:var(--mono);letter-spacing:.03em;border-radius:4px;padding:3px 8px;font-size:9px}.rich-toolbar button:hover{border-color:var(--signal);color:var(--signal)}.rich-toolbar button.rich-toolbar__preview{margin-left:auto}.rich-toolbar button.is-on{border-color:var(--ink);background:var(--ink);color:var(--paper)}.rich-preview{border:1px solid var(--line);border-radius:var(--r-control);background:var(--panel-soft);min-height:76px;color:var(--ink);padding:10px 12px;font-size:13px;line-height:1.75}main{min-height:100vh}.panel,.system-grid,.system-grid .panel__body{min-width:0}.system-grid .panel{overflow-x:auto}.swatch span,.type-specimen code{overflow-wrap:anywhere}.content-images img{width:auto;max-width:100%;height:auto;display:block}
