@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./space-grotesk-vietnamese-wght-normal-D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./space-grotesk-latin-ext-wght-normal-D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./space-grotesk-latin-wght-normal-BhU9QXUp.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.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}:root{--font-display: "Space Grotesk Variable", system-ui, sans-serif;--font-mono: "JetBrains Mono Variable", ui-monospace, "SF Mono", monospace}:root[data-theme=signal]{color-scheme:dark;--bg: #0a0c10;--bg-layer: radial-gradient(70rem 46rem at 78% -6rem, rgba(var(--accent-rgb), .07), transparent 60%), radial-gradient(52rem 40rem at 12% 110%, rgba(var(--accent-rgb), .04), transparent 55%);--scanlines: repeating-linear-gradient( 0deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 3px );--surface: rgba(17, 22, 30, .86);--surface-2: rgba(10, 13, 18, .92);--text: #e8eef6;--text-soft: rgba(232, 238, 246, .68);--text-faint: rgba(232, 238, 246, .42);--line: rgba(232, 238, 246, .1);--line-strong: rgba(232, 238, 246, .22);--shadow-panel: 0 1px 0 rgba(255, 255, 255, .04) inset;--accent: #3fe0ff;--accent-strong: #7deaff;--accent-contrast: #04161c;--accent-rgb: 63, 224, 255;--accent-soft: rgba(var(--accent-rgb), .13);--accent-glow: rgba(var(--accent-rgb), .42);--wordmark-dot: var(--accent);--wordmark-dot-glow: 0 0 8px var(--accent-glow);--tile-bg: #131a23;--tile-line: rgba(232, 238, 246, .06);--tile-text: rgba(226, 236, 248, .74);--tile-struck-bg: #0d1015;--tile-struck-text: rgba(226, 236, 248, .2);--tile-prime-bg: var(--accent);--tile-prime-text: #032028;--tile-prime-glow: 0 0 14px rgba(var(--accent-rgb), .38), 0 0 2px rgba(var(--accent-rgb), .55);--strike-ink: transparent;--ring-ink: transparent;--cursor-color: var(--accent);--cursor-radius: 9px;--cursor-tilt: 0deg;--cursor-glow: 0 0 14px var(--accent-glow), inset 0 0 8px rgba(var(--accent-rgb), .22);--flash-bg: #c2f4ff;--flash-text: #03161c;--flash-glow: 0 0 20px 5px rgba(var(--accent-rgb), .5);--flash-scale: 1.09;--flash-settle: .985;--pop-peak: 1.14;--code-keyword: #4bd7ff;--code-function: #9db8ff;--code-number: #ffcf7d;--code-comment: rgba(232, 238, 246, .38);--code-punct: rgba(232, 238, 246, .55);--code-active-bg: linear-gradient( 90deg, rgba(var(--accent-rgb), .12), rgba(var(--accent-rgb), .03) );--code-active-bar: var(--accent);--btn-shadow: none;--btn-shadow-hover: 0 0 16px rgba(var(--accent-rgb), .35);--btn-lift: none;--btn-press: scale(.97);--chip-tilt: 0deg;--menu-bg: #10151d;--menu-shadow: 0 14px 34px rgba(0, 0, 0, .55);--menu-dur: .15s;--bar-bg: linear-gradient( 180deg, rgba(var(--accent-rgb), .5), rgba(var(--accent-rgb), .12) 62%, rgba(var(--accent-rgb), .2) );--bar-outline: none;--bar-radius: 2px 2px 0 0;--bar-shadow: inset 0 1px 0 rgba(var(--accent-rgb), .6);--bar-dead-opacity: .2;--bar-dead-filter: saturate(.25) brightness(.6);--bar-dead-shift: 3px;--bar-probe-bg: linear-gradient(180deg, var(--accent-strong), rgba(var(--accent-rgb), .45));--bar-probe-shadow: 0 0 16px rgba(var(--accent-rgb), .5);--bar-found-bg: linear-gradient(180deg, var(--accent-strong), var(--accent));--bar-found-shadow: 0 0 18px rgba(var(--accent-rgb), .55);--scratch-ink: transparent;--search-ring-ink: transparent;--level-line: linear-gradient( 90deg, transparent, rgba(var(--accent-rgb), .9) 4%, rgba(var(--accent-rgb), .9) 96%, transparent );--level-glow: 0 0 12px rgba(var(--accent-rgb), .5);--level-ink: transparent;--level-tag-ink: var(--accent);--caret-ink: var(--accent);--caret-glow: drop-shadow(0 0 5px rgba(var(--accent-rgb), .6));--tag-bg: rgba(13, 18, 25, .92);--tag-border: var(--line-strong);--tag-tilt: 0deg;--win-ink: rgba(var(--accent-rgb), .65);--ease-move: cubic-bezier(.3, 1.45, .5, 1);--dur-move: .3s;--ease-draw: ease-out;--dur-strike: .48s;--dur-ring: .4s;--ease-pop: cubic-bezier(.34, 1.56, .64, 1);--dur-pop: .42s}:root[data-theme=notebook]{color-scheme:light;--bg: #f7f3e9;--bg-layer: repeating-linear-gradient(0deg, rgba(72, 100, 170, .13) 0 1px, transparent 1px 130px), repeating-linear-gradient(90deg, rgba(72, 100, 170, .13) 0 1px, transparent 1px 130px), repeating-linear-gradient(0deg, rgba(72, 100, 170, .065) 0 1px, transparent 1px 26px), repeating-linear-gradient(90deg, rgba(72, 100, 170, .065) 0 1px, transparent 1px 26px);--scanlines: none;--surface: rgba(255, 255, 255, .62);--surface-2: rgba(253, 250, 242, .92);--text: #22304d;--text-soft: rgba(34, 48, 77, .74);--text-faint: rgba(34, 48, 77, .5);--line: rgba(34, 48, 77, .22);--line-strong: rgba(34, 48, 77, .42);--shadow-panel: 2px 3px 0 rgba(34, 48, 77, .08);--accent: #2d55c8;--accent-strong: #1d3f9f;--accent-contrast: #f9f6ee;--accent-rgb: 45, 85, 200;--accent-soft: rgba(var(--accent-rgb), .1);--accent-glow: transparent;--pencil: #d64a3b;--wordmark-dot: var(--pencil);--wordmark-dot-glow: none;--tile-bg: rgba(255, 255, 255, .55);--tile-line: rgba(34, 48, 77, .17);--tile-text: rgba(34, 48, 77, .78);--tile-struck-bg: rgba(255, 255, 255, .28);--tile-struck-text: rgba(34, 48, 77, .3);--tile-prime-bg: rgba(255, 255, 255, .9);--tile-prime-text: #1a2740;--tile-prime-glow: none;--strike-ink: #33416e;--ring-ink: var(--pencil);--cursor-color: var(--pencil);--cursor-radius: 46% 54% 50% 50% / 52% 46% 54% 48%;--cursor-tilt: -1.6deg;--cursor-glow: none;--flash-bg: var(--tile-struck-bg);--flash-text: var(--tile-struck-text);--flash-glow: none;--flash-scale: 1;--flash-settle: 1;--pop-peak: 1.05;--code-keyword: #2d55c8;--code-function: #6d3fae;--code-number: #bb4433;--code-comment: rgba(34, 48, 77, .48);--code-punct: rgba(34, 48, 77, .62);--code-active-bg: linear-gradient(90deg, rgba(255, 213, 74, .42), rgba(255, 213, 74, .16));--code-active-bar: var(--pencil);--btn-shadow: 2px 2px 0 rgba(34, 48, 77, .24);--btn-shadow-hover: 3px 3px 0 rgba(34, 48, 77, .24);--btn-lift: translate(-1px, -1px);--btn-press: translate(1px, 1px);--chip-tilt: -1.2deg;--menu-bg: #fdfaf2;--menu-shadow: 3px 4px 0 rgba(34, 48, 77, .12);--menu-dur: 90ms;--bar-bg: repeating-linear-gradient(-48deg, rgba(34, 48, 77, .34) 0 1px, transparent 1px 3.5px);--bar-outline: 1px solid rgba(34, 48, 77, .5);--bar-radius: 1px 1px 0 0;--bar-shadow: none;--bar-dead-opacity: .3;--bar-dead-filter: none;--bar-dead-shift: 0px;--bar-probe-bg: repeating-linear-gradient( -48deg, rgba(34, 48, 77, .6) 0 1px, transparent 1px 3px );--bar-probe-shadow: none;--bar-found-bg: repeating-linear-gradient( -48deg, rgba(var(--accent-rgb), .72) 0 1px, transparent 1px 3px );--bar-found-shadow: none;--scratch-ink: #33416e;--search-ring-ink: var(--pencil);--level-line: none;--level-glow: none;--level-ink: var(--pencil);--level-tag-ink: var(--pencil);--caret-ink: var(--pencil);--caret-glow: none;--tag-bg: var(--menu-bg);--tag-border: rgba(34, 48, 77, .45);--tag-tilt: -1.2deg;--win-ink: rgba(34, 48, 77, .62);--ease-move: cubic-bezier(.3, 1, .4, 1);--dur-move: .14s;--ease-draw: cubic-bezier(.5, 0, .4, 1);--dur-strike: .22s;--dur-ring: .32s;--ease-pop: cubic-bezier(.3, 1.3, .6, 1);--dur-pop: .24s}:root[data-theme=signal][data-algo=binary-search]{--accent: #46f0a0;--accent-strong: #8cffc8;--accent-contrast: #032013;--accent-rgb: 70, 240, 160;--code-keyword: #58f2ad}:root[data-theme=notebook][data-algo=binary-search]{--accent: #1e7a4e;--accent-strong: #155f3c;--accent-contrast: #f7faf5;--accent-rgb: 30, 122, 78;--code-keyword: #1e7a4e}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100svh;display:flex;flex-direction:column;font-family:var(--font-display);font-size:16px;color:var(--text);background-color:var(--bg);background-image:var(--bg-layer);background-attachment:fixed}body:after{content:"";position:fixed;inset:0;background:var(--scanlines);pointer-events:none;z-index:40}a{color:var(--text-soft);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}[hidden]{display:none!important}.top-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;max-width:1200px;width:100%;margin-inline:auto;padding:1.1rem 1.5rem .9rem}.wordmark{font-family:var(--font-display);font-size:1.32rem;font-weight:700;letter-spacing:-.01em;color:var(--text);margin-right:auto}.wordmark:hover{color:var(--text)}.wordmark-dot{color:var(--wordmark-dot);text-shadow:var(--wordmark-dot-glow)}.top-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.algo-picker{position:relative}.picker-btn{display:flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:.78rem;color:var(--text-soft);background:transparent;border:1px solid var(--line);border-radius:8px;padding:.5rem .75rem;max-width:17rem;cursor:pointer;transition:border-color .15s ease,color .15s ease}.picker-btn:hover{border-color:var(--line-strong);color:var(--text)}[data-theme=notebook] .picker-btn{border-radius:5px;background:#ffffff80}.picker-chevron{width:.55rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;transition:transform .15s ease}.algo-picker.open .picker-chevron{transform:rotate(180deg)}.picker-list{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:max-content;min-width:100%;max-width:21rem;margin:0;padding:4px;list-style:none;background:var(--menu-bg);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--menu-shadow);animation:menu-in var(--menu-dur) ease-out}[data-theme=notebook] .picker-list{border-radius:5px}@keyframes menu-in{0%{opacity:0;transform:translateY(-5px)}}.picker-list li{display:flex;align-items:baseline;gap:.6rem;font-family:var(--font-mono);font-size:.78rem;color:var(--text-soft);padding:.5rem .7rem;border-radius:6px;cursor:pointer}[data-theme=notebook] .picker-list li{border-radius:3px}.picker-list .opt-index{font-size:.68rem;color:var(--text-faint)}.picker-list li.active{background:var(--accent-soft);color:var(--text)}.picker-list li[aria-selected=true]{color:var(--accent)}.picker-list li[aria-selected=true] .opt-index{color:var(--accent);opacity:.7}.theme-switch{display:flex;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}.switch-opt{position:relative;display:block}.switch-opt input{position:absolute;inset:0;opacity:0;cursor:pointer}.switch-opt span{display:block;font-family:var(--font-mono);font-size:.68rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);border-radius:999px;padding:.32rem .72rem;transition:color .15s ease,background-color .15s ease}.switch-opt input:checked+span{color:var(--accent-contrast);background-color:var(--accent)}.switch-opt input:not(:checked):hover+span{color:var(--text-soft)}.switch-opt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.page{flex:1;display:flex;flex-direction:column}.algo-head{max-width:1200px;width:100%;margin-inline:auto;padding:2.2rem 1.5rem 1.6rem}.eyebrow{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:lowercase;color:var(--text-faint);margin-bottom:.6rem}h1{font-family:var(--font-display);font-weight:600;font-size:clamp(1.8rem,4.2vw,2.6rem);line-height:1.12;letter-spacing:-.015em}[data-theme=notebook] h1{text-decoration:underline;text-decoration-color:#d64a3b8c;text-decoration-thickness:2px;text-underline-offset:9px}.summary{margin-top:.85rem;font-size:.98rem;color:var(--text-soft);max-width:48ch}.refs{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1rem;font-family:var(--font-mono);font-size:.76rem}.refs a:after{content:" ↗";color:var(--text-faint)}.layout{flex:1;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:1.5rem;align-items:start;max-width:1200px;width:100%;margin-inline:auto;padding:0 1.5rem 2.5rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow-panel)}[data-theme=notebook] .panel{border-radius:6px}.panel-label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.code-panel{background:var(--surface-2);overflow:hidden}.code-panel .panel-label{padding:.8rem 1.1rem;border-bottom:1px solid var(--line);text-transform:none;letter-spacing:.04em}[data-theme=notebook] .code-panel .panel-label{color:var(--text-soft)}.code-pre{overflow-x:auto;padding:.9rem 0;font-family:var(--font-mono);font-size:.84rem;line-height:1.65;tab-size:2;color:var(--text)}.code-line{display:block;padding-inline:1.1rem;white-space:pre;border-left:2px solid transparent}.code-line.active{background:var(--code-active-bg);border-left-color:var(--code-active-bar)}.token.comment{color:var(--code-comment);font-style:italic}.token.keyword{color:var(--code-keyword)}[data-theme=notebook] .token.keyword{font-weight:600}.token.function{color:var(--code-function)}.token.number,.token.boolean{color:var(--code-number)}.token.operator,.token.punctuation{color:var(--code-punct)}.controls{display:flex;flex-wrap:wrap;align-items:end;gap:1rem 1.25rem;padding:1.05rem 1.2rem}.control-fields{display:contents}.field,.speed{display:flex;flex-direction:column;gap:.45rem}.field input,.speed select{font-family:var(--font-mono);font-size:.95rem;color:var(--text);background-color:transparent;border:1px solid var(--line-strong);border-radius:8px;padding:.5rem .7rem;transition:border-color .15s ease}[data-theme=notebook] .field input,[data-theme=notebook] .speed select{background-color:#ffffff8c;border-radius:5px}.field input{width:6.8rem}.field input:focus{outline:none;border-color:var(--accent)}.speed select{appearance:none;cursor:pointer;padding-right:1.9rem;background-repeat:no-repeat;background-position:right .65rem center;background-size:.55rem}[data-theme=signal] .speed select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a8b3c2' stroke-width='1.5'/%3E%3C/svg%3E")}[data-theme=notebook] .speed select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23566a94' stroke-width='1.5'/%3E%3C/svg%3E")}.buttons{display:flex;flex-wrap:wrap;align-items:end;gap:.6rem}.btn{font-family:var(--font-display);font-size:.88rem;font-weight:500;color:var(--text);background:transparent;border:1px solid var(--line-strong);border-radius:8px;padding:.52rem 1.05rem;cursor:pointer;box-shadow:var(--btn-shadow);transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease}[data-theme=notebook] .btn{border-radius:5px;border-color:var(--line-strong);background:#ffffff80}.btn:hover{border-color:var(--text-faint);transform:var(--btn-lift);box-shadow:var(--btn-shadow-hover)}.btn:active{transform:var(--btn-press);box-shadow:var(--btn-shadow)}.btn:disabled{opacity:.4;cursor:default;transform:none;box-shadow:var(--btn-shadow)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600;min-width:6.4rem}.btn.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.grid{position:relative;margin-top:1.25rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(2.5rem,1fr));gap:6px}.tile{position:relative;aspect-ratio:1;display:grid;place-items:center;font-family:var(--font-mono);font-size:.8rem;color:var(--tile-text);background:var(--tile-bg);border:1px solid var(--tile-line);border-radius:7px;transition:background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease}[data-theme=notebook] .tile{border-radius:3px}.tile-num{position:relative}.tile-strike,.tile-ring{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.tile-strike path,.tile-ring path{fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.tile-strike path{stroke:var(--strike-ink);stroke-width:1.8px}.tile-ring path{stroke:var(--ring-ink);stroke-width:1.7px;opacity:.85}[data-theme=signal] .tile-strike,[data-theme=signal] .tile-ring{visibility:hidden}.tile.cursor .tile-num{color:var(--text)}.tile.struck{background:var(--tile-struck-bg);border-color:transparent;color:var(--tile-struck-text)}.tile.struck .tile-strike path{stroke-dashoffset:0;animation:draw-strike var(--dur-strike) var(--ease-draw)}.tile.prime{background:var(--tile-prime-bg);border-color:transparent;color:var(--tile-prime-text);font-weight:600;box-shadow:var(--tile-prime-glow);animation:prime-pop var(--dur-pop) var(--ease-pop)}[data-theme=notebook] .tile.prime{border-color:var(--tile-line)}.tile.prime .tile-ring path{stroke-dashoffset:0;animation:draw-strike var(--dur-ring) var(--ease-draw)}.tile.flash{animation:strike-flash var(--dur-strike) ease-out}@keyframes draw-strike{0%{stroke-dashoffset:1}}@keyframes strike-flash{0%{background:var(--flash-bg);color:var(--flash-text);box-shadow:var(--flash-glow);transform:scale(var(--flash-scale))}55%{transform:scale(var(--flash-settle))}}@keyframes prime-pop{0%{transform:scale(1)}45%{transform:scale(var(--pop-peak))}to{transform:scale(1)}}.cursor-ring{position:absolute;top:0;left:0;pointer-events:none;z-index:2;transition:transform var(--dur-move) var(--ease-move),width var(--dur-move) var(--ease-move),height var(--dur-move) var(--ease-move)}.cursor-ring:before{content:"";position:absolute;inset:-3px;border:2px solid var(--cursor-color);border-radius:var(--cursor-radius);box-shadow:var(--cursor-glow);transform:rotate(var(--cursor-tilt))}[data-theme=signal] .cursor-ring:before{animation:cursor-breathe 1.7s ease-in-out infinite}@keyframes cursor-breathe{0%,to{box-shadow:0 0 14px var(--accent-glow),inset 0 0 8px rgba(var(--accent-rgb),.22)}50%{box-shadow:0 0 5px rgba(var(--accent-rgb),.2),inset 0 0 3px rgba(var(--accent-rgb),.1)}}.search{position:relative;margin-top:1.25rem}.chart{padding-top:2.9rem}.plot{position:relative;display:flex;align-items:flex-end;gap:2px;height:clamp(170px,23vh,232px)}.plot:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--line-strong)}.bar{position:relative;flex:1 1 0;min-width:0;height:calc(var(--h, 0) * 1%);background:var(--bar-bg);border:var(--bar-outline);border-bottom:none;border-radius:var(--bar-radius);box-shadow:var(--bar-shadow);transform-origin:bottom;animation:bar-rise var(--dur-pop) var(--ease-pop) both;animation-delay:var(--rise-delay, 0ms)}@keyframes bar-rise{0%{transform:scaleY(0)}}.bar.probe{background:var(--bar-probe-bg);box-shadow:var(--bar-probe-shadow)}.bar.dead{opacity:var(--bar-dead-opacity);filter:var(--bar-dead-filter);transform:translateY(var(--bar-dead-shift));animation:bar-die var(--dur-move) var(--ease-move) both;animation-delay:var(--die-delay, 0ms)}@keyframes bar-die{0%{opacity:1;filter:none;transform:none}}.bar.found{background:var(--bar-found-bg);box-shadow:var(--bar-found-shadow);animation:prime-pop var(--dur-pop) var(--ease-pop)}.bar-scratch,.bar-ring{position:absolute;pointer-events:none}.bar-scratch{inset:0;width:100%;height:100%}.bar-ring{top:-14px;left:50%;width:26px;height:26px;transform:translate(-50%)}.bar-scratch path,.bar-ring path{fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}.bar-scratch path{stroke:var(--scratch-ink);stroke-width:1.4px;opacity:.7}.bar-ring path{stroke:var(--search-ring-ink);stroke-width:1.7px;opacity:.9}.bar-scratch{visibility:hidden;transition:visibility 0s var(--die-delay, 0ms)}.bar-ring{visibility:hidden}[data-theme=notebook] .bar.dead .bar-scratch,[data-theme=notebook] .bar.found .bar-ring{visibility:visible}.bar.dead .bar-scratch path{stroke-dashoffset:0;animation:draw-strike var(--dur-strike) var(--ease-draw) both;animation-delay:var(--die-delay, 0ms)}.bar.found .bar-ring path{stroke-dashoffset:0;animation:draw-strike var(--dur-ring) var(--ease-draw)}.range-note{position:absolute;left:2px;top:-2.1rem;font-family:var(--font-mono);font-size:.68rem;color:var(--text-faint)}.level{position:absolute;left:0;right:0;bottom:calc(var(--ty, 0) * 1%);height:0;visibility:hidden;pointer-events:none;z-index:3;transition:bottom var(--dur-move) var(--ease-move)}.level.on{visibility:visible}.level.miss{opacity:.45}.level:before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--level-line);box-shadow:var(--level-glow);transform-origin:left}[data-theme=notebook] .level:before{visibility:hidden}.level.on:before{animation:level-in var(--dur-strike) var(--ease-draw) both,level-breathe 2.8s ease-in-out .9s infinite}.level-pencil{position:absolute;left:0;top:-4px;width:100%;height:8px}.level-pencil path{fill:none;stroke:var(--level-ink);stroke-width:2px;stroke-dasharray:13 8;stroke-linecap:round}[data-theme=signal] .level-pencil{visibility:hidden}.level.on .level-pencil{animation:level-clip var(--dur-strike) var(--ease-draw) both}@keyframes level-in{0%{transform:scaleX(0)}}@keyframes level-clip{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes level-breathe{0%,to{opacity:1}50%{opacity:.6}}.level-tag{position:absolute;right:6px;bottom:5px;font-family:var(--font-mono);font-size:.72rem;color:var(--level-tag-ink);background:var(--tag-bg);border:1px solid var(--tag-border);border-radius:4px;padding:.1rem .4rem;transform:rotate(var(--tag-tilt))}.probe-tag{position:absolute;left:clamp(3rem,var(--x, 50%),calc(100% - 3rem));bottom:calc(var(--th, 0) * 1% + 12px);transform:translate(-50%) rotate(var(--tag-tilt));font-family:var(--font-mono);font-size:.74rem;color:var(--text);background:var(--tag-bg);border:1px solid var(--tag-border);border-left:2px solid var(--accent);border-radius:5px;padding:.22rem .5rem;white-space:nowrap;z-index:4;transition:left var(--dur-move) var(--ease-move),bottom var(--dur-move) var(--ease-move)}.probe-tag.hit{border-color:var(--accent);color:var(--accent)}.probe-caret{position:absolute;left:var(--x, 50%);bottom:-1.55rem;width:22px;height:13px;transform:translate(-50%);z-index:4;filter:var(--caret-glow);transition:left var(--dur-move) var(--ease-move)}.probe-caret svg{display:block;width:100%;height:100%}.probe-caret path{fill:none;stroke:var(--caret-ink);stroke-width:2px;stroke-linecap:round}.rail{position:relative;height:2.6rem}.win{position:absolute;top:1.45rem;height:7px;border-inline:2px solid var(--win-ink);border-bottom:2px solid var(--win-ink);transition:left var(--dur-move) var(--ease-move),width var(--dur-move) var(--ease-move)}.win-lo,.win-hi{position:absolute;top:9px;font-family:var(--font-mono);font-size:.62rem;color:var(--text-faint)}.win-lo{left:0}.win-hi{right:0}.win.tight .win-lo,.win.tight .win-hi{display:none}.readout{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;margin-top:1.1rem;min-height:2.1rem}.status{font-family:var(--font-mono);font-size:.8rem;color:var(--text-soft)}.count-chip{display:inline-block;font-family:var(--font-mono);font-size:.8rem;color:var(--text);border:1px solid var(--line-strong);border-radius:999px;padding:.32rem .85rem;transform:rotate(var(--chip-tilt))}[data-theme=notebook] .count-chip{border-radius:4px}.count-chip.final{animation:chip-stamp var(--dur-pop) var(--ease-pop)}[data-theme=signal] .count-chip.final{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);box-shadow:0 0 12px rgba(var(--accent-rgb),.18)}[data-theme=notebook] .count-chip.final{border:2px solid var(--pencil);color:var(--pencil);font-weight:600}@keyframes chip-stamp{0%{transform:rotate(var(--chip-tilt)) scale(1.25);opacity:0}to{transform:rotate(var(--chip-tilt)) scale(1);opacity:1}}.site-footer{border-top:1px solid var(--line);margin-top:1rem}.site-footer p{max-width:1200px;margin-inline:auto;padding:1.05rem 1.5rem;font-family:var(--font-mono);font-size:.74rem;color:var(--text-faint)}@media(max-width:900px){.layout{grid-template-columns:minmax(0,1fr)}.viz-pane{order:-1}.grid{grid-template-columns:repeat(auto-fill,minmax(2.2rem,1fr))}.chart{padding-top:2.6rem}.plot{height:clamp(150px,26vh,210px)}}@media(max-width:560px){.algo-picker{order:3;flex-basis:100%}.picker-btn{width:100%;max-width:none;justify-content:space-between}.algo-head{padding-top:1.6rem}}@media(prefers-reduced-motion:reduce){.tile,.btn,a,.switch-opt span,.picker-btn,.picker-chevron,.cursor-ring,.level,.probe-tag,.probe-caret,.win,.bar-scratch{transition:none}.tile.flash,.tile.prime,.tile.struck .tile-strike path,.tile.prime .tile-ring path,.count-chip.final,.picker-list,.bar,.bar.dead,.bar.found,.bar.dead .bar-scratch path,.bar.found .bar-ring path,.level.on:before,.level.on .level-pencil{animation:none}[data-theme=signal] .cursor-ring:before{animation:none}}
