:root{--bg-0:#07070c;--bg-1:#0e0e16;--bg-2:#161622;--bg-3:#1d1d2c;--line:#2a2a3a;--line-soft:#1d1d2c;--ink-0:#f4f1ea;--ink-1:#c9c5b9;--ink-2:#7a7669;--ink-3:#4a4740;--accent:#f4d27a;--accent-2:#e8a96a;--accent-3:#c98aff;--accent-4:#6affe8;--radius-sm:5px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 12px 48px #000000b3;--glass-bg:#0e0e16c7;--glass-border:#f4d27a24;--ease:cubic-bezier(.4, 0, .2, 1);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--text-xs:10px;--text-sm:11px;--text-md:12px;--text-body:13px;--control-min:28px;--touch-min:44px;--duration-fast:.12s;--duration-normal:.2s;--focus-ring:2px solid var(--accent)}*{box-sizing:border-box}html,body{background:var(--bg-0);height:100%;color:var(--ink-0);font-feature-settings:"tnum" 1, "ss01" 1;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--text-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;overflow:hidden}body{grid-template:"header header"36px"side canvas"1fr"footer footer"32px/280px 1fr;display:grid}body[data-layout=compact]{grid-template-rows:36px 1fr 24px;grid-template-columns:220px 1fr;font-size:12px}body[data-layout=compact] header{gap:12px;padding:0 14px}body[data-layout=compact] .brand-sub,body[data-layout=compact] .kbd-hints{display:none}body[data-layout=compact] aside#panel{padding:8px 10px}body[data-layout=wide-canvas]{grid-template:"header header"36px"side canvas"1fr/220px 1fr}body[data-layout=wide-canvas] footer,body[data-layout=presentation] header,body[data-layout=presentation] #panel,body[data-layout=presentation] footer{display:none}body[data-layout=presentation] main{inset:0}.fs-exit-hint{-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--ink-1);letter-spacing:.04em;z-index:90;pointer-events:none;opacity:.9;background:#080810b8;align-items:center;gap:6px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:11px;display:none;position:fixed;top:14px;left:50%;transform:translate(-50%)}.fs-exit-hint kbd{background:var(--bg-3);border:1px solid var(--line);color:var(--ink-0);border-radius:4px;padding:1px 6px;font-family:inherit}body[data-layout=presentation] .fs-exit-hint{animation:6s ease-out forwards fs-hint-fade;display:inline-flex}@keyframes fs-hint-fade{0%,60%{opacity:.9}to{opacity:0}}body[data-layout=presentation] .fs-exit-hint:hover{opacity:.9;animation:none}header{background:linear-gradient(180deg, var(--bg-1), var(--bg-0));border-bottom:1px solid var(--line);grid-area:header;justify-content:space-between;align-items:center;gap:16px;padding:0 14px;display:flex;position:relative}header:after{content:"";background:linear-gradient(90deg, transparent, var(--glass-border), transparent);pointer-events:none;height:1px;position:absolute;bottom:-1px;left:0;right:0}.brand{align-items:baseline;gap:12px;display:flex}.brand-mark{letter-spacing:.16em;color:var(--ink-2);text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:11px}.brand-title{letter-spacing:.01em;background:linear-gradient(135deg, var(--ink-0), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:13px;font-weight:600}.brand-title-prefix{display:none}.brand-sub{color:var(--ink-2);max-width:480px;font-size:12px}.tabs{border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#00000040;flex-shrink:0;display:flex;position:relative;overflow:hidden}.tab{color:var(--ink-1);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color .14s var(--ease), background .14s var(--ease);border:none;border-right:1px solid var(--line);white-space:nowrap;background:0 0;flex-shrink:0;padding:8px 14px;font-family:inherit;font-size:12px;font-weight:500;position:relative}.tab:last-child{border-right:none}.tab:hover{color:var(--ink-0);background:var(--bg-2)}.tab.active{background:var(--accent);color:var(--bg-0);font-weight:600}.tab-more{color:var(--ink-2);font-style:italic;position:relative}.tab-more:hover{background:var(--bg-2)}.more-menu{background:var(--glass-bg);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:50;flex-direction:column;gap:2px;min-width:160px;margin-top:6px;padding:6px;display:flex;position:absolute;top:100%;right:0}.more-menu.hidden{display:none}.more-item{color:var(--ink-1);letter-spacing:.04em;text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;padding:7px 12px;font-family:JetBrains Mono,monospace;font-size:11px}.more-item:hover{background:var(--bg-3);color:var(--ink-0)}.save-bar{gap:4px;margin-bottom:12px;display:flex}.save-bar button{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--ink-1);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease), border-color .12s var(--ease), transform .12s var(--ease);flex:1;justify-content:center;align-items:center;gap:6px;padding:7px 8px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.save-bar button:hover{background:var(--bg-3);color:var(--ink-0);border-color:var(--accent)}.save-bar button:active{transform:translateY(1px)}.save-bar .share-btn:hover{color:var(--accent)}.save-bar .reset-btn:hover{color:#ff7f6e}.save-bar .surprise-btn:hover{color:#ff9550;background:var(--bg-3);border-color:#ff9550}.saved-toast{background:var(--glass-bg);-webkit-backdrop-filter:blur(14px);border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius-lg);letter-spacing:.06em;text-transform:uppercase;pointer-events:none;opacity:0;transition:opacity .22s var(--ease), transform .22s var(--ease);z-index:100;box-shadow:var(--shadow-md), 0 0 24px #f4d27a26;padding:10px 22px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;position:fixed;bottom:48px;left:50%;transform:translate(-50%,20px)}.saved-toast.visible{opacity:1;transform:translate(-50%)}.more-item.active{background:var(--accent);color:var(--bg-0)}.kbd-hints{color:var(--ink-2);letter-spacing:.04em;font-family:JetBrains Mono,monospace;font-size:10px}kbd{color:var(--ink-1);border:1px solid var(--line);border-radius:var(--radius-sm);font-family:inherit;font-size:inherit;background:var(--bg-2);border-bottom-width:2px;margin:0 2px;padding:1px 6px}@media (width<=1180px){.brand-sub{display:none}}@media (width<=980px){.kbd-hints{display:none}}aside#panel{background:linear-gradient(180deg, var(--bg-1), var(--bg-0));border-right:1px solid var(--line);flex-direction:column;grid-area:side;padding:0;display:flex;overflow:hidden}aside#panel h3{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin:18px 0 8px;font-size:10px;font-weight:600}aside#panel h3:first-child{margin-top:0}.field{margin-bottom:10px}.field-row{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.field-label{color:var(--ink-1);letter-spacing:.02em;font-size:11px}.field-value{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:10px}select{background:var(--bg-2);width:100%;color:var(--ink-0);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .14s var(--ease);padding:6px 8px;font-family:inherit;font-size:11px}select:hover{border-color:var(--ink-3)}.swatches{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.swatch{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;transition:transform .12s var(--ease), border-color .12s var(--ease);border:1px solid #0000}.swatch:hover{transform:scale(1.1)}.swatch.active{border-color:var(--ink-0)}.seg{border:1px solid var(--line);border-radius:var(--radius-sm);background:#0003;display:flex;overflow:hidden}.seg button{min-height:var(--control-min);color:var(--ink-1);border:none;border-right:1px solid var(--line);padding:6px var(--space-1);font-size:var(--text-xs);letter-spacing:.04em;cursor:pointer;transition:all .12s var(--ease);text-transform:uppercase;background:0 0;flex:1;font-family:inherit;font-weight:500}.seg button:last-child{border-right:none}.seg button:hover{background:var(--bg-2);color:var(--ink-0)}.seg button.on{background:var(--accent);color:var(--bg-0);font-weight:600}.meta{color:var(--ink-2);background:var(--bg-0);border-radius:var(--radius-sm);border:1px solid var(--line-soft);margin-top:4px;padding:8px;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.6}.meta b{color:var(--ink-1);font-weight:500}main{background:var(--bg-0);grid-area:canvas;min-height:0;position:relative;overflow:hidden}#canvas{touch-action:none;outline:none;width:100%;height:100%;display:block}.ov{pointer-events:none;color:var(--ink-2);letter-spacing:.04em;z-index:2;text-shadow:0 1px 4px #000c;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.6;position:absolute}.ov-tl{top:16px;left:16px}.ov-tr{text-align:right;top:16px;right:16px}.ov-bl{bottom:16px;left:16px}.ov-br{text-align:right;bottom:16px;right:16px}.ov b{color:var(--ink-1);font-weight:500}.tooltip{pointer-events:none;background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-1);letter-spacing:.04em;white-space:nowrap;opacity:0;transition:opacity .12s var(--ease);z-index:10;box-shadow:var(--shadow-md);max-width:320px;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.6;position:absolute}.tooltip.visible{opacity:1}.tooltip b{color:var(--accent);font-weight:500}.tooltip .ttip-head{color:var(--ink-0);border-bottom:1px solid var(--line-soft);margin-bottom:4px;padding-bottom:4px;font-size:11px;font-weight:500}.tooltip .ttip-coords{color:var(--accent-4);font-feature-settings:"tnum" 1;font-size:9px}.welcome-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:var(--radius-xl);width:min(560px,86vw);max-height:80vh;box-shadow:var(--shadow-lg), 0 0 0 1px var(--glass-border);z-index:20;color:var(--ink-1);transition:opacity .24s var(--ease), transform .24s var(--ease);padding:22px 26px 26px;font-family:Inter,sans-serif;font-size:13px;line-height:1.6;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%)}.welcome-card.hidden{opacity:0;pointer-events:none;transform:translate(-50%,calc(12px - 50%))}.welcome-card .wc-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:14px;display:flex}.welcome-card .wc-mark{letter-spacing:.16em;color:var(--accent);text-transform:uppercase;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500}.welcome-card .wc-close{color:var(--ink-2);cursor:pointer;border-radius:var(--radius-sm);transition:background .12s var(--ease), color .12s var(--ease), transform .12s var(--ease);background:0 0;border:none;padding:0 6px;font-size:22px;line-height:1}.welcome-card .wc-close:hover{background:var(--bg-2);color:var(--ink-0);transform:rotate(90deg)}.welcome-card .wc-body p{margin:0 0 10px}.welcome-card .wc-body p:last-child{margin-bottom:0}.welcome-card .wc-body b{color:var(--ink-0);font-weight:600}.welcome-card .wc-mono{color:var(--accent-4);font-family:JetBrains Mono,monospace;font-size:11px}.welcome-card .wc-hint{border-top:1px solid var(--line-soft);color:var(--ink-2);margin-top:16px;padding-top:14px;font-size:12px}.welcome-card .wc-hint kbd{color:var(--ink-1);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-0);border-bottom-width:2px;margin:0 2px;padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:10px;display:inline-block}footer{background:var(--bg-1);border-top:1px solid var(--line);color:var(--ink-2);letter-spacing:.04em;grid-area:footer;justify-content:space-between;align-items:center;padding:0 20px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:var(--focus-ring);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.command-palette{z-index:1000;-webkit-backdrop-filter:blur(4px);background:#00000080;place-items:start center;padding-top:12vh;display:grid;position:fixed;inset:0}.command-palette.hidden{display:none}.cmd-box{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--glass-bg);-webkit-backdrop-filter:blur(18px);width:min(520px,100vw - 28px);box-shadow:var(--shadow-lg);grid-template-columns:1fr;gap:8px;padding:14px;display:grid}.cmd-search{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-0);width:100%;min-height:38px;color:var(--ink-0);font:inherit;transition:border-color .14s var(--ease);padding:8px 12px}.cmd-search:focus{border-color:var(--accent)}.cmd-list{gap:5px;max-height:min(56vh,520px);display:grid;overflow-y:auto}.cmd-list button{text-align:left;border-radius:var(--radius-sm);min-height:34px;color:var(--ink-1);font:inherit;cursor:pointer;transition:background .1s var(--ease), border-color .1s var(--ease);background:0 0;border:1px solid #0000;padding:8px 12px}.cmd-list button:hover,.cmd-list button.cmd-active{background:var(--bg-2);border-color:var(--accent);color:var(--ink-0)}.cmd-empty{color:var(--ink-2);padding:12px 4px}.cmd-close{justify-self:end;width:32px;text-align:center!important}.perf-overlay{z-index:80;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);color:var(--ink-1);pointer-events:none;padding:8px 12px;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.5;position:fixed;bottom:44px;right:16px}.perf-overlay.hidden{display:none}.inspector-grid{color:var(--ink-1);grid-template-columns:auto 1fr;gap:3px 8px;font-family:JetBrains Mono,monospace;font-size:10px;display:grid}.inspector-grid b{color:var(--accent);font-weight:500}.compare-legend{color:var(--ink-2);gap:4px;margin-top:6px;font-size:10px;display:grid}.compare-dot{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}body.presentation-mode header,body.presentation-mode #panel,body.presentation-mode footer{display:none}body.presentation-mode main{inset:0}body.teaching-mode .ov{font-size:13px;line-height:1.45}.desktop-controls-toggle,.desktop-controls-close,.desktop-controls-backdrop{display:none}body.desktop-touch-shell,body.desktop-touch-shell[data-layout=compact],body.desktop-touch-shell[data-layout=wide-canvas]{grid-template:"canvas"1fr/1fr;overflow:hidden}body.desktop-touch-shell header,body.desktop-touch-shell footer{display:none}body.desktop-touch-shell .ov-tl{top:max(70px, calc(env(safe-area-inset-top) + 60px));left:max(16px, env(safe-area-inset-left))}body.desktop-touch-shell main{width:max(var(--desktop-touch-vw,100vw), 100vw);min-height:max(var(--desktop-touch-vh,100vh), 100vh);grid-area:canvas;overflow:hidden}body.desktop-touch-shell .desktop-controls-toggle{left:max(14px, env(safe-area-inset-left));top:max(14px, env(safe-area-inset-top));z-index:1650;border:1px solid var(--line);width:46px;min-width:46px;min-height:44px;color:var(--ink-0);box-shadow:var(--shadow-lg);letter-spacing:0;pointer-events:auto;touch-action:manipulation;background:#0e0e16e6;border-radius:18px;justify-content:center;align-items:center;padding:0;font:700 14px/1 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:inline-flex;position:fixed}body.desktop-touch-shell .desktop-controls-toggle:before{content:"";background:currentColor;border-radius:999px;width:18px;height:2px;display:block;box-shadow:0 -6px,0 6px}body.desktop-touch-shell.desktop-controls-open .desktop-controls-toggle{display:none}body.desktop-touch-shell.desktop-controls-open .desktop-controls-close{left:max(14px, env(safe-area-inset-left));top:max(14px, env(safe-area-inset-top));z-index:1700;border:1px solid var(--line);width:46px;min-width:46px;min-height:44px;color:var(--ink-0);box-shadow:var(--shadow-lg);letter-spacing:0;pointer-events:auto;touch-action:manipulation;background:#0e0e16f2;border-radius:17px;justify-content:center;align-items:center;padding:0;font:700 14px/1 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:inline-flex;position:fixed}body.desktop-touch-shell.desktop-controls-open .desktop-controls-close:before,body.desktop-touch-shell.desktop-controls-open .desktop-controls-close:after{content:"";background:currentColor;border-radius:999px;width:18px;height:2px;position:absolute}body.desktop-touch-shell.desktop-controls-open .desktop-controls-close:before{transform:rotate(45deg)}body.desktop-touch-shell.desktop-controls-open .desktop-controls-close:after{transform:rotate(-45deg)}body.desktop-touch-shell .desktop-controls-backdrop{z-index:1540;width:max(var(--desktop-touch-vw,100vw), 100vw);height:max(var(--desktop-touch-vh,100vh), 100vh);opacity:0;pointer-events:none;transition:opacity .16s var(--ease);background:#00000075;border:0;padding:0;display:block;position:fixed;inset:0 auto auto 0}body.desktop-touch-shell.desktop-controls-open .desktop-controls-backdrop{opacity:1;pointer-events:auto}body.desktop-touch-shell #panel,body.desktop-touch-shell[data-layout=presentation] #panel,body.desktop-touch-shell.presentation-mode #panel{z-index:1600;width:var(--desktop-touch-vw,min(480px, 100vw));height:var(--desktop-touch-vh,100vh);max-height:var(--desktop-touch-vh,100vh);border-right:1px solid var(--line);background:var(--bg-1);box-shadow:var(--shadow-lg);transition:transform .18s var(--ease);padding:0;font-size:15px;position:fixed;inset:0 auto auto 0;transform:translate(-105%);display:flex!important}body.desktop-touch-shell.desktop-controls-open #panel{transform:translate(0)}body.desktop-touch-shell #panel .ps-status{min-height:72px;padding:12px 14px 12px 116px;font-size:11px}body.desktop-touch-shell #panel .ps-search-wrap{padding:12px 14px}body.desktop-touch-shell #panel .ps-search{min-height:46px;padding:10px 42px 10px 14px;font-size:16px}body.desktop-touch-shell #panel .ps-search-kbd{display:none}body.desktop-touch-shell #panel .ps-scroll{padding:14px 14px 18px}body.desktop-touch-shell #panel .ps-title{margin-bottom:12px;font-size:17px}body.desktop-touch-shell #panel .ps-subtitle,body.desktop-touch-shell #panel .control-label,body.desktop-touch-shell #panel .control-value,body.desktop-touch-shell #panel .info-box,body.desktop-touch-shell #panel .learn-progress{font-size:13px}body.desktop-touch-shell #panel button,body.desktop-touch-shell #panel select,body.desktop-touch-shell #panel input{min-height:44px;font-size:14px}body.desktop-touch-shell #panel .seg{gap:8px}body.desktop-touch-shell #panel .seg button,body.desktop-touch-shell #panel .shape-pill{padding:9px 11px}body.desktop-touch-shell #panel .control-row{gap:10px;margin-bottom:12px}body.desktop-touch-shell #panel input[type=range]{height:6px}body.desktop-touch-shell #panel input[type=range]::-webkit-slider-thumb{width:24px;height:24px}body.desktop-touch-shell #panel .panel-footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}body.desktop-touch-shell #panel .panel-footer button{min-height:44px}body.desktop-touch-shell #panel pre,body.desktop-touch-shell #panel small{font-size:11px!important}.status-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%;margin-right:6px;animation:2s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}input[type=range]{appearance:none;background:linear-gradient(to right, var(--accent) 0%, var(--accent) var(--fill,50%), var(--bg-3) var(--fill,50%), var(--bg-3) 100%);cursor:pointer;border-radius:2px;outline:none;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--ink-0);border:2px solid var(--accent);cursor:pointer;width:14px;height:14px;transition:transform .12s var(--ease), box-shadow .12s var(--ease);border-radius:50%;box-shadow:0 1px 4px #00000080}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 0 0 4px #f4d27a2e}input[type=range]::-moz-range-thumb{background:var(--ink-0);border:2px solid var(--accent);cursor:pointer;border-radius:50%;width:14px;height:14px}input[type=range]::-moz-range-track{background:var(--bg-3);border-radius:2px;height:4px}.lil-gui.root{--background-color:var(--bg-1);--text-color:var(--ink-1);--title-background-color:var(--bg-2);--title-text-color:var(--ink-0);--widget-color:var(--bg-2);--hover-color:var(--bg-3);--focus-color:var(--accent);--number-color:var(--accent);--string-color:var(--accent-3);--font-size:11px;--input-font-size:11px;--font-family:"Inter", sans-serif;--font-family-mono:"JetBrains Mono", monospace;--widget-height:22px;--padding:8px;--spacing:4px;--slider-knob-width:4px;--slider-input-width:28%;--color-input-width:28%;--slider-input-min-width:40px;--color-input-min-width:40px;--folder-indent:8px;--widget-padding:0 0 0 4px;--widget-border-radius:3px;--checkbox-size:calc(.75 * var(--widget-height));--scrollbar-width:4px;border-radius:var(--radius-md);border:1px solid var(--line)!important}#tour-overlay{opacity:0;pointer-events:none;transition:transform .25s var(--ease), opacity .25s var(--ease), left .25s var(--ease);z-index:110;width:min(440px,100vw - 320px);position:fixed;bottom:38px;left:calc(50vw + 140px);transform:translate(-50%)translateY(60px)}body.essay-open #tour-overlay{width:min(360px,100vw - 660px);min-width:200px;left:calc(50vw - 38px)}@media (width<=1100px){#tour-overlay{width:min(300px,100vw - 240px)}body.essay-open #tour-overlay{width:min(240px,100vw - 540px);left:calc(50vw - 40px)}}body[data-layout=compact] #tour-overlay{width:min(380px,100vw - 260px);left:calc(50vw + 110px)}body[data-layout=compact].essay-open #tour-overlay{width:min(320px,100vw - 600px);left:calc(50vw - 68px)}#tour-overlay.tour-on{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.tour-bar{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--accent);border-radius:var(--radius-md);box-shadow:var(--shadow-md), 0 0 24px #f4d27a1f;grid-template-rows:auto auto;grid-template-columns:auto 1fr auto;gap:4px 12px;padding:12px 16px;display:grid}.tour-pause,.tour-exit{border:1px solid var(--line);background:var(--bg-3);width:28px;height:28px;color:var(--ink-0);cursor:pointer;transition:background .12s var(--ease), color .12s var(--ease), border-color .12s var(--ease);border-radius:50%;grid-area:1/1/3;align-self:center;font-size:12px;line-height:1}.tour-exit{grid-column:3;width:26px;height:26px;font-size:16px}.tour-pause:hover,.tour-exit:hover{background:var(--accent);color:var(--bg-0);border-color:var(--accent)}.tour-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.tour-counter{color:var(--ink-2);text-transform:uppercase;letter-spacing:.1em;font-size:10px}.tour-title{color:var(--ink-0);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.tour-progress{background:var(--bg-0);border-radius:2px;grid-column:2;height:3px;overflow:hidden}.tour-progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-4));width:0%;height:100%;transition:width .1s linear}.render-fallback,.learning-modal{z-index:1400;padding:max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(12px);background:#0000008f;place-items:center;display:grid;position:fixed;inset:0}.render-fallback.hidden,.learning-modal.hidden{display:none}.fallback-card,.learning-dialog{border:1px solid var(--glass-border);border-radius:var(--radius-lg);width:min(520px,100vw - 32px);max-height:min(760px,100vh - 32px);box-shadow:var(--shadow-lg);background:#0e0e16f0;overflow:auto}.fallback-card{text-align:center;justify-items:center;gap:18px;padding:28px;display:grid}.fallback-mark{aspect-ratio:1;border:2px solid #f4d27ab8;border-radius:50%;width:148px;position:relative}.fallback-mark:before,.fallback-mark:after{content:"";border:2px solid #f4d27a7a;border-radius:50%;position:absolute;inset:18%}.fallback-mark:after{inset:36%}.fallback-mark span{background:var(--accent-4);transform-origin:50%;opacity:.85;width:3px;height:86%;position:absolute;top:7%;left:50%}.fallback-mark span:nth-child(2){transform:rotate(45deg)}.fallback-mark span:nth-child(3){transform:rotate(90deg)}.fallback-mark span:nth-child(4){transform:rotate(135deg)}.fallback-copy strong{color:var(--ink-0);margin-bottom:6px;font-size:18px;display:block}.fallback-copy p,.modal-copy,.modal-small{color:var(--ink-1)}.fallback-actions,.modal-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.fallback-actions button,.modal-actions button{min-height:42px;padding:8px 14px}.learning-dialog{padding:22px;position:relative}.learning-dialog.learning-center-dialog{width:min(960px,100vw - 32px);padding:0;overflow:hidden}.learning-center-shell{grid-template-columns:minmax(210px,.34fr) minmax(0,1fr);min-height:min(680px,100vh - 32px);display:grid}.learning-center-nav{border-right:1px solid var(--line);background:var(--bg-1);padding:24px 16px;overflow:auto}.learning-progress-summary{margin:var(--space-2) 0 var(--space-4);color:var(--ink-2);font-size:var(--text-xs)}.learning-path{margin-bottom:var(--space-3)}.learning-path-title{margin:0 var(--space-1) var(--space-1);color:var(--ink-2);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.learning-path.active .learning-path-title{color:var(--accent)}.learning-lesson-link{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;min-height:38px;padding:7px var(--space-2);border-radius:var(--radius-sm);color:var(--ink-1);text-align:left;background:0 0;border:1px solid #0000;display:flex}.learning-lesson-link small{color:var(--ink-3);text-transform:uppercase;font-size:9px}.learning-lesson-link:hover{background:var(--bg-2);border-color:var(--line)}.learning-lesson-link.active{background:var(--bg-3);border-color:var(--accent);color:var(--ink-0)}.learning-center-content{padding:28px;overflow:auto}.learning-center-content h3{margin:var(--space-5) 0 var(--space-2);color:var(--ink-0);font-size:var(--text-md)}.learning-lesson-status{gap:var(--space-2) var(--space-4);color:var(--ink-2);font:var(--text-xs)/1.5 "JetBrains Mono", monospace;flex-wrap:wrap;display:flex}.learning-primary-actions{margin-top:var(--space-3);justify-content:flex-start}.learning-claim-note{gap:var(--space-1);margin:var(--space-3) 0;padding:var(--space-3);border-left:3px solid var(--accent);background:var(--bg-2);color:var(--ink-2);font-size:var(--text-sm);display:grid}.learning-claim-note strong{color:var(--ink-0);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em}.essay-provenance{border-left:2px solid var(--accent);background:color-mix(in srgb, var(--bg-2) 88%, transparent);color:var(--ink-3);gap:4px;margin:8px 0 10px;padding:8px;font-size:10px;line-height:1.4;display:grid}.essay-provenance strong{color:var(--ink-1);text-transform:uppercase;letter-spacing:.06em}.essay-provenance a{color:var(--accent)}.content-provenance{color:var(--ink-3);gap:3px;margin-top:8px;font-size:10px;line-height:1.4;display:grid}.content-provenance strong{color:var(--ink-1);text-transform:uppercase;letter-spacing:.06em}.content-provenance a{color:var(--accent)}.learning-resource-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.learning-resource-card,.learning-source-card{gap:var(--space-1);min-height:54px;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-1);color:var(--ink-0);text-align:left;text-decoration:none;display:grid}.learning-resource-card:hover,.learning-source-card:hover{border-color:var(--accent);background:var(--bg-2)}.learning-resource-card small,.learning-source-card small{color:var(--ink-2);font-size:var(--text-xs)}.learning-source-card em{color:var(--ink-2);font-size:var(--text-xs);font-style:normal;line-height:1.4}.learning-source-list{gap:var(--space-2);display:grid}.learning-lesson-nav{justify-content:space-between;gap:var(--space-2);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line);display:flex}.learning-lesson-nav button{min-height:var(--control-min)}@media (width<=720px){.learning-dialog.learning-center-dialog{overflow:auto}.learning-center-shell{min-height:0;display:block}.learning-center-nav{border-right:0;border-bottom:1px solid var(--line);max-height:240px}.learning-center-content{padding:20px 16px;overflow:visible}.learning-resource-grid{grid-template-columns:1fr}.learning-lesson-nav{flex-direction:column}}.modal-close{width:34px;height:34px;position:absolute;top:10px;right:10px}.modal-kicker{color:var(--accent-4);letter-spacing:.14em;text-transform:uppercase;font-size:10px}.learning-dialog h2{letter-spacing:0;margin:6px 36px 8px 0;font-size:22px}.quiz-form{gap:12px;margin:16px 0;display:grid}.quiz-question{border:1px solid var(--line);border-radius:var(--radius-md);margin:0;padding:12px}.quiz-question legend{color:var(--ink-0);padding:0 4px}.quiz-choice{min-height:38px;color:var(--ink-1);align-items:center;gap:8px;display:flex}.quiz-result{color:var(--ink-1)}.quiz-result ul{padding-left:18px}.quiz-result .right{color:var(--good,#7df0b8)}.quiz-result .miss{color:var(--warn,#ffd27a)}.glossary-search{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-0);width:100%;color:var(--ink-0);font:inherit;margin:12px 0 14px;padding:10px 12px;font-size:13px}.glossary-search:focus{border-color:var(--accent-4);outline:none}.glossary-group{margin-bottom:16px}.glossary-entry{border-bottom:1px solid var(--line);padding:10px 0}.glossary-entry:last-child{border-bottom:none}.glossary-term{color:var(--ink-0);font-size:13px;font-weight:600}.glossary-short{color:var(--ink-1);margin:3px 0 0;font-size:12px}.glossary-long{color:var(--ink-2);margin:6px 0 0;font-size:11px;line-height:1.5}.glossary-related-row{color:var(--ink-2);margin-top:6px;font-size:10px}.glossary-related{border:1px solid var(--line);color:var(--accent-4);cursor:pointer;background:0 0;border-radius:3px;margin:0 3px;padding:1px 6px;font-size:10px}.glossary-related:hover{border-color:var(--accent-4)}.glossary-focus{background:var(--bg-1,#ffffff0a);border-radius:var(--radius-md);margin:6px 0;padding:10px 12px}.biography-list{gap:12px;margin-top:12px;display:grid}.biography-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-0);padding:12px 14px}.biography-focus{border-color:var(--accent-4)}.biography-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.biography-name{color:var(--ink-0);font-size:14px;font-weight:600}.biography-dates{color:var(--ink-2);white-space:nowrap;font-size:10px}.biography-field{color:var(--accent-4);letter-spacing:.08em;text-transform:uppercase;margin:2px 0 6px;font-size:10px}.biography-blurb{color:var(--ink-1);font-size:12px;line-height:1.5}.cheat-grid{grid-template-columns:1fr 1fr;gap:18px 28px;margin-top:14px;display:grid}@media (width<=720px){.cheat-grid{grid-template-columns:1fr;gap:14px}}.cheat-group{gap:4px;display:grid}.cheat-row{align-items:center;gap:10px;min-height:26px;display:flex}.cheat-key{border:1px solid var(--line);background:var(--bg-0);min-width:28px;color:var(--ink-0);text-align:center;border-radius:4px;padding:2px 8px;font-family:JetBrains Mono,monospace;font-size:10px;line-height:1.4;display:inline-block}.cheat-desc{color:var(--ink-1);font-size:12px}.timeline-list{gap:0;margin-top:14px;display:grid}.timeline-entry{border-top:1px solid var(--line);grid-template-columns:90px 1fr;gap:14px;padding:12px 0;display:grid}.timeline-entry:first-child{border-top:none}.timeline-year{color:var(--accent-4);text-align:right;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500}.timeline-title{color:var(--ink-0);margin-bottom:3px;font-size:13px;font-weight:500}.timeline-desc{color:var(--ink-1);font-size:11px;line-height:1.5}.proof-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-0);margin-bottom:16px;padding:14px 16px}.proof-title{color:var(--ink-0);margin-bottom:8px;font-size:14px;font-weight:600}.proof-copy{color:var(--ink-1);margin:0 0 10px;font-size:11px;line-height:1.55}.proof-faces button{font-size:11px}.proof-faces button.on{border-color:var(--accent);color:var(--accent)}.proof-count-row{color:var(--ink-1);align-items:center;gap:10px;margin:12px 0;font-size:11px;display:flex}.proof-count{flex:1}.proof-count-val{color:var(--accent);text-align:center;min-width:16px;font-family:JetBrains Mono,monospace;font-weight:600}.proof-sum-row{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin:10px 0 6px;display:grid}.proof-sum-label{color:var(--ink-0);white-space:nowrap;font-family:JetBrains Mono,monospace;font-size:11px}.proof-bar{background:var(--bg-2);border-radius:5px;height:10px;position:relative;overflow:hidden}.proof-bar-fill{background:var(--good,#7df0b8);width:0%;height:100%;transition:width .2s var(--ease), background .2s var(--ease)}.proof-bar-limit{background:var(--warn,#ffd27a);width:2px;height:100%;position:absolute;top:0;right:0}.proof-limit-label{color:var(--ink-2);white-space:nowrap;font-size:9px}.proof-verdict{min-height:18px;margin-top:8px;font-size:12px}.proof-good{color:var(--good,#7df0b8);font-weight:500}.proof-bad{color:var(--warn,#ffd27a);font-weight:500}.proof-meh{color:var(--ink-2)}.proof-decomp{justify-content:center;align-items:center;gap:14px;margin:14px 0;display:flex}.decomp-term{flex-direction:column;align-items:center;gap:4px;display:flex}.decomp-num{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:28px;font-weight:600}.decomp-lbl{color:var(--ink-2);text-align:center;font-size:9px;line-height:1.3}.decomp-answer .decomp-num{color:var(--good,#7df0b8);font-size:34px}.decomp-plus,.decomp-eq{color:var(--ink-1);font-size:20px}.preset-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:14px;display:grid}.preset-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-0);color:var(--ink-1);cursor:pointer;text-align:left;transition:border-color .14s var(--ease), transform .14s var(--ease);flex-direction:column;gap:6px;padding:10px;display:flex}.preset-card:hover{border-color:var(--accent);transform:translateY(-2px)}.preset-card:active{transform:translateY(0)}.preset-swatch{border:1px solid var(--line);border-radius:4px;width:100%;height:48px;display:block;box-shadow:inset 0 -18px 22px #00000038}.preset-name{color:var(--ink-0);font-size:12px;font-weight:500}.preset-desc{color:var(--ink-2);font-size:var(--text-xs);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.35;display:-webkit-box;overflow:hidden}.preset-meta{color:var(--ink-2);font-family:JetBrains Mono,monospace;font-size:10px}.preset-palette{color:var(--accent);text-transform:capitalize;font-family:JetBrains Mono,monospace;font-size:9px}.postcard-caption{color:var(--ink-1);gap:6px;margin:14px 0;display:grid}.postcard-caption textarea{resize:vertical;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-0);width:100%;min-height:92px;color:var(--ink-0);font:inherit;padding:10px}.unlock-strip,.learn-progress{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:10px;display:flex}.unlock-strip strong{color:var(--accent)}.quiz-grid,.reward-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.quiz-card,.reward-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg-1);min-height:56px;color:var(--ink-1);text-align:left;padding:9px}.quiz-card{cursor:pointer}.quiz-card span,.reward-card span:not(.reward-swatch){color:var(--ink-0);display:block}.quiz-card small,.reward-card small{color:var(--ink-2);margin-top:3px;font-size:9px;display:block}.quiz-card.passed,.reward-card.unlocked{border-color:#f4d27a9e}.reward-card.locked{opacity:.68}.reward-swatch{border-radius:999px;width:100%;height:10px;margin-bottom:7px;display:block}.curiosity-card{border-color:#6affe857}.panel-tabs{gap:var(--space-1);margin-bottom:var(--space-3);border-bottom:1px solid var(--line);padding-bottom:8px;display:flex}.panel-tab{border:1px solid var(--line);color:var(--ink-2);min-height:var(--control-min);padding:6px var(--space-1);font-size:var(--text-sm);letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease);background:0 0;flex:1}.panel-tab:hover{color:var(--ink-0);border-color:var(--accent)}.panel-tab.active{background:var(--accent);color:var(--bg-0);border-color:var(--accent)}.panel-status{background:var(--bg-2);border:1px solid var(--line);border-radius:4px;grid-template-columns:1fr 1fr;gap:4px 8px;margin-bottom:10px;padding:8px 10px;font-size:10px;display:grid}.status-line{flex-direction:column;gap:1px;display:flex}.status-key{color:var(--ink-2);text-transform:uppercase;letter-spacing:.06em;font-size:9px}.status-val{color:var(--ink-0);font-family:JetBrains Mono,monospace}.status-val .badge{border-radius:3px;margin-right:3px;padding:1px 6px;font-family:JetBrains Mono,monospace;font-size:9px;display:inline-block}.status-val .badge.fx{color:#ffb450;background:#ffb45040}.status-val .badge.shift{color:#78c8ff;background:#78c8ff40}.status-val .badge.rot{color:#b4ffb4;background:#b4ffb440}.panel-body{padding:4px 0}.tab-section{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:10px}.tab-section:last-child{border-bottom:none}.control-row{align-items:center;gap:var(--space-2);min-height:var(--control-min);margin-bottom:6px;display:flex}.control-label{font-size:var(--text-sm);color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;flex:0 0 70px}.control-row input[type=range]{flex:1;min-width:60px}.control-value{font-family:JetBrains Mono,monospace;font-size:var(--text-sm);color:var(--ink-1);text-align:right;flex:0 0 50px}.seg-wrap{flex-wrap:wrap}.slider-auto{border:1px solid var(--line);width:20px;height:20px;color:var(--ink-2);cursor:pointer;background:0 0;border-radius:50%;flex:0 0 20px;padding:0;font-size:11px;line-height:1;transition:color .15s,border-color .15s,background .15s}.slider-auto:hover{color:var(--ink-0);border-color:var(--accent)}.slider-auto.on{color:var(--bg-0);background:var(--accent);border-color:var(--accent);animation:3s linear infinite slider-auto-spin}@keyframes slider-auto-spin{to{transform:rotate(360deg)}}.card-row{flex-wrap:wrap;gap:6px;display:flex}.shape-card{background:var(--bg-2);border:1px solid var(--line);cursor:pointer;border-radius:6px;flex-direction:column;flex:calc(50% - 3px);align-items:center;gap:4px;padding:10px 6px 8px;transition:all .14s;display:flex}.shape-card:hover{border-color:var(--accent);background:var(--bg-3)}.shape-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset;background:#ffb4501f}.shape-icon{width:28px;height:28px;color:var(--ink-1);background:currentColor;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.shape-card.active .shape-icon{color:var(--accent)}.shape-name{color:var(--ink-0);font-size:11px;font-weight:500}.shape-card.active .shape-name{color:var(--accent)}.shape-meta{color:var(--ink-2);font-family:JetBrains Mono,monospace;font-size:9px}.card-grid{grid-template-columns:repeat(8,1fr);gap:4px;display:grid}.swatch-grid .swatch{cursor:pointer;border:1px solid #0000;border-radius:3px;width:100%;height:26px;transition:transform .12s}.swatch-grid .swatch:hover{border-color:var(--ink-1);transform:scale(1.08)}.swatch-grid .swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.info-box{background:var(--bg-2);border:1px solid var(--line);color:var(--ink-1);border-radius:4px;padding:8px 10px;font-size:11px;line-height:1.5}.info-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin-bottom:4px;font-size:10px;display:block}.info-box b{color:var(--accent);font-weight:500}.class-row{align-items:center;gap:8px;padding:2px 0;font-size:11px;display:flex}.class-dot{border-radius:2px;width:10px;height:10px;display:inline-block}.class-label{flex:1}.class-size{color:var(--ink-2);font-family:JetBrains Mono,monospace;font-size:10px}.timeline{border:1px solid var(--line)}.panel-footer{border-top:1px solid var(--line);gap:4px;margin-top:12px;padding-top:10px;display:flex}.panel-footer button{background:var(--bg-2);border:1px solid var(--line);color:var(--ink-1);cursor:pointer;border-radius:4px;flex:1;padding:6px;font-size:11px}.panel-footer button:hover{background:var(--bg-3);color:var(--ink-0);border-color:var(--accent)}.panel-shortcuts{color:var(--ink-2);flex-wrap:wrap;grid-column:1/-1;justify-content:center;gap:4px 8px;padding:6px 2px 0;font:8px/1.5 JetBrains Mono,monospace;display:flex}.panel-shortcuts span{white-space:nowrap}.panel-shortcuts kbd{color:var(--ink-1);font:inherit;background:0 0;border:0;padding:0}.seg-tiny button{padding:3px 5px;font-size:9px}.shape-icon[data-shape=tetrahedron]{-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3 L22 21 L2 21 Z M12 3 L12 21 M2 21 L22 21' fill='black' stroke='none'/></svg>") 50%/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3 L22 21 L2 21 Z M12 3 L12 21 M2 21 L22 21' fill='black' stroke='none'/></svg>") 50%/contain no-repeat}.shape-icon[data-shape=cube]{-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 4 H20 V20 H4 Z M4 4 L8 8 L20 4 M4 20 L8 16 L20 20 M8 8 V16' fill='black' stroke='none'/></svg>") 50%/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 4 H20 V20 H4 Z M4 4 L8 8 L20 4 M4 20 L8 16 L20 20 M8 8 V16' fill='black' stroke='none'/></svg>") 50%/contain no-repeat}.shape-icon[data-shape=octahedron]{-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2 L22 12 L12 22 L2 12 Z M12 2 V22 M2 12 H22' fill='black' stroke='none'/></svg>") 50%/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2 L22 12 L12 22 L2 12 Z M12 2 V22 M2 12 H22' fill='black' stroke='none'/></svg>") 50%/contain no-repeat}.shape-icon[data-shape=icosahedron]{-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3 L21 9 L18 21 L6 21 L3 9 Z M12 3 L6 21 M12 3 L18 21 M3 9 L18 21 M3 9 L6 21 M3 9 L21 9' fill='black' stroke='none'/></svg>") 50%/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 3 L21 9 L18 21 L6 21 L3 9 Z M12 3 L6 21 M12 3 L18 21 M3 9 L18 21 M3 9 L6 21 M3 9 L21 9' fill='black' stroke='none'/></svg>") 50%/contain no-repeat}.shape-icon[data-shape=dodecahedron]{-webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2 L22 9 L18 21 L6 21 L2 9 Z M2 9 L22 9 M22 9 L18 21 M18 21 L6 21 M6 21 L2 9 M12 2 L6 21 M12 2 L18 21' fill='black' stroke='none'/></svg>") 50%/contain no-repeat;mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2 L22 9 L18 21 L6 21 L2 9 Z M2 9 L22 9 M22 9 L18 21 M18 21 L6 21 M6 21 L2 9 M12 2 L6 21 M12 2 L18 21' fill='black' stroke='none'/></svg>") 50%/contain no-repeat}.essay-host{z-index:100;pointer-events:none;width:340px;max-width:calc(100vw - 320px);position:fixed;bottom:44px;right:16px}.essay-host>*{pointer-events:auto}.essay-toggle{border:1px solid var(--line);background:var(--bg-2);width:36px;height:36px;color:var(--ink-1);cursor:pointer;border-radius:50%;margin-left:auto;font-size:16px;transition:all .14s;display:block}.essay-toggle:hover{color:var(--accent);border-color:var(--accent)}.essay-panel{background:var(--bg-2);border:1px solid var(--line);color:var(--ink-1);border-radius:8px;padding:10px 14px 12px;font-size:11px;line-height:1.55;box-shadow:0 8px 32px #00000080}.essay-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.essay-header .essay-toggle{width:24px;height:24px;font-size:11px;display:inline-block}.essay-nav{align-items:center;gap:6px;display:flex}.essay-nav button{border:1px solid var(--line);color:var(--ink-1);cursor:pointer;background:0 0;border-radius:4px;width:22px;height:22px;font-size:12px}.essay-nav button:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.essay-nav button:disabled{opacity:.3;cursor:not-allowed}.essay-counter{color:var(--ink-2);text-align:center;min-width:36px;font-family:JetBrains Mono,monospace;font-size:10px}.essay-title{color:var(--accent);margin-bottom:4px;font-size:12px;font-weight:500}.essay-selection{border-left:2px solid var(--accent);background:#ffffff09;margin:0 0 9px;padding:8px 9px}.essay-selection small{color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em;display:block}.essay-selection strong{color:var(--ink-0);margin:2px 0;display:block}.essay-selection p{margin:0}.essay-body p{margin:0 0 8px}.essay-body p:last-child{margin-bottom:0}.essay-term{color:var(--accent);text-underline-offset:2px;cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.essay-term:hover,.essay-term:focus{background:var(--bg-1,#ffffff0f);text-decoration:underline}.essay-empty{color:var(--ink-2);text-align:center;font-style:italic}.panel-footer{grid-template-columns:1fr 1fr;gap:4px;display:grid}.panel-footer button{background:var(--bg-2);border:1px solid var(--line);color:var(--ink-1);cursor:pointer;border-radius:5px;justify-content:center;align-items:center;gap:4px;padding:6px 8px;font-family:inherit;font-size:11px;transition:all .14s;display:flex}.panel-footer button:hover{color:var(--accent);border-color:var(--accent);background:var(--bg-3)}.cartan-grid-wrap{font-size:10px}.cartan-roots{background:#0003;border-radius:4px;width:100%;height:70px;margin-bottom:6px;position:relative}.root-node{background:var(--bg-2);width:22px;height:22px;color:var(--ink-1);border:1px solid var(--line);cursor:pointer;z-index:2;border-radius:50%;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:10px;display:flex;position:absolute;transform:translate(-50%,-50%)}.root-node.on{background:var(--accent);color:#000;border-color:var(--accent)}.root-edge{width:100%;height:100%;color:var(--line);pointer-events:none;z-index:1;position:absolute}.cartan-info{color:var(--ink-1);background:#00000026;border-radius:3px;min-height:18px;margin-bottom:6px;padding:4px 6px;font-family:JetBrains Mono,monospace;font-size:10px}.cartan-matrix table{border-collapse:collapse;margin:0 auto;font-family:JetBrains Mono,monospace;font-size:10px}.cartan-matrix th,.cartan-matrix td{text-align:center;border:1px solid var(--line);color:var(--ink-2);min-width:16px;padding:2px 5px}.cartan-matrix th{color:var(--ink-1);background:#0003}.cartan-matrix td.on{background:var(--accent);color:#000;font-weight:700}.bracket-panel{font-size:10px}.bracket-header{justify-content:space-between;align-items:center;max-width:120px;margin-bottom:6px;margin-left:auto;margin-right:auto;display:flex}.bracket-header button{border:1px solid var(--line);color:var(--ink-1);cursor:pointer;background:0 0;border-radius:4px;width:22px;height:22px}.bracket-header button:hover{color:var(--accent);border-color:var(--accent)}.bracket-counter{color:var(--ink-2);font-family:JetBrains Mono,monospace;font-size:10px}.bracket-formula{text-align:center;background:#0003;border-radius:4px;margin-bottom:6px;padding:8px}.bracket-note{text-align:center;color:var(--ink-2);margin-bottom:8px;font-style:italic}.bracket-diagram{width:100%;max-width:200px;height:auto;margin:0 auto;display:block}.ps-scroll{flex:1;overflow-y:auto}.ps-scroll::-webkit-scrollbar{width:8px}.ps-scroll::-webkit-scrollbar-track{background:0 0}.ps-scroll::-webkit-scrollbar-thumb{background:var(--bg-3);border:2px solid var(--bg-1);border-radius:4px}.ps-scroll::-webkit-scrollbar-thumb:hover{background:var(--ink-3)}.ps-status{background:linear-gradient(180deg, var(--bg-2), var(--bg-1));border-bottom:1px solid var(--line);color:var(--ink-2);margin-bottom:4px;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:10px}.ps-status-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.ps-status-key{color:var(--ink-1);text-transform:uppercase;letter-spacing:.04em}.ps-status-sep{color:var(--ink-3)}.ps-motion{text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--line);color:var(--ink-2);transition:color .2s var(--ease,ease), border-color .2s var(--ease,ease);border-radius:10px;padding:1px 7px;font-size:9px;font-weight:500;line-height:1.5}.ps-motion.is-idle{color:var(--ink-3)}.ps-motion.is-active{color:var(--accent);border-color:var(--accent);box-shadow:0 0 8px #f4d27a40}.ps-motion.is-paused{color:var(--accent-2);border-color:var(--accent-2)}.ps-collapse-handle{display:none}.ps-search-wrap{border-bottom:1px solid var(--line-soft);padding:6px 10px 8px;position:relative}.ps-search{box-sizing:border-box;background:var(--bg-0);border:1px solid var(--line);border-radius:var(--radius-sm,5px);width:100%;color:var(--ink-0);min-height:var(--control-min);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease,ease);outline:none;padding:5px 24px 5px 8px;font-family:inherit}.ps-search:focus{border-color:var(--accent)}.ps-search::placeholder{color:var(--ink-3)}.ps-search-kbd{color:var(--ink-3);border:1px solid var(--line);pointer-events:none;border-radius:3px;padding:0 4px;font-family:JetBrains Mono,monospace;font-size:10px;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.ps-hidden{display:none!important}@keyframes ps-flash{0%{background:var(--bg-3)}to{background:0 0}}.ps-flash{animation:.8s ease-out ps-flash}.ps-section{border-bottom:1px solid var(--line-soft);padding:10px 14px 6px}.ps-section:last-child{border-bottom:none}.ps-title{text-transform:uppercase;letter-spacing:.18em;color:var(--accent);align-items:center;gap:8px;margin-bottom:10px;padding-top:4px;font-size:9px;font-weight:600;display:flex}.ps-title:after{content:"";background:linear-gradient(90deg, var(--line), transparent);flex:1;height:1px}.ps-subtitle{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);margin:12px 0 6px;font-size:9px;font-weight:600}.ps-view-switch{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:8px;display:grid}.ps-view-switch button{min-width:0;font-size:10px}.shape-row{gap:4px;margin-bottom:6px;display:flex}.shape-pill{background:var(--bg-2);border:1px solid var(--line);color:var(--ink-1);min-height:var(--control-min);font-size:var(--text-xs);text-transform:uppercase;border-radius:var(--radius-sm,5px);cursor:pointer;transition:color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease), background var(--duration-fast) var(--ease), transform var(--duration-fast) var(--ease);flex:1;padding:7px 4px;font-family:JetBrains Mono,monospace;font-weight:500}.shape-pill:hover{border-color:var(--accent);background:var(--bg-3);transform:translateY(-1px)}.shape-pill.active{background:var(--accent);color:var(--bg-0);border-color:var(--accent);font-weight:600}.ps-phase{color:var(--accent);padding:2px 0 6px;font-family:JetBrains Mono,monospace;font-size:10px}.ps-section .control-row{margin-bottom:5px}.ps-section .control-label{flex:0 0 58px;font-size:10px}.ps-section .control-value{flex:0 0 36px;font-size:10px}.ps-section .seg{margin-bottom:4px}.ps-section .swatch-grid{grid-template-columns:repeat(6,1fr);gap:3px;margin-bottom:6px;display:grid}.ps-section .swatch-grid .swatch{border-radius:3px;width:100%;height:20px}.palette-groups{gap:var(--space-2);display:grid}.palette-group-label{margin-bottom:var(--space-1);color:var(--ink-2);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase}.palette-active-preview{border:1px solid var(--line);color:#fff;text-shadow:0 1px 3px #000;border-radius:5px;flex-direction:column;justify-content:flex-end;min-height:40px;margin:0 0 6px;padding:6px 8px;display:flex;box-shadow:inset 0 -22px 22px #00000047}.palette-active-preview span{text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:650}.palette-active-preview small{opacity:.82;font-size:9px}.gallery-preview-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.gallery-nav{grid-template-columns:30px minmax(0,1fr) 30px;align-items:stretch;gap:4px;margin-bottom:5px;display:grid}.gallery-nav>button{border:1px solid var(--line);background:var(--bg-1);color:var(--ink-0);cursor:pointer;border-radius:4px;font-size:15px}.gallery-nav>button:hover{border-color:var(--accent);color:var(--accent)}.gallery-nav-current{border:1px solid var(--line);background:var(--bg-1);text-align:center;border-radius:4px;min-width:0;padding:4px 6px}.gallery-nav-current span,.gallery-nav-current small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.gallery-nav-current span{color:var(--ink-0);font-size:9px}.gallery-nav-current small{color:var(--ink-2);font:8px JetBrains Mono,monospace}.gallery-preview{border:1px solid var(--line);background:var(--bg-1);min-width:0;color:var(--ink-1);cursor:pointer;text-align:left;border-radius:4px;padding:3px;font:9px/1.2 inherit}.gallery-preview:hover,.gallery-preview.on{border-color:var(--accent);color:var(--ink-0)}.gallery-preview-swatch{border-radius:2px;height:17px;margin-bottom:3px;display:block}.gallery-browse{border:1px solid var(--line);width:100%;color:var(--ink-1);cursor:pointer;background:0 0;border-radius:4px;margin-top:4px;padding:5px;font:9px inherit}.gallery-browse:hover{border-color:var(--accent);color:var(--ink-0)}
