:root{--bg:#0d1117;--panel:#151b24;--panel-2:#1c2430;--line:#2a3442;--line-hover:#3b4a5e;--panel-hover:#232d3b;--text:#e8edf4;--muted:#93a1b3;--accent:#2f9bff;--accent-2:#1d6fc0;--warn:#f0b54a;--radius:10px;--touch:44px;--ui-scale:1;--overlay:#151b24e0;--shadow:#00000073;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}:root[data-theme=light]{--bg:#eef2f7;--panel:#fff;--panel-2:#f1f4f8;--line:#d3dbe5;--line-hover:#a9b7c8;--panel-hover:#e2e9f2;--text:#17202b;--muted:#566578;--accent:#1d72c9;--accent-2:#2f86e0;--warn:#a8690b;--overlay:#ffffffe6;--shadow:#1e2d462e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.topbar,.panel,.view-controls,.view-compact,.navpad,.stage-hint,.loading-badge,.modal{zoom:var(--ui-scale)}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0;overflow:hidden}#root{height:100dvh}button,select,input{font:inherit;color:inherit}button{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:8px;min-height:36px;padding:6px 12px;transition:background .15s,border-color .15s}button:hover{border-color:var(--line-hover);background:var(--panel-hover);color:var(--text)}button.toggle.on:hover{background:var(--accent);color:#fff}button.toggle.on{background:var(--accent-2);border-color:var(--accent);color:#fff;box-shadow:inset 0 2px 4px #00000040}button.primary{background:var(--accent-2);border-color:var(--accent);color:#fff}button.primary:hover{background:var(--accent)}.muted{color:var(--muted)}.tiny{font-size:11px}.splash{height:100%;color:var(--muted);place-items:center;display:grid}.shell{flex-direction:column;height:100%;display:flex}.structure-name,.breadcrumb button,.chip,.learn-list button,.category-name,.activity-bar p,.activity-head strong,.scene-title,.search-results span{overflow-wrap:break-word}.topbar{padding:8px max(14px, env(safe-area-inset-right)) 8px max(14px, env(safe-area-inset-left));padding-top:calc(8px + env(safe-area-inset-top));background:var(--panel);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:12px;min-height:60px;display:flex;position:relative}.brand{flex-direction:column;margin-right:8px;line-height:1.1;display:flex}.brand-name{letter-spacing:.02em;font-weight:700}.module-select{min-height:26px;color:var(--muted);margin-top:2px;padding:1px 6px;font-size:12px}.brand-module{color:var(--muted);font-size:12px}.brand-row{align-items:center;gap:6px;min-width:0;display:flex}.brand-row .module-select{max-width:170px}.brand-row:has(.parent-chip) .module-select{max-width:150px}.topbar .segmented button{white-space:nowrap}.parent-chip{white-space:nowrap;min-height:26px;margin-top:2px;padding:1px 10px;font-size:12px}.nav-back{border:1px solid color-mix(in srgb, var(--accent) 55%, transparent);background:color-mix(in srgb, var(--accent) 12%, var(--panel));max-width:min(260px,30vw);min-height:28px;color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 12px 2px 10px;font-size:13px;font-weight:600;animation:.25s ease-out nav-back-in;display:inline-flex}.nav-back-label{text-overflow:ellipsis;overflow:hidden}.topbar-back{margin-top:2px}.brand-row:has(.topbar-back) .module-select{max-width:140px}@keyframes nav-back-in{0%{opacity:0;transform:translate(-6px)}}.scene-back{text-overflow:ellipsis;white-space:nowrap;max-width:min(340px,60vw);overflow:hidden}.field{flex-direction:column;gap:2px;display:flex}.field-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}select{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;min-height:34px;padding:4px 8px}.segmented{border:1px solid var(--line);border-radius:9px;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid;overflow:hidden}.segmented button{overflow-wrap:break-word;background:0 0;border:none;border-radius:0;min-width:0;min-height:36px;padding:6px 8px;line-height:1.2}.segmented button+button{border-left:1px solid var(--line)}.segmented button.active{background:var(--accent-2);color:#fff}.settings{align-items:center;gap:10px;display:flex}.drawer-settings,.drawer-backdrop{display:none}.icon-btn{width:40px;min-width:40px;padding:0;font-size:18px}.menu-btn{display:none}.search{flex:1;min-width:0;max-width:420px;margin:0 auto;position:relative}.search-toggle,.search-close{display:none}.search input{border:1px solid var(--line);background:var(--panel-2);border-radius:20px;width:100%;min-height:38px;padding:6px 12px}.search input:focus{outline:2px solid var(--accent);outline-offset:0}.search-results{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);max-height:60vh;box-shadow:0 10px 30px var(--shadow);z-index:50;margin:0;padding:4px;list-style:none;position:absolute;top:44px;left:0;right:0;overflow:auto}.search-results li>*{width:100%}.search-results button{text-align:left;min-height:var(--touch);background:0 0;border:none;justify-content:space-between;gap:10px;display:flex}.search-results{overflow-x:hidden}.search-results button span{flex:1;min-width:0}.search-results small{color:var(--muted);text-align:right;align-self:center;max-width:45%}.search-results li.muted{padding:10px}.workspace{flex:1;min-height:0;display:flex;position:relative}.panel{background:var(--panel);border-right:1px solid var(--line);flex-shrink:0;width:300px;overflow-y:auto}.panel-right{border-right:none;border-left:1px solid var(--line);width:360px}.stage{flex:1;min-width:0;position:relative}.viewer-canvas{touch-action:none;inset:0;position:absolute!important}.systems{padding:14px}.systems section{margin-bottom:20px}h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px;font-size:13px}h3{color:var(--muted);margin:14px 0 6px;font-size:13px}.hint{color:var(--muted);margin:0 0 8px;font-size:12px}input[type=range]{width:100%;accent-color:var(--accent);margin-left:0;margin-right:0}.layer-slider{height:28px}.slider-ends{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.section-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.section-head h2{margin:0}.mini-actions{gap:4px;display:flex}.mini-actions button{min-height:32px;padding:2px 10px;font-size:13px}.category-list{margin:0;padding:0;list-style:none}.category-list li{border-radius:8px;padding:2px 6px}.category-list li.on{background:var(--panel-2);margin-bottom:4px}.category-toggle{min-height:var(--touch);cursor:pointer;align-items:center;gap:10px;display:flex}.category-toggle input{width:20px;height:20px;accent-color:var(--accent)}.swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px;display:inline-block}.category-name{flex:1}.category-toggle.sublayer{min-height:38px;padding-left:30px;font-size:14px}.opacity-row{color:var(--muted);align-items:center;gap:8px;padding:0 0 8px 30px;font-size:12px;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.state-box{border:1px solid var(--accent-2);border-radius:var(--radius);padding:10px;font-size:13px}.row{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.offline button{width:100%;min-height:42px}.offline small{margin-top:4px;display:block}.planned{margin:0;padding:0;font-size:13px;list-style:none}.restricted small{padding-left:30px;font-size:11px;display:block}.planned li{border-top:1px dashed var(--line);color:var(--muted);flex-direction:column;padding:6px 0;display:flex}.planned small{opacity:.8;font-size:11px}.view-controls{background:var(--overlay);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px;flex-wrap:wrap;justify-content:center;gap:6px;max-width:calc(100% - 20px);padding:6px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.view-controls button{min-height:40px}.loading-badge{background:#1d6fc0e6;border-radius:20px;padding:6px 14px;font-size:13px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.scene-view{z-index:12;background:var(--bg);animation:.45s scene-in;position:absolute;inset:0}@keyframes scene-in{0%{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}.scene-bar{pointer-events:none;zoom:var(--ui-scale);flex-wrap:wrap;align-items:center;gap:12px;display:flex;position:absolute;top:12px;left:12px;right:12px}.scene-bar>*{pointer-events:auto}.scene-title{background:var(--overlay);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 12px;display:flex}.scene-clock{background:var(--overlay);border:1px solid var(--line);border-radius:10px;align-items:center;gap:6px;margin-left:auto;padding:4px;display:flex}.scene-clock .segmented button{min-height:32px;padding:2px 10px}.rep-badge{border:1px solid;border-radius:10px;padding:2px 8px;font-size:12px}.rep-schematic{color:#e0a63a}.rep-scientific-reconstruction{color:#3fb27f}.rep-macroscopic-model{color:var(--accent)}.rep-measured{color:#4fa3e0}:root[data-theme=light] .rep-schematic{color:#8f5a00}:root[data-theme=light] .rep-scientific-reconstruction,:root[data-theme=light] .feedback.ok{color:#1d7a4e}:root[data-theme=light] .rep-measured{color:#1f5f99}.scene-intro{background:var(--overlay);border:1px solid var(--line);max-width:min(560px,90%);min-height:0;color:var(--text);text-align:center;zoom:var(--ui-scale);border-radius:12px;padding:10px 16px;line-height:1.45;animation:.6s scene-in;position:absolute;bottom:60px;left:50%;translate:-50%}.scale-bar{right:max(14px, env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));background:var(--overlay);color:var(--text);font-size:calc(12px * var(--ui-scale,1));font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;align-items:flex-end;gap:2px;padding:4px 8px 6px;display:flex;position:absolute}.scale-bar[hidden]{display:none}.scale-bar-line{border:2px solid;border-top:none;height:7px}.scene-scale{right:max(14px, env(safe-area-inset-right));bottom:calc(12px + env(safe-area-inset-bottom));pointer-events:none;text-align:right;max-width:min(420px,55%);color:var(--muted);zoom:var(--ui-scale);flex-direction:column;align-items:flex-end;gap:1px;font-size:12px;display:flex;position:absolute}.scene-scale-compare{color:var(--text);font-weight:600}.scene-scale button{pointer-events:auto}.size-text.block{align-items:inherit;flex-direction:column;display:inline-flex}.size-compare{overflow-wrap:anywhere}.size-text.block .size-compare{display:block}.size-factor{color:var(--muted);white-space:nowrap;font-weight:400}.size-unit-btn{width:20px;min-width:0;height:20px;min-height:0;color:var(--accent);vertical-align:middle;cursor:help;background:0 0;border:none;border-radius:50%;margin:0 2px;padding:0;font-size:13px;line-height:1}@media (pointer:coarse){.size-unit-btn{position:relative}.size-unit-btn:after{content:"";position:absolute;inset:-12px}}.size-unit-btn.on{background:color-mix(in srgb, var(--accent) 18%, transparent)}.size-unit-hint{color:var(--muted);margin-top:2px;font-size:.9em;font-weight:400;display:block}.bar-compare{flex-basis:100%;font-size:12px;font-weight:500;line-height:1.25}:is(.cl-bar:has(.bar-compare),.zw-bar:has(.bar-compare)){flex-wrap:wrap}.scale-bar-compare{text-align:right;max-width:220px;font-weight:600;line-height:1.2}.active-chip{border-color:var(--accent);background:var(--accent-2);color:#fff}.learn-btn{border-color:var(--accent);align-items:center;gap:6px;min-height:40px;display:flex}.activity-bar{z-index:14;background:var(--overlay);border:1px solid var(--accent);width:min(620px,100% - 24px);box-shadow:0 8px 28px var(--shadow);zoom:var(--ui-scale);border-radius:14px;padding:12px 14px;position:absolute;bottom:74px;left:50%;transform:translate(-50%)}.activity-head{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.activity-head strong{min-width:0}.activity-head .icon-btn{width:36px;min-width:36px;min-height:36px}.activity-head .activity-min-btn{margin-left:auto}.activity-bar p{margin:8px 0;line-height:1.5}.activity-bar .question{font-size:20px;font-weight:700}.activity-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.activity-actions button{min-height:42px}.score{font-weight:700}.feedback.ok{color:#3fb27f;font-weight:700}.feedback.ko{color:var(--warn)}.learn-list{margin:0 0 10px;padding:0;list-style:none}.learn-list button{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin:4px 0;padding:10px 12px;display:flex}.hover-label{z-index:15;color:#fff;max-width:320px;font-size:calc(14px * var(--ui-scale));pointer-events:none;width:max-content;max-width:min(calc(300px * var(--ui-scale)), 70vw);white-space:normal;overflow-wrap:anywhere;opacity:0;background:#0d1117eb;border:1px solid #ffb347;border-radius:8px;padding:6px 10px;font-weight:600;transition:opacity 80ms;position:absolute;top:0;left:0}.hover-label.visible{opacity:1}.hover-part{color:#ffd79a;margin-top:2px;font-size:12px;font-weight:500}.hover-layer{color:#b8c4d3;align-items:center;gap:6px;margin-top:2px;font-size:12px;font-weight:400;display:flex}.stage-hint p{margin:0 0 6px}.peel-hint{opacity:.8;font-size:12px}@media (hover:none){.peel-hint{display:none}}.stage-hint{max-width:280px;color:var(--muted);pointer-events:none;font-size:13px;position:absolute;top:14px;left:14px}.info{padding:16px 18px 24px;position:relative}.info.empty{color:var(--muted);text-align:center;padding-top:40px}.close-btn{width:36px;padding:0;font-size:20px;position:absolute;top:10px;right:10px}.breadcrumb{flex-wrap:wrap;gap:4px;margin-bottom:6px;padding-right:40px;display:flex}.breadcrumb button{min-height:28px;color:var(--muted);background:0 0;padding:2px 8px;font-size:12px}.breadcrumb button:after{content:" ›"}.structure-name{text-transform:none;letter-spacing:0;color:var(--text);margin:4px 40px 4px 0;font-size:24px;line-height:1.2}.speak-btn{vertical-align:middle;border-radius:50%;width:34px;height:34px;min-height:0;margin-left:8px;padding:0;font-size:16px}.speak-btn.small{width:28px;height:28px;margin-left:2px;font-size:13px}.speak-btn:disabled{opacity:.35;cursor:not-allowed}.structure-name .side{color:var(--muted);font-size:16px;font-weight:400}.scientific,.part-of{margin:2px 0;font-size:14px}button.link{min-height:0;color:var(--accent);font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.latin{margin:2px 0;font-size:14px}.warn{color:var(--warn);margin:2px 0;font-size:12px}.system-tag{color:var(--muted);align-items:center;gap:6px;margin:6px 0 12px;font-size:13px;display:flex}.actions{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.actions button{min-height:40px}.description p{line-height:1.55}.kids-text{font-size:19px;line-height:1.6!important}.chips{flex-wrap:wrap;gap:6px;display:flex}.area-chip{min-height:40px;font-size:14px}.chip-dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-right:6px}.chip{text-align:left;border-radius:16px;max-width:100%;min-height:32px;padding:4px 10px;font-size:13px}.chip.xlink{white-space:normal;border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 12%, var(--panel-2));padding:6px 12px;line-height:1.3}.chip.xlink:hover{border-color:var(--accent)}.xlink-module{font-weight:700}.chip.xlink-back{background:var(--panel-2);border-style:dashed;font-weight:600}.fallback{border-style:dashed;font-style:italic}.names div{margin:2px 0;font-size:14px}.meta{border-top:1px solid var(--line);margin-top:20px;padding-top:10px;font-size:12px}.meta p{margin:4px 0}.meta ul{padding-left:18px}.meta li{overflow-wrap:anywhere}.badge{color:var(--warn);background:#f0b54a26;border-radius:6px;padding:3px 8px;display:inline-block}details summary{cursor:pointer;color:var(--muted)}.modal-backdrop{z-index:100;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:#0009;place-items:center;display:grid;position:fixed;inset:0}.modal{overscroll-behavior:contain;background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(640px,100%);max-height:85dvh;padding:20px;overflow:auto}.prefs .pref{margin:14px 0}.pref-label{color:var(--muted);margin-bottom:6px;font-size:13px}.prefs .segmented{flex-wrap:wrap;display:inline-flex}.prefs small{margin-top:4px;display:block}.toggle-row{min-height:var(--touch);cursor:pointer;align-items:center;gap:10px;display:flex}.toggle-row input{width:20px;height:20px;accent-color:var(--accent)}.credits{padding:0;list-style:none}.credits li{border-bottom:1px solid var(--line);padding:8px 0}.credits a{color:var(--accent)}.license{background:var(--panel-2);color:var(--muted);border-radius:4px;padding:1px 6px;font-size:12px}.panel-right{position:relative}.sheet-bar{z-index:3;height:0;position:sticky;top:0}.sheet-toggle{width:40px;min-width:40px;height:40px;min-height:0;padding:0;font-size:16px;position:absolute;top:10px;right:56px}.sheet-handle{cursor:grab;touch-action:none;background:0 0;border:none;border-radius:0 0 12px 12px;place-items:center;width:140px;height:30px;min-height:0;padding:0;display:grid;position:absolute;top:0;left:50%;transform:translate(-50%)}.sheet-handle:hover{background:0 0}.sheet-grip{background:var(--muted);opacity:.7;border-radius:3px;width:44px;height:5px}.panel-right.open .info:before{content:"";float:right;width:96px;height:40px}.panel-right.open .breadcrumb{padding-right:0;display:block}.panel-right.open .breadcrumb button{margin:0 4px 4px 0}.panel-right.open .structure-name{margin-right:0}.panel-right.sheet-peek{cursor:pointer;overflow:hidden}.panel-right.sheet-peek .info>:not(.close-btn,.structure-name){display:none}.panel-right.sheet-peek .info{padding-bottom:12px}.panel-right.sheet-peek .structure-name{margin:0;font-size:18px}.overflow{display:none;position:relative}.overflow-menu{z-index:60;background:var(--panel);border:1px solid var(--line);min-width:210px;box-shadow:0 10px 30px var(--shadow);border-radius:12px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.overflow-menu button{min-height:var(--touch);text-align:left;background:0 0;border:none;align-items:center;gap:12px;display:flex}.overflow-icon{text-align:center;width:24px;font-size:18px}.overflow-menu button:hover{background:var(--panel-2)}.navpad{top:10px;right:max(10px, env(safe-area-inset-right));z-index:12;background:var(--overlay);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px var(--shadow);-webkit-user-select:none;user-select:none;touch-action:none;border-radius:14px;padding:4px;position:absolute}.navpad.in-scene{top:calc(var(--scene-bar-bottom,54px) + 8px)}.navpad-grid{grid-template-columns:repeat(3,40px);grid-auto-rows:40px;gap:3px;display:grid}.navpad button{border-radius:10px;width:100%;height:100%;min-height:0;padding:0;font-size:17px;line-height:1}.navpad .nav-home{color:var(--accent);font-size:20px}.navpad .nav-fold{color:var(--muted);background:0 0;border-color:#0000;font-size:18px}.navpad.folded{box-shadow:none;background:0 0;border:none;padding:0}.navpad.folded button{width:var(--touch);height:var(--touch);background:var(--overlay);border-radius:12px;font-size:20px}@media (pointer:coarse){.navpad-grid{grid-template-columns:repeat(3, var(--touch));grid-auto-rows:var(--touch)}}.view-compact{top:10px;left:max(10px, env(safe-area-inset-left));z-index:13;gap:6px;display:none;position:absolute}.view-compact>.icon-btn{width:var(--touch);min-width:var(--touch);height:var(--touch);min-height:var(--touch);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:12px}.view-compact>.icon-btn:not(.primary){background:var(--overlay)}.view-compact>.view-toggle.on{border-color:var(--accent)}.view-menu{top:calc(var(--touch) + 6px);background:var(--panel);border:1px solid var(--line);min-width:170px;box-shadow:0 10px 30px var(--shadow);border-radius:12px;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;left:0}.view-menu button{min-height:var(--touch);text-align:left;background:0 0;border:none}.view-menu button:hover{background:var(--panel-2)}.activity-bar.minimized{border-radius:999px;align-items:center;gap:6px;width:max-content;max-width:calc(100% - 24px);padding:5px;display:flex}.activity-bar.minimized button{min-height:var(--touch);border-radius:999px}.activity-bar.minimized>button:not(.activity-expand){width:var(--touch);min-width:var(--touch);padding:0}.activity-expand{text-align:left;align-items:center;gap:8px;min-width:0;font-weight:700;display:flex}.activity-pill-text{overflow-wrap:break-word;min-width:0;font-weight:600}@media (width>=1200px){.search{min-width:180px}.variant-field select{max-width:240px}}@media (width<=1199px){.menu-btn{display:inline-block}.topbar{padding-top:calc(6px + env(safe-area-inset-top));gap:8px;min-height:52px;padding-bottom:6px}.brand-module,.topbar-settings{display:none}.drawer-settings{border-bottom:1px solid var(--line);flex-wrap:wrap;margin-bottom:18px;padding-bottom:14px;display:flex}.drawer-settings .variant-field{flex-basis:100%}.drawer-settings .variant-field .field-label{display:none}.drawer-settings select{width:100%}.drawer-backdrop{z-index:31;background:#00000059;display:block;position:absolute;inset:0}.search{margin:0}.panel-left{z-index:32;width:min(320px, calc(88vw / var(--ui-scale)));padding-left:env(safe-area-inset-left);padding-bottom:env(safe-area-inset-bottom);transition:transform .25s;position:absolute;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:0 0 30px #00000080}.panel-left.open{transform:none}.panel-right{width:320px}.learn-label,.scene-intro,.scene-title{display:none}}@media (width>=900px),(width>=640px) and (orientation:landscape){.panel-right{padding-right:env(safe-area-inset-right);transition:width .25s,opacity .2s}.panel-right:not(.open){opacity:0;border-left:none;width:0;padding:0;overflow:hidden}.panel-right:not(.open)>*{visibility:hidden}.panel-right.sheet-peek{width:calc(60px + env(safe-area-inset-right))}.panel-right.open.sheet-peek .info{justify-content:center;height:100%;padding:112px 0 12px;display:flex}.panel-right.open.sheet-peek .sheet-toggle,.panel-right.open.sheet-peek .close-btn{left:8px;right:auto}.panel-right.open.sheet-peek .sheet-toggle{top:8px}.panel-right.open.sheet-peek .close-btn{top:58px}.panel-right.open.sheet-peek .info:before{display:none}.panel-right.open.sheet-peek .info>.structure-name{writing-mode:vertical-rl;max-height:100%;margin:0;font-size:15px;line-height:1.15}.panel-right.open.sheet-peek .structure-name .speak-btn{display:none}}@media (width<=899px) and (orientation:landscape) and (width>=640px){.panel-right{width:290px}.panel-right .structure-name{font-size:20px}}@media (width<=899px) and (orientation:portrait),(width<=639px){.panel-right{z-index:30;width:auto;height:46%;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);border-left:none;border-top:1px solid var(--line);box-shadow:0 -8px 30px var(--shadow);border-radius:16px 16px 0 0;transition:transform .25s,height .25s;position:absolute;bottom:0;left:0;right:0;transform:translateY(105%)}.panel-right:not(.open){display:block}.panel-right.open{transform:none}.panel-right.sheet-full{height:92%}.panel-right.sheet-peek{height:auto;max-height:40%}.panel-right .info{padding-top:30px}.panel-right.open .info:before{height:26px}.panel-right .close-btn,.panel-right .sheet-toggle{top:8px}.stage-hint,.view-controls{display:none}.view-compact{display:flex}.structure-name{font-size:20px}.kids-text{font-size:17px}.activity-bar{bottom:calc(10px + env(safe-area-inset-bottom));width:calc(100% - 16px)}.shell.activity-on .panel-right.open{transform:translateY(105%)}}@media (width<=900px){.stage-hint{display:none}}@media (width<=599px){.topbar{grid-template-columns:var(--touch) minmax(0, 1fr) var(--touch) var(--touch);min-height:0;padding:calc(6px + env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) 6px max(8px, env(safe-area-inset-left));grid-template-areas:"menu module search more""back back back learn";align-items:center;gap:0 6px;display:grid}.topbar .brand,.topbar .brand-row{display:contents}.topbar .menu-btn{grid-area:menu}.topbar .brand-home{display:none}.topbar .brand-row .module-select,.topbar .brand-row .brand-module{grid-area:module;width:100%;max-width:none}.topbar .brand-row .module-select{min-height:var(--touch);color:var(--text);margin:0;padding:4px 8px;font-size:15px;font-weight:600}.topbar .search{grid-area:search}.topbar .overflow{grid-area:more}.topbar .topbar-back,.topbar .parent-chip{grid-area:back;justify-self:start;max-width:100%;min-height:36px;margin:6px 0 0;font-size:14px;position:relative}.topbar .topbar-back:after,.topbar .parent-chip:after{content:"";position:absolute;inset:-4px -2px}.topbar:has(.topbar-back,.parent-chip) .learn-btn.topbar-secondary{width:var(--touch);min-width:var(--touch);grid-area:learn;place-items:center;min-height:36px;margin:6px 0 0;padding:0;font-size:18px;display:grid}.search{max-width:none;position:static}.search-toggle{place-items:center;font-size:17px;display:grid}.search:not(.expanded) input{display:none}.topbar .search.expanded{z-index:5;top:calc(6px + env(safe-area-inset-top));left:max(8px, env(safe-area-inset-left));right:max(8px, env(safe-area-inset-right));background:var(--panel);box-shadow:0 0 0 6px var(--panel);grid-area:auto;gap:6px;display:flex;position:absolute}.search.expanded .search-toggle{display:none}.search.expanded input{flex:1;min-width:0;padding:6px 14px;font-size:16px}.search.expanded input::-webkit-search-cancel-button{display:none}.search.expanded .search-close{place-items:center;font-size:22px;display:grid}.topbar .topbar-secondary{display:none}.overflow{display:block}.search-results{top:calc(56px + env(safe-area-inset-top));max-height:60dvh;position:fixed;left:8px;right:8px}.search-results button{flex-direction:column;align-items:flex-start;gap:0}.search-results small{text-align:left;align-self:flex-start;max-width:none}.modal-backdrop{padding:8px max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));place-items:end center}.modal{max-height:calc(100dvh - 16px);padding:16px}.scene-clock-label{display:none}}@media (height<=559px){.topbar{min-height:44px;padding-top:calc(4px + env(safe-area-inset-top));padding-bottom:4px}.stage-hint,.view-controls,.scene-intro,.scene-title{display:none}.view-compact{display:flex}.scene-clock-label{display:none}.activity-bar{bottom:calc(8px + env(safe-area-inset-bottom));padding:6px 10px}.activity-bar p{margin:4px 0}.activity-bar .question,.activity-bar .kids-text{font-size:16px}.panel-right .structure-name{font-size:19px}}@media (pointer:coarse){button,select,.segmented button,.scene-clock .segmented button,.view-controls button,.actions button,.activity-actions button{min-height:var(--touch)}.module-select{min-height:32px}.search input{min-height:var(--touch)}.icon-btn,.close-btn,.sheet-toggle,.activity-head .icon-btn{width:var(--touch);min-width:var(--touch);height:var(--touch);min-height:var(--touch)}.sheet-toggle{right:58px}.panel-right.sheet-peek .sheet-toggle{right:54px}.chip,.mini-actions button{min-height:40px}.breadcrumb button{min-height:36px}.speak-btn{width:var(--touch);height:var(--touch)}.speak-btn.small{width:36px;height:36px}.category-toggle.sublayer{min-height:var(--touch)}}@media (pointer:coarse) and (height<=559px){.activity-actions button{min-height:40px}}@media (hover:none){.hover-label{display:none}}.variant-switch{top:12px;left:max(14px, env(safe-area-inset-left));z-index:11;zoom:var(--ui-scale);flex-direction:column;align-items:flex-start;gap:4px;max-width:min(360px,100% - 180px);display:flex;position:absolute}.variant-switch .segmented{background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px var(--shadow)}.variant-switch .segmented button{min-height:40px;font-weight:600}.variant-hint{background:var(--overlay);color:var(--muted);border-radius:8px;margin:0;padding:3px 8px;font-size:12px;line-height:1.3}.stage:has(.variant-switch) .stage-hint{top:104px}@media (width<=899px) and (orientation:portrait),(width<=639px),(height<=559px){.variant-switch{top:10px;left:calc(max(10px, env(safe-area-inset-left)) + 2 * var(--touch) + 14px);max-width:calc(100% - 2 * var(--touch) - 90px)}.variant-switch .segmented button{min-height:var(--touch);padding:4px 10px}}.structure-labels{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:hidden}.structure-labels svg{width:100%;height:100%;position:absolute;inset:0}.structure-labels line{stroke:var(--text);stroke-opacity:.7;stroke-width:1.5px}.structure-labels circle{fill:var(--text)}.structure-tag{min-height:0;max-width:calc(150px * var(--ui-scale));border:2px solid color-mix(in srgb, var(--tag-color) 70%, var(--text));background:var(--overlay);width:max-content;color:var(--text);font-size:calc(15px * var(--ui-scale));text-align:left;pointer-events:auto;box-shadow:0 2px 8px var(--shadow);will-change:transform;border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 7px;font-weight:700;line-height:1.15;display:flex;position:absolute;top:0;left:0}.structure-tag[hidden]{display:none}.structure-tag:hover{border-color:var(--tag-color);color:var(--text);background:var(--panel)}.structure-tag.selected{background:var(--accent-2);border-color:var(--accent);color:#fff}.structure-tag-dot{background:var(--tag-color);width:12px;height:12px;box-shadow:0 0 0 1px var(--line);border-radius:50%;flex:none}@media (pointer:coarse){.structure-tag{min-height:32px}}@media (width<=520px){.structure-tag{font-size:calc(13px * var(--ui-scale));max-width:calc(130px * var(--ui-scale));padding:3px 8px 3px 6px}.structure-tag-dot{width:10px;height:10px}}.brand-home{min-height:0;font:inherit;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-weight:700}.brand-home:hover{color:var(--accent);background:0 0}.landing{background:radial-gradient(60rem 30rem at 10% -10%, #8b6cff2e, transparent 70%), radial-gradient(50rem 28rem at 100% 0%, #19a7c929, transparent 70%), var(--bg);height:100%;overflow-y:auto}.lp-top{zoom:var(--ui-scale);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;max-width:1180px;margin:0 auto;padding:14px 20px;display:flex}.lp-brand{letter-spacing:.01em;align-items:center;gap:8px;font-size:20px;font-weight:800;display:flex}.lp-logo{font-size:26px}.lp-settings{align-items:center;gap:8px;display:flex}.lp-settings .segmented button{white-space:nowrap;padding:6px 12px}.lp-main{zoom:var(--ui-scale);max-width:1180px;margin:0 auto;padding:8px 20px 32px}.lp-hero{padding:18px 0 22px}.lp-hero h1{letter-spacing:-.01em;margin:0 0 6px;font-size:clamp(26px,4.2vw,42px);line-height:1.1}.lp-hero p{color:var(--muted);margin:0;font-size:clamp(15px,1.8vw,18px)}.lp-grid{grid-template-columns:1fr;gap:16px;display:grid}.lp-card{--card:var(--accent);border:1px solid color-mix(in srgb, var(--card) 35%, var(--line));background:radial-gradient(22rem 14rem at 100% 0%, color-mix(in srgb, var(--card) 26%, transparent), transparent 75%), linear-gradient(160deg, color-mix(in srgb, var(--card) 14%, var(--panel)), var(--panel) 70%);box-shadow:0 6px 20px var(--shadow);border-radius:18px;flex-direction:column;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden}.lp-card:hover{border-color:color-mix(in srgb, var(--card) 70%, var(--line));box-shadow:0 12px 30px var(--shadow);transform:translateY(-3px)}.lp-card-main{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;flex:1;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;width:100%;min-height:132px;padding:20px;display:grid}.lp-card-main:hover{background:0 0}.lp-card-main:focus-visible{outline:3px solid var(--card);outline-offset:-3px}.lp-icon{background:color-mix(in srgb, var(--card) 22%, var(--panel-2));width:76px;height:76px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--card) 40%, transparent);border-radius:22px;place-items:center;font-size:42px;display:grid}.lp-text{flex-direction:column;gap:4px;min-width:0;display:flex}.lp-title{font-size:22px;font-weight:800;line-height:1.15}.lp-tagline{font-size:15px;line-height:1.35}.lp-sub{color:var(--muted);font-size:13px;line-height:1.35}.lp-go{background:var(--card);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-size:20px;font-weight:700;transition:transform .18s;display:grid}.lp-card:hover .lp-go{transform:translate(3px)}.lp-last{background:color-mix(in srgb, var(--card) 85%, #000);color:#fff;border-radius:999px;align-self:flex-start;margin-bottom:2px;padding:2px 9px;font-size:11px;font-weight:700}.lp-chapters{flex-wrap:wrap;gap:8px;padding:0 20px 18px;display:flex}.lp-chapter{border-color:color-mix(in srgb, var(--card) 45%, var(--line))}.lp-foot{color:var(--muted);text-align:center;margin:28px 0 0;font-size:13px}.landing.kids .lp-icon{width:88px;height:88px;font-size:50px}.landing.kids .lp-title{font-size:25px}.landing.kids .lp-tagline{font-size:17px}@media (width>=700px){.lp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-grid.odd .lp-card:last-child{grid-column:1/-1}}@media (width>=1040px){.lp-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.lp-card,.lp-grid.odd .lp-card:last-child{grid-column:span 2}.lp-card.wide{grid-column:span 3}.lp-card-main{min-height:170px}}@media (width<=520px){.lp-top{padding:12px 16px}.lp-main{padding:4px 16px 28px}.lp-card-main{gap:12px;min-height:0;padding:16px}.lp-icon,.landing.kids .lp-icon{border-radius:18px;width:62px;height:62px;font-size:34px}.lp-go{display:none}}@media (height<=559px){.lp-top{padding-top:8px;padding-bottom:8px}.lp-hero{padding:2px 0 12px}.lp-hero h1{font-size:24px}.lp-hero p{font-size:14px}.lp-card-main,.landing.kids .lp-card-main{gap:12px;min-height:0;padding:14px 16px}.lp-icon,.landing.kids .lp-icon{border-radius:18px;width:60px;height:60px;font-size:34px}}@media (prefers-reduced-motion:reduce){.lp-card,.lp-go{transition:none}.lp-card:hover{transform:none}}.modal-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.modal-close{display:none}@media (width<=599px),(height<=559px){.brand-label{display:none}}@media (height<=559px) and (width>=600px){.topbar .brand-home{width:var(--touch);min-width:var(--touch);height:var(--touch);border:1px solid var(--line);background:var(--panel-2);border-radius:8px;align-self:center;place-items:center;font-size:19px;display:grid}.topbar .brand-home:hover{background:var(--panel-hover)}.brand{flex-direction:row;align-items:center;gap:6px;min-width:0}.topbar .brand-row .module-select{min-height:var(--touch);color:var(--text);margin:0;font-size:14px}.topbar-back,.parent-chip{margin-top:0}.stage:has(>.viewer-canvas,>.scene-view,>.astro-root)>.activity-bar:not(.minimized){left:auto;right:max(8px, env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));overscroll-behavior:contain;width:min(340px,42%);max-height:calc(100% - 16px);overflow-y:auto;transform:none}.activity-head{flex-wrap:nowrap}.activity-head strong{flex:auto;font-size:14px;line-height:1.25}.activity-head>.muted,.activity-head>.score{white-space:nowrap;flex:none;font-size:13px}.activity-head .activity-min-btn{margin-left:0}.shell.activity-on .panel-right.open{opacity:0;border-left:none;width:0;padding:0;overflow:hidden}}@media (width<=599px){.modal:has(>.modal-head){padding-top:0}.modal-head{z-index:2;background:var(--panel);border-bottom:1px solid var(--line);margin:0 -16px 10px;padding:8px 8px 8px 16px;position:sticky;top:0}.modal-head h2{margin:0}.modal-close{place-items:center;font-size:22px;display:grid}.activity-bar{border-radius:12px;padding:8px 10px}.activity-head strong{font-size:14px;line-height:1.25}.activity-head>.muted,.activity-head>.score{font-size:13px}.activity-bar p{margin:4px 0;line-height:1.4}.activity-bar .kids-text{font-size:16px;line-height:1.4!important}.activity-bar .question{font-size:18px}.activity-actions{gap:6px}.activity-head{flex-wrap:nowrap}.activity-head strong{flex:auto}.activity-head>.muted,.activity-head>.score{white-space:nowrap;flex:none}.activity-head .activity-min-btn{margin-left:0}.scene-bar{top:10px;left:max(10px, env(safe-area-inset-left));right:calc(max(10px, env(safe-area-inset-right)) + var(--touch) + 8px);gap:8px}.scene-back{max-width:100%}.scene-clock{margin-left:0}.navpad.in-scene.folded{top:10px}.scene-scale{bottom:calc(10px + var(--sheet-cover,0px) / var(--ui-scale));background:var(--overlay);border-radius:8px;max-width:72%;padding:3px 8px}.scale-bar{bottom:calc(14px + var(--sheet-cover,0px))}.variant-switch{top:calc(18px + var(--touch));left:max(10px, env(safe-area-inset-left));max-width:calc(100% - 20px)}.variant-switch .segmented{scrollbar-width:none;grid-auto-columns:auto;max-width:100%;overflow-x:auto}.variant-switch .segmented button{white-space:nowrap;padding:4px 10px}}
