@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-vietnamese-standard-normal-rJmnGBSt.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-ext-standard-normal-7khWdh9v.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(./archivo-latin-standard-normal-DY7AcnAa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(./ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(./ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(./ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(./ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(./ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(./ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(./ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(./ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(./ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #0a0d14;--panel: #131a28;--panel-2: #1d2432;--line: #29344a;--text: #e8ecf3;--muted: #93a0b6;--current: #fbbf24;--current-dim: #fbbf2422;--found: #34d399;--found-dim: #34d39922;--mismatch: #f87171;--mismatch-dim: #f8717122;--visited: #3d4759;--visited-text: #8a94a6;--pointer-a: #60a5fa;--pointer-b: #f472b6;--pointer-c: #c084fc;--island-0: #2dd4bf;--island-1: #a78bfa;--island-2: #fb7185;--island-3: #a3e635;--code-kw: #c792ea;--code-str: #ecc48d;--code-num: #f78c6c;--code-comment: #637089;--code-plain: #d6deeb;--display: "Archivo Variable", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, "Liberation Mono", monospace;--cell-w: 44px;--cell-gap: 6px;--t-fast: .16s;--t-med: .32s}*{box-sizing:border-box;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--body);font-size:16px;line-height:1.55}.app{max-width:1060px;margin:0 auto;padding:20px 24px 64px}.header{display:flex;align-items:center;flex-wrap:wrap;gap:20px;padding:10px 0 18px;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--display);font-weight:850;font-stretch:112%;font-size:1.2rem;letter-spacing:.01em;text-transform:uppercase;white-space:nowrap}.wordmark em{font-style:normal;color:var(--current)}a.wordmark{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:9px}.logo-mark{flex-shrink:0;overflow:visible}a.wordmark:hover em{text-shadow:0 0 14px var(--current-dim)}.nav-pills{display:flex;flex-wrap:wrap;gap:8px}.nav-pill{display:inline-block;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--muted);font-size:.85rem;text-decoration:none;transition:border-color var(--t-fast),color var(--t-fast),background var(--t-fast)}.nav-pill:hover{color:var(--text);border-color:var(--current)}.nav-pill-active{color:var(--current);border-color:var(--current);background:var(--current-dim)}.nav-menu{position:relative}.nav-menu-summary{list-style:none;cursor:pointer;-webkit-user-select:none;user-select:none}.nav-menu-summary::-webkit-details-marker{display:none}.nav-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:40;display:flex;gap:22px;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:var(--panel);box-shadow:0 18px 50px #000a;min-width:460px}.nav-panel-group{display:flex;flex-direction:column;gap:2px;min-width:190px}.nav-panel-label{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--visited-text);padding:2px 8px 6px}.nav-panel-link{color:var(--muted);text-decoration:none;font-size:.85rem;padding:4px 8px;border-radius:7px}.nav-panel-link:hover{color:var(--text);background:var(--panel-2)}.nav-panel-link-active{color:var(--current);background:var(--current-dim)}@media(max-width:560px){.nav-panel{min-width:0;flex-direction:column}}.dash-hero{padding:30px 0 6px}.dash-hero-eyebrow{font-family:var(--mono);font-size:.72rem;color:var(--visited-text);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}.dash-hero-row{display:flex;align-items:flex-end;gap:28px;flex-wrap:wrap}.dash-hero-title{font-family:var(--display);font-weight:800;font-stretch:108%;font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.12;letter-spacing:-.01em}.dash-hero-camp{color:var(--current);text-decoration:none}a.dash-hero-camp:hover{text-decoration:underline;text-underline-offset:4px}.dash-hero-comment{font-family:var(--mono);font-size:.86rem;color:var(--visited-text);margin-left:auto;text-align:right;line-height:1.6}.dash-frac{color:var(--muted)}.dash-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 6px}.dash-tab{display:inline-flex;align-items:baseline;gap:7px;padding:6px 13px;border-radius:9px;border:1px solid var(--line);background:var(--panel);text-decoration:none;transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast)}.dash-tab:hover{border-color:var(--current);transform:translateY(-1px)}.dash-tab-name{font-size:.8rem;color:var(--muted)}.dash-tab-frac{font-family:var(--mono);font-size:.62rem;color:var(--visited-text)}.dash-tab.is-done{border-color:#7a621f;background:var(--current-dim)}.dash-tab.is-done .dash-tab-name,.dash-tab.is-done .dash-tab-frac{color:var(--current)}.dash-tab.is-current{border-color:var(--current);background:var(--current-dim)}.dash-tab.is-current .dash-tab-name{color:var(--current);font-weight:600}.dash-tab.is-current .dash-tab-frac{color:var(--current)}.dash-label{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--visited-text);margin:38px 0 16px}.dash-label:after{content:"";flex:1;height:1px;background:var(--line)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:14px}.dash-card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform var(--t-fast),border-color var(--t-fast),background var(--t-fast);opacity:0;animation:dash-in .48s cubic-bezier(.2,.7,.3,1) forwards}.dash-card:hover{transform:translateY(-3px);border-color:var(--acc, var(--current));background:var(--panel-2)}.dash-card:nth-child(1){animation-delay:0ms}.dash-card:nth-child(2){animation-delay:40ms}.dash-card:nth-child(3){animation-delay:80ms}.dash-card:nth-child(4){animation-delay:.12s}.dash-card:nth-child(5){animation-delay:.16s}.dash-card:nth-child(6){animation-delay:.2s}.dash-card:nth-child(7){animation-delay:.24s}.dash-card:nth-child(8){animation-delay:.28s}.dash-card:nth-child(9){animation-delay:.32s}.dash-card:nth-child(10){animation-delay:.36s}.dash-card:nth-child(11){animation-delay:.4s}.dash-card:nth-child(12){animation-delay:.44s}.dash-card:nth-child(13){animation-delay:.48s}.dash-card:nth-child(14){animation-delay:.52s}.dash-card:nth-child(15){animation-delay:.56s}.dash-card:nth-child(16){animation-delay:.6s}.dash-card:nth-child(17){animation-delay:.64s}.dash-card:nth-child(18){animation-delay:.68s}.dash-card:nth-child(19){animation-delay:.72s}.dash-card:nth-child(20){animation-delay:.76s}@keyframes dash-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.dash-card-main{display:flex;flex-direction:column;gap:9px;padding:16px 16px 10px;color:inherit;text-decoration:none;flex:1}.dash-glyph{height:46px;display:flex;align-items:center}.dash-glyph svg{overflow:visible}.dash-card h2{font-family:var(--display);font-weight:750;font-stretch:106%;font-size:1.02rem;line-height:1.2}.dash-what{font-size:.8rem;color:var(--muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.dash-stats{font-family:var(--mono);font-size:.68rem;color:var(--visited-text);display:flex;flex-wrap:wrap;gap:4px 10px}.dash-stat-oa{color:var(--pointer-b)}.dash-stat-cx{color:var(--pointer-a)}.dash-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:auto}.dash-chip{font-family:var(--mono);font-size:.62rem;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:2px 8px}.dash-variants{display:flex;gap:6px;padding:0 16px 4px}.dash-var{font-family:var(--mono);font-size:.64rem;color:var(--current);border:1px solid #7a621f;border-radius:7px;padding:3px 9px;text-decoration:none;transition:background var(--t-fast),color var(--t-fast)}.dash-var:hover{background:var(--current-dim)}.dash-prog{display:flex;align-items:center;gap:8px;padding:8px 16px 14px}.dash-prog-bar{flex:1;height:4px;border-radius:2px;background:var(--bg);overflow:hidden}.dash-prog-bar i{display:block;height:100%;border-radius:2px;background:var(--current)}.dash-prog-frac{font-family:var(--mono);font-size:.66rem;color:var(--current)}.dash-roadmap-only{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.dash-ro{display:flex;align-items:center;gap:10px;border:1px dashed var(--line);border-radius:10px;padding:10px 14px;color:var(--muted);text-decoration:none;transition:border-color var(--t-fast),color var(--t-fast)}.dash-ro:hover{border-color:var(--current);color:var(--text)}.dash-ro-name{font-family:var(--display);font-weight:620;font-size:.85rem}.dash-ro-frac{margin-left:auto}.dash-ro-frac,.dash-ro-go{font-family:var(--mono);font-size:.68rem;color:var(--visited-text)}.dash-study details{border:1px solid var(--line);border-radius:12px;background:var(--panel);margin-bottom:10px;overflow:hidden}.dash-study summary{cursor:pointer;list-style:none;padding:13px 18px;font-family:var(--display);font-weight:650;font-size:.92rem;display:flex;align-items:center;gap:10px;color:var(--text)}.dash-study summary::-webkit-details-marker{display:none}.dash-study summary:before{content:"+";font-family:var(--mono);color:var(--current);width:1em}.dash-study details[open] summary:before{content:"–"}.dash-study-hint{margin-left:auto;font-family:var(--mono);font-size:.65rem;color:var(--visited-text);font-weight:400}.dash-study-body{padding:4px 18px 16px;border-top:1px solid var(--line)}.dash-study-body .strategy-section{padding-top:12px}.dash-study-body .strategy-card{border:none;padding:12px 0 0;background:transparent}.dash-glyph .gm-slide{animation:gm-slide 4s ease-in-out infinite}.dash-glyph .gm-ptr-l{animation:gm-ptr-l 4s ease-in-out infinite}.dash-glyph .gm-ptr-r{animation:gm-ptr-r 4s ease-in-out infinite}.dash-glyph .gm-pop{animation:gm-pop 4s ease-in-out infinite}.dash-glyph .gm-sink{animation:gm-sink 4s ease-in-out infinite}.dash-glyph .gm-flood-0{animation:gm-appear 4s steps(1,end) infinite}.dash-glyph .gm-flood-1{animation:gm-appear-2 4s steps(1,end) infinite}.dash-glyph .gm-flood-2{animation:gm-appear-3 4s steps(1,end) infinite}.dash-glyph .gm-fill-0{animation:gm-fill-0 4s ease-in-out infinite}.dash-glyph .gm-fill-1{animation:gm-fill-1 4s ease-in-out infinite}.dash-glyph .gm-fill-2{animation:gm-fill-2 4s ease-in-out infinite}.dash-glyph .gm-trip-0{animation:gm-trip-0 4s ease-in-out infinite}.dash-glyph .gm-trip-1{animation:gm-trip-1 4s ease-in-out infinite}.dash-glyph .gm-trip-2{animation:gm-trip-2 4s ease-in-out infinite}.dash-glyph .gm-set-in{animation:gm-set-in 4s ease-in-out infinite}.dash-glyph .gm-set-dup{animation:gm-set-dup 4s ease-in-out infinite}.dash-glyph .gm-set-x{animation:gm-set-x 4s ease-in-out infinite}.dash-glyph .gm-bs-dim-0{animation:gm-bs-dim-0 4s ease-in-out infinite}.dash-glyph .gm-bs-dim-1{animation:gm-bs-dim-1 4s ease-in-out infinite}.dash-glyph .gm-bs-hit{animation:gm-bs-hit 4s ease-in-out infinite}.dash-glyph .gm-bs-probe{transform-box:fill-box;transform-origin:center;animation:gm-bs-probe 4s ease-in-out infinite}.dash-glyph .gm-bar,.dash-glyph .gm-tally{transform-box:fill-box;transform-origin:bottom}.dash-glyph rect.gm-bar-0{animation:gm-grow-0 4s ease-out infinite}.dash-glyph rect.gm-bar-1{animation:gm-grow-1 4s ease-out infinite}.dash-glyph rect.gm-bar-2{animation:gm-grow-2 4s ease-out infinite}.dash-glyph rect.gm-bar-3{animation:gm-grow-3 4s ease-out infinite}.dash-glyph text.gm-bar-0{animation:gm-fade-0 4s ease-out infinite}.dash-glyph text.gm-bar-1{animation:gm-fade-1 4s ease-out infinite}.dash-glyph text.gm-bar-2{animation:gm-fade-2 4s ease-out infinite}.dash-glyph text.gm-bar-3{animation:gm-fade-3 4s ease-out infinite}.dash-glyph .gm-gr-0{animation:gm-gr-0 4s cubic-bezier(.4,0,.6,1) infinite}.dash-glyph .gm-gr-1{animation:gm-gr-1 4s cubic-bezier(.4,0,.6,1) infinite}.dash-glyph .gm-gr-2{animation:gm-gr-2 4s cubic-bezier(.4,0,.6,1) infinite}.dash-glyph .gm-gr-3{animation:gm-gr-3 4s cubic-bezier(.4,0,.6,1) infinite}.dash-glyph .gm-lit-0{animation:gm-lit-0 4s steps(1,end) infinite}.dash-glyph .gm-lit-1{animation:gm-lit-1 4s steps(1,end) infinite}.dash-glyph .gm-lit-2{animation:gm-lit-2 4s steps(1,end) infinite}.dash-glyph .gm-lit-3{animation:gm-lit-3 4s steps(1,end) infinite}.dash-glyph .gm-lit-4{animation:gm-lit-4 4s steps(1,end) infinite}.dash-glyph .gm-lit-5{animation:gm-lit-5 4s steps(1,end) infinite}.dash-glyph .gm-stair{stroke-dasharray:140;animation:gm-stair 4s ease-in-out infinite}.dash-card:hover .dash-glyph [class^=gm-],.dash-card:hover .dash-glyph [class*=" gm-"]{animation-duration:1.4s}@keyframes gm-slide{0%,15%{transform:none}45%,65%{transform:translate(26px)}95%,to{transform:none}}@keyframes gm-ptr-l{0%,15%{transform:none}45%,65%{transform:translate(26px)}95%,to{transform:none}}@keyframes gm-ptr-r{0%,15%{transform:none}45%,65%{transform:translate(-26px)}95%,to{transform:none}}@keyframes gm-pop{0%,20%{transform:none}50%,70%{transform:translateY(-5px)}to{transform:none}}@keyframes gm-sink{0%,20%{transform:none}50%,70%{transform:translateY(4px)}to{transform:none}}@keyframes gm-appear{0%{opacity:0}20%,90%{opacity:1}to{opacity:0}}@keyframes gm-appear-2{0%,35%{opacity:0}36%,90%{opacity:1}to{opacity:0}}@keyframes gm-appear-3{0%,55%{opacity:0}56%,90%{opacity:1}to{opacity:0}}@keyframes gm-trip-0{0%{transform:none;opacity:0}3%{transform:none;opacity:1}12%{transform:translate(46px,-13px);opacity:1}15%,to{transform:translate(46px,-13px);opacity:0}}@keyframes gm-trip-1{0%,32%{transform:none;opacity:0}35%{transform:none;opacity:1}44%{transform:translate(46px);opacity:1}47%,to{transform:translate(46px);opacity:0}}@keyframes gm-trip-2{0%,64%{transform:none;opacity:0}67%{transform:none;opacity:1}76%{transform:translate(46px,13px);opacity:1}79%,to{transform:translate(46px,13px);opacity:0}}@keyframes gm-fill-0{0%,11%{opacity:0}15%,90%{opacity:1}97%,to{opacity:0}}@keyframes gm-fill-1{0%,43%{opacity:0}47%,90%{opacity:1}97%,to{opacity:0}}@keyframes gm-fill-2{0%,75%{opacity:0}79%,90%{opacity:1}97%,to{opacity:0}}@keyframes gm-set-in{0%{transform:translate(48px);opacity:0}6%{transform:translate(40px);opacity:1}24%,to{transform:none;opacity:1}}@keyframes gm-set-dup{0%,40%{transform:none;opacity:0}46%{transform:none;opacity:1}56%{transform:translate(-12px);opacity:1}64%{transform:translate(-12px);opacity:1}74%{transform:translate(4px);opacity:1}88%,to{transform:translate(10px);opacity:0}}@keyframes gm-set-x{0%,54%{opacity:0}58%,68%{opacity:1}78%,to{opacity:0}}@keyframes gm-bs-probe{0%{transform:none;opacity:0}5%{transform:none;opacity:1}9%{transform:scale(1.18);opacity:1}13%{transform:none;opacity:1}26%{transform:none;opacity:1}32%{transform:translate(26px);opacity:1}36%{transform:translate(26px) scale(1.18);opacity:1}40%{transform:translate(26px);opacity:1}56%{transform:translate(26px);opacity:1}62%{transform:translate(13px);opacity:1}67%{transform:translate(13px) scale(1.22);opacity:1}72%{transform:translate(13px);opacity:1}90%{transform:translate(13px);opacity:1}97%,to{transform:translate(13px);opacity:0}}@keyframes gm-bs-dim-0{0%,15%{opacity:0}24%,90%{opacity:.62}97%,to{opacity:0}}@keyframes gm-bs-dim-1{0%,44%{opacity:0}52%,90%{opacity:.62}97%,to{opacity:0}}@keyframes gm-bs-hit{0%,63%{opacity:0}70%,90%{opacity:1}97%,to{opacity:0}}.dash-glyph .gm-ll-flip-0,.dash-glyph .gm-ll-flip-1,.dash-glyph .gm-ll-flip-2{transform-box:fill-box;transform-origin:center}.dash-glyph .gm-ll-curr{animation:gm-ll-curr 4s ease-in-out infinite}.dash-glyph .gm-ll-flip-0{animation:gm-ll-flip-0 4s ease-in-out infinite}.dash-glyph .gm-ll-flip-1{animation:gm-ll-flip-1 4s ease-in-out infinite}.dash-glyph .gm-ll-flip-2{animation:gm-ll-flip-2 4s ease-in-out infinite}@keyframes gm-ll-curr{0%,15%{transform:none}25%,40%{transform:translate(30px)}50%,65%{transform:translate(60px)}75%,88%{transform:translate(90px)}to{transform:none}}@keyframes gm-ll-flip-0{0%,28%{transform:none}34%,90%{transform:rotate(180deg)}to{transform:none}}@keyframes gm-ll-flip-1{0%,53%{transform:none}59%,90%{transform:rotate(180deg)}to{transform:none}}@keyframes gm-ll-flip-2{0%,78%{transform:none}84%,90%{transform:rotate(180deg)}to{transform:none}}.dash-glyph .gm-tree-bfs-cur{animation:gm-tree-bfs-cur 4s ease-in-out infinite}.dash-glyph .gm-tree-bfs-band{animation:gm-tree-bfs-band 4s ease-in-out infinite}.dash-glyph .gm-tree-bfs-v0{animation:gm-tree-bfs-v0 4s steps(1,end) infinite}.dash-glyph .gm-tree-bfs-v1{animation:gm-tree-bfs-v1 4s steps(1,end) infinite}.dash-glyph .gm-tree-bfs-v2{animation:gm-tree-bfs-v2 4s steps(1,end) infinite}.dash-glyph .gm-tree-bfs-v3{animation:gm-tree-bfs-v3 4s steps(1,end) infinite}.dash-glyph .gm-tree-bfs-v4{animation:gm-tree-bfs-v4 4s steps(1,end) infinite}.dash-glyph .gm-tree-bfs-v5{animation:gm-tree-bfs-v5 4s steps(1,end) infinite}.dash-glyph .gm-tree-bfs-v6{animation:gm-tree-bfs-v6 4s steps(1,end) infinite}@keyframes gm-tree-bfs-cur{0%,11%{transform:none;opacity:1}16%,23%{transform:translate(-20px,14px);opacity:1}28%,35%{transform:translate(20px,14px);opacity:1}40%,47%{transform:translate(-30px,28px);opacity:1}52%,59%{transform:translate(-10px,28px);opacity:1}64%,71%{transform:translate(10px,28px);opacity:1}76%,83%{transform:translate(30px,28px);opacity:1}88%,to{transform:translate(30px,28px);opacity:0}}@keyframes gm-tree-bfs-band{0%,11%{transform:none;opacity:0}12%,33%{transform:none;opacity:.3}36%,81%{transform:translateY(14px);opacity:.3}84%,92%{transform:translateY(28px);opacity:.3}to{transform:translateY(28px);opacity:0}}@keyframes gm-tree-bfs-v0{0%,11%{opacity:0}12%,90%{opacity:1}to{opacity:0}}@keyframes gm-tree-bfs-v1{0%,23%{opacity:0}24%,90%{opacity:1}to{opacity:0}}@keyframes gm-tree-bfs-v2{0%,35%{opacity:0}36%,90%{opacity:1}to{opacity:0}}@keyframes gm-tree-bfs-v3{0%,47%{opacity:0}48%,90%{opacity:1}to{opacity:0}}@keyframes gm-tree-bfs-v4{0%,59%{opacity:0}60%,90%{opacity:1}to{opacity:0}}@keyframes gm-tree-bfs-v5{0%,71%{opacity:0}72%,90%{opacity:1}to{opacity:0}}@keyframes gm-tree-bfs-v6{0%,83%{opacity:0}84%,90%{opacity:1}to{opacity:0}}.dash-glyph .gm-backtracking-dot{animation:gm-backtracking-dot 4s ease-in-out infinite}.dash-glyph .gm-backtracking-trail-0{animation:gm-backtracking-trail-0 4s ease-in-out infinite}.dash-glyph .gm-backtracking-trail-1{animation:gm-backtracking-trail-1 4s ease-in-out infinite}.dash-glyph .gm-backtracking-leaf-0{animation:gm-backtracking-leaf-0 4s ease-in-out infinite}.dash-glyph .gm-backtracking-leaf-1{animation:gm-backtracking-leaf-1 4s ease-in-out infinite}.dash-glyph .gm-backtracking-leaf-2{animation:gm-backtracking-leaf-2 4s ease-in-out infinite}.dash-glyph .gm-backtracking-out-0{animation:gm-backtracking-out-0 4s ease-in-out infinite}.dash-glyph .gm-backtracking-out-1{animation:gm-backtracking-out-1 4s ease-in-out infinite}.dash-glyph .gm-backtracking-out-2{animation:gm-backtracking-out-2 4s ease-in-out infinite}@keyframes gm-backtracking-dot{0%{transform:none;opacity:0}5%{transform:none;opacity:1}12%{transform:translate(-20px,14px);opacity:1}18%{transform:translate(-30px,29px);opacity:1}24%{transform:translate(-30px,29px);opacity:1}30%{transform:translate(-20px,14px);opacity:1}36%{transform:translate(-10px,29px);opacity:1}42%{transform:translate(-10px,29px);opacity:1}49%{transform:translate(-20px,14px);opacity:1}55%{transform:none;opacity:1}63%{transform:translate(20px,14px);opacity:1}69%{transform:translate(10px,29px);opacity:1}75%{transform:translate(10px,29px);opacity:1}82%{transform:translate(20px,14px);opacity:1}88%{transform:none;opacity:1}95%,to{transform:none;opacity:0}}@keyframes gm-backtracking-trail-0{0%,11%{opacity:0}13%,54%{opacity:.9}56%,90%{opacity:.3}96%,to{opacity:0}}@keyframes gm-backtracking-trail-1{0%,62%{opacity:0}64%,87%{opacity:.9}89%,90%{opacity:.3}96%,to{opacity:0}}@keyframes gm-backtracking-leaf-0{0%,17%{opacity:0}19%,29%{opacity:1}31%,90%{opacity:.3}96%,to{opacity:0}}@keyframes gm-backtracking-leaf-1{0%,35%{opacity:0}37%,48%{opacity:1}50%,90%{opacity:.3}96%,to{opacity:0}}@keyframes gm-backtracking-leaf-2{0%,68%{opacity:0}70%,81%{opacity:1}83%,90%{opacity:.3}96%,to{opacity:0}}@keyframes gm-backtracking-out-0{0%,20%{opacity:0}25%,92%{opacity:1}98%,to{opacity:0}}@keyframes gm-backtracking-out-1{0%,38%{opacity:0}43%,92%{opacity:1}98%,to{opacity:0}}@keyframes gm-backtracking-out-2{0%,71%{opacity:0}76%,92%{opacity:1}98%,to{opacity:0}}.dash-glyph .gm-dp-fill,.dash-glyph .gm-dp-cur,.dash-glyph .gm-dp-take,.dash-glyph .gm-dp-skip{transform-box:fill-box;transform-origin:center}.dash-glyph .gm-dp-fill-0{animation:gm-dp-fill-0 4s ease-out infinite}.dash-glyph .gm-dp-fill-1{animation:gm-dp-fill-1 4s ease-out infinite}.dash-glyph .gm-dp-fill-2{animation:gm-dp-fill-2 4s ease-out infinite}.dash-glyph .gm-dp-fill-3{animation:gm-dp-fill-3 4s ease-out infinite}.dash-glyph .gm-dp-fill-4{animation:gm-dp-fill-4 4s ease-out infinite}.dash-glyph .gm-dp-fill-5{animation:gm-dp-fill-5 4s ease-out infinite}.dash-glyph .gm-dp-cur{animation:gm-dp-cur 4s ease-in-out infinite}.dash-glyph .gm-dp-take,.dash-glyph .gm-dp-skip{animation:gm-dp-probe 4s ease-in-out infinite}@keyframes gm-dp-fill-0{0%,3%{opacity:0;transform:scale(0)}7%,92%{opacity:1;transform:none}to{opacity:0;transform:none}}@keyframes gm-dp-fill-1{0%,7%{opacity:0;transform:scale(0)}11%,92%{opacity:1;transform:none}to{opacity:0;transform:none}}@keyframes gm-dp-fill-2{0%,24%{opacity:0;transform:scale(0)}28%,92%{opacity:1;transform:none}to{opacity:0;transform:none}}@keyframes gm-dp-fill-3{0%,44%{opacity:0;transform:scale(0)}48%,92%{opacity:1;transform:none}to{opacity:0;transform:none}}@keyframes gm-dp-fill-4{0%,64%{opacity:0;transform:scale(0)}68%,92%{opacity:1;transform:none}to{opacity:0;transform:none}}@keyframes gm-dp-fill-5{0%,84%{opacity:0;transform:scale(0)}88%,92%{opacity:1;transform:none}to{opacity:0;transform:none}}@keyframes gm-dp-cur{0%,11%{transform:none;opacity:0}12%,30%{transform:none;opacity:1}34%,50%{transform:translate(17px);opacity:1}54%,70%{transform:translate(34px);opacity:1}74%,91%{transform:translate(51px);opacity:1}96%,to{transform:translate(51px);opacity:0}}@keyframes gm-dp-probe{0%,11%{transform:none;opacity:0}12%{transform:none;opacity:1}22%{transform:scale(1.18);opacity:1}26%,30%{transform:none;opacity:1}34%{transform:translate(17px);opacity:1}42%{transform:translate(17px) scale(1.18);opacity:1}46%,50%{transform:translate(17px);opacity:1}54%{transform:translate(34px);opacity:1}62%{transform:translate(34px) scale(1.18);opacity:1}66%,70%{transform:translate(34px);opacity:1}74%{transform:translate(51px);opacity:1}82%{transform:translate(51px) scale(1.18);opacity:1}86%,91%{transform:translate(51px);opacity:1}96%,to{transform:translate(51px);opacity:0}}} @keyframes gm-grow-0{0%{transform:scaleY(0)}14%,92%{transform:none}100%{transform:scaleY(0)}}@keyframes gm-grow-1{0%,16%{transform:scaleY(0)}30%,92%{transform:none}to{transform:scaleY(0)}}@keyframes gm-grow-2{0%,32%{transform:scaleY(0)}46%,92%{transform:none}to{transform:scaleY(0)}}@keyframes gm-grow-3{0%,48%{transform:scaleY(0)}62%,92%{transform:none}to{transform:scaleY(0)}}@keyframes gm-fade-0{0%,12%{opacity:0}18%,92%{opacity:1}to{opacity:0}}@keyframes gm-fade-1{0%,28%{opacity:0}34%,92%{opacity:1}to{opacity:0}}@keyframes gm-fade-2{0%,44%{opacity:0}50%,92%{opacity:1}to{opacity:0}}@keyframes gm-fade-3{0%,60%{opacity:0}66%,92%{opacity:1}to{opacity:0}}@keyframes gm-gr-0{0%,4%{transform:none;opacity:0}8%{transform:none;opacity:1}14%{transform:translateY(27px);opacity:1}17%,90%{transform:translateY(25px);opacity:1}96%,to{transform:translateY(25px);opacity:0}}@keyframes gm-gr-1{0%,24%{transform:none;opacity:0}28%{transform:none;opacity:1}34%{transform:translateY(27px);opacity:1}37%,90%{transform:translateY(25px);opacity:1}96%,to{transform:translateY(25px);opacity:0}}@keyframes gm-gr-2{0%,44%{transform:none;opacity:0}48%{transform:none;opacity:1}54%{transform:translateY(27px);opacity:1}57%,90%{transform:translateY(25px);opacity:1}96%,to{transform:translateY(25px);opacity:0}}@keyframes gm-gr-3{0%,64%{transform:none;opacity:0}68%{transform:none;opacity:1}74%{transform:translateY(27px);opacity:1}77%,90%{transform:translateY(25px);opacity:1}96%,to{transform:translateY(25px);opacity:0}}@keyframes gm-lit-0{0%{opacity:0}10%,90%{opacity:1}to{opacity:0}}@keyframes gm-lit-1{0%,14%{opacity:0}24%,90%{opacity:1}to{opacity:0}}@keyframes gm-lit-2{0%,28%{opacity:0}38%,90%{opacity:1}to{opacity:0}}@keyframes gm-lit-3{0%,42%{opacity:0}52%,90%{opacity:1}to{opacity:0}}@keyframes gm-lit-4{0%,56%{opacity:0}66%,90%{opacity:1}to{opacity:0}}@keyframes gm-lit-5{0%,70%{opacity:0}80%,90%{opacity:1}to{opacity:0}}@keyframes gm-stair{0%{stroke-dashoffset:140}80%,92%{stroke-dashoffset:0}to{stroke-dashoffset:140}}.dash-glyph .gm-sorting-b0,.dash-glyph .gm-sorting-b1,.dash-glyph .gm-sorting-b2,.dash-glyph .gm-sorting-b3,.dash-glyph .gm-sorting-b5,.dash-glyph .gm-sorting-b6{transform-box:fill-box;transform-origin:bottom}.dash-glyph .gm-sorting-b0{animation:gm-sorting-b0 4s ease-in-out infinite}.dash-glyph .gm-sorting-b1{animation:gm-sorting-b1 4s ease-in-out infinite}.dash-glyph .gm-sorting-b2{animation:gm-sorting-b2 4s ease-in-out infinite}.dash-glyph .gm-sorting-b3{animation:gm-sorting-b3 4s ease-in-out infinite}.dash-glyph .gm-sorting-b5{animation:gm-sorting-b5 4s ease-in-out infinite}.dash-glyph .gm-sorting-b6{animation:gm-sorting-b6 4s ease-in-out infinite}.dash-glyph .gm-sorting-cur{animation:gm-sorting-cur 4s ease-in-out infinite}.dash-glyph .gm-sorting-place{animation:gm-sorting-place 4s ease-in-out infinite}@keyframes gm-sorting-cur{0%,4%{transform:none;opacity:0}6%,14%{transform:none;opacity:1}16%,24%{transform:translate(14px);opacity:1}26%,32%{transform:translate(28px);opacity:1}34%,42%{transform:translate(42px);opacity:1}44%,50%{transform:translate(56px);opacity:1}52%,60%{transform:translate(70px);opacity:1}66%,to{transform:translate(70px);opacity:0}}@keyframes gm-sorting-b0{0%,16%{transform:none}22%,90%{transform:scaleY(.385)}97%,to{transform:none}}@keyframes gm-sorting-b1{0%,16%{transform:none}22%,34%{transform:scaleY(2.6)}40%,90%{transform:scaleY(1.4)}97%,to{transform:none}}@keyframes gm-sorting-b2{0%,52%{transform:none}58%,90%{transform:scaleY(.176)}97%,to{transform:none}}@keyframes gm-sorting-b3{0%,34%{transform:none}40%,66%{transform:scaleY(1.857)}72%,90%{transform:scaleY(1.571)}97%,to{transform:none}}@keyframes gm-sorting-b5{0%,52%{transform:none}58%,90%{transform:scaleY(5.667)}97%,to{transform:none}}@keyframes gm-sorting-b6{0%,66%{transform:none;fill:var(--current)}72%,90%{transform:scaleY(1.182);fill:var(--panel-2)}97%,to{transform:none;fill:var(--current)}}@keyframes gm-sorting-place{0%,68%{opacity:0}74%,90%{opacity:1}96%,to{opacity:0}}.dash-glyph .gm-bst-ring,.dash-glyph .gm-bst-new{transform-box:fill-box;transform-origin:center}.dash-glyph .gm-bst-dot{animation:gm-bst-dot 4s ease-in-out infinite}.dash-glyph .gm-bst-ring{animation:gm-bst-ring 4s ease-in-out infinite}.dash-glyph .gm-bst-edge-0{animation:gm-bst-edge-0 4s ease-in-out infinite}.dash-glyph .gm-bst-edge-1{animation:gm-bst-edge-1 4s ease-in-out infinite}.dash-glyph .gm-bst-new{animation:gm-bst-new 4s ease-in-out infinite}@keyframes gm-bst-dot{0%{transform:none;opacity:0}6%,22%{transform:none;opacity:1}30%,44%{transform:translate(-20px,14px);opacity:1}52%,58%{transform:translate(-10px,28px);opacity:1}64%,to{transform:translate(-10px,28px);opacity:0}}@keyframes gm-bst-ring{0%{transform:none;opacity:0}6%,10%{transform:none;opacity:1}14%{transform:scale(1.3);opacity:1}18%,22%{transform:none;opacity:1}30%,34%{transform:translate(-20px,14px);opacity:1}38%{transform:translate(-20px,14px) scale(1.3);opacity:1}42%,48%{transform:translate(-20px,14px);opacity:1}56%,to{transform:translate(-20px,14px);opacity:0}}@keyframes gm-bst-edge-0{0%,24%{opacity:0}30%,88%{opacity:1}96%,to{opacity:0}}@keyframes gm-bst-edge-1{0%,46%{opacity:0}52%,88%{opacity:1}96%,to{opacity:0}}@keyframes gm-bst-new{0%,58%{transform:scale(.6);opacity:0}64%{transform:scale(1.35);opacity:1}70%,88%{transform:none;opacity:1}96%,to{transform:scale(.6);opacity:0}}.dash-glyph .gm-tree-dfs-cur{animation:gm-tree-dfs-cur 4s ease-in-out infinite}.dash-glyph .gm-tree-dfs-s0{animation:gm-tree-dfs-s0 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-s1{animation:gm-tree-dfs-s1 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-s2{animation:gm-tree-dfs-s2 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-v0{animation:gm-tree-dfs-v0 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-v1{animation:gm-tree-dfs-v1 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-v2{animation:gm-tree-dfs-v2 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-v3{animation:gm-tree-dfs-v3 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-v4{animation:gm-tree-dfs-v4 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-v5{animation:gm-tree-dfs-v5 4s steps(1,end) infinite}.dash-glyph .gm-tree-dfs-v6{animation:gm-tree-dfs-v6 4s steps(1,end) infinite}@keyframes gm-tree-dfs-cur{0%,5%{transform:none;opacity:1}10%,14%{transform:translate(-20px,14px);opacity:1}16%,26%{transform:translate(-30px,28px);opacity:1}30%,34%{transform:translate(-20px,14px);opacity:1}36%,46%{transform:translate(-10px,28px);opacity:1}50%,54%{transform:none;opacity:1}56%,60%{transform:translate(20px,14px);opacity:1}62%,72%{transform:translate(10px,28px);opacity:1}76%,80%{transform:translate(20px,14px);opacity:1}82%,90%{transform:translate(30px,28px);opacity:1}96%,to{transform:translate(30px,28px);opacity:0}}@keyframes gm-tree-dfs-s0{0%,3%{opacity:0}4%,49%{opacity:1}50%,55%{opacity:0}56%,75%{opacity:1}76%,81%{opacity:0}82%,87%{opacity:1}88%,to{opacity:0}}@keyframes gm-tree-dfs-s1{0%,9%{opacity:0}10%,29%{opacity:1}30%,35%{opacity:0}36%,41%{opacity:1}42%,61%{opacity:0}62%,67%{opacity:1}68%,to{opacity:0}}@keyframes gm-tree-dfs-s2{0%,15%{opacity:0}16%,21%{opacity:1}22%,to{opacity:0}}@keyframes gm-tree-dfs-v0{0%,49%{opacity:0}50%,92%{opacity:1}to{opacity:0}}@keyframes gm-tree-dfs-v1{0%,29%{opacity:0}30%,92%{opacity:1}to{opacity:0}}@keyframes gm-tree-dfs-v2{0%,75%{opacity:0}76%,92%{opacity:1}to{opacity:0}}@keyframes gm-tree-dfs-v3{0%,21%{opacity:0}22%,92%{opacity:1}to{opacity:0}}@keyframes gm-tree-dfs-v4{0%,41%{opacity:0}42%,92%{opacity:1}to{opacity:0}}@keyframes gm-tree-dfs-v5{0%,67%{opacity:0}68%,92%{opacity:1}to{opacity:0}}@keyframes gm-tree-dfs-v6{0%,87%{opacity:0}88%,92%{opacity:1}to{opacity:0}}.dash-glyph .gm-union-find-cur{animation:gm-union-find-cur 4s ease-in-out infinite}.dash-glyph .gm-union-find-n1{animation:gm-union-find-n1 4s ease-in-out infinite}.dash-glyph .gm-union-find-n2{animation:gm-union-find-n2 4s ease-in-out infinite}.dash-glyph .gm-union-find-n3{animation:gm-union-find-n3 4s ease-in-out infinite}.dash-glyph .gm-union-find-e1{animation:gm-union-find-e1 4s ease-in-out infinite}.dash-glyph .gm-union-find-e2{animation:gm-union-find-e2 4s ease-in-out infinite}.dash-glyph .gm-union-find-e3{animation:gm-union-find-e3 4s ease-in-out infinite}.dash-glyph .gm-union-find-r1{animation:gm-union-find-r1 4s steps(1,end) infinite}.dash-glyph .gm-union-find-r2{animation:gm-union-find-r2 4s steps(1,end) infinite}.dash-glyph .gm-union-find-r3{animation:gm-union-find-r3 4s steps(1,end) infinite}.dash-glyph .gm-union-find-c4{animation:gm-union-find-c4 4s steps(1,end) infinite}.dash-glyph .gm-union-find-c3{animation:gm-union-find-c3 4s steps(1,end) infinite}.dash-glyph .gm-union-find-c2{animation:gm-union-find-c2 4s steps(1,end) infinite}.dash-glyph .gm-union-find-c1{animation:gm-union-find-c1 4s steps(1,end) infinite}@keyframes gm-union-find-cur{0%,4%{transform:translate(30px);opacity:0}6%,10%{transform:translate(30px);opacity:1}12%,30%{transform:none;opacity:1}32%,36%{transform:translate(60px);opacity:1}38%,56%{transform:none;opacity:1}58%,62%{transform:translate(90px);opacity:1}64%,78%{transform:none;opacity:1}86%,to{transform:none;opacity:0}}@keyframes gm-union-find-n1{0%,14%{transform:none}22%,to{transform:translate(-42px,20px)}}@keyframes gm-union-find-n2{0%,40%{transform:none}48%,to{transform:translate(-60px,20px)}}@keyframes gm-union-find-n3{0%,66%{transform:none}74%,to{transform:translate(-78px,20px)}}@keyframes gm-union-find-e1{0%,20%{opacity:0}24%,96%{opacity:1}to{opacity:0}}@keyframes gm-union-find-e2{0%,46%{opacity:0}50%,96%{opacity:1}to{opacity:0}}@keyframes gm-union-find-e3{0%,72%{opacity:0}76%,96%{opacity:1}to{opacity:0}}@keyframes gm-union-find-r1{0%,21%{opacity:1}22%,to{opacity:0}}@keyframes gm-union-find-r2{0%,47%{opacity:1}48%,to{opacity:0}}@keyframes gm-union-find-r3{0%,73%{opacity:1}74%,to{opacity:0}}@keyframes gm-union-find-c4{0%,21%{opacity:1}22%,to{opacity:0}}@keyframes gm-union-find-c3{0%,21%{opacity:0}22%,47%{opacity:1}48%,to{opacity:0}}@keyframes gm-union-find-c2{0%,47%{opacity:0}48%,73%{opacity:1}74%,to{opacity:0}}@keyframes gm-union-find-c1{0%,73%{opacity:0}74%,to{opacity:1}}.dash-glyph .gm-dijkstra-e0{animation:gm-dijkstra-e0 4s ease-in-out infinite}.dash-glyph .gm-dijkstra-e1{animation:gm-dijkstra-e1 4s ease-in-out infinite}.dash-glyph .gm-dijkstra-e2{animation:gm-dijkstra-e2 4s ease-in-out infinite}.dash-glyph .gm-dijkstra-e3{animation:gm-dijkstra-e3 4s ease-in-out infinite}.dash-glyph .gm-dijkstra-e4{animation:gm-dijkstra-e4 4s ease-in-out infinite}.dash-glyph .gm-dijkstra-n0{animation:gm-dijkstra-n0 4s steps(1,end) infinite}.dash-glyph .gm-dijkstra-n1{animation:gm-dijkstra-n1 4s steps(1,end) infinite}.dash-glyph .gm-dijkstra-n2{animation:gm-dijkstra-n2 4s steps(1,end) infinite}.dash-glyph .gm-dijkstra-n3{animation:gm-dijkstra-n3 4s steps(1,end) infinite}.dash-glyph .gm-dijkstra-n4{animation:gm-dijkstra-n4 4s steps(1,end) infinite}.dash-glyph .gm-dijkstra-ring{transform-box:fill-box;transform-origin:center;animation:gm-dijkstra-ring 4s ease-in-out infinite}@keyframes gm-dijkstra-e0{0%,6%{stroke-dashoffset:100;opacity:0}7%{stroke-dashoffset:100;opacity:1}15%{stroke-dashoffset:0;opacity:1}22%,90%{stroke-dashoffset:0;opacity:.45}to{stroke-dashoffset:0;opacity:0}}@keyframes gm-dijkstra-e1{0%,10%{stroke-dashoffset:100;opacity:0}11%{stroke-dashoffset:100;opacity:1}19%{stroke-dashoffset:0;opacity:1}26%,90%{stroke-dashoffset:0;opacity:.45}to{stroke-dashoffset:0;opacity:0}}@keyframes gm-dijkstra-e2{0%,27%{stroke-dashoffset:100;opacity:0}28%{stroke-dashoffset:100;opacity:1}36%{stroke-dashoffset:0;opacity:1}43%,90%{stroke-dashoffset:0;opacity:.45}to{stroke-dashoffset:0;opacity:0}}@keyframes gm-dijkstra-e3{0%,44%{stroke-dashoffset:100;opacity:0}45%{stroke-dashoffset:100;opacity:1}53%{stroke-dashoffset:0;opacity:1}57%,to{stroke-dashoffset:0;opacity:0}}@keyframes gm-dijkstra-e4{0%,60%{stroke-dashoffset:100;opacity:0}61%{stroke-dashoffset:100;opacity:1}69%{stroke-dashoffset:0;opacity:1}75%,90%{stroke-dashoffset:0;opacity:.45}to{stroke-dashoffset:0;opacity:0}}@keyframes gm-dijkstra-n0{0%,2%{opacity:0}3%,90%{opacity:1}to{opacity:0}}@keyframes gm-dijkstra-n1{0%,41%{opacity:0}42%,90%{opacity:1}to{opacity:0}}@keyframes gm-dijkstra-n2{0%,23%{opacity:0}24%,90%{opacity:1}to{opacity:0}}@keyframes gm-dijkstra-n3{0%,57%{opacity:0}58%,90%{opacity:1}to{opacity:0}}@keyframes gm-dijkstra-n4{0%,73%{opacity:0}74%,90%{opacity:1}to{opacity:0}}@keyframes gm-dijkstra-ring{0%,75%{opacity:0;transform:scale(.6)}79%{opacity:1;transform:scale(1)}88%,to{opacity:0;transform:scale(1.4)}}.page-notice{padding:48px 0;color:var(--muted)}.page-notice h1{color:var(--text);margin-bottom:8px}.pattern-grid{display:flex;flex-direction:column;gap:14px;padding-top:16px}.page-header-row{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.page-title{font-family:var(--display);font-weight:800;font-stretch:106%;font-size:1.35rem;letter-spacing:-.005em}.page-what{color:var(--muted);font-size:.85rem;flex:1;min-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-chips{display:flex;gap:6px}.page-chip-cx{color:var(--pointer-a)}.page-brief-toggle{font-family:var(--mono);font-size:.68rem;color:var(--current);background:none;border:1px solid transparent;border-radius:7px;padding:3px 8px;cursor:pointer}.page-brief-toggle:hover{border-color:var(--current)}.page-header .briefing-strip{margin-top:12px}.player-cols{display:grid;gap:16px}.player-cols>*{min-width:0}.grid-code{display:flex;flex-direction:column}@media(min-width:880px){.player-cols{grid-template-columns:minmax(0,1.5fr) minmax(380px,1fr)}}.stage-panel{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}.stage-panel .grid-canvas{border:none;border-radius:0;background:transparent;overflow-x:auto;justify-content:safe center}.stage-caption{border-top:1px solid var(--line);background:#101624}.stage-caption .narration{margin:0;border:none;border-left:3px solid var(--current);border-radius:0;background:transparent}.stage-transport{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 14px;border-top:1px solid var(--line);background:#0d1220}.stage-transport .controls{margin:0;padding:0;border:none;background:transparent}.timeline{flex:1;min-width:220px;display:flex;flex-direction:column;gap:4px}.timeline-ticks{display:flex;gap:2px;align-items:flex-end;height:16px}.timeline-tick{flex:1;min-width:3px;height:8px;padding:0;border:none;border-radius:2px;cursor:pointer;opacity:.35;transition:height var(--t-fast),opacity var(--t-fast)}.timeline-tick-done{opacity:.9;height:10px}.timeline-tick:hover{height:14px;opacity:1}.timeline-tick-current{height:16px;opacity:1;background:var(--current)!important;box-shadow:0 0 8px var(--current-dim)}.timeline-tone-0{background:var(--pointer-a)}.timeline-tone-1{background:var(--found)}.timeline-tone-2{background:var(--pointer-b)}.timeline-tone-3{background:var(--pointer-c)}.timeline-tone-4{background:var(--island-3)}.timeline-tone-5{background:var(--island-0)}.timeline-lab{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-family:var(--mono);font-size:.6rem;color:var(--visited-text)}.timeline-step{white-space:nowrap}.timeline-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 10px}.timeline-key{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.timeline-key code{color:var(--muted)}.timeline-dot{width:7px;height:7px;border-radius:2px;display:inline-block}.timeline-dot-cursor{background:var(--current)}.timeline-key-cursor,.timeline-key-more{color:var(--faint)}.watch{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.74rem;border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden;margin-top:10px}.watch th{text-align:left;color:var(--visited-text);font-weight:400;font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;padding:7px 14px;border-bottom:1px solid var(--line)}.watch td{padding:5px 14px;color:var(--muted)}.watch-name{width:30%}.watch-value{color:var(--text)}.watch-chg .watch-value{color:var(--current);animation:flash var(--t-med)}.watch-delta{color:var(--found);font-size:.66rem;text-align:right;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice{margin-top:20px;padding:20px 22px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.notice p{color:var(--text)}.notice-error{border-color:var(--mismatch)}.notice-error p{color:var(--mismatch);margin-bottom:14px}.btn{padding:8px 16px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit;cursor:pointer;transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast)}.btn:hover{border-color:var(--current);color:var(--current)}.briefing-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:var(--panel)}.briefing-row{display:flex;align-items:center;gap:8px;font-size:.85rem}.briefing-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;white-space:nowrap}.briefing-value{color:var(--text)}.briefing-mono{font-family:var(--mono)}.briefing-row-remember{align-items:flex-start}.briefing-remember{display:flex;flex-direction:column;gap:4px;min-width:0}.remember-item{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.remember-code{font-family:var(--mono);font-size:.8rem;background:#94a3b824;border-radius:4px;padding:1px 6px;white-space:nowrap}.remember-note{color:var(--muted)}.vars-strip{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.vars-item{display:inline-flex;align-items:baseline;gap:6px;font-family:var(--mono);font-size:.78rem;background:#94a3b81a;border-radius:6px;padding:2px 8px}.vars-name{color:var(--muted)}.vars-value{animation:vars-flash .6s ease-out}@keyframes vars-flash{0%{color:var(--current)}to{color:inherit}}@media(prefers-reduced-motion:reduce){.vars-value,.window-bracket-match,.island-cell-probe-ok,.island-cell-probe-reject,.map-value,.map-bump-delta,.map-row-inserted{animation:none}}.briefing-chips{display:flex;flex-wrap:wrap;gap:6px}.tag-chip{padding:3px 9px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font-size:.75rem}.grid-canvas{min-height:clamp(380px,50vh,460px);padding:24px;display:flex;align-items:center;justify-content:center;border-radius:16px;border:1px solid var(--line);background:var(--panel)}.track{position:relative;display:inline-flex;flex-direction:column;gap:20px;padding-top:28px}.cell-row{display:flex;gap:var(--cell-gap)}.cell{width:var(--cell-w);height:var(--cell-w);display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.95rem;transition:background-color var(--t-med),border-color var(--t-med),color var(--t-med),opacity var(--t-med),transform var(--t-fast)}.cell-current{border-color:var(--current);background:var(--current-dim);color:var(--current)}.cell-visited{border-color:var(--visited);color:var(--visited-text)}.cell-found{border-color:var(--found);background:var(--found-dim);color:var(--found);animation:flash var(--t-med)}.cell-mismatch{border-color:var(--mismatch);background:var(--mismatch-dim);color:var(--mismatch);animation:flash var(--t-med)}.cell-index-label{display:inline-flex;width:var(--cell-w);justify-content:center;color:var(--muted);font-family:var(--mono);font-size:.75rem}.chip,.window-bracket{transition:left var(--t-med) ease,width var(--t-med) ease}.window-bracket{position:absolute;top:-6px;height:calc(var(--cell-w) + 12px);border:2px solid var(--current);border-radius:10px;background:var(--current-dim);pointer-events:none}.window-bracket-match{border-color:var(--found);background:var(--found-dim);animation:bracket-sweep var(--t-med) ease-out}@keyframes bracket-sweep{0%{transform:scaleX(.04);opacity:.35}to{transform:scaleX(1);opacity:1}}.window-bracket-match{transform-origin:left center}.spotlight.spotlight{animation:spotlight-pulse 1.6s ease-in-out infinite}@keyframes spotlight-pulse{0%,to{box-shadow:0 0 0 2px var(--current),0 0 8px 2px var(--current-dim)}50%{box-shadow:0 0 0 2px var(--current),0 0 18px 6px var(--current-dim)}}.pointer-chip{position:absolute;top:0;transform:translate(0);padding:2px 7px;border-radius:999px;border:1px solid var(--pointer-color);background:color-mix(in srgb,var(--pointer-color) 18%,transparent);color:var(--pointer-color);font-family:var(--mono);font-size:.7rem;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--text);font-family:var(--mono);font-size:.8rem}.badge[data-tone=current]{border-color:var(--current);color:var(--current)}.badge[data-tone=found]{border-color:var(--found);color:var(--found)}.badge[data-tone=mismatch]{border-color:var(--mismatch);color:var(--mismatch)}.badge[data-tone=a]{border-color:var(--pointer-a);color:var(--pointer-a)}.badge[data-tone=b]{border-color:var(--pointer-b);color:var(--pointer-b)}.badge[data-tone=c]{border-color:var(--pointer-c);color:var(--pointer-c)}.stack{display:flex;flex-direction:column;gap:8px}.hashmap-target{color:var(--muted);font-family:var(--mono);font-size:.85rem}.hashmap-target-value{color:var(--text)}.map-list{display:flex;flex-direction:column;gap:6px;min-width:180px}.map-row{display:flex;align-items:center;gap:10px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.9rem;animation:rise-in var(--t-med) ease-out}.map-row-hit{border-color:var(--found);box-shadow:0 0 0 2px var(--found-dim)}.map-row-miss{border-color:var(--mismatch);border-style:dashed;color:var(--muted);animation:pulse-muted .7s ease-in-out}.map-key{min-width:1.5em;text-align:right;color:var(--current)}.map-arrow{color:var(--muted)}.map-value{color:var(--text);animation:value-roll var(--t-fast) ease-out;display:inline-block}@keyframes value-roll{0%{transform:translateY(.45em);opacity:0}to{transform:translateY(0);opacity:1}}.map-bump-delta{margin-left:auto;color:var(--current);font-family:var(--mono);font-size:.75rem;animation:delta-rise .7s ease-out}@keyframes delta-rise{0%{transform:translateY(4px);opacity:0}35%{transform:translateY(0);opacity:1}to{transform:translateY(-3px);opacity:.55}}.map-row-inserted{border-color:var(--found);animation:row-insert var(--t-med) ease-out}@keyframes row-insert{0%{transform:translate(-10px) scale(.96);opacity:0;border-color:var(--current)}to{transform:translate(0) scale(1);opacity:1}}.map-miss-label{color:var(--mismatch);font-style:italic}.map-empty{color:var(--muted);font-size:.85rem;font-style:italic}.islands-view{align-items:center}.islands-header{display:flex;justify-content:flex-end;width:100%}.islands-count-badge{font-weight:600}.islands-count-flash{animation:flash var(--t-med)}.islands-grid{display:grid;gap:var(--cell-gap)}.island-cell{width:var(--cell-w);height:var(--cell-w);border-radius:8px;border:1px solid var(--line);background:var(--panel-2);transition:background-color var(--t-med),border-color var(--t-med),opacity var(--t-med)}.island-cell-water{border-color:transparent;background:var(--bg);opacity:.5}.island-cell-land{border-color:var(--line);background:var(--panel-2)}.island-cell-queued{border:2px solid var(--current);background:var(--current-dim)}.island-cell-current{border:2px solid var(--current);background:var(--current)}.island-cell-visited{border:2px solid var(--cell-island-color);background:color-mix(in srgb,var(--cell-island-color) 35%,transparent);opacity:.85}.island-color-0{--cell-island-color: var(--island-0)}.island-color-1{--cell-island-color: var(--island-1)}.island-color-2{--cell-island-color: var(--island-2)}.island-color-3{--cell-island-color: var(--island-3)}.island-cell-probe-ok{box-shadow:0 0 0 2px var(--found);animation:island-spread var(--t-med) ease-out}@keyframes island-spread{0%{transform:translate(calc(var(--spread-dc, 0) * (var(--cell-w) + var(--cell-gap))),calc(var(--spread-dr, 0) * (var(--cell-w) + var(--cell-gap))));opacity:.15}to{transform:translate(0);opacity:1}}.island-cell-probe-reject{box-shadow:0 0 0 2px var(--mismatch);border-style:dashed;animation:island-rebuff var(--t-med) ease-out}@keyframes island-rebuff{0%{transform:translate(0)}45%{transform:translate(calc(var(--spread-dc, 0) * .18 * var(--cell-w)),calc(var(--spread-dr, 0) * .18 * var(--cell-w)))}to{transform:translate(0)}}.queue-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:28px}.queue-strip-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;margin-right:4px}.queue-chip{padding:3px 9px;border-radius:999px;border:1px solid var(--current);background:var(--current-dim);color:var(--current);font-family:var(--mono);font-size:.75rem;animation:rise-in var(--t-fast) ease-out}.queue-empty{color:var(--muted);font-size:.85rem;font-style:italic}.islands-legend{color:var(--muted);font-size:.75rem}.stack-view{align-items:center}.stack-column-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:120px}.stack-column-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.stack-column{display:flex;flex-direction:column-reverse;align-items:center;gap:6px;min-height:calc(var(--cell-w) + 16px);padding:8px;border-radius:10px;border:1px dashed var(--line)}.stack-column-pop{animation:flash var(--t-med)}.stack-frame{width:var(--cell-w);height:var(--cell-w);display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--current);background:var(--current-dim);color:var(--current);font-family:var(--mono);font-size:.95rem;animation:rise-in var(--t-med) ease-out}.stack-empty{color:var(--muted);font-size:.85rem;font-style:italic}.stack-verdict{width:100%;padding:10px 16px;border-radius:10px;text-align:center;font-weight:600;font-size:1.05rem;animation:rise-in var(--t-med) ease-out}.stack-verdict-valid{border:1px solid var(--found);background:var(--found-dim);color:var(--found)}.stack-verdict-invalid{border:1px solid var(--mismatch);background:var(--mismatch-dim);color:var(--mismatch)}.stack-legend{color:var(--muted);font-size:.75rem}.sw-view{align-items:center}.sw-window-readout{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.9rem}.sw-window-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.sw-window-value{color:var(--text)}.sw-window-empty{color:var(--muted);font-style:italic}.sw-duplicate-note{color:var(--mismatch);font-size:.8rem}.sw-best-strip{display:flex;align-items:center;gap:10px}.sw-best-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.sw-best-word{min-width:1.5em;padding-bottom:2px;border-bottom:2px solid var(--found);color:var(--found);font-family:var(--mono)}.sw-best-badge{font-weight:600}.sw-best-flash{animation:flash var(--t-med)}.sw-legend{color:var(--muted);font-size:.75rem}.tp-view{align-items:center}.tp-target{color:var(--muted);font-family:var(--mono);font-size:.85rem}.tp-target-value{color:var(--text)}.tp-sum-badge{font-family:var(--mono);font-weight:600}.tp-sum-flash{animation:flash var(--t-med)}.tp-verdict{padding:10px 16px;border-radius:10px;border:1px solid var(--found);background:var(--found-dim);color:var(--found);text-align:center;font-weight:600;font-size:1.05rem;animation:rise-in var(--t-med) ease-out}.tp-legend{color:var(--muted);font-size:.75rem}.bs-view{align-items:center}.bs-target{color:var(--muted);font-family:var(--mono);font-size:.85rem}.bs-target-value{color:var(--text)}.bs-view .track{margin-top:22px}.bs-mid-chip-wrap{position:absolute;right:0;bottom:0;left:0;top:-22px;pointer-events:none}.bs-compare-badge{font-family:var(--mono);font-weight:600}.bs-compare-flash{animation:flash var(--t-med)}.bs-verdict{padding:10px 16px;border-radius:10px;text-align:center;font-weight:600;font-size:1.05rem;animation:rise-in var(--t-med) ease-out}.bs-verdict-found{border:1px solid var(--found);background:var(--found-dim);color:var(--found)}.bs-verdict-exhausted{border:1px solid var(--mismatch);background:var(--mismatch-dim);color:var(--mismatch)}.bs-legend{color:var(--muted);font-size:.75rem}.heap-view{align-items:center}.heap-header{display:flex;align-items:center;gap:12px}.heap-k{color:var(--muted);font-family:var(--mono);font-size:.85rem}.heap-tree-wrap{display:flex;align-items:flex-start;gap:14px;min-height:40px}.heap-chip-slot{flex:none;width:92px}.heap-chip{margin-top:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--current);background:var(--current-dim);color:var(--current);font-family:var(--mono);font-size:.8rem;white-space:nowrap;transition:transform var(--t-med) ease,opacity var(--t-med) ease,border-color var(--t-med),background var(--t-med),color var(--t-med);animation:rise-in var(--t-med) ease-out}.heap-chip-rejected{transform:translate(-10px,16px);opacity:.6;border-color:var(--visited);border-style:dashed;background:var(--panel-2);color:var(--visited-text)}.heap-tree{position:relative}.heap-edges{position:absolute;top:0;right:0;bottom:0;left:0}.heap-edge{stroke:var(--line);stroke-width:2;transition:stroke var(--t-med),stroke-width var(--t-med)}.heap-edge-highlight{stroke:var(--current);stroke-width:3}.heap-node{position:absolute;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.95rem;animation:rise-in var(--t-med) ease-out;transition:border-color var(--t-med),background-color var(--t-med),color var(--t-med),box-shadow var(--t-med)}.heap-node-compare{border-color:var(--current);box-shadow:0 0 0 2px var(--current-dim)}.heap-node-swap{border-color:var(--found);background:var(--found-dim);color:var(--found);animation:flash var(--t-med)}.heap-node-answer{border:2px solid var(--found);box-shadow:0 0 0 3px var(--found-dim)}.heap-answer-banner{padding:10px 16px;border-radius:10px;border:1px solid var(--found);background:var(--found-dim);color:var(--found);text-align:center;font-weight:600;font-size:1.05rem;animation:rise-in var(--t-med) ease-out}.heap-legend{color:var(--muted);font-size:.75rem}.linked-list-view{align-items:center}.linked-list-view .track{--cell-gap: 30px}.linked-list-rail-pad{padding:0 30px}.linked-list-arrows{position:absolute;top:28px;left:0;right:0;height:var(--cell-w);pointer-events:none}.linked-list-arrow{position:absolute;top:0;height:100%;display:flex;align-items:center;transform:translate(-50%);font-family:var(--mono);font-size:1.05rem}.linked-list-arrow-fwd{color:var(--muted)}.linked-list-arrow-back{color:var(--found)}.linked-list-arrow-back .linked-list-arrow-glyph,.linked-list-rail-glyph{display:inline-block;animation:linked-list-flip var(--t-med) ease-out}@keyframes linked-list-flip{0%{transform:rotateY(180deg);color:var(--muted)}to{transform:rotateY(0)}}.linked-list-rail{position:absolute;top:28px;height:var(--cell-w);display:flex;align-items:center;font-family:var(--mono);font-size:1.05rem}.linked-list-rail-left{left:-24px;color:var(--found)}.linked-list-rail-right{right:-24px;color:var(--muted)}.linked-list-op-badge{font-family:var(--mono);font-weight:600}.linked-list-op-flash{animation:flash var(--t-med)}.linked-list-verdict{padding:10px 16px;border-radius:10px;border:1px solid var(--found);background:var(--found-dim);color:var(--found);text-align:center;font-weight:600;font-size:1.05rem;animation:rise-in var(--t-med) ease-out}.linked-list-legend{color:var(--muted);font-size:.75rem}.tree-bfs-view{align-items:center}.tree-bfs-tree{position:relative}.tree-bfs-band{position:absolute;left:0;right:0;height:54px;border-radius:12px;transition:background-color var(--t-med),box-shadow var(--t-med)}.tree-bfs-band-done{background:color-mix(in srgb,var(--island-0) 8%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--island-0) 22%,transparent)}.tree-bfs-band-flash{animation:tree-bfs-band-glow var(--t-med) ease-out}@keyframes tree-bfs-band-glow{0%{background:color-mix(in srgb,var(--island-0) 28%,transparent)}}.tree-bfs-edges{position:absolute;top:0;right:0;bottom:0;left:0}.tree-bfs-edge{stroke:var(--line);stroke-width:2;transition:stroke var(--t-med),stroke-width var(--t-med)}.tree-bfs-edge-enqueue{stroke:var(--current);stroke-width:3}.tree-bfs-node{position:absolute;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.95rem;transition:border-color var(--t-med),background-color var(--t-med),color var(--t-med),box-shadow var(--t-med)}.tree-bfs-node-queued{border:2px solid var(--current);background:var(--current-dim);color:var(--current)}.tree-bfs-node-current{border:2px solid var(--current);background:var(--current);color:var(--bg);font-weight:600}.tree-bfs-node-visited{border:2px solid var(--island-0);background:color-mix(in srgb,var(--island-0) 30%,transparent);opacity:.9}.tree-bfs-node-enqueued{animation:tree-bfs-enqueue-pop var(--t-med) ease-out}@keyframes tree-bfs-enqueue-pop{0%{transform:scale(.72)}60%{transform:scale(1.1)}to{transform:none}}.tree-bfs-level-chip{padding:3px 9px;border-radius:999px;border:1px solid var(--island-0);background:color-mix(in srgb,var(--island-0) 12%,transparent);color:var(--island-0);font-family:var(--mono);font-size:.75rem;animation:rise-in var(--t-fast) ease-out}.tree-bfs-legend{color:var(--muted);font-size:.75rem}.backtracking-view{align-items:center}.backtracking-header{display:flex;justify-content:flex-end;width:100%}.backtracking-count-badge{font-weight:600}.backtracking-count-flash{animation:flash var(--t-med)}.backtracking-tree{position:relative}.backtracking-edges{position:absolute;top:0;right:0;bottom:0;left:0}.backtracking-edge{stroke:var(--line);stroke-width:2;transition:stroke var(--t-med),opacity var(--t-med)}.backtracking-edge-active{stroke:var(--current);stroke-width:3}.backtracking-edge-visited{stroke:var(--visited);opacity:.55}.backtracking-edge-label{fill:var(--muted);font-family:var(--mono);font-size:9px}.backtracking-node{position:absolute;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-family:var(--mono);font-size:.75rem;transition:border-color var(--t-med),background-color var(--t-med),color var(--t-med),opacity var(--t-med),box-shadow var(--t-med)}.backtracking-node-leaf{border-style:dashed}.backtracking-node-active{border:2px solid var(--current);border-style:solid;background:var(--current-dim);color:var(--current)}.backtracking-node-current{background:var(--current);color:var(--bg)}.backtracking-node-emitted{border-color:var(--found);background:var(--found-dim);color:var(--found);animation:flash var(--t-med)}.backtracking-node-visited{border-color:var(--visited);color:var(--visited-text);background:var(--panel-2);opacity:.45}.backtracking-node-backtracked{animation:backtracking-dim var(--t-med) ease-out}@keyframes backtracking-dim{0%{opacity:1;box-shadow:0 0 0 2px var(--mismatch)}to{opacity:.45;box-shadow:none}}.backtracking-output{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;min-height:28px;max-width:500px}.backtracking-output-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;margin-right:4px}.backtracking-out-chip{padding:3px 9px;border-radius:999px;border:1px solid var(--pointer-c);background:color-mix(in srgb,var(--pointer-c) 14%,transparent);color:var(--pointer-c);font-family:var(--mono);font-size:.75rem}.backtracking-out-new{animation:rise-in var(--t-fast) ease-out,flash var(--t-med)}.backtracking-output-empty{color:var(--muted);font-size:.85rem;font-style:italic}.backtracking-legend{color:var(--muted);font-size:.75rem;max-width:520px;text-align:center}.dp-view{align-items:center}.dp-rows{display:flex;flex-direction:column;gap:12px}.dp-row{display:flex;align-items:flex-start;gap:10px}.dp-row-label{width:46px;padding-top:13px;text-align:right;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.dp-row .track{padding-top:0}.dp-cell-empty{border-style:dashed;background:var(--bg);color:var(--visited-text)}.dp-cell-solved{border-color:var(--found);color:var(--found)}.dp-cell-take{border-color:var(--pointer-a);color:var(--pointer-a)}.dp-cell-skip{border-color:var(--pointer-b);color:var(--pointer-b)}.dp-cell-chosen{animation:flash var(--t-med)}.dp-cell-fill{border-color:var(--found);background:var(--found-dim);color:var(--found);animation:dp-fill-pop var(--t-med) ease-out .18s backwards}@keyframes dp-fill-pop{0%{transform:scale(.55);opacity:.25}to{transform:none;opacity:1}}.dp-cell-answer{border-color:var(--found);background:var(--found-dim);color:var(--found);animation:flash var(--t-med)}.dp-compare-readout{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-family:var(--mono);font-size:.9rem}.dp-compare-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.dp-compare-take{color:var(--pointer-a)}.dp-compare-skip{color:var(--pointer-b)}.dp-compare-empty{color:var(--muted);font-style:italic}.dp-compare-verdict{color:var(--found);font-size:.8rem}.dp-best-strip{display:flex;align-items:center;gap:10px}.dp-best-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.dp-best-badge{font-weight:600}.dp-best-flash{animation:flash var(--t-med)}.dp-legend{color:var(--muted);font-size:.75rem}@media(prefers-reduced-motion:reduce){.dp-cell-chosen,.dp-cell-fill,.dp-cell-answer,.dp-best-flash{animation:none}}.sorting-view{align-items:center;--sorting-unit: 11px}.sorting-bar-row{display:flex;align-items:flex-end;gap:var(--cell-gap)}.sorting-bar{width:var(--cell-w);display:flex;align-items:flex-start;justify-content:center;padding-top:3px;border-radius:8px 8px 4px 4px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.85rem;transition:height var(--t-med) ease,background-color var(--t-med),border-color var(--t-med),color var(--t-med),opacity var(--t-med)}.sorting-bar-pivot{border-color:var(--current);background:var(--current-dim);color:var(--current)}.sorting-bar-scan{border-color:var(--pointer-b);color:var(--pointer-b)}.sorting-bar-swap{border-color:var(--pointer-c);background:color-mix(in srgb,var(--pointer-c) 16%,transparent);color:var(--pointer-c);animation:flash var(--t-med)}.sorting-bar-placed{border-color:var(--found);background:var(--found-dim);color:var(--found)}.sorting-bar-landed{border-color:var(--found);background:var(--found-dim);color:var(--found);animation:flash var(--t-med)}.sorting-bar-out{border-color:var(--visited);color:var(--visited-text);opacity:.45}.sorting-badge{font-family:var(--mono);font-weight:600}.sorting-badge-flash{animation:flash var(--t-med)}.sorting-verdict{padding:10px 16px;border-radius:10px;border:1px solid var(--found);background:var(--found-dim);color:var(--found);text-align:center;font-weight:600;font-size:1.05rem;animation:rise-in var(--t-med) ease-out}.sorting-legend{color:var(--muted);font-size:.75rem}.bst-view{align-items:center}.bst-incoming{color:var(--muted);font-family:var(--mono);font-size:.85rem}.bst-incoming-value{color:var(--pointer-a);font-weight:600}.bst-tree{position:relative}.bst-edges{position:absolute;top:0;right:0;bottom:0;left:0}.bst-edge{stroke:var(--line);stroke-width:2;transition:stroke var(--t-med),stroke-width var(--t-med)}.bst-edge-path{stroke:color-mix(in srgb,var(--pointer-a) 55%,var(--line));stroke-width:2.5}.bst-edge-taken{stroke:var(--pointer-a);stroke-width:3}.bst-node{position:absolute;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.95rem;transition:border-color var(--t-med),background-color var(--t-med),color var(--t-med),box-shadow var(--t-med)}.bst-node-path{border:2px solid color-mix(in srgb,var(--pointer-a) 60%,var(--line));background:color-mix(in srgb,var(--pointer-a) 14%,transparent)}.bst-node-current{border:2px solid var(--current);background:var(--current);color:var(--bg);font-weight:600}.bst-node-next{border:2px solid var(--pointer-a);color:var(--pointer-a);animation:bst-next-pop var(--t-med) ease-out}.bst-node-empty{border-style:dashed;background:transparent}.bst-node-new{border:2px solid var(--found);background:var(--found);color:var(--bg);font-weight:600;animation:bst-attach-pop var(--t-med) ease-out}@keyframes bst-next-pop{0%{transform:scale(.8)}60%{transform:scale(1.08)}to{transform:none}}@keyframes bst-attach-pop{0%{transform:scale(.6)}60%{transform:scale(1.12)}to{transform:none}}.bst-verdict-badge{font-family:var(--mono);font-weight:600;animation:rise-in var(--t-fast) ease-out}.bst-attached{padding:10px 16px;border-radius:10px;border:1px solid var(--found);background:var(--found-dim);color:var(--found);text-align:center;font-weight:600;animation:rise-in var(--t-med) ease-out}.bst-legend{color:var(--muted);font-size:.75rem}.tree-dfs-view{align-items:center}.tree-dfs-tree{position:relative}.tree-dfs-edges{position:absolute;top:0;right:0;bottom:0;left:0}.tree-dfs-edge{stroke:var(--line);stroke-width:2;transition:stroke var(--t-med),stroke-width var(--t-med)}.tree-dfs-edge-dive{stroke:var(--island-1);stroke-width:3}.tree-dfs-edge-cross{stroke:var(--current);stroke-width:3}.tree-dfs-node{position:absolute;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.95rem;transition:border-color var(--t-med),background-color var(--t-med),color var(--t-med),box-shadow var(--t-med)}.tree-dfs-node-stacked{border:2px solid var(--island-1);background:color-mix(in srgb,var(--island-1) 14%,transparent);color:var(--island-1)}.tree-dfs-node-current{border:2px solid var(--current);background:var(--current);color:var(--bg);font-weight:600}.tree-dfs-node-visited{border:2px solid var(--island-1);background:color-mix(in srgb,var(--island-1) 30%,transparent);opacity:.9}.tree-dfs-node-pushed{animation:tree-dfs-push-pop var(--t-med) ease-out}@keyframes tree-dfs-push-pop{0%{transform:scale(.72)}60%{transform:scale(1.1)}to{transform:none}}.tree-dfs-stack-chip{padding:3px 9px;border-radius:999px;border:1px solid var(--island-1);background:color-mix(in srgb,var(--island-1) 12%,transparent);color:var(--island-1);font-family:var(--mono);font-size:.75rem;animation:rise-in var(--t-fast) ease-out}.tree-dfs-stack-top{border-width:2px;background:color-mix(in srgb,var(--island-1) 24%,transparent)}.tree-dfs-out-chip{padding:3px 9px;border-radius:999px;border:1px solid var(--island-1);background:color-mix(in srgb,var(--island-1) 12%,transparent);color:var(--island-1);font-family:var(--mono);font-size:.75rem;animation:rise-in var(--t-fast) ease-out}.tree-dfs-legend{color:var(--muted);font-size:.75rem}.union-find-view{align-items:center}.union-find-header{display:flex;justify-content:flex-end;width:100%}.union-find-count-badge{font-weight:600}.union-find-count-flash{animation:flash var(--t-med)}.union-find-forest{position:relative}.union-find-edges{position:absolute;top:0;right:0;bottom:0;left:0}.union-find-edge{stroke:var(--line);stroke-width:2}.union-find-edge-merged{stroke:var(--island-3);stroke-width:3;animation:union-find-edge-pop var(--t-med) ease-out}@keyframes union-find-edge-pop{0%{stroke-width:6;opacity:.4}}.union-find-edge-check{stroke:var(--island-3);stroke-width:1.5;stroke-dasharray:5 4;fill:none;opacity:.7}.union-find-node{position:absolute;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.95rem;transition:left var(--t-med),top var(--t-med),border-color var(--t-med),background-color var(--t-med),color var(--t-med),box-shadow var(--t-med)}.union-find-node-root{border:2px solid var(--island-3);color:var(--island-3)}.union-find-root-badge{position:absolute;top:-7px;right:-7px;width:16px;height:16px;border-radius:999px;border:1px solid var(--island-3);background:var(--panel);color:var(--island-3);font-size:10px;line-height:14px;text-align:center}.union-find-node-finder-a{box-shadow:0 0 0 2px var(--pointer-a)}.union-find-node-finder-b{box-shadow:0 0 0 2px var(--pointer-b)}.union-find-node-finder-a.union-find-node-finder-b{box-shadow:0 0 0 2px var(--pointer-a),0 0 0 5px var(--pointer-b)}.union-find-node-hopped{animation:union-find-hop var(--t-med) ease-out}@keyframes union-find-hop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:none}}.union-find-node-rehung{animation:union-find-rehang var(--t-med) ease-out}@keyframes union-find-rehang{0%{transform:translateY(-14px)}}.union-find-node-sameroot{border-color:var(--found);color:var(--found);animation:union-find-sameroot var(--t-med) ease-out}@keyframes union-find-sameroot{0%{box-shadow:0 0 0 8px var(--found-dim)}}.union-find-scan{display:flex;flex-direction:column;gap:4px;font-family:var(--mono)}.union-find-scan-head,.union-find-scan-row{display:flex;gap:4px;align-items:center}.union-find-scan-corner,.union-find-scan-rowlabel,.union-find-scan-col{width:26px;text-align:center;font-size:.62rem;color:var(--visited-text)}.union-find-pair,.union-find-pair-gap{width:26px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-size:.7rem}.union-find-pair{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);transition:border-color var(--t-fast),background var(--t-fast),color var(--t-fast)}.union-find-pair-current{border-color:var(--current);background:var(--current-dim);color:var(--current);box-shadow:0 0 10px var(--current-dim)}.union-find-pair-merged{border-color:var(--found);background:var(--found-dim);color:var(--found)}.union-find-pair-redundant{border-color:var(--visited);color:var(--visited-text)}.union-find-pair-absent{border-style:dashed;background:transparent;color:var(--visited-text);opacity:.55}.union-find-legend{color:var(--muted);font-size:.75rem}.dijkstra-view{align-items:center}.dijkstra-graph{position:relative}.dijkstra-edges{position:absolute;top:0;right:0;bottom:0;left:0}.dijkstra-edge line{stroke:var(--line);stroke-width:2;transition:stroke var(--t-med),stroke-width var(--t-med)}.dijkstra-edge polygon{fill:var(--line);transition:fill var(--t-med)}.dijkstra-weight{fill:var(--muted);font-family:var(--mono);font-size:11px;transition:fill var(--t-med)}.dijkstra-edge-improve line{stroke:var(--current);stroke-width:3}.dijkstra-edge-improve polygon{fill:var(--current)}.dijkstra-edge-improve .dijkstra-weight{fill:var(--current)}.dijkstra-edge-reject line{stroke:var(--mismatch);stroke-width:2.5;stroke-dasharray:6 5}.dijkstra-edge-reject polygon{fill:var(--mismatch)}.dijkstra-edge-reject .dijkstra-weight{fill:var(--mismatch)}.dijkstra-node{position:absolute;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-family:var(--mono);font-size:.95rem;transition:border-color var(--t-med),background-color var(--t-med),color var(--t-med),box-shadow var(--t-med)}.dijkstra-node-labeled{border:2px solid var(--current);background:var(--current-dim);color:var(--current)}.dijkstra-node-settled{border:2px solid var(--found);background:color-mix(in srgb,var(--found) 30%,transparent);color:var(--text)}.dijkstra-node-current{box-shadow:0 0 0 3px var(--found-dim);font-weight:600}.dijkstra-dist{position:absolute;width:40px;text-align:center;font-family:var(--mono);font-size:.72rem;line-height:1.4;border-radius:999px;border:1px solid transparent;transition:color var(--t-med),border-color var(--t-med),background-color var(--t-med)}.dijkstra-dist-unreached{color:var(--muted)}.dijkstra-dist-set{color:var(--pointer-b);border-color:color-mix(in srgb,var(--pointer-b) 45%,transparent);background:color-mix(in srgb,var(--pointer-b) 12%,transparent)}.dijkstra-dist-flash{animation:dijkstra-label-rewrite var(--t-med) ease-out}@keyframes dijkstra-label-rewrite{0%{transform:scale(.7);background:color-mix(in srgb,var(--current) 35%,transparent)}60%{transform:scale(1.15)}to{transform:none}}.dijkstra-pq-chip{padding:3px 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--pointer-b) 55%,transparent);background:color-mix(in srgb,var(--pointer-b) 10%,transparent);color:var(--pointer-b);font-family:var(--mono);font-size:.75rem;animation:rise-in var(--t-fast) ease-out;transition:border-color var(--t-med),background-color var(--t-med),color var(--t-med)}.dijkstra-pq-pop{border-color:var(--current);background:var(--current-dim);color:var(--current);font-weight:600}.dijkstra-pq-stale{border-style:dashed;border-color:var(--visited);background:var(--panel-2);color:var(--visited-text);text-decoration:line-through}.dijkstra-answer-banner{padding:10px 16px;border-radius:10px;border:1px solid var(--found);background:var(--found-dim);color:var(--found);text-align:center;font-weight:600;font-size:1.05rem;animation:rise-in var(--t-med) ease-out}.dijkstra-legend{color:var(--muted);font-size:.75rem}.code-panel{margin:0;flex:1;min-height:0;max-height:560px;overflow-y:auto;overflow-x:auto;padding:12px 0;border-radius:16px;border:1px solid var(--line);background:var(--panel);font-family:var(--mono);font-size:.85rem;line-height:1.6}.code-line{display:flex;gap:14px;padding:1px 16px;border-left:3px solid transparent;white-space:pre;width:max-content;min-width:100%}.code-line-active{border-left-color:var(--current);background:var(--current-dim)}.code-gutter{flex:none;width:2ch;text-align:right;color:var(--code-comment);-webkit-user-select:none;user-select:none}.code-content{color:var(--code-plain);white-space:pre;flex:1;min-width:0;padding-left:2ch;text-indent:-2ch}.tok-kw{color:var(--code-kw)}.tok-str{color:var(--code-str)}.tok-num{color:var(--code-num)}.tok-comment{color:var(--code-comment);font-style:italic}.tok-plain{color:var(--code-plain)}.narration{padding:14px 18px;border-radius:10px;border-left:3px solid var(--current);background:var(--panel-2);color:var(--text);font-size:1.2rem;animation:rise-in .16s ease-out}.controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 4px}.btn-icon{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font-size:1rem;cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast),opacity var(--t-fast)}.btn-icon:hover:not(:disabled){border-color:var(--current);color:var(--current)}.btn-icon:disabled{opacity:.35;cursor:not-allowed}.btn-icon-active{border-color:var(--current);color:var(--current);background:var(--current-dim)}.voice-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.voice-field{display:flex;flex-direction:column;gap:3px;font-size:.75rem;color:var(--muted)}.voice-field select{padding:6px 8px;border-radius:6px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit;font-size:.8rem;max-width:220px}.voice-field input[type=range]{width:110px;accent-color:var(--current)}.voice-cluster .voice-google-key{flex-basis:100%;padding-top:10px;border-top:1px solid var(--line)}.btn-play{min-width:108px;padding:9px 20px;border-radius:8px;border:1px solid var(--current);background:var(--current-dim);color:var(--current);font-weight:600;font-size:.95rem;cursor:pointer;transition:opacity var(--t-fast),background var(--t-fast)}.btn-play:hover:not(:disabled){background:var(--current);color:var(--bg)}.btn-play:disabled{opacity:.35;cursor:not-allowed}.speed-group{display:inline-flex;border-radius:8px;border:1px solid var(--line);overflow:hidden}.speed-btn{padding:8px 12px;border:none;border-right:1px solid var(--line);background:var(--panel-2);color:var(--muted);font-family:var(--mono);font-size:.8rem;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}.speed-btn:last-child{border-right:none}.speed-btn:hover{color:var(--text)}.speed-btn-active{background:var(--current-dim);color:var(--current)}.step-counter{margin-left:auto;color:var(--muted);font-family:var(--mono);font-size:.8rem}.study-panel{margin-top:16px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.study-toggle{width:100%;display:flex;align-items:center;gap:10px;padding:14px 18px;border:none;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.study-toggle-caret{color:var(--muted);width:1em}.study-toggle-label{font-weight:600}.study-toggle-count{margin-left:auto;color:var(--muted);font-family:var(--mono);font-size:.8rem}.study-list{list-style:none;display:flex;flex-direction:column;gap:2px;padding:0 18px 16px}.study-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem}.study-row-note-only{color:var(--muted);font-size:.85rem}.study-tag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);font-family:var(--mono);font-size:.72rem;white-space:nowrap}.study-tag-must-know{border-color:var(--mismatch);background:var(--mismatch-dim);color:var(--mismatch)}.study-tag-likely{border-color:var(--current);background:var(--current-dim);color:var(--current)}.study-tag-gap{border-color:var(--found);background:var(--found-dim);color:var(--found)}.study-tag-practice{border-color:var(--pointer-a);background:color-mix(in srgb,var(--pointer-a) 18%,transparent);color:var(--pointer-a)}.study-subheader{padding:10px 0 4px;border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.study-title{color:var(--text);text-decoration:none;border-bottom:1px dotted var(--muted)}.study-title:hover{color:var(--current);border-bottom-color:var(--current)}.study-diff{padding:2px 8px;border-radius:999px;font-family:var(--mono);font-size:.68rem;border:1px solid}.study-diff-e{color:var(--found);border-color:var(--found);background:var(--found-dim)}.study-diff-m{color:var(--current);border-color:var(--current);background:var(--current-dim)}.study-diff-h{color:var(--mismatch);border-color:var(--mismatch);background:var(--mismatch-dim)}.study-tier{display:flex;align-items:center;gap:8px;padding:12px 0 2px;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase}.study-tier-count{color:var(--visited-text)}.study-tier-rule{flex:1;height:1px;background:var(--line)}.study-tier-e .study-tier-label{color:var(--found)}.study-tier-m .study-tier-label{color:var(--current)}.study-tier-h .study-tier-label{color:var(--mismatch)}.study-tier-e .study-tier-rule{background:color-mix(in srgb,var(--found) 30%,transparent)}.study-tier-m .study-tier-rule{background:color-mix(in srgb,var(--current) 30%,transparent)}.study-tier-h .study-tier-rule{background:color-mix(in srgb,var(--mismatch) 30%,transparent)}.study-note{color:var(--muted);font-size:.82rem}.study-explain{margin-left:auto;padding:2px 9px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--muted);font:inherit;font-size:.72rem;white-space:nowrap;cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast)}.study-explain:hover{border-color:var(--current);color:var(--current)}.strategy-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;padding-top:28px}.strategy-card,.study-card{display:flex;flex-direction:column;gap:12px;padding:18px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.strategy-card h2,.study-card h2{font-size:1.05rem}.strategy-block h3{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;margin-bottom:6px}.strategy-list{display:flex;flex-direction:column;gap:4px;padding-left:1.2em;font-size:.85rem;color:var(--text)}.study-card-what{color:var(--muted);font-size:.85rem}.study-card-triggers{display:flex;flex-wrap:wrap;gap:6px}.study-trigger-chip{padding:3px 9px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);font-size:.75rem}.study-card .study-list{padding:0}.study-card .study-row{border-top:1px solid var(--line)}.study-card .study-row:first-child{border-top:none}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes flash{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes pulse-muted{0%{opacity:.4}50%{opacity:1}to{opacity:.75}}.teacher-panel{margin-top:16px;border-radius:12px;border:1px solid var(--line);background:var(--panel)}.teacher-toggle{width:100%;display:flex;align-items:center;gap:10px;padding:14px 18px;border:none;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.teacher-toggle-caret{color:var(--muted);width:1em}.teacher-toggle-label{font-weight:600}.teacher-toggle-count{margin-left:auto;color:var(--muted);font-family:var(--mono);font-size:.8rem}.teacher-body{display:flex;flex-direction:column;gap:12px;padding:0 18px 16px}.teacher-body>.btn{align-self:flex-start}.teacher-note{margin:0;color:var(--muted);font-size:.85rem;line-height:1.5}.teacher-note-warn{color:var(--mismatch)}.teacher-start{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.teacher-transcript{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0;padding:12px;max-height:340px;overflow-y:auto;border-radius:10px;border:1px solid var(--line);background:var(--panel-2)}.teacher-line{display:grid;grid-template-columns:4.5rem 1fr;gap:10px;font-size:.9rem;line-height:1.55}.teacher-line-who{color:var(--muted);font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding-top:.22rem}.teacher-line-student .teacher-line-who{color:var(--current)}.teacher-line-student .teacher-line-text{color:var(--muted)}.teacher-thinking{margin:0;color:var(--current);font-family:var(--mono);font-size:.8rem;animation:teacher-pulse 1.4s ease-in-out infinite}@keyframes teacher-pulse{0%,to{opacity:.55}50%{opacity:1}}.teacher-error{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--mismatch);background:var(--mismatch-dim)}.teacher-error p{margin:0;color:var(--text);font-size:.88rem}.teacher-check{display:flex;flex-direction:column;gap:10px}.teacher-check-question{margin:0;font-size:.92rem;font-weight:600}.teacher-options{display:flex;flex-wrap:wrap;gap:8px}.teacher-option{padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit;font-size:.88rem;text-align:left;cursor:pointer;transition:border-color var(--t-fast),color var(--t-fast)}.teacher-option:hover:not(:disabled){border-color:var(--current);color:var(--current)}.teacher-option:disabled{cursor:default;opacity:.72}.teacher-option-correct{border-color:var(--found);background:var(--found-dim);color:var(--found);opacity:1}.teacher-option-wrong{border-color:var(--mismatch);background:var(--mismatch-dim);color:var(--mismatch);opacity:1}.teacher-ask{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.teacher-ask-input{flex:1 1 240px;min-width:0;padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit;font-size:.9rem}.teacher-ask-input:focus-visible{outline:none;border-color:var(--current)}.teacher-btn-quiet{color:var(--muted)}.teacher-mic-live{border-color:var(--mismatch);color:var(--mismatch)}.teacher-key{display:flex;flex-direction:column;gap:10px;max-width:30rem}.teacher-key-field{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}.teacher-key-field input{padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);font:inherit;font-family:var(--mono);font-size:.85rem}.teacher-key-field input:focus-visible{outline:none;border-color:var(--current)}.teacher-key-actions{display:flex;gap:8px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}.bigo-page{display:flex;flex-direction:column;gap:18px;padding:26px 0 60px;max-width:900px;margin:0 auto}.bigo-page h1{font-family:var(--display);font-weight:800;font-stretch:106%;font-size:1.6rem}.bigo-page h2{font-family:var(--display);font-weight:750;font-size:1.1rem;margin-top:18px}.bigo-intro{color:var(--muted);max-width:640px}.bigo-chart-card{margin:0;border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:18px 18px 12px}.bigo-chart{width:100%;height:auto;display:block}.bigo-grid{stroke:var(--line);stroke-width:1;opacity:.45}.bigo-axis{stroke:var(--visited);stroke-width:1}.bigo-axis-label{font-family:var(--mono);font-size:10px;fill:var(--visited-text)}.bigo-curve{fill:none;stroke-width:2;transition:stroke-width var(--t-fast)}.bigo-curve-g:hover .bigo-curve{stroke-width:3.5}.bigo-curve-label{font-family:var(--mono);font-size:11px}.bigo-chart-note{font-family:var(--mono);font-size:.66rem;color:var(--visited-text);padding:8px 4px 0}.bigo-ladder{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.bigo-step{border:1px solid var(--line);border-left:3px solid var(--cls);border-radius:12px;background:var(--panel);padding:12px 14px;display:flex;flex-direction:column;gap:6px}.bigo-step-head{display:flex;align-items:baseline;gap:8px}.bigo-step-dot{width:8px;height:8px;border-radius:2px;background:var(--cls);flex-shrink:0;align-self:center}.bigo-step-cls{font-family:var(--mono);font-weight:600;color:var(--text);font-size:.95rem;white-space:nowrap}.bigo-step-feel{color:var(--muted);font-size:.75rem}.bigo-step-row{display:flex;gap:8px;color:var(--muted);font-size:.78rem;line-height:1.4}.bigo-step-row span{font-family:var(--mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em;color:var(--visited-text);flex-shrink:0;padding-top:2px;width:38px}.bigo-rules{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.bigo-rule{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:14px 16px}.bigo-rule h3{font-size:.92rem;margin-bottom:6px}.bigo-rule p{color:var(--muted);font-size:.82rem;line-height:1.5}.bigo-groups{display:flex;flex-direction:column;gap:14px}.bigo-group{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.bigo-group-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel-2)}.bigo-group-count{font-family:var(--mono);font-size:.66rem;color:var(--visited-text)}.bigo-pattern-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding:10px 16px;color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--line) 45%,transparent)}.bigo-pattern-row:last-child{border-bottom:none}.bigo-pattern-row:hover{background:var(--panel-2)}.bigo-pattern-name{font-weight:600;min-width:170px}.roadmap{max-width:760px;margin:0 auto;padding:28px 20px 96px}.roadmap .hero{margin-bottom:30px}.roadmap .hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.roadmap .hero h1{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0}.roadmap .countdown{font-weight:700;font-size:clamp(40px,8vw,64px);line-height:1.05;color:var(--current);letter-spacing:-.01em}.roadmap .countdown-label{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:2px}.roadmap .countdown-label strong{color:var(--text);font-weight:600}.roadmap .hero-actions{display:flex;gap:8px;flex-shrink:0;padding-top:4px}.roadmap .hero-actions button{font:500 13px var(--body);color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 12px;cursor:pointer}.roadmap .hero-actions button:hover{color:var(--text);border-color:var(--muted)}.roadmap button:focus-visible,.roadmap input:focus-visible,.roadmap a:focus-visible{outline:2px solid var(--found);outline-offset:2px}.roadmap .overall{margin-top:18px}.roadmap .bar{height:8px;background:var(--panel);border:1px solid var(--line);border-radius:5px;overflow:hidden}.roadmap .bar-fill{height:100%;background:var(--found);transition:width .32s ease}.roadmap .overall-meta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:7px}.roadmap .stage-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}.roadmap .stage-chip{display:inline-flex;align-items:baseline;gap:7px;font:500 12px var(--body);color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:5px 11px;cursor:pointer}.roadmap .stage-chip:hover{color:var(--text);border-color:var(--muted)}.roadmap .stage-chip-count{font-family:var(--mono);font-size:10.5px}.roadmap .stage-chip.is-current{color:var(--text);border-color:var(--current)}.roadmap .stage-chip.is-current .stage-chip-count{color:var(--current)}.roadmap .stage-chip.is-complete{color:var(--found);border-color:color-mix(in srgb,var(--found) 45%,transparent)}.roadmap .climb{position:relative;padding-left:40px}.roadmap .stage{position:relative;margin-bottom:12px;scroll-margin-top:14px}.roadmap .stage-link{position:absolute;left:-27px;width:2px;top:21px;bottom:-33px;background:var(--panel-2);transition:background-color .48s ease}.roadmap .stage-link.is-filled{background:var(--found)}.roadmap .stage-link-last{bottom:8px}.roadmap .stage-node{position:absolute;left:-33px;top:15px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--line);transition:background .32s ease,border-color .32s ease;z-index:1}.roadmap .stage.is-complete .stage-node{background:var(--found);border-color:var(--found)}.roadmap .stage.is-current .stage-node{border-color:var(--found)}.roadmap .panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}.roadmap .stage.is-current .panel{border-color:color-mix(in srgb,var(--found) 55%,var(--line))}.roadmap .stage.is-future .panel{opacity:.8}.roadmap .panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;width:100%;font:inherit;color:inherit;background:none;border:none;text-align:left;padding:13px 16px;cursor:pointer}.roadmap .panel-head:hover{background:var(--panel-2)}.roadmap .panel-title{font-size:15px;font-weight:600;color:var(--text)}.roadmap .stage.is-complete .panel-title{color:var(--found)}.roadmap .panel-chevron{display:inline-block;margin-right:8px;color:var(--muted);transition:transform .16s ease}.roadmap .panel-chevron.is-open{transform:rotate(90deg)}.roadmap .panel-hint{font-family:var(--mono);font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-left:8px}.roadmap .panel-count{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}.roadmap .stage.is-complete .panel-count{color:var(--found)}.roadmap .vis-link{display:inline-block;margin:0 16px;font-family:var(--mono);font-size:11.5px;color:var(--muted);text-decoration:none}.roadmap .vis-link:hover{color:var(--found);text-decoration:underline;text-underline-offset:3px}.roadmap .problems{list-style:none;padding:4px 16px 12px;margin:0}.roadmap .problem{display:flex;align-items:center;gap:10px;padding:6px 0}.roadmap .problem input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;flex:none;border:1.5px solid var(--muted);border-radius:4px;background:none;cursor:pointer;display:grid;place-content:center}.roadmap .problem input[type=checkbox]:checked{background:var(--found);border-color:var(--found)}.roadmap .problem input[type=checkbox]:checked:before{content:"";width:8px;height:5px;border-left:2px solid var(--bg);border-bottom:2px solid var(--bg);transform:rotate(-45deg) translate(1px,-1px)}.roadmap .problem a{color:var(--text);text-decoration:none;flex:1;min-width:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roadmap .problem a:hover{text-decoration:underline;text-underline-offset:3px}.roadmap .problem.is-done a{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line)}.roadmap .diff{font-family:var(--mono);font-size:11px;font-weight:600;width:18px;text-align:center;flex:none}.roadmap .diff-E{color:var(--found)}.roadmap .diff-M{color:var(--current)}.roadmap .diff-H{color:var(--mismatch)}.roadmap .foot{margin-top:36px;text-align:center;font-family:var(--mono);font-size:12px;color:var(--muted)}@media(max-width:560px){.roadmap{padding:18px 12px 64px}.roadmap .hero-top{flex-direction:column}.roadmap .hero-actions{padding-top:0}.roadmap .climb{padding-left:30px}.roadmap .stage-node{left:-26px}.roadmap .stage-link{left:-20px}}@media(prefers-reduced-motion:reduce){.roadmap .bar-fill,.roadmap .stage-link,.roadmap .stage-node,.roadmap .panel-chevron{transition:none}}.map-row-bump{border-color:var(--current);box-shadow:0 0 0 2px var(--current-dim)}
