
:root{color-scheme:dark;--ink:#eef6f5;--muted:#94aaaF;--line:#263840;--accent:#91d9d9}*{box-sizing:border-box}body{margin:0;background:#08131b;color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button,select{border:1px solid var(--line);background:#112630;color:var(--ink);border-radius:8px;padding:8px 12px;cursor:pointer}button:hover,button:focus-visible{border-color:var(--accent)}button[aria-pressed=true]{background:#20424c;border-color:var(--accent)}header{padding:22px 30px 12px;display:flex;align-items:center;justify-content:space-between;gap:20px}h1{font-size:25px;line-height:1.1;font-weight:550;margin:5px 0}.kicker{font-size:10px;letter-spacing:2px;color:var(--accent);text-transform:uppercase}.muted{color:var(--muted)}.tabs{display:flex;gap:8px}main{display:grid;grid-template-columns:minmax(0,1fr) 370px;height:calc(100vh - 110px);min-height:610px}.stage{position:relative;min-width:0;background:radial-gradient(ellipse at 50% 40%,#172c38 0%,#08131b 65%);overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none}.toolbar{position:absolute;left:25px;top:12px;display:flex;gap:8px;z-index:3}.hint{position:absolute;left:26px;bottom:22px;right:20px;font-size:12px;color:var(--muted);max-width:650px;pointer-events:none}.stats{position:absolute;right:25px;top:15px;font-size:12px;text-align:right;color:var(--muted)}.stats b{font-size:25px;font-weight:450;color:var(--ink)}aside{border-left:1px solid var(--line);padding:22px;overflow:auto;background:#0b1922}.card{padding:18px;background:#122630;border:1px solid #29444e;border-radius:12px;margin:15px 0}.card h2{font-size:21px;line-height:1.22;margin:8px 0 14px}.markers{font-size:15px;color:#afdfdf;line-height:1.65}.note{font-size:12px;color:#b2c1c5;margin-top:12px}.source{font-size:12px;color:#aacddf}label{display:block;font-size:12px;color:var(--muted);margin:13px 0 5px}input,select{width:100%;padding:9px 11px;background:#07141c;border:1px solid #2d424c;color:var(--ink);border-radius:7px}.endpoint{width:100%;display:flex;gap:11px;text-align:left;margin:5px 0;padding:9px 10px;background:transparent;line-height:1.25}.endpoint small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.number{color:var(--accent);font-size:12px;min-width:20px;padding-top:2px}.endpoint.active{background:#18323e;border-color:#6894a5}.hotspot{position:absolute;width:27px;height:27px;border-radius:50%;padding:0;font-size:10px;background:#10242cbb;border-color:#93cedc;transform:translate(-50%,-50%);color:#fff;z-index:2}.hotspot.selected{background:#dceeed;color:#10242c;box-shadow:0 0 20px #88d8df}.feature{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.feature b{font-size:13px;color:#d8e8e8}.feature p{margin:5px 0;color:var(--muted)}details{margin-top:20px}summary{cursor:pointer;color:var(--accent);font-size:13px}.status{position:absolute;inset:45% 0 auto;text-align:center;color:#bbd6db}.hidden{display:none!important}a{color:#9bccdf}footer{font-size:11px;color:var(--muted);padding:12px 0}.progress{height:2px;background:#203642;margin-top:12px}.progress div{height:100%;width:0;background:#9fdadd}#tourDescription{font-size:11px;margin:8px 0;color:var(--muted)}
@media(max-width:800px){header{padding:15px;display:block}h1{font-size:22px}.tabs{margin-top:12px}main{display:flex;flex-direction:column;height:auto;min-height:0}.stage{height:62vh;min-height:390px}aside{border-left:0;border-top:1px solid var(--line);padding:18px}.toolbar{left:15px;top:8px}.stats{right:15px;font-size:10px}.stats b{font-size:20px}.hint{left:15px;bottom:12px;font-size:10px}.hotspot{width:25px;height:25px}.card{margin-top:8px}}

.toolbar{flex-wrap:wrap;max-width:70%}.transition-point{width:18px;height:18px;border-color:#e4bc7d;background:#53432b;color:#ffdfa3;font-size:18px;line-height:10px}
.scene-label{position:absolute;z-index:3;transform:translate(-50%,-100%);font-size:12px;line-height:1.3;max-width:250px;padding:7px 11px;text-align:center;box-shadow:0 4px 20px #0008;background:#10252fe8;pointer-events:auto}.scene-label[hidden]{display:none!important}.scene-label.root{border-color:#d7ac70;color:#ffdda9}.scene-label.edge{border-color:#9fb9ba;max-width:240px;font-size:11px}
.lineage-step{display:block;width:100%;text-align:left;font-size:11px;padding:7px 10px;margin:3px 0;border-left:2px solid #bd9d67;background:#12242d}.lineage-step+.lineage-step:before{content:'↓ ';color:#9fcbd3}.from-to{font-size:12px;color:#c9c7ab;margin:8px 0 12px}
textarea{width:100%;min-height:100px;padding:10px;border-radius:7px;border:1px solid #35505a;background:#07141c;color:#e9f4f4;font:13px/1.5 inherit;resize:vertical}.edit-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.edit-actions button{font-size:12px}.legend{color:#d9bd8b}.stats{pointer-events:none}#editor{margin:15px 0;padding:12px;border:1px solid #30434b;border-radius:8px}#markerSource{display:block;margin-top:5px}#markerSource[hidden]{display:none}
@media(max-width:800px){.toolbar{max-width:72%;gap:5px}.toolbar button{font-size:11px;padding:6px 8px}.scene-label{max-width:180px;font-size:10px}.scene-label.edge{max-width:155px;font-size:10px}.hint{max-width:92%}}
/* Public explorer: readable controls, bounded iframe layout, deliberate motion. */
:root{font-size:16px}body{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;font-size:1rem}header{flex:0 0 auto;padding:18px 24px 14px}h1{font-size:1.55rem}.kicker{font-size:.7rem;letter-spacing:1.5px}#subtitle{font-size:.8rem;color:#b0c5cb;max-width:800px;margin-top:7px;line-height:1.5}.tabs button,button,input,select{min-height:44px}.tabs{align-self:flex-start}main{flex:1;min-height:0;height:auto;grid-template-columns:minmax(0,1fr) 360px}.stage{height:100%;min-height:0}aside{min-height:0;padding:20px;overscroll-behavior:contain;scrollbar-color:#507079 #0b1922;scrollbar-width:thin}.toolbar{max-width:calc(100% - 110px);left:20px;top:10px;gap:6px}.toolbar button{font-size:.8rem;min-height:44px;padding:8px 11px}.stats{right:20px;top:12px;font-size:.72rem;max-width:100px}.stats b{font-size:1.4rem}.card{margin:12px 0;padding:16px}.card h2{font-size:1.25rem}.markers{font-size:1rem}.note,.source,.feature,.feature p{font-size:.85rem;line-height:1.55}.feature b{font-size:.95rem}label,summary{font-size:.875rem}label{margin-top:16px}.endpoint{min-height:58px;padding:10px;font-size:.9rem}.endpoint small{font-size:.8rem;line-height:1.4}.number{font-size:.8rem;min-width:26px}.lineage-step{font-size:.85rem;min-height:44px}.from-to{font-size:.875rem}.hint{font-size:.73rem;line-height:1.55;left:22px;bottom:16px;right:20px;max-width:700px;background:#08131be8;padding:7px 9px;border-radius:6px}footer{font-size:.8rem}.hotspot{width:31px;height:31px;font-size:.72rem}.transition-point{width:26px;height:26px;font-size:1rem}.scene-label{font-size:.78rem;max-width:265px;min-height:36px}.scene-label.edge{font-size:.75rem;max-width:220px}.scene-label.root{max-width:290px}.author-only[hidden],#editor[hidden]{display:none!important}.import-label{margin:0!important}#uploadLabels{width:185px;font-size:.75rem}#editDescription{font-family:inherit;font-size:.9rem}.result-count{font-size:.8rem;color:#a8bfc4;margin:12px 0 7px}.fallback{position:absolute;inset:0;background:#08131b;z-index:3;display:grid;place-items:center}.fallback[hidden]{display:none}.fallback img{width:100%;height:100%;object-fit:contain;opacity:.75}.fallback-card{position:absolute;inset:auto 5% 6%;padding:20px;background:#0b1c26ed;border:1px solid #587680;border-radius:12px;max-width:540px}.fallback-card[hidden]{display:none}.fallback-card h2{font-size:1.2rem;margin:0}.fallback-card p{font-size:.9rem}.fallback-card a{display:block;margin:10px 0;min-height:30px}.status{z-index:4;pointer-events:none;inset:40% 5% auto}.status span{background:#102631;padding:12px;border-radius:8px}.graphics-failed .toolbar,.graphics-failed #canvas,.graphics-failed .stats,.graphics-failed .hint,.graphics-failed .scene-label{visibility:hidden}.graphics-failed main{grid-template-columns:1fr}.graphics-failed aside{display:none}.sr-only,.skip-link{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip-link:focus{clip-path:none;width:auto;height:auto;z-index:20;left:12px;top:10px;background:#f1ffff;color:#10222a;padding:12px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,canvas:focus-visible{outline:3px solid #f8d995;outline-offset:3px}.noscript{position:fixed;z-index:8;inset:auto 20px 20px;background:#132e38;padding:20px}.atlas-locked .tabs{display:none}.custom-badge{font-size:.75rem;color:#ffdda9;margin:8px 0;padding:6px 9px;border:1px solid #957b4c;border-radius:5px}.embedded header{padding:14px 20px 10px}.embedded .kicker{font-size:.65rem}.embedded h1{font-size:1.3rem}#tourDescription{font-size:.8rem}
@media(max-width:800px){header,.embedded header{padding:13px 16px 10px}h1,.embedded h1{font-size:1.25rem}.kicker{font-size:.63rem}.tabs{margin-top:10px;gap:6px}.tabs button{font-size:.8rem}.embedded.atlas-locked header{padding-bottom:12px}main{display:flex;flex-direction:column;min-height:0}.stage{flex:0 0 48%;min-height:265px;height:auto}aside{flex:1;min-height:0;border-left:0;border-top:1px solid #36515c;padding:15px 18px}.toolbar{left:12px;top:6px;gap:5px;max-width:calc(100% - 78px)}.toolbar button{font-size:.72rem;min-height:40px;padding:7px 8px}.stats{right:12px;top:8px;font-size:.65rem;max-width:68px}.stats b{font-size:1.1rem}.hint{font-size:.63rem;line-height:1.4;left:10px;right:10px;bottom:5px;padding:4px 6px}.scene-label,.scene-label.edge{font-size:.65rem;max-width:170px;min-height:30px;padding:5px 7px}.scene-label.root{max-width:210px}.hotspot{width:29px;height:29px;font-size:.67rem}.transition-point{width:25px;height:25px}.card{margin-top:8px}#subtitle{font-size:.73rem;margin-top:6px}.fallback-card{inset:auto 4% 4%;padding:14px}.graphics-failed .stage{flex:1;min-height:0}}
@media(max-height:600px) and (min-width:801px){header{padding:10px 20px}h1{font-size:1.2rem}.toolbar button{font-size:.7rem;min-height:36px;padding:6px 8px}.hint{font-size:.65rem}.scene-label.root{font-size:.7rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.hotspot{min-height:0;min-width:0}.custom-badge[hidden]{display:none}@media(max-width:800px){#full{display:none}}
