:root{--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SFMono-Regular", "SF Mono", Consolas, "Liberation Mono", ui-monospace, monospace;font-family:var(--sans);color:#172026;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:#fff;min-width:320px;min-height:100svh;margin:0}button,input,select{font-family:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #2aa6a4}.app-shell{color:#172026;background:#fff;grid-template-rows:auto 1fr;min-height:100svh;display:grid}.topbar{z-index:2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe0;border-bottom:1px solid #e5edf1;align-items:center;gap:10px;padding:12px 18px;display:flex;position:sticky;top:0}.brand{color:#16252d;align-items:center;gap:8px;min-width:max-content;margin-right:6px;font-size:17px;font-weight:700;display:inline-flex}.brand svg{color:#158f91;stroke-width:2.2px;width:32px;height:32px}.formula-control{background:#fff;border:1px solid #d7e3e8;border-radius:7px;flex:126px;align-items:center;gap:7px;min-width:0;height:34px;padding:0 9px;transition:border-color .15s,background-color .15s;display:flex}.formula-control:hover:not(.formula-control-locked){border-color:#b1d6d9}.formula-control:focus-within:not(.formula-control-locked){background:#f3fbfb;border-color:#9fc9cc}.formula-control span{color:#62727b;font-size:12px;font-weight:700}.formula-control input{color:#172026;width:100%;min-width:56px;font:500 14px/1.2 var(--mono);background:0 0;border:0;outline:0}.formula-control-locked{background:#f8fbfc}.formula-control-locked input{color:#40515a;cursor:default}.formula-control-locked input[value="hidden until probe"]{color:#7d8d95;font-family:inherit}select,button{font:inherit}select{color:#24323a;background:#fff;border:1px solid #d7e3e8;border-radius:7px;height:34px;padding:0 30px 0 10px;font-size:13px;font-weight:650}.integrated-menu{flex:none;position:relative}.menu-trigger{color:#24323a;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:7px;justify-content:space-between;align-items:center;gap:12px;min-width:112px;height:34px;padding:0 9px 0 11px;font-size:13px;font-weight:650;display:inline-flex}.menu-trigger:hover,.menu-trigger[aria-expanded=true]{background:#f3fbfb;border-color:#9fc9cc}.menu-trigger:disabled{color:#7b8b93;cursor:default;background:#f8fbfc}.menu-trigger svg{color:#60717a;stroke-width:2.2px;width:15px;height:15px}.menu-popover{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffffa;border:1px solid #c4d8deeb;border-radius:8px;min-width:100%;padding:4px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 14px 32px #152c3821,inset 0 0 0 1px #ffffffb8}.menu-option{color:#26363e;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:6px;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:6px;width:100%;height:28px;padding:0 9px 0 5px;font-size:13px;font-weight:700;display:grid}.menu-option:hover,.menu-option[aria-selected=true]{color:#117d80;background:#f1fbfb}.menu-check{place-items:center;width:16px;height:16px;display:inline-grid}.menu-check svg{stroke-width:2.5px;width:14px;height:14px}.seed-toggle{background:#fff;border:1px solid #d7e3e8;border-radius:7px;align-items:center;height:34px;padding:3px;display:inline-flex}.seed-toggle button{color:#60717a;cursor:pointer;background:0 0;border:0;border-radius:5px;height:26px;padding:0 9px;font-size:12px;font-weight:750}.seed-toggle button[aria-pressed=true]{color:#117d80;background:#eaf7f7}.density-control{background:#fff;border:1px solid #d7e3e8;border-radius:8px;flex:none;align-items:center;gap:8px;height:38px;padding:0 8px;display:inline-flex}.density-slider{--density-x:50%;cursor:ew-resize;touch-action:none;flex:0 0 128px;width:128px;height:28px;position:relative}.density-slider:before{content:"";background:linear-gradient(90deg,#d7e3e8,#b9ccd3,#d7e3e8);height:1px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.density-slider:focus-visible{outline-offset:4px;outline:2px solid #2aa6a4}.density-ticks{justify-content:space-between;align-items:center;display:flex;position:absolute;inset:3px 0}.density-tick{background:#c7d6dc;border-radius:999px;width:1px;height:9px;transition:background-color .12s,height .12s}.density-tick-major{background:#8da2ab;height:15px}.density-tick-on{background:#159295}.density-tick-major.density-tick-on{background:#24323a}.density-thumb{left:var(--density-x);background:#172026;border-radius:999px;width:3px;height:26px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px #fff,0 3px 10px #152c382e}.density-readout{gap:1px;min-width:40px;display:grid}.density-readout span{color:#62727b;font-size:11px;font-weight:750;line-height:1.1}.density-readout strong{color:#172026;font:760 14px/1.1 var(--mono)}.icon-button{color:#1f3038;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:7px;flex:none;place-items:center;width:34px;height:34px;display:inline-grid;position:relative}.icon-button:hover:not(:disabled),.icon-button[aria-pressed=true]{color:#117d80;background:#f3fbfb;border-color:#9fc9cc}.icon-button:disabled{color:#aab5ba;cursor:default}.icon-button svg{stroke-width:2.1px;width:17px;height:17px}.visualization{min-height:0;padding:18px;position:relative}.visualization canvas{background:#fff;border:1px solid #dfe9ed;border-radius:8px;width:100%;height:calc(100svh - 88px);min-height:520px;display:block;box-shadow:0 18px 60px #152c3814}.visualization.probe-active canvas{cursor:none}.probe-sidebar{z-index:4;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;border:1px solid #d7e3e8;border-radius:8px;flex-direction:column;gap:6px;padding:6px;display:flex;position:fixed;top:50%;right:16px;transform:translateY(-50%);box-shadow:0 14px 38px #152c381f}.probe-sidebar-label{text-transform:uppercase;letter-spacing:.16em;color:#5d6e75;writing-mode:vertical-rl;text-align:center;-webkit-user-select:none;user-select:none;align-self:center;margin:6px 0 4px;font-size:8.5px;font-weight:750;transform:rotate(180deg)}.probe-sidebar-divider{background-color:#e2ecef;width:18px;height:1px;margin:2px auto 6px}.probe-tool-button{color:#24323a;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;width:34px;height:34px;display:inline-grid;position:relative}.probe-tool-button:hover,.probe-tool-button[aria-pressed=true]{color:#117d80;background:#f3fbfb;border-color:#9fc9cc}.probe-tool-button:disabled{color:#aab5ba;cursor:default}.curl-tool-icon,.divergence-tool-icon,.compare-tool-icon-svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.metric-probe{--probe-hue:181;--probe-intensity:0;--blob-start:.84;--blob-end:.84;z-index:2;border:1px solid hsl(var(--probe-hue) 72% 40% / .34);background:radial-gradient(circle at 50% 50%, hsl(var(--probe-hue) 86% 55% / calc(.09 + var(--probe-intensity) * .1)) 0 31%, #ffffffc2 32% 50%, hsl(var(--probe-hue) 78% 56% / calc(.09 + var(--probe-intensity) * .13)) 51% 100%);width:70px;height:70px;color:hsl(var(--probe-hue) 76% 34%);box-shadow:0 12px 32px #152c3824, 0 0 0 calc(6px + var(--probe-intensity) * 8px) hsl(var(--probe-hue) 78% 54% / .08);pointer-events:none;border-radius:50%;place-items:center;margin:-35px 0 0 -35px;display:grid;position:absolute}.metric-probe:before,.metric-probe:after{content:"";position:absolute}.metric-probe:before{border:1px dashed hsl(var(--probe-hue) 76% 40% / .38);border-radius:inherit;inset:8px}.metric-probe:after{content:attr(data-reading);border:1px solid hsl(var(--probe-hue) 58% 42% / .24);min-width:44px;color:hsl(var(--probe-hue) 70% 30%);font:750 11px/1.25 var(--mono);text-align:center;white-space:nowrap;background:#ffffffeb;border-radius:999px;padding:2px 6px;bottom:-9px;left:50%;transform:translate(-50%);box-shadow:0 6px 16px #152c381f}.metric-probe:not([data-reading]):after,.metric-probe[data-reading=""]:after{display:none}.metric-probe-both:after{content:none}.metric-probe-curl:before,.metric-probe-both:before{animation:curl-probe-spin calc(var(--probe-duration,1s) * 1.6) linear infinite;animation-direction:var(--probe-direction,normal);animation-play-state:var(--probe-play-state,running)}.metric-probe-curl .curl-tool-icon{width:34px;height:34px;box-shadow:inset 0 0 0 1px hsl(var(--probe-hue) 58% 45% / .18);stroke-width:1.95px;animation:curl-probe-spin var(--probe-duration,1s) linear infinite;animation-direction:var(--probe-direction,normal);animation-play-state:var(--probe-play-state,running);background:#ffffffd1;border-radius:50%;padding:5px}.divergence-probe-blob{border:2px solid hsl(var(--probe-hue) 72% 38% / .86);background:hsl(var(--probe-hue) 80% 54% / .1);width:36px;height:36px;box-shadow:inset 0 0 0 8px #ffffffa3, 0 0 0 1px hsl(var(--probe-hue) 72% 38% / .16);transform:scale(var(--blob-start,.84));animation:var(--probe-divergence-animation,none) var(--probe-duration,1s) ease-in-out infinite;border-radius:50%;display:block}.metric-probe-divergence:before{transform:scale(var(--blob-start,.84));animation:var(--probe-divergence-ring-animation,none) var(--probe-duration,1s) ease-in-out infinite}.both-probe-curl-ring{pointer-events:none;width:96px;height:96px;position:absolute;top:-13px;left:-13px}.both-probe-curl-ring svg{width:100%;height:100%;stroke:hsl(var(--probe-hue) 72% 38% / .85);stroke-width:.85px;stroke-dasharray:1 2;animation:curl-probe-spin var(--probe-duration,1s) linear infinite;animation-direction:var(--probe-direction,normal);transform-origin:50%;animation-play-state:var(--probe-play-state,running)}.comparison-probe-readout{grid-template-columns:max-content max-content;gap:4px;display:grid;position:absolute;bottom:-26px;left:50%;transform:translate(-50%)}.comparison-probe-readout em{border:1px solid hsl(var(--probe-hue) 58% 42% / .24);color:hsl(var(--probe-hue) 70% 30%);font:750 10px/1.2 var(--mono);white-space:nowrap;background:#fffffff0;border-radius:999px;padding:2px 6px;font-style:normal;box-shadow:0 6px 16px #152c381f}@keyframes curl-probe-spin{to{transform:rotate(360deg)}}@keyframes divergence-probe-pulse{0%{transform:scale(var(--blob-start));opacity:0}15%{opacity:.9}85%{opacity:.9}to{transform:scale(var(--blob-end));opacity:0}}@keyframes divergence-probe-ring{0%{transform:scale(var(--blob-start));opacity:0}15%{opacity:.85}85%{opacity:.85}to{transform:scale(var(--blob-end));opacity:0}}.placed-probe{cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s;pointer-events:auto!important}.placed-probe:hover{border-color:#af551d99;transform:scale(1.04);box-shadow:0 12px 32px #152c3824,0 0 0 5px #af551d1f}.clear-probes-button:hover{background:#fff5f2;border-color:#f1bfb9;color:#c93b16!important}.vector-probe-arrow{pointer-events:none;width:100px;height:100px;color:hsl(var(--probe-hue) 86% 40%);position:absolute;top:-15px;left:-15px}.vector-probe-readout{border:1px solid hsl(var(--probe-hue) 58% 42% / .28);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#fffffff5;border-radius:8px;grid-template-columns:repeat(2,minmax(max-content,1fr));gap:4px 10px;padding:6px 10px;display:grid;position:absolute;bottom:-68px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #152c3824}.vector-readout-item{font:750 10px/1.2 var(--mono);color:#37474f;white-space:nowrap}.vector-readout-item strong{color:hsl(var(--probe-hue) 72% 34%);font-weight:800}.field-marker{z-index:2;pointer-events:none;place-items:center;width:30px;height:30px;display:grid;position:absolute;transform:translate(-50%,-50%)}.field-marker span{color:#1c2b33;background:#fffffff5;border:1px solid #273941;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:grid;box-shadow:0 6px 18px #152c3824}.field-marker-active span{color:#117d80;border-color:#129497;box-shadow:0 0 0 5px #1fabaa24,0 8px 22px #152c382e}.field-marker strong{color:#117d80;min-width:46px;font:780 11px/1.25 var(--mono);text-align:center;white-space:nowrap;background:#fffffff0;border:1px solid #1294973d;border-radius:999px;padding:2px 6px;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%);box-shadow:0 6px 16px #152c381f}.lab-panel,.lab-panel-collapsed{z-index:5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border:1px solid #d7e3e8;position:fixed;bottom:34px;left:34px;box-shadow:0 18px 46px #152c3826}.lab-panel-collapsed{color:#1d2d35;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;min-width:214px;height:44px;padding:0 10px 0 14px;display:inline-flex}.lab-panel-collapsed span{text-align:left;gap:1px;display:grid}.lab-panel-collapsed strong,.lab-panel-header strong{color:#172026;font-size:13px;font-weight:800}.lab-panel-collapsed em,.lab-panel-header span{color:#62727b;text-transform:uppercase;font-size:11px;font-style:normal;font-weight:750}.lab-panel-collapsed svg{stroke-width:2.3px;width:16px;height:16px}.lab-panel{border-radius:10px;grid-template-rows:auto minmax(0,1fr);width:min(372px,100% - 132px);max-height:min(560px,100% - 68px);display:grid;overflow:hidden}.lab-panel-header{border-bottom:1px solid #e3edf1;justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 14px;display:flex}.lab-panel-header>div:first-child{gap:2px;display:grid}.lab-panel-actions{align-items:center;gap:6px;display:inline-flex}.lab-icon-button{color:#26363e;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:7px;place-items:center;width:30px;height:30px;display:inline-grid;position:relative}.lab-icon-button:hover{color:#117d80;background:#f3fbfb;border-color:#9fc9cc}.lab-exit-button:hover{background:#fff5f2;border-color:#f1bfb9;color:#c93b16!important}.lab-icon-button svg{stroke-width:2.2px;width:16px;height:16px}.lab-text-button{color:#117d80;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:7px;height:30px;padding:0 9px;font-size:12px;font-weight:800}.lab-text-button:hover{background:#f3fbfb;border-color:#9fc9cc}.lab-question,.lab-menu,.lab-concept{min-height:0;padding:14px;overflow:auto}.lab-question,.lab-concept{gap:12px;display:grid}.lab-concept-copy{gap:5px;display:grid}.lab-concept-copy strong{color:#172026;font-size:16px;font-weight:820}.lab-concept-copy span,.lab-concept p{color:#566872;margin:0;font-size:13px;font-weight:650;line-height:1.38}.curl-concept-grid{grid-template-columns:1fr;gap:6px;display:grid}.local-concept-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.local-concept-card{background:#fff;border:1px solid #d7e3e8;border-radius:8px;gap:6px;padding:8px;display:grid}.local-concept-card .curl-concept-diagram,.local-concept-card .divergence-concept-diagram{border:0;padding:0}.local-concept-card p{color:#61737d;font-size:11px;font-weight:720}.curl-concept-diagram,.divergence-concept-diagram{background:#fff;border:1px solid #d7e3e8;border-radius:8px;align-items:center;gap:7px;min-width:0;padding:7px 8px;display:flex}.curl-concept-diagram>span,.divergence-concept-diagram>span:last-child{color:#657983;text-align:left;align-items:baseline;gap:6px;font-size:11px;font-weight:800;line-height:1.12;display:flex}.curl-concept-diagram strong,.divergence-concept-diagram strong{color:#33444d;text-transform:uppercase;font-size:10px;font-weight:850}.curl-diagram-icon{stroke-width:2.7px;flex:0 0 28px;width:28px;height:28px}.curl-concept-positive{color:#117d80}.curl-concept-zero{color:#6d7f88}.curl-concept-negative{color:#a14a25}.divergence-blob-diagram{flex:0 0 28px;place-items:center;width:28px;height:28px;display:grid;position:relative}.divergence-blob-diagram i{opacity:.9;border:2px solid;border-radius:50%;position:absolute}.divergence-blob-diagram i:first-child{opacity:.42;width:12px;height:12px}.divergence-blob-diagram i:last-child{border-style:dashed;width:22px;height:22px}.divergence-concept-positive{color:#117d80}.divergence-concept-zero{color:#6d7f88}.divergence-concept-negative{color:#a14a25}.divergence-concept-zero .divergence-blob-diagram i:first-child{width:17px;height:17px}.divergence-concept-zero .divergence-blob-diagram i:last-child{width:18px;height:18px}.divergence-concept-negative .divergence-blob-diagram i:first-child{width:22px;height:22px}.divergence-concept-negative .divergence-blob-diagram i:last-child{width:12px;height:12px}.lab-phase-row{color:#52646d;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:760;display:flex}.lab-phase{color:#117d80;text-transform:uppercase;background:#eef6f7;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:850}.lab-phase-explain{color:#4b7b52;background:#f0f5f0}.lab-question p{color:#1e2d35;margin:0;font-size:16px;font-weight:760;line-height:1.32}.lab-hint{color:#667882;margin-top:-5px;font-size:12px;font-weight:650;line-height:1.35}.lab-hint-revealed{color:#2e7375}.lab-options{gap:7px;display:grid}.lab-option{color:#26363e;text-align:left;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:38px;padding:8px 10px;font-size:13px;font-weight:740;display:flex}.lab-option:hover:not(:disabled),.lab-option-selected{color:#117d80;background:#f3fbfb;border-color:#9fc9cc}.lab-option:disabled{cursor:default}.lab-option svg{stroke-width:2.4px;flex:none;width:16px;height:16px}.lab-option-correct,.lab-option-correct:disabled{color:#2f743b;background:#f2fbf3;border-color:#91c998}.lab-option-incorrect,.lab-option-incorrect:disabled{color:#9a3c27;background:#fff5f2;border-color:#e4afa2}.lab-feedback{border-radius:8px;gap:4px;padding:10px;font-size:13px;line-height:1.35;display:grid}.lab-feedback strong{text-transform:uppercase;font-size:12px;font-weight:850}.lab-feedback-correct{color:#335f39;background:#f4fbf4;border:1px solid #b8dcbc}.lab-feedback-incorrect{color:#7b3828;background:#fff7f4;border:1px solid #edc5bb}.lab-controls{justify-content:flex-end;display:flex}.lab-primary-button{color:#fff;cursor:pointer;background:#14979a;border:1px solid #129497;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:34px;padding:0 12px;font-size:13px;font-weight:820;display:inline-flex}.lab-primary-button:hover:not(:disabled){background:#117d80}.lab-primary-button:disabled{color:#8b9aa2;cursor:default;background:#edf3f5;border-color:#cbd9df}.lab-primary-button svg{stroke-width:2.3px;width:15px;height:15px}.lab-start-button{justify-self:end}.lab-menu{gap:8px;display:grid}.lab-menu-section{gap:6px;padding-top:4px;display:grid}.lab-menu-section-title{color:#62727b;text-transform:uppercase;justify-content:space-between;align-items:center;padding:2px 1px 0;font-size:11px;font-weight:790;display:flex}.lab-menu-section-title strong{color:#394b54;font-size:11px;font-weight:850}.lab-menu-section-title span{font-variant-numeric:tabular-nums}.lab-menu-summary{color:#62727b;justify-content:space-between;align-items:center;font-size:12px;font-weight:740;display:flex}.lab-menu-summary strong{color:#26363e}.lab-menu-row{color:#26363e;text-align:left;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:8px;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:42px;padding:6px 8px;display:grid}.lab-menu-row:hover,.lab-menu-row-active{background:#f3fbfb;border-color:#9fc9cc}.lab-menu-row>span{color:#52646d;background:#eef5f7;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:820;display:grid}.lab-menu-row strong{color:#1e2d35;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:800;overflow:hidden}.lab-status{text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:3px 7px;font-size:10px;font-style:normal;font-weight:820}.lab-status-empty{color:#6a7b84;background:#eef3f5}.lab-status-progress{color:#117d80;background:#eaf7f7}.lab-status-correct{color:#34773e;background:#edf9ee}.lab-status-incorrect{color:#9a3c27;background:#fff1ed}.lab-secondary-button{color:#117d80;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:8px;justify-content:center;align-items:center;gap:7px;height:34px;padding:0 12px;font-size:13px;font-weight:820;transition:all .2s;display:inline-flex}.lab-secondary-button:hover:not(:disabled){background:#f3fbfb;border-color:#9fc9cc}.lab-secondary-button:disabled{color:#8b9aa2;cursor:default;background:#edf3f5;border-color:#cbd9df}.lab-secondary-button svg{stroke-width:2.3px;width:15px;height:15px}.lab-reset-all-button{color:#117d80;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:6px;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-weight:800;transition:all .2s;display:inline-flex}.lab-reset-all-button:hover{color:#117d80;background:#f3fbfb;border-color:#9fc9cc}.lab-reset-all-button svg{stroke-width:2.5px;width:12px;height:12px}@media (width<=760px){.app-shell{grid-template-rows:auto 1fr}.topbar{flex-wrap:wrap;padding:10px}.brand{width:100%}.formula-control{flex:calc(50% - 5px)}.formula-control input{width:100%;min-width:0}select,.integrated-menu{flex:auto}.menu-trigger{width:100%}.seed-toggle{flex:100%}.seed-toggle button{flex:1 1 0}.density-control{flex:164px;justify-content:center}.visualization{padding:10px}.visualization canvas{height:calc(100svh - 150px);min-height:430px}.probe-sidebar{top:276px;right:10px;transform:none}.lab-panel,.lab-panel-collapsed{bottom:10px;left:10px;right:10px}.lab-panel-collapsed{width:auto}.lab-panel{width:auto;max-height:46svh}.local-concept-grid{grid-template-columns:1fr}.lab-menu-row{grid-template-columns:24px minmax(0,1fr)}.lab-status{grid-column:2;justify-self:start}}.app-version{color:#62727b;opacity:.65;pointer-events:none;z-index:10;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;position:fixed;bottom:24px;right:34px}@media (width<=720px){.app-version{display:none}}[data-tooltip]{position:relative}[data-tooltip]:not([data-tooltip=""]):not([data-tooltip=undefined]):after{content:attr(data-tooltip);z-index:1000;color:#fff;-webkit-backdrop-filter:blur(6px);pointer-events:none;opacity:0;white-space:nowrap;background:#152026f2;border:1px solid #ffffff14;border-radius:5px;padding:5px 8px;font-size:11px;font-weight:600;line-height:1.25;transition:opacity .14s cubic-bezier(.4,0,.2,1),transform .14s cubic-bezier(.4,0,.2,1);position:absolute;box-shadow:0 4px 12px #152c382e}[data-tooltip]:not([data-tooltip=""]):not([data-tooltip=undefined]):before{content:"";z-index:1000;pointer-events:none;opacity:0;border-style:solid;width:0;height:0;transition:opacity .14s cubic-bezier(.4,0,.2,1),transform .14s cubic-bezier(.4,0,.2,1);position:absolute}[data-tooltip]:not([data-tooltip=""]):not([data-tooltip=undefined]):hover:after,[data-tooltip]:not([data-tooltip=""]):not([data-tooltip=undefined]):hover:before{opacity:1}[data-tooltip].tooltip-bottom:after{top:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(-4px)scale(.95)}[data-tooltip].tooltip-bottom:before{border-width:0 5px 5px;border-color:#0000 #0000 #152026f2;top:calc(100% + 3px);left:50%;transform:translate(-50%)translateY(-4px)scale(.95)}[data-tooltip].tooltip-bottom:hover:after,[data-tooltip].tooltip-bottom:hover:before{transform:translate(-50%)translateY(0)scale(1)}[data-tooltip].tooltip-top:after{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)scale(.95)}[data-tooltip].tooltip-top:before{border-width:5px 5px 0;border-color:#152026f2 #0000 #0000;bottom:calc(100% + 3px);left:50%;transform:translate(-50%)translateY(4px)scale(.95)}[data-tooltip].tooltip-top:hover:after,[data-tooltip].tooltip-top:hover:before{transform:translate(-50%)translateY(0)scale(1)}[data-tooltip].tooltip-left:after{top:50%;right:calc(100% + 8px);transform:translateY(-50%)translate(4px)scale(.95)}[data-tooltip].tooltip-left:before{border-width:5px 0 5px 5px;border-color:#0000 #0000 #0000 #152026f2;top:50%;right:calc(100% + 3px);transform:translateY(-50%)translate(4px)scale(.95)}[data-tooltip].tooltip-left:hover:after,[data-tooltip].tooltip-left:hover:before{transform:translateY(-50%)translate(0)scale(1)}[data-tooltip].tooltip-right:after{top:50%;left:calc(100% + 8px);transform:translateY(-50%)translate(-4px)scale(.95)}[data-tooltip].tooltip-right:before{border-width:5px 5px 5px 0;border-color:#0000 #152026f2 #0000 #0000;top:50%;left:calc(100% + 3px);transform:translateY(-50%)translate(-4px)scale(.95)}[data-tooltip].tooltip-right:hover:after,[data-tooltip].tooltip-right:hover:before{transform:translateY(-50%)translate(0)scale(1)}.welcome-overlay{z-index:10000;-webkit-backdrop-filter:blur(12px);background:#0f171e73;place-items:center;padding:24px;transition:background .4s,-webkit-backdrop-filter .4s,backdrop-filter .4s;animation:.3s ease-out welcomeFadeIn;display:grid;position:fixed;inset:0}.welcome-card{text-align:left;background:#fffffff5;border:1px solid #ffffffb3;border-radius:16px;flex-direction:column;gap:24px;width:100%;max-width:580px;padding:36px;transition:transform .42s cubic-bezier(.34,1.56,.64,1),opacity .38s,box-shadow .38s,filter .38s;animation:.35s cubic-bezier(.34,1.56,.64,1) welcomeScaleIn;display:flex;position:relative;transform:scale(1);box-shadow:0 24px 64px #0a192338,inset 0 0 0 1px #ffffffe6}.welcome-card h2{color:#117d80;align-items:center;gap:14px;margin:0;font-size:32px;font-weight:800;display:flex}.welcome-card h2 svg{color:#129497;width:48px;height:48px;animation:2.5s ease-in-out infinite welcomeWave}.welcome-body{flex-direction:column;gap:14px;display:flex}.welcome-body p{color:#37474f;margin:0;font-size:14.5px;line-height:1.6}.welcome-body p.welcome-highlight{color:#172026;font-size:16px;font-weight:650}.welcome-footer{border-top:1px solid #d7e3e899;justify-content:space-between;align-items:center;gap:20px;margin-top:8px;padding-top:24px;display:flex}.welcome-signatures{color:#60717a;max-width:60%;font-size:13.5px;font-weight:600;line-height:1.45}.welcome-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#129497,#1aa2a5);border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:750;transition:all .18s;display:inline-flex;box-shadow:0 4px 14px #1294974d}.welcome-btn:hover{background:linear-gradient(135deg,#15a1a4,#20b4b7);transform:translateY(-1px);box-shadow:0 6px 20px #12949766}.welcome-btn:active{transform:scale(.95)}.welcome-btn svg{width:16px;height:16px;transition:transform .18s}.welcome-btn:hover svg{transform:translate(3px)}@keyframes welcomeFadeIn{0%{opacity:0}to{opacity:1}}@keyframes welcomeScaleIn{0%{opacity:0;transform:scale(.9)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes welcomeWave{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)rotate(4deg)}}@media (width<=720px){.welcome-card{gap:18px;padding:24px}.welcome-card h2{font-size:22px}.welcome-body p{font-size:13.5px}.welcome-body p.welcome-highlight{font-size:15px}.welcome-footer{flex-direction:column;align-items:stretch;gap:16px;padding-top:18px}.welcome-signatures{text-align:center;max-width:100%}.welcome-btn{justify-content:center}}.welcome-overlay.welcome-dismissing{-webkit-backdrop-filter:blur();pointer-events:none;background:radial-gradient(circle,#1aa2a533 0%,#0f171e00 80%);transition:background .42s cubic-bezier(.1,.8,.3,1),-webkit-backdrop-filter .42s cubic-bezier(.1,.8,.3,1),backdrop-filter .42s cubic-bezier(.1,.8,.3,1)}.welcome-card.welcome-dismissing{filter:brightness(1.3)contrast(1.05);opacity:0;pointer-events:none;transition:transform .42s cubic-bezier(.1,.8,.3,1),opacity .38s ease-out,box-shadow .38s ease-out,filter .38s ease-out;transform:scale(1.42)rotate(1.2deg);box-shadow:0 0 160px 80px #1aa2a599,0 0 0 9999px #fff3}.welcome-btn.welcome-secondary-btn{color:#60717a;box-shadow:none;background:0 0;border:1px solid #d7e3e8}.welcome-btn.welcome-secondary-btn:hover{color:#24323a;background:#f1f6f8;border-color:#b9ccd3;box-shadow:0 4px 12px #60717a14}.welcome-btn.welcome-secondary-btn svg{transition:transform .18s}.welcome-btn.welcome-secondary-btn:hover svg{transform:translate(-3px)}.welcome-dots{align-items:center;gap:8px;display:flex}.welcome-dot{cursor:pointer;background:#d7e3e8;border-radius:50%;width:8px;height:8px;transition:all .18s}.welcome-dot:hover{background:#a5b8c0}.welcome-dot.active{background:#129497;transform:scale(1.22)}.welcome-chip{vertical-align:middle;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;margin:1.5px 0;padding:1.5px 8px;font-size:12.5px;font-weight:650;text-decoration:none;transition:all .18s;display:inline-flex}.welcome-chip.chip-yt{color:#c00c0c;background:#ff00000d;border-color:#ff00001f}.welcome-chip.chip-yt:hover{background:#ff00001a;border-color:#ff000040;transform:translateY(-1.5px);box-shadow:0 4px 12px #ff000014}.welcome-chip.chip-gh{color:#172026;background:#1520260d;border-color:#1520261f}.welcome-chip.chip-gh:hover{background:#1520261a;border-color:#15202640;transform:translateY(-1.5px);box-shadow:0 4px 12px #15202614}.welcome-team-info{border-top:1px solid #d7e3e899;margin-top:10px;padding-top:14px}.welcome-team-info p{color:#37474f;font-size:14px;line-height:1.5}.welcome-team-info p strong{color:#172026;font-weight:700}@media (width<=720px){.welcome-dots{order:-1;margin-bottom:4px}}.lab-finished-panel{gap:12px;min-height:0;padding:14px;display:grid;overflow-y:auto}.lab-finished-panel .congrats-header{text-align:center;margin-bottom:8px}.lab-finished-panel .congrats-badge-icon{color:#e5a93b;width:44px;height:44px;margin-bottom:6px;animation:2s ease-in-out infinite congratsBounce}.lab-finished-panel h2{color:#172026;letter-spacing:-.3px;margin:0 0 2px;font-size:18px;font-weight:850}.lab-finished-panel .congrats-subtitle{color:#566872;margin:0;font-size:12px;font-weight:600}.lab-finished-panel .score-summary-box{box-sizing:border-box;background:#f8fafb;border:1px solid #e8eff2;border-radius:10px;align-items:center;gap:20px;width:100%;margin-bottom:4px;padding:14px;display:flex}.lab-finished-panel .score-circle-container{flex-shrink:0;place-items:center;width:84px;height:84px;display:grid;position:relative}.score-ring-svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.score-ring-bg{fill:none;stroke:#e8eff2;stroke-width:8px}.score-ring-fill{fill:none;stroke:#129497;stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset .8s ease-out}.score-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute}.score-text strong{color:#117d80;font-size:18px;font-weight:850;line-height:1}.score-text span{color:#566872;margin-top:1px;font-size:9px;font-weight:750}.section-breakdown{flex-direction:column;flex-grow:1;gap:10px;display:flex}.breakdown-item{border-bottom:1px dashed #e8eff2;justify-content:space-between;align-items:center;padding-bottom:4px;display:flex}.breakdown-item:last-child{border-bottom:none;padding-bottom:0}.breakdown-item span{color:#37474f;font-size:11.5px;font-weight:700}.breakdown-item strong{color:#172026;font-size:12.5px;font-weight:800}.review-section-title{border-bottom:1px solid #eef2f4;margin-top:6px;padding-bottom:4px}.review-section-title h3{color:#62727b;text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:11.5px;font-weight:850}.finished-section-group{flex-direction:column;gap:6px;margin-top:6px;display:flex}.finished-section-group h4{color:#78909c;margin:4px 0 2px;font-size:11px;font-weight:800}.finished-footer{border-top:1px solid #eef2f4;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;padding-top:10px;display:flex}.review-view{flex-direction:column;height:100%;max-height:100%;display:flex}.review-header{border-bottom:1px solid #e3edf1;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:14px;display:flex}.review-header h2{color:#172026;margin:0;font-size:20px;font-weight:850}.score-pill{color:#117d80;background:#eef6f7;border:1px solid #12949729;border-radius:999px;align-items:baseline;gap:4px;padding:4px 10px;display:flex}.score-pill strong{font-size:13px;font-weight:800}.score-pill span{font-size:11px;font-weight:700}.results-scrollable{flex-grow:1;margin-bottom:20px;padding-right:4px;overflow-y:auto}.review-section{margin-bottom:20px}.review-section h3{color:#62727b;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #eef2f4;margin:0 0 10px;padding-bottom:4px;font-size:13px;font-weight:800}.review-collapse-trigger{color:#62727b;text-transform:uppercase;cursor:pointer;background:#f8fafb;border:1px solid #e8eff2;border-radius:8px;outline:none;justify-content:space-between;align-items:center;width:100%;margin-top:4px;margin-bottom:8px;padding:10px 14px;font-size:11.5px;font-weight:850;transition:all .2s;display:flex}.review-collapse-trigger:hover{color:#172026;background:#f0f4f6;border-color:#d0dde2}.review-questions-list{flex-direction:column;gap:8px;display:flex}.review-question-row{background:#fff;border:1px solid #e8eff2;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:12px;transition:border-color .15s;display:flex}.review-question-row:hover{border-color:#d0dde2}.review-question-row.status-correct{border-left:3.5px solid #2f743b}.review-question-row.status-incorrect{border-left:3.5px solid #c93b16}.review-question-row.status-empty{border-left:3.5px solid #aab5ba}.row-info{flex:1;align-items:flex-start;gap:12px;display:flex}.row-num{color:#62727b;background:#f0f4f6;border-radius:50%;flex-shrink:0;place-items:center;width:20px;height:20px;margin-top:2px;font-size:11px;font-weight:850;display:grid}.row-text{flex-direction:column;gap:2px;display:flex}.row-text strong{color:#1c2b33;font-size:13.5px;font-weight:800}.row-text p{color:#566872;margin:0;font-size:12.5px;font-weight:600;line-height:1.3}.row-answers{color:#78909c;margin-top:2px;font-size:11px}.row-answers em{color:#455a64;font-style:normal;font-weight:750}.row-action{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.status-badge{text-transform:uppercase;white-space:nowrap;border-radius:999px;padding:2.5px 7px;font-size:10px;font-weight:800}.status-badge.status-correct{color:#2f743b;background:#f2fbf3}.status-badge.status-incorrect{color:#c93b16;background:#fff5f2}.status-badge.status-empty{color:#62727b;background:#f0f4f6}.row-review-btn{color:#117d80;cursor:pointer;box-sizing:border-box;background:#fff;border:1px solid #d7e3e8;border-radius:6px;height:26px;padding:0 10px;font-size:11px;font-weight:800;transition:all .15s}.row-review-btn:hover{background:#f3fbfb;border-color:#9fc9cc}.review-footer{border-top:1px solid #e3edf1;justify-content:space-between;align-items:center;padding-top:14px;display:flex}.results-primary-btn{color:#fff;cursor:pointer;background:#117d80;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:38px;padding:0 16px;font-size:13px;font-weight:800;transition:background .15s;display:inline-flex;box-shadow:0 2px 6px #117d8033}.results-primary-btn:hover{background:#0d6365}.results-primary-btn svg{width:16px;height:16px}.results-secondary-btn{color:#52646d;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:8px;justify-content:center;align-items:center;gap:6px;height:38px;padding:0 14px;font-size:13px;font-weight:800;transition:all .15s;display:inline-flex}.results-secondary-btn:hover{color:#172026;background:#fafcfd;border-color:#aab5ba}.lab-progress-card{width:254px;cursor:default!important;min-width:254px!important}.lab-progress-info{text-align:left;cursor:pointer;flex-direction:column;flex:1;gap:2px;display:flex}.lab-progress-info:hover strong{color:#117d80}.lab-progress-info strong{font-size:12px!important}.lab-progress-bar-container{background:#e3edf1;border-radius:99px;width:100%;height:4px;margin-top:1px;overflow:hidden}.lab-progress-bar{border-radius:inherit;background:#117d80;height:100%;transition:width .3s}.lab-progress-actions{align-items:center;gap:4px;margin-left:6px;display:flex}.lab-progress-action-btn{color:#117d80;cursor:pointer;background:#fff;border:1px solid #d7e3e8;border-radius:6px;place-items:center;width:28px;height:28px;transition:all .15s;display:grid}.lab-progress-action-btn:hover{background:#f3fbfb;border-color:#9fc9cc}@keyframes resultsFadeIn{0%{opacity:0}to{opacity:1}}@keyframes resultsScaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes congratsBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.lab-menu-summary-actions{align-items:center;gap:6px;display:inline-flex}.lab-debug-btn{color:#5e35b1;cursor:pointer;background:#f7f5ff;border:1px solid #dcd3ff;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:800;transition:all .2s;display:inline-flex}.lab-debug-btn:hover{color:#4527a0;background:#ede7f6;border-color:#b39ddb}.lab-debug-btn svg{stroke-width:2.5px;width:12px;height:12px}
