.speed-picker[data-v-d4ff998b]{--accent: #d99816;display:flex;align-items:center;gap:9px;min-height:42px;padding:4px 8px 4px 12px;border:1px solid #e8d9bc;border-radius:12px;background:#fffefd;min-width:0}.speed-picker[data-max=true][data-v-d4ff998b]{--accent: #a16eff}.speed-title[data-v-d4ff998b]{font-size:11px;color:#95856b;white-space:nowrap}.speed-level[data-v-d4ff998b]{color:var(--accent);width:28px;flex-shrink:0;font-size:12px;white-space:nowrap}.slider-area[data-v-d4ff998b]{padding:0;width:174px;min-width:100px;flex:1 1 174px}.container[data-v-d4ff998b]{margin:0;padding:2px 6px}.fast-button[data-v-d4ff998b]{position:relative;display:grid;place-items:center;width:30px;flex-shrink:0;height:30px;padding:0;border:0;border-radius:9px;background:transparent;color:#a69a84}.fast-button[data-v-d4ff998b]:hover{background:#faf1df}.fast-button[aria-pressed=true][data-v-d4ff998b]{color:var(--accent)}.fast-tip[data-v-d4ff998b]{position:absolute;z-index:20;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:#181818;color:#fff;font-size:12px;line-height:18px;white-space:nowrap;padding:7px 11px;border-radius:10px;box-shadow:0 2px 8px #0002;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s}.fast-button:hover .fast-tip[data-v-d4ff998b],.fast-button:focus-visible .fast-tip[data-v-d4ff998b]{opacity:1;visibility:visible;transition-delay:.5s}.slider-area[data-v-d4ff998b]{padding:0 6px}.slider-root[data-v-d4ff998b]{--motion-duration: .3s;--motion-easing: cubic-bezier(.23, 1, .32, 1);height:28px;width:100%;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;outline:none;isolation:isolate}.slider-root[data-dragging=true][data-v-d4ff998b]{--motion-duration: .15s;cursor:grabbing}.slider-track[data-v-d4ff998b]{position:absolute;width:100%;height:24px;top:2px;border-radius:12px;background:#f3f3f3;overflow:hidden;box-shadow:inset 0 0 2px #0000002e}.slider-fill[data-v-d4ff998b]{position:absolute;top:0;bottom:0;left:0;width:var(--position);background:var(--accent);transition:width var(--motion-duration) var(--motion-easing);overflow:hidden}.slider-thumb[data-v-d4ff998b]{position:absolute;z-index:4;left:var(--position);top:50%;width:28px;height:28px;transform:translate(-50%,-50%);border:.5px solid #00000026;border-radius:50%;background:#fff;box-shadow:0 0 2px #0000001a;pointer-events:none;transition:left var(--motion-duration) var(--motion-easing)}.slider-root:focus-visible .slider-thumb[data-v-d4ff998b]{outline:2px solid #3c3c3c87;outline-offset:2px}.slider-ticks[data-v-d4ff998b]{position:absolute;inset:0;pointer-events:none}.slider-tick[data-v-d4ff998b]{position:absolute;top:50%;width:4px;height:4px;border-radius:50%;background:#8f8f8f80;transform:translate(-50%,-50%);transition:background-color .3s,filter .12s ease,transform .12s ease}.slider-tick.selected[data-v-d4ff998b]{background:#ffffff4d}.slider-root[data-fast=true] .slider-tick.selected[data-v-d4ff998b]{opacity:0;transform:translate(-50%,-50%) scale(.75) translate(-85px)}.slider-root[data-phase=entering] .slider-tick.selected[data-v-d4ff998b]{animation:tick-scale-d4ff998b .8s cubic-bezier(.23,1,.32,1) both,tick-translate-d4ff998b 1.15s ease-in-out .05s both,tick-fade-d4ff998b .5s ease-in-out .7s both}.slider-root[data-phase=exiting] .slider-tick.selected[data-v-d4ff998b]{animation:tick-return-scale-d4ff998b .35s ease-in-out both,tick-return-translate-d4ff998b .35s ease-out both,tick-return-fade-d4ff998b .2s ease-in-out both}@keyframes tick-scale-d4ff998b{0%{transform:translate(-50%,-50%) scale(1)}to{transform:translate(-50%,-50%) scale(.75)}}@keyframes tick-translate-d4ff998b{0%{translate:0}to{translate:-85px}}@keyframes tick-fade-d4ff998b{0%{opacity:1}to{opacity:0}}@keyframes tick-return-scale-d4ff998b{0%{transform:translate(-50%,-50%) scale(.75)}to{transform:translate(-50%,-50%) scale(1)}}@keyframes tick-return-translate-d4ff998b{0%{translate:10px}to{translate:0}}@keyframes tick-return-fade-d4ff998b{0%{opacity:0}to{opacity:1}}.slider-root[data-max=true][data-fast=false] .slider-tick.selected[data-v-d4ff998b]{opacity:0;transform:translate(-50%,-50%) scale(.75);transition:opacity .4s ease-in-out .1s,transform .4s ease}.slider-particles[data-v-d4ff998b]{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;opacity:0;clip-path:inset(0 calc(100% - var(--position)) 0 0);transition:clip-path var(--motion-duration) var(--motion-easing)}.slider-root[data-fast=true] .slider-particles[data-v-d4ff998b]{opacity:1}.particle-path[data-v-d4ff998b]{position:absolute;left:0;right:0;height:0;opacity:0;animation:particle-travel-d4ff998b linear infinite;animation-play-state:paused}.slider-root[data-fast=true] .particle-path[data-v-d4ff998b]{animation-play-state:running}.particle-dot[data-v-d4ff998b]{position:absolute;left:0;top:0;width:3px;height:3px;background:#ffffffb8;border-radius:999px;box-shadow:0 0 5px #ffffff57}@keyframes particle-travel-d4ff998b{0%{opacity:0;transform:translate(100%)}8%{opacity:1;transform:translate(92%)}92%{opacity:1;transform:translate(8%)}to{opacity:0;transform:translate(0)}}.ultra-flow[data-v-d4ff998b]{position:absolute;inset:0;background:linear-gradient(90deg,#2e61d4,#a57bfd 65%,#8b73f3);background-size:180% 100%;opacity:0;transition:opacity .3s;animation:ultra-flow-d4ff998b 4s ease-in-out infinite alternate;animation-play-state:paused}.slider-root[data-max=true] .ultra-flow[data-v-d4ff998b]{opacity:1;animation-play-state:running}@keyframes ultra-flow-d4ff998b{0%{background-position:0% 50%}to{background-position:100% 50%}}.ultra-burst[data-v-d4ff998b]{position:absolute;left:-32px;top:-40px;pointer-events:none;z-index:5}@media(max-width:520px){.speed-picker[data-v-d4ff998b]{flex:1;gap:7px;padding-left:9px}.slider-area[data-v-d4ff998b]{width:auto}}@media(prefers-reduced-motion:reduce){.slider-root[data-v-d4ff998b]{--motion-duration: 0s}.slider-root .slider-tick[data-v-d4ff998b],.particle-path[data-v-d4ff998b],.ultra-flow[data-v-d4ff998b]{animation:none}.ultra-burst[data-v-d4ff998b]{display:none}}:root{font-family:DM Sans,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#172033;background:#fffaf0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--accent: #d99816;--accent-dark: #986713;--soft: #fff8e7;--ink: #172033;--muted: #81868d;--line: #ebdfca;--radius: 24px}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse 650px 480px at 0 0,rgba(255,220,132,.13),transparent 80%),linear-gradient(145deg,#fffdf9,#fffaf2 70%,#f7fafb);min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.38}button{color:inherit}button,input,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,summary:focus-visible{outline:3px solid #76a9d5;outline-offset:4px}input:focus,textarea:focus{outline:3px solid #ead097;outline-offset:1px}svg{flex-shrink:0}button{transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}button:active:not(:disabled){transform:translateY(1px)}a{color:var(--accent-dark)}.app-header{height:88px;padding:0 5%;display:flex;align-items:center;border-bottom:1px solid rgba(210,190,153,.3);background:#ffffffb8;gap:42px}.brand{display:flex;align-items:center;gap:12px;padding:0;border:0;background:none;text-align:left;font-size:18px;font-weight:700;letter-spacing:-.5px;white-space:nowrap}.brand small{display:block;font-size:10px;font-weight:500;letter-spacing:2.2px;color:#a3957d;margin-top:3px}.brand-icon{height:40px;width:40px;display:grid;place-items:center;color:#bf881d;border:1px solid #ead5a8;background:linear-gradient(150deg,#fff,#fff2d2);border-radius:13px;transform:rotate(-5deg)}.app-header nav{display:flex;gap:26px;height:100%;align-items:stretch}.app-header nav button{border:0;border-bottom:2px solid transparent;background:transparent;font-size:14px;color:#7f807f;padding:2px 2px 0}.app-header nav button.active{color:#b67d11;border-bottom-color:#d99816}.header-note{margin-left:auto;color:#a49b8c;font-size:11px;letter-spacing:.5px}.page-shell{width:min(1220px,calc(100% - 80px));margin:0 auto}.gallery{padding-top:60px}.gallery-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}.gallery-heading h1{font-size:38px;line-height:1.45;letter-spacing:-1.5px;margin:0 0 12px;font-weight:700}.gallery-heading h1 span{color:#ad791d}.gallery-heading p{font-size:14px;color:#898576;margin:0}.mobile-break{display:none}.gallery-note{display:flex;align-items:center;gap:12px;font-size:11px;line-height:1.9;color:#a9997c;padding:0 26px;border-left:1px solid #eadfcb}.gallery-note strong{color:#8a7755;font-weight:500}.gallery-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:20px}.filter-tabs{display:flex;gap:6px}.filter-tabs button{border:1px solid transparent;background:transparent;border-radius:10px;color:#8f887c;padding:9px 17px;font-size:13px;display:flex;align-items:center;gap:5px}.filter-tabs button.selected{background:#fff1d0;border-color:#ecd5a0;color:#986713}.filter-tabs button:hover{background:#fff5df}.search-box{display:flex;align-items:center;gap:9px;border-bottom:1px solid #ded6c8;padding:7px 2px;color:#a79d8b;max-width:220px}.search-box input{border:0;background:transparent;width:100%;font-size:12px;padding:4px;color:var(--ink)}.search-box input::placeholder{color:#a79d8b}.algorithm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.algorithm-card{text-align:left;border:1px solid #e9dfce;border-radius:20px;background:linear-gradient(148deg,#fff 42%,#fffaf0);padding:23px 25px 0;box-shadow:0 8px 22px #57421d09;overflow:hidden;min-height:286px;display:flex;flex-direction:column}.algorithm-card:hover{transform:translateY(-4px);border-color:#d9b66b;box-shadow:0 14px 34px #57421d17}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.algorithm-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#fff0d0;color:#bd8420;border:1px solid #f1dfb4}.card-number{font-size:11px;color:#b6aa96;letter-spacing:1px}.algorithm-card h2{font-size:20px;margin:0 0 3px;letter-spacing:.1px}.english-name{font-size:10px;letter-spacing:.7px;color:#a39885}.algorithm-card p{font-size:13px;margin:15px 0 16px;color:#817b70;line-height:1.65}.card-tags{display:flex;gap:8px;margin-bottom:20px}.card-tags span{font-size:10px;color:#9e937f}.card-tags span+span:before{content:"·";margin-right:8px;color:#c9bea9}.card-bottom{border-top:1px solid #efe6d6;margin-top:auto;padding:14px 0 16px;display:flex;align-items:center;justify-content:space-between;color:#a67722;font-size:12px;font-weight:500}.playful .algorithm-icon{color:#719081;background:#edf3ed;border-color:#dae7db}.playful{background:linear-gradient(148deg,#fff 42%,#f5f8f1)}.playful .card-bottom{color:#6d8777}.gallery-footer{display:flex;justify-content:space-between;padding:36px 0 25px;font-size:10px;color:#b0a591;letter-spacing:.4px}.empty-state{padding:50px;text-align:center;color:var(--muted)}.demo{padding-top:35px;padding-bottom:32px}.demo-heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-bottom:26px;min-height:60px}.demo-title{text-align:center}.demo-title h1{margin:0 0 9px;font-size:32px;letter-spacing:2px;line-height:1.2}.demo-title p{color:#938879;font-size:13px;margin:0}.back-button{justify-self:start}.theory-toggle{justify-self:end}.button{border:1px solid #e8d9bc;background:#fffefd;border-radius:11px;min-height:42px;padding:10px 15px;display:inline-flex;gap:8px;justify-content:center;align-items:center;font-size:12px;color:#9e7327;box-shadow:0 2px 4px #37280e04;white-space:nowrap}.button:hover:not(:disabled){background:#fff9ed;border-color:#d6b571}.button.primary{background:linear-gradient(140deg,#e5a729,#d18c10);border-color:#d7951d;color:#fff;box-shadow:0 5px 12px #b77a0c1f;font-weight:600}.button.primary:hover:not(:disabled){background:#d89417}.button.subtle{border-color:#e9e4db;color:#8f8b82;background:transparent;box-shadow:none}.text-button{border:0;background:transparent;padding:5px 0;color:#a7792b;font-size:12px;display:inline-flex;align-items:center;gap:7px}.text-button:hover{text-decoration:underline}.icon-button{border:0;border-radius:8px;background:transparent;display:grid;place-items:center;width:34px;height:34px;color:#8e887e}.icon-button:hover{background:#f7f1e5}.workspace-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}.workspace-layout.with-theory{grid-template-columns:minmax(0,1fr) 295px}.workspace-main{min-width:0}.dataset-toolbar{display:flex;align-items:center;gap:22px;padding:13px 16px;margin-bottom:14px;border:1px solid #ebdfcc;border-radius:15px;background:#ffffffc7;min-height:70px;box-shadow:0 3px 8px #5a421406}.dataset-selector{border:0;background:transparent;display:flex;align-items:center;gap:10px;color:#a7751a;text-align:left;padding:2px;font-size:12px}.dataset-selector span{color:#64583f;display:flex;flex-direction:column;gap:3px}.dataset-selector small{font-size:9px;color:#ada18a;letter-spacing:.5px}.dataset-size{color:#8e887c;font-size:11px;white-space:nowrap}.capacity-hint{color:#b1a895;font-size:9px}.regenerate-button{margin-left:auto;min-height:36px;padding:8px 12px;font-size:11px}.stage-card{border:1px solid #eadcc5;border-radius:20px;background:linear-gradient(150deg,#fff 60%,#fffefb);box-shadow:0 10px 26px #5c45170a;overflow:hidden;position:relative}.stage-top{display:flex;align-items:center;justify-content:space-between;padding:12px 22px 3px;font-size:10px;color:#a78c5d;letter-spacing:.8px}.stage-density{display:flex;align-items:center;gap:5px;color:#b0a896;font-size:9px;letter-spacing:0}.stage-scroll{overflow:hidden}.sorting-svg{width:100%;display:block;overflow:hidden}.element{cursor:pointer}.element rect{fill:#f8d899;stroke:#dbb56f;stroke-width:1}.element.active rect{fill:#f5c772;stroke:#bd852b;stroke-width:2}.element.auxiliary rect{fill:#dceafa;stroke:#81a9d8}.element.auxiliary.active rect{fill:#c5def8;stroke:#5d91cd}.element.ordered rect{fill:#edf1db;stroke:#bbbf8e}.element.final rect{fill:#d7ecdc;stroke:#94bea3}.element.removed rect{fill:#f0efeb;stroke:#c7c5be}.element.pivot rect{stroke:#6e8da9;stroke-width:2;stroke-dasharray:4 2}.element.inspecting rect{stroke:#24435a;stroke-width:2.5}.element.swept rect{fill:#b8e2c5}.element-value{fill:#574524;font-weight:600;text-anchor:middle;pointer-events:none;font-variant-numeric:tabular-nums}.auxiliary .element-value{fill:#365c83}.final .element-value{fill:#396448}.identity-label{font-size:8px;text-anchor:middle;fill:#a78951;pointer-events:none}.empty-slot{fill:#f7fbff;stroke:#83add9;stroke-dasharray:5 4;stroke-width:1}.index-label{font-size:10px;fill:#aaa49a;text-anchor:middle;font-variant-numeric:tabular-nums}.lane-label{fill:#8ba0b6;font-size:10px;letter-spacing:.5px}.baseline{stroke:#efe9de;stroke-width:1}.focus-range path{fill:none;stroke:#c5ad82;stroke-width:1}.pointer text{fill:#a58751;font-size:9px;text-anchor:middle}.pivot-label{fill:#5b789a;font-weight:700;text-anchor:middle;font-size:12px}.strike{stroke:#9c9b95;stroke-width:1.2}.final-mark{stroke:#7eaa8b;stroke-width:2}.tree-edges line{stroke:#e1d7c4;stroke-width:1.2}.current-digit{fill:#bf7414;font-weight:800;text-decoration:underline}.counts rect{fill:#eff5fb;stroke:#cfdfed;stroke-width:1}.counts text{font-size:11px;fill:#6e8faa;text-anchor:middle}.counts text.lane-label{text-anchor:start;font-size:10px}.counts .highlighted rect{fill:#fce0a5;stroke:#d2a151}.stage-caption{text-align:center;min-height:60px;padding:0 22px 12px}.phase-label{font-size:10px;color:#ab9670;letter-spacing:.5px}.stage-caption p{margin:9px 0 0;font-size:14px;line-height:1.7;font-weight:500;color:#6b604e;min-height:24px}.item-inspector{display:flex;justify-content:center;gap:16px;align-items:center;border-top:1px solid #f1e9db;padding:12px;font-size:11px;color:#8c816e;background:#fffaf0}.item-inspector button{border:0;background:none;color:#a8792c;font-size:11px}.playback-controls{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.transport{display:flex;gap:9px}.play-button{min-width:123px}.playback-settings{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.speed-control{display:flex;border:1px solid #e4d6bb;border-radius:9px;overflow:hidden;background:#fff}.speed-control button{border:0;border-right:1px solid #efe6d5;background:transparent;font-size:11px;padding:11px 12px;color:#898074}.speed-control button:last-child{border-right:0}.speed-control button.selected{background:#ffebbd;color:#9d6b10;box-shadow:inset 0 0 0 1px #dfb661}.sound-button{color:#86785f;font-size:11px;padding:10px;gap:7px}.toggle{display:inline-block;width:26px;height:15px;background:#dedad2;border-radius:20px;position:relative}.toggle:after{content:"";display:block;width:11px;height:11px;position:absolute;top:2px;left:2px;border-radius:50%;background:#fff;transition:transform .15s}.toggle.on{background:#d99816}.toggle.on:after{transform:translate(11px)}.statistics-strip{margin-top:20px;border-top:1px solid #eae2d3;padding:19px 4px 13px}.stat-values{display:flex;gap:24px;align-items:center;flex-wrap:wrap;font-size:11px;color:#a0927d}.stat-values strong{font-size:13px;color:#7b715e;margin-left:7px;font-weight:500;font-variant-numeric:tabular-nums}.stat-values .text-button{margin-left:auto;font-size:10px;color:#ad9c80}.stat-explanation{font-size:11px;line-height:1.9;color:#948b7b;margin-bottom:0}.stage-legend{display:flex;justify-content:center;gap:19px;color:#aaa08e;font-size:9px;margin-top:8px;flex-wrap:wrap}.stage-legend>span{display:inline-flex;align-items:center;gap:5px}.stage-legend i{height:9px;width:9px;display:inline-block;border-radius:3px}.legend-neutral{background:#f6e8ca;border:1px solid #dfcba3}.legend-amber{background:#f5c772;border:1px solid #bd852b}.legend-blue{background:#dceafa;border:1px solid #81a9d8}.legend-green{background:#d7ecdc;border-bottom:2px solid #94bea3}.keyboard-hint{margin-left:auto;color:#b3a998}.playback-note{font-size:11px;color:#98866a;text-align:center;margin:16px 0;line-height:1.7}.completion-note{display:flex;align-items:center;justify-content:center;gap:8px;color:#669477;font-size:12px;margin-top:23px;animation:gentle-in .35s ease}.mutation-notice{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;color:#7d8b74;margin:-9px 0 20px}.capacity-notice{padding:12px 16px;background:#fff0cf;border:1px solid #edd19a;border-radius:12px;color:#947026;font-size:12px;line-height:1.6;margin-bottom:12px;display:flex;flex-wrap:wrap;gap:6px 16px}.with-theory .playback-controls{gap:12px}.with-theory .capacity-hint{display:none}.with-theory .dataset-toolbar{gap:12px}.with-theory .regenerate-button{padding:8px;font-size:10px}.theory-panel{background:#fffefa;border:1px solid #eadfcb;border-radius:17px;padding:20px;position:sticky;top:20px;animation:gentle-in .2s ease}.theory-panel header{display:flex;align-items:center;justify-content:space-between;gap:5px}.theory-panel h2{font-size:13px;display:flex;align-items:center;gap:7px;color:#95722d;margin:0}.theory-panel h3{font-size:18px;margin:25px 0 12px}.theory-panel p{font-size:12px;line-height:1.9;color:#8a8172}.theory-panel dl{margin:25px 0}.theory-panel dt{font-size:10px;color:#ae9d83;margin-top:16px}.theory-panel dd{font-size:12px;margin:6px 0 0;line-height:1.8;color:#736952}.theory-panel summary{font-size:12px;color:#9c7a3d;cursor:pointer}.theory-panel ol{padding-left:20px;font-size:11px;line-height:2.3;color:#8e8169}.theory-tip{padding-top:14px;border-top:1px solid #eee5d4;font-size:10px!important}.dialog-backdrop{position:fixed;inset:0;background:#342b1b40;z-index:100;display:flex;align-items:center;justify-content:center;padding:22px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dataset-dialog{width:min(610px,100%);max-height:90dvh;overflow-y:auto;background:#fffefa;border:1px solid #efe2c9;border-radius:23px;box-shadow:0 25px 90px #442e0b2e;animation:gentle-in .2s ease}.dataset-dialog header{display:flex;justify-content:space-between;align-items:flex-start;padding:25px 26px 20px}.dataset-dialog h2{font-size:22px;margin:0 0 10px}.dataset-dialog header p{font-size:11px;color:#a29174;margin:0;line-height:1.6}.source-tabs{display:flex;padding:0 26px;gap:6px}.source-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid #e8ddca;background:#fff;border-radius:9px;font-size:11px;padding:10px 4px;color:#9b8a6d;white-space:nowrap}.source-tabs button.selected{color:#a17321;background:#fff0d0;border-color:#debd7c}.dataset-body{padding:22px 26px}.sample-list{display:grid;gap:9px}.sample-list>button{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:16px;border:1px solid #ede3d0;border-radius:12px;background:#fff;color:#8e7445;gap:10px}.sample-list>button.selected{border-color:#d7b66b;background:#fffbef}.sample-list strong{font-size:13px;color:#6f5730}.sample-list p{font-size:11px;color:#a08d6c;margin:7px 0 10px}.sample-values{font-size:11px;line-height:1.8;color:#8f8879;word-spacing:5px;overflow-wrap:anywhere}.form-fields{display:grid;gap:16px}.form-fields label{display:flex;flex-direction:column;gap:10px;font-size:12px;color:#958162}.form-fields input[type=number],.form-fields textarea{width:100%;border:1px solid #e3d6bc;border-radius:9px;background:#fff;padding:12px;color:#6a5e48;font-size:14px}.form-fields textarea{resize:vertical;min-height:100px;line-height:1.8}.form-fields p{font-size:12px;color:#a08f73;line-height:1.8;margin:0}.form-fields .checkbox-label{flex-direction:row;align-items:center}.checkbox-label input{accent-color:#cd901c}.range-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.input-meta{display:flex;justify-content:space-between;font-size:10px;color:#a6977d}.dataset-warning{color:#7e8c6f;font-size:11px;line-height:1.8;margin:16px 0 0}.form-error{font-size:12px;color:#b45141;padding:10px 12px;border-radius:8px;background:#fff0ed;margin-bottom:0}.dataset-dialog footer{padding:16px 26px 22px;display:flex;justify-content:space-between;border-top:1px solid #eee5d6}.dataset-dialog footer .button{font-size:12px}.with-theory .stage-legend{justify-content:flex-start}.with-theory .keyboard-hint{display:none}@keyframes gentle-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1500px){.page-shell{width:min(1320px,calc(100% - 120px))}.gallery{padding-top:70px}.algorithm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.algorithm-card{padding:23px 23px 0}.demo{padding-top:42px}}@media(max-width:1100px){.app-header{padding:0 30px;gap:30px}.header-note{display:none}.page-shell{width:calc(100% - 48px)}.gallery-heading h1{font-size:32px}.algorithm-grid{gap:15px}.algorithm-card{padding:20px 20px 0}.playback-controls{justify-content:center}.playback-settings{margin-left:auto}.workspace-layout.with-theory{grid-template-columns:minmax(0,1fr) 265px}.with-theory .dataset-size{display:none}.with-theory .dataset-toolbar>.text-button{display:none}.with-theory .transport{flex-wrap:wrap}.with-theory .playback-settings{margin:0}.keyboard-hint{display:none}.gallery-note{padding-right:0}}@media(max-width:800px){.algorithm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-note{display:none}.gallery{padding-top:36px}.gallery-heading{margin-bottom:25px}.gallery-tools{flex-wrap:wrap;gap:15px}.search-box{max-width:190px}.filter-tabs{gap:2px}.filter-tabs button{padding:8px 12px}.workspace-layout.with-theory{grid-template-columns:minmax(0,1fr)}.theory-panel{position:static}.demo-title h1{font-size:27px}.demo-title p{font-size:11px}.demo-heading{gap:8px}.theory-toggle{padding:10px}.theory-toggle span{display:none}.dataset-toolbar{gap:13px}.capacity-hint{display:none}.stat-values{gap:15px}.playback-settings{margin:0}.playback-controls{justify-content:space-between}.stage-top{padding:12px 16px 3px}.dataset-selector{font-size:11px}.theory-panel h3{margin-top:15px}}@media(max-width:520px){.app-header{height:74px;padding:0 18px;gap:18px;justify-content:space-between}.brand{font-size:12px;gap:8px;letter-spacing:-.3px}.brand-icon{width:32px;height:34px;border-radius:10px}.brand small{font-size:8px;letter-spacing:1.2px}.app-header nav{gap:14px}.app-header nav button{font-size:11px}.page-shell{width:calc(100% - 28px)}.gallery{padding-top:33px}.gallery-heading h1{font-size:29px;line-height:1.4;letter-spacing:-.8px}.mobile-break{display:block}.gallery-heading p{font-size:11px;line-height:1.8;max-width:275px}.gallery-tools{margin-bottom:18px}.filter-tabs{width:100%;justify-content:space-between}.filter-tabs button{font-size:11px;padding:8px 10px}.search-box{max-width:none;width:100%;border:1px solid #e7decd;border-radius:9px;padding:5px 10px}.algorithm-grid{gap:12px}.algorithm-card{padding:16px 14px 0;border-radius:16px;min-height:255px}.card-top{margin-bottom:17px}.algorithm-icon{width:37px;height:37px;border-radius:11px}.algorithm-icon svg{width:20px;height:20px}.card-number{font-size:9px}.algorithm-card h2{font-size:16px}.english-name{font-size:8px;letter-spacing:0}.algorithm-card p{font-size:11px;margin:12px 0;line-height:1.7;min-height:38px}.card-tags{gap:4px;margin-bottom:14px}.card-tags span{font-size:8px}.card-tags span+span:before{margin-right:4px}.card-bottom{font-size:10px;padding:12px 0 14px}.gallery-footer{font-size:9px;line-height:1.8}.gallery-footer span:last-child{display:none}.demo{padding-top:22px}.demo-heading{grid-template-columns:40px minmax(0,1fr) 40px;margin-bottom:22px}.back-button{font-size:0}.back-button svg{width:20px;height:20px}.demo-title h1{font-size:25px;letter-spacing:1px}.demo-title p{font-size:10px;line-height:1.7}.theory-toggle{width:36px;min-height:36px;padding:0}.dataset-toolbar{padding:10px 11px;border-radius:12px;gap:10px;flex-wrap:wrap}.dataset-size{margin-left:auto;font-size:10px}.dataset-toolbar>.text-button{font-size:10px}.regenerate-button{min-height:30px;font-size:10px;padding:6px 8px}.stage-card{border-radius:15px}.stage-top{padding:10px 12px 3px;font-size:8px;letter-spacing:0}.stage-density{font-size:8px}.stage-caption{padding:0 12px 12px;min-height:60px}.stage-caption p{font-size:12px;line-height:1.8}.phase-label{font-size:9px}.transport{gap:6px;width:100%}.transport .button{padding:10px 11px;gap:5px;font-size:11px;min-height:43px}.transport .play-button{min-width:90px;flex:1}.transport .cancel-button span{display:none}.transport .cancel-button{width:36px}.playback-settings{width:100%;justify-content:space-between;gap:7px}.speed-control{flex:1}.speed-control button{flex:1;padding:10px 8px;font-size:10px}.sound-button{padding:10px 8px}.sound-button span{display:none}.stat-values{gap:12px 16px;font-size:10px}.stat-values strong{font-size:11px;margin-left:4px}.stat-values .text-button{margin-left:0}.statistics-strip{padding-top:15px;margin-top:17px}.stage-legend{gap:9px 12px;font-size:8px;justify-content:flex-start}.item-inspector{gap:10px;font-size:9px}.mutation-notice{font-size:10px;line-height:1.7;align-items:flex-start}.dialog-backdrop{padding:12px}.dataset-dialog{border-radius:18px}.dataset-dialog header{padding:20px 18px 18px}.dataset-dialog h2{font-size:20px}.source-tabs{padding:0 18px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.source-tabs button{font-size:11px;padding:10px}.dataset-body{padding:18px}.dataset-dialog footer{padding:15px 18px 18px}.sample-list>button{padding:13px}.completion-note{font-size:11px;align-items:flex-start;line-height:1.8}.capacity-notice{font-size:11px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.playback-settings{flex-wrap:nowrap;min-width:0}@media(max-width:520px){.transport .step-button{width:34px;padding:8px;flex-shrink:0}.transport .step-button span{display:none}}.algorithm-flow{margin-top:10px;padding:12px 22px 14px;min-width:0;border-bottom:1px solid var(--line);color:#7b715e;font-size:12px}.flow-heading{display:flex;align-items:center;justify-content:space-between;color:#a39680;font-size:10px;margin-bottom:8px}.flow-heading .text-button{font-size:10px}.flow-action{display:flex;align-items:center;justify-content:center;gap:7px;margin:10px 0 0;min-height:22px;color:#796443}.flow-action strong{font-size:13px;font-weight:500;line-height:1.6}.flow-body{display:grid;gap:6px}.context-stack{max-width:580px;margin:0 auto;display:grid;gap:5px}.context-stack:empty{display:none}.context-stack summary{cursor:pointer;font-size:10px;color:#a09480;padding:3px 0}.execution-strip>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px}.execution-strip strong{font-weight:500;color:#8c7348}.progress-line{margin-top:9px}.progress-line small{font-size:9px;color:#a19580;white-space:nowrap}.progress-track{position:relative;flex:1;height:2px;margin:0 5px;background:#e9dfca}.progress-track i{position:absolute;top:-4px;width:10px;height:10px;border-radius:50%;background:#ce962a;border:2px solid #fffaf0;box-shadow:0 0 0 1px #debd7c;transform:translate(-50%);transition:left .25s ease}.flow-chips{position:relative;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px}.expression-chip summary{cursor:pointer;list-style:none;padding:3px 8px;font-size:10px;color:#a18d69;border:1px solid #eee4d0;border-radius:12px;background:#fffcf5}.expression-chip summary::-webkit-details-marker{display:none}.expression-chip summary span{color:#806332}.expression-popover{position:absolute;z-index:5;top:calc(100% + 5px);left:50%;transform:translate(-50%);width:min(310px,100%);padding:12px;background:#fffdf8;border:1px solid var(--line);border-radius:11px;box-shadow:0 6px 20px #57421d10;line-height:1.8;overflow-wrap:anywhere}.local-projection{min-width:0}.focus-window{position:relative;width:100%;max-width:520px;margin:8px auto 0;overflow:hidden;isolation:isolate}.focus-lane-label{position:absolute;left:0;right:0;text-align:center;color:#aa9f8d;font-size:9px;letter-spacing:.5px}.focus-coordinate-space{position:absolute;left:50%;top:0}.focus-number{position:absolute;left:-24px;top:0;width:48px;height:66px;text-align:center;color:#91816b;will-change:transform,filter}.focus-number small{display:block;font-size:9px;line-height:14px;color:#b1a38c}.focus-number strong{display:block;font-size:28px;font-weight:600;line-height:38px;font-variant-numeric:tabular-nums}.focus-number.is-focus{color:#755321}.focus-number i{display:block;width:14px;height:2px;border-radius:2px;background:#d1a34e;margin:4px auto 0}.focus-number.is-hole strong{font-size:13px;border-bottom:1px dashed #b7c9d7;color:#8a9fae}.flow-reason{margin:2px 0 0;text-align:center;font-size:12px;color:#7b715e;line-height:1.7}.flow-next{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;font-size:10px;color:#a29276;line-height:1.8}.count-relation{margin:3px 0;text-align:center;font-size:10px;color:#8799a8}.destructive .flow-action{color:#ae6257}.flow-stepped .focus-number{transition:transform .32s ease,filter .32s ease,opacity .32s ease}.flow-compact *,.flow-reduced *{transition:none!important}.theory-steps{list-style:none;padding:0!important}.theory-steps li{padding:8px 10px;margin:7px 0;border:1px solid #eee5d4;border-radius:9px;background:#fffcf6}@media(max-width:520px){.algorithm-flow{padding:10px 2px 12px}.context-stack{padding:0 10px}.flow-action strong{font-size:12px}.focus-window{margin-top:7px}.focus-coordinate-space{transform:scale(.86);transform-origin:top center}.flow-reason{font-size:11px}.flow-next{font-size:10px}}.stage-stepped .element{transition:transform .32s ease}.visualization-pair{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:16px;--pair-height: 440px}.visualization-pair[data-stage=insertion],.visualization-pair[data-stage=partition]{--pair-height: 480px}.visualization-pair[data-stage=merge],.visualization-pair[data-stage=distribution],.visualization-pair[data-stage=mutation]{--pair-height: 520px}.visualization-pair[data-stage=heap]{--pair-height: 570px}.visualization-pair>.stage-card,.visualization-pair>.algorithm-flow{height:min(var(--pair-height),max(360px,62dvh));min-height:0}.visualization-pair .stage-card{display:flex;flex-direction:column}.visualization-pair .stage-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}.visualization-pair .stage-caption{flex:none}.visualization-pair .algorithm-flow{margin:0;padding:14px;border:1px solid #eadcc5;border-radius:20px;background:linear-gradient(90deg,#fffcf5,#fff9eb);display:flex;flex-direction:column}.flow-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:0 4px 12px}.context-stack{width:100%;max-width:none}.execution-strip{padding:10px 10px 8px;border-radius:13px;background:#2f3542;box-shadow:3px 5px 10px #2f354240}.execution-strip .scan-title{justify-content:flex-start;gap:6px;padding-bottom:7px;border-bottom:1px solid #f1f2f680;color:#fffc}.execution-strip strong{color:inherit;font-size:13px;font-weight:600}.execution-strip .progress-line{gap:7px;margin-top:9px}.execution-strip .progress-line small{padding:3px 6px;font-size:11px;font-weight:600;border:3px solid;border-radius:30px}.execution-strip .range-start{color:#8abe9c;background:linear-gradient(230deg,#f1faf3,#e2f4e7);border-color:#8abe9c}.execution-strip .range-end{color:#e68c8c;background:#f5eaea;border-color:#e68c8c}.execution-strip .progress-track{display:block;overflow:hidden;flex:1;min-width:56px;height:27px;border:3px solid #b4ceed;border-radius:30px;margin:0;background:#f8f6f1}.progress-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#e2ecf3,#c5ddeb 32.3%,#8aace6 66%,#749ee1)}.progress-track b{position:absolute;top:0;height:21px;width:56px;border-radius:30px;color:#fffdf7;background:linear-gradient(230deg,#72c4ff,#4f94f4);text-align:center;font-size:11px;line-height:21px;font-weight:600}.execution-strip .range-labels{margin-top:6px;font-size:9px;color:#8abe9c}.range-labels span{display:flex;align-items:center;gap:3px}.range-labels span:last-child{color:#e68c8c}.flow-timeline{padding:20px 2px 0}.flow-event{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;position:relative;padding-bottom:22px}.flow-event:not(:last-child):before{content:"";position:absolute;left:17px;top:43px;bottom:6px;width:2px;background:repeating-linear-gradient(to bottom,#b9b9b999 0 9px,transparent 9px 15px);-webkit-mask-image:linear-gradient(transparent,#000 21%,#000 80%,transparent);mask-image:linear-gradient(transparent,#000 21%,#000 80%,transparent)}.event-icon{display:grid;place-items:center;width:36px;height:36px;border:2.5px solid transparent;border-radius:50%;color:#69a3f3;background:linear-gradient(60deg,#fff,32.888%,#d1ecff) padding-box,linear-gradient(209.9deg,#4f94f4,75.432%,#72c4ff) border-box;box-shadow:inset 0 1px 2px #72c4ff80,0 1px 9px #72c4ff59}.event-content{min-width:0}.event-content h2{font-size:18px;color:#69a3f3;line-height:1.45;margin:4px 0 12px;font-weight:600;overflow-wrap:anywhere}.event-condition h2{color:#dec167}.event-condition .event-icon{color:#f3d069;background:linear-gradient(60deg,#fff,32.888%,#fff8d1) padding-box,linear-gradient(209.9deg,#f4d24f,75.432%,#ffe472) border-box;box-shadow:inset 0 1px 2px #ffe47280,0 1px 9px #ffe47259}.event-next .event-icon{color:#8abe9c;background:linear-gradient(60deg,#fff,32.888%,#ecfff3) padding-box,linear-gradient(209.9deg,#78c191,75.432%,#a4cdb2) border-box;box-shadow:inset 0 1px 2px #a4cdb280,0 1px 9px #a4cdb259}.event-next h2,.event-next p{color:#8abe9c}.event-content p{margin:6px 0;line-height:1.65;font-size:13px}.condition-detail{display:flex;align-items:flex-start;gap:5px;color:#8abe9c}.condition-detail svg{flex:none;margin-top:2px}.flow-chips{justify-content:flex-start}.expression-popover{position:relative;left:0;transform:none;top:4px;max-width:100%}.focus-window{margin:0;border:1px solid #e4dccd;border-radius:15px;background:#ffffff50}.focus-number{width:40px;left:-20px;height:61px;border:1px solid #e3c58d;border-radius:10px;background:linear-gradient(145deg,#fffaf0,#f8e7c5);box-shadow:0 2px 4px #8e683810;will-change:transform}.focus-number small{padding-top:3px}.focus-number strong{font-size:23px;line-height:32px}.focus-number i{margin:2px auto 0}.flow-stepped .focus-number{transition:transform .32s cubic-bezier(.65,0,.35,1),opacity .32s cubic-bezier(.65,0,.35,1)}.stage-stepped .element{transition:transform .32s cubic-bezier(.65,0,.35,1)}@media(max-width:1100px){.workspace-layout.with-theory{grid-template-columns:1fr}.event-content h2{font-size:16px}}@media(max-width:760px){.visualization-pair{grid-template-columns:minmax(0,1fr)}.visualization-pair>.algorithm-flow{height:auto;max-height:520px;min-height:340px;padding:13px}.visualization-pair>.stage-card{height:min(var(--pair-height),60dvh);min-height:330px}.focus-coordinate-space{transform:none}.flow-scroll{max-height:460px}}@media(prefers-reduced-motion:reduce){.focus-number,.stage-stepped .element{transition:none!important}}.projection-edge-fade{position:absolute;inset:0 auto 0 50%;width:100%;max-width:340px;transform:translate(-50%);-webkit-mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent);mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent)}.projection-image{position:absolute;inset:-20px 0;pointer-events:none}.projection-image .focus-coordinate-space{top:20px}.projection-image.sharp{-webkit-mask-image:linear-gradient(90deg,transparent calc(50% - 110px),black calc(50% - 46px),black calc(50% + 46px),transparent calc(50% + 110px));mask-image:linear-gradient(90deg,transparent calc(50% - 110px),black calc(50% - 46px),black calc(50% + 46px),transparent calc(50% + 110px))}.projection-image.soft{-webkit-mask-image:linear-gradient(90deg,black calc(50% - 110px),transparent calc(50% - 46px),transparent calc(50% + 46px),black calc(50% + 110px));mask-image:linear-gradient(90deg,black calc(50% - 110px),transparent calc(50% - 46px),transparent calc(50% + 46px),black calc(50% + 110px))}.projection-image.soft .focus-coordinate-space{filter:blur(5px)}.projection-edge-fade .focus-number{transition:none!important}@property --reveal{syntax: "<percentage>"; inherits: false; initial-value: 0%;}.progress-fill{width:100%;-webkit-mask-image:linear-gradient(90deg,black 0 var(--reveal),transparent var(--reveal) 100%);mask-image:linear-gradient(90deg,black 0 var(--reveal),transparent var(--reveal) 100%);transition:--reveal var(--strip-duration, .38s) cubic-bezier(.65,0,.35,1)}.progress-track b{transition:left var(--strip-duration, .38s) cubic-bezier(.65,0,.35,1)}.flow-compact .progress-track b,.flow-compact .progress-fill,.flow-reduced .progress-track b,.flow-reduced .progress-fill{transition:none}@media(prefers-reduced-motion:reduce){.progress-track b,.progress-fill{transition:none}}.focus-number.is-minimum{border-color:#69a3f3;background:linear-gradient(145deg,#f1f8ff,#cce3ff);color:#397dd5}.focus-number.is-minimum strong{color:#397dd5}.minimum-label{position:absolute;top:62px;left:50%;transform:translate(-50%);white-space:nowrap;font-size:9px;font-weight:600;color:#397dd5}
