:root{--bg-scene:#152a28;--bg-scene-2:#0c1d1b;--bg-panel:#f3efe2;--ink:#2a261e;--ink-soft:#736a58;--rust:#b14a2e;--gold:#a9812f;--line:#d9d0b6;--teal-glow:46,107,94;--brand-blue:#0966c3;--brand-blue-dark:#07529c;--brand-blue-soft:rgba(9, 102, 195, 0.12);--panel-width:420px;--radius:8px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg-scene);font-family:Inter,sans-serif;color:var(--ink);overflow:hidden}#app{display:flex;width:100%;height:100vh;height:100dvh;min-height:560px;overflow:hidden}#scene-wrap{position:relative;flex:1;min-width:0;background:radial-gradient(ellipse at 50% 42%,rgba(var(--teal-glow),.25) 0,rgba(var(--teal-glow),.05) 35%,transparent 60%),radial-gradient(ellipse at 50% 100%,var(--bg-scene-2) 0,#030504 100%);cursor:grab}#scene-wrap.dragging{cursor:grabbing}#scene-wrap canvas{display:block;width:100%;height:100%}#loading-overlay{position:absolute;inset:0;background:rgba(8,16,14,.85);display:flex;justify-content:center;align-items:center;color:#e9e0c8;font-family:'IBM Plex Mono',monospace;font-size:13px;z-index:100;opacity:1;transition:opacity .4s ease;pointer-events:none}#loading-overlay.fade-out{opacity:0;visibility:hidden;transition:opacity .4s ease,visibility 0s linear .4s}.tip-card{position:absolute;top:22px;right:22px;left:auto;background:#f4eede;border:1px solid var(--line);box-shadow:0 6px 18px rgba(0,0,0,.35);padding:12px 16px 13px;width:150px;transform:rotate(2deg);font-family:'IBM Plex Mono',monospace;font-size:11px;line-height:1.65;color:var(--ink);z-index:10}.tip-card .tip-head{font-family:Fraunces,serif;font-style:italic;font-size:13px;margin-bottom:8px;color:var(--rust)}.tip-card .tip-line{padding-left:12px;text-indent:-12px;margin-bottom:3px}.tip-card .tip-line:last-child{margin-bottom:0}.catalog-badge{position:absolute;top:22px;left:22px;right:auto;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;color:#bcd8cf;text-align:left;opacity:.75;z-index:10}.catalog-badge span{display:block}.catalog-badge .num{font-size:20px;color:#e9e0c8;letter-spacing:.02em}.pedestal-label{position:absolute;bottom:98px;left:50%;transform:translateX(-50%);font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.16em;color:rgba(233,224,200,.78);text-transform:uppercase;pointer-events:none;z-index:10}#hotspot-layer{position:absolute;inset:0;pointer-events:none;z-index:5}.hotspot{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px rgba(169,129,47,.3),0 0 15px rgba(169,129,47,.8);cursor:pointer;pointer-events:auto;transition:transform .15s ease,opacity .3s ease}.hotspot:hover{transform:scale(1.25)}.hotspot.active{background:var(--rust);box-shadow:0 0 0 5px rgba(177,74,46,.35),0 0 18px rgba(177,74,46,.9)}.hotspot::after{content:'';position:absolute;inset:3px;border-radius:50%;background:#f3e3ba}.hotspot-note{position:absolute;max-width:220px;background:#f4eede;border:1px solid var(--line);box-shadow:0 8px 25px rgba(0,0,0,.5);padding:12px 14px;font-size:12.5px;line-height:1.55;color:var(--ink);pointer-events:none;transform:translate(-50%,-135%);z-index:15}.hotspot-note::after{content:'';position:absolute;left:50%;bottom:-6px;width:12px;height:12px;margin-left:-6px;background:#f4eede;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}#organ-strip{position:absolute;bottom:62px;right:22px;display:grid;grid-template-columns:repeat(7,30px);grid-auto-rows:26px;gap:4px;z-index:10;max-width:calc(100% - 44px)}.organ-tab{display:flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:500;letter-spacing:.02em;color:rgba(233,224,200,.7);background:rgba(233,224,200,.06);border:1px solid rgba(233,224,200,.18);border-radius:6px;padding:0;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.organ-tab:hover{color:#e9e0c8;border-color:var(--brand-blue);background:rgba(9,102,195,.18)}.organ-tab.active{color:#fff;background:var(--brand-blue);border-color:var(--brand-blue);box-shadow:0 0 15px rgba(9,102,195,.5)}.organ-tab.search-hidden{display:none}.tab-tooltip{position:absolute;background:#f4eede;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 20px rgba(0,0,0,.45);padding:6px 11px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.02em;color:var(--ink);white-space:nowrap;pointer-events:none;transform:translate(-50%,-135%);z-index:20;display:none}.tab-tooltip::after{content:'';position:absolute;left:50%;bottom:-6px;width:10px;height:10px;margin-left:-5px;background:#f4eede;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}.organ-search{position:absolute;bottom:124px;right:22px;width:234px;max-width:calc(100% - 44px);z-index:10}.organ-search input{width:100%;background:rgba(233,224,200,.08);border:1px solid rgba(233,224,200,.25);border-radius:6px;color:#e9e0c8;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.04em;padding:9px 11px;outline:0;transition:border-color .2s ease,background .2s ease}.organ-search input::placeholder{color:rgba(233,224,200,.7)}.organ-search input:focus{border-color:var(--brand-blue);background:rgba(233,224,200,.14);box-shadow:0 0 0 3px rgba(9,102,195,.25)}#info-panel{flex:0 0 var(--panel-width);width:var(--panel-width);background:var(--bg-panel);overflow-y:auto;padding:40px;position:relative;border-left:1px solid var(--line)}.eyebrow{display:flex;align-items:center;gap:8px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--rust);margin-bottom:14px}.eyebrow .dot{color:var(--rust);font-size:14px}#panel-name{font-family:Fraunces,serif;font-weight:600;font-size:42px;line-height:1.02;margin:0 0 10px;color:var(--ink)}#panel-tagline{font-family:Fraunces,serif;font-style:italic;font-size:17px;color:var(--rust);margin:0 0 24px}#panel-desc{font-size:16px;line-height:1.75;color:var(--ink);margin:0 0 28px;max-width:40ch}hr.rule{border:none;border-top:1px solid var(--line);margin:0 0 24px}.section-label{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:16px}.fact-row{display:grid;grid-template-columns:20px 110px 1fr;gap:12px;align-items:baseline;padding:12px 0;border-bottom:1px solid rgba(211,201,174,.7);font-size:14px}.fact-row:last-child{border-bottom:none}.fact-icon{color:var(--gold);font-size:13px;text-align:center}.fact-label{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.04em;color:var(--ink-soft);text-transform:uppercase}.fact-value{color:var(--ink);line-height:1.55}.panel-name-row{margin-bottom:10px}.panel-name-row::after{content:"";display:table;clear:both}.panel-portrait{float:right;width:68px;height:68px;flex-shrink:0;margin:2px 0 10px 14px;border-radius:50%;object-fit:cover;border:3px solid var(--brand-blue);box-shadow:0 4px 12px rgba(0,0,0,.2);background:#ddd3b8}.panel-name-row #panel-name{margin:0 0 4px}.panel-name-row #panel-tagline{margin:0}.panel-name-row.name-wraps #panel-tagline{clear:right}.fun-fact-box{display:flex;gap:12px;align-items:flex-start;background:rgba(169,129,47,.1);border:1px solid rgba(169,129,47,.35);border-left:4px solid var(--gold);border-radius:8px;padding:15px 17px;margin:0 0 22px}.fun-fact-icon{color:var(--gold);font-size:17px;line-height:1.4}.fun-fact-label{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--rust);margin-bottom:5px}.fun-fact-box p{margin:0;font-size:14.5px;line-height:1.65;color:var(--ink)}.panel-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 20px}.action-btn{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.04em;font-weight:500;text-transform:uppercase;background:var(--brand-blue-soft);border:1.5px solid var(--brand-blue);color:var(--brand-blue-dark);border-radius:8px;padding:10px 16px;cursor:pointer;transition:background .2s ease,color .2s ease,transform .1s ease}.action-btn:hover{background:var(--brand-blue);color:#fff}.action-btn:active{transform:scale(.97)}.share-copied{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--brand-blue-dark)}.share-wrap{position:relative}.share-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:30;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.18);width:230px;padding:6px}.share-menu-item{display:flex;align-items:center;gap:11px;width:100%;background:0 0;border:none;text-align:left;border-radius:6px;padding:10px 11px;cursor:pointer;font-family:Inter,sans-serif;font-size:14px;color:var(--ink);transition:background .15s ease}.share-menu-item:hover{background:var(--brand-blue-soft)}.share-menu-item svg{width:18px;height:18px;flex-shrink:0;fill:var(--ink-soft)}.share-menu-item:hover svg{fill:var(--brand-blue)}.share-menu-divider{height:1px;background:var(--line);margin:5px 4px}.quiz-box{background:#fff;border:1px solid var(--line);border-radius:10px;padding:19px;margin:0 0 22px;box-shadow:0 2px 10px rgba(0,0,0,.06)}.quiz-question{font-family:Fraunces,serif;font-size:17px;color:var(--ink);margin:0 0 14px;line-height:1.45}.quiz-option{display:block;width:100%;text-align:left;font-family:Inter,sans-serif;font-size:14.5px;background:var(--bg-panel);border:1.5px solid var(--line);border-radius:8px;padding:11px 13px;margin-bottom:9px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.quiz-option:hover{border-color:var(--brand-blue);background:var(--brand-blue-soft)}.quiz-option.correct{border-color:#3f7a5c;background:rgba(63,122,92,.15);font-weight:600}.quiz-option.incorrect{border-color:var(--rust);background:rgba(177,74,46,.12)}.quiz-option:disabled{cursor:default}.quiz-feedback{font-size:14px;line-height:1.6;color:var(--ink-soft);margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.quiz-again{margin-top:12px;background:0 0;border:none;text-decoration:underline;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--brand-blue-dark);cursor:pointer;padding:0}.source-box{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--ink-soft)}.source-box a{color:var(--brand-blue-dark);text-decoration:underline}.tab-tooltip{display:flex;align-items:center;gap:8px}.tab-tooltip img{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1px solid var(--brand-blue);flex-shrink:0}.notes-section{margin-top:32px}.note-item{font-size:14px;line-height:1.65;color:var(--ink-soft);padding:12px 0 12px 18px;border-left:2px solid var(--line);margin-bottom:10px}.float-credit{position:absolute;bottom:62px;left:22px;z-index:10;font-family:'IBM Plex Mono',monospace;font-size:10px;line-height:1.5;color:rgba(233,224,200,.82);max-width:320px}.float-credit a{color:rgba(233,224,200,.85);text-decoration:underline}.reset-view-btn{position:absolute;top:128px;left:22px;z-index:10;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;color:#fff;background:var(--brand-blue);border:1px solid var(--brand-blue);border-radius:8px;padding:10px 15px;cursor:pointer;text-transform:uppercase;transition:background .2s ease,border-color .2s ease;opacity:0;pointer-events:none;visibility:hidden}.reset-view-btn.visible{opacity:1;pointer-events:auto;visibility:visible}.reset-view-btn:hover{background:var(--brand-blue-dark);border-color:var(--brand-blue-dark)}.title-card{position:absolute;top:70px;left:22px;z-index:10;max-width:280px}.title-card h1{font-family:Fraunces,serif;font-size:26px;font-weight:600;color:#e9e0c8;margin:0 0 4px;line-height:1.1}.title-card p{font-family:'IBM Plex Mono',monospace;font-size:11px;color:rgba(233,224,200,.82);margin:0;letter-spacing:.04em}@media (max-width:1439px) and (min-width:961px){:root{--panel-width:340px}#info-panel{padding:32px 28px}#panel-name{font-size:34px}.tip-card{top:16px;right:16px;width:130px;padding:10px 13px 11px;font-size:10px}.tip-card .tip-head{font-size:12px;margin-bottom:6px}.catalog-badge{top:16px;left:16px;font-size:10px}.catalog-badge .num{font-size:17px}.title-card{top:56px;left:16px;max-width:220px}.title-card h1{font-size:21px}.title-card p{font-size:10px}.reset-view-btn{top:104px;left:16px;padding:8px 12px;font-size:11px}#organ-strip{bottom:54px;right:16px;grid-template-columns:repeat(7,24px);grid-auto-rows:22px;gap:3px}.organ-tab{font-size:11px}.organ-search{bottom:112px;right:16px;width:186px}.organ-search input{font-size:11px;padding:7px 9px}.pedestal-label{bottom:86px;font-size:9px}.float-credit{bottom:54px;max-width:200px;font-size:9px}}@media (max-height:820px) and (min-width:961px){.tip-card{top:12px}.catalog-badge{top:12px}.title-card{top:46px}.reset-view-btn{top:92px}#organ-strip{bottom:52px}.organ-search{bottom:106px}.pedestal-label{bottom:82px}.float-credit{bottom:52px}}@media (max-width:960px){#app{flex-direction:column}#scene-wrap{flex:1}#info-panel{flex:0 0 auto;width:100%;max-height:46vh;padding:24px}.title-card{max-width:220px;top:64px}.title-card h1{font-size:20px}.reset-view-btn{top:114px}.pedestal-label{bottom:150px;font-size:9px;max-width:88vw;text-align:center;white-space:normal}.float-credit{bottom:84px;max-width:140px;font-size:9px}#organ-strip{bottom:84px;right:14px;grid-template-columns:repeat(5,26px);grid-auto-rows:24px;gap:3px}.organ-tab{font-size:10px}.organ-search{bottom:166px;right:14px;width:142px}.organ-search input{font-size:10px;padding:6px 8px}.panel-portrait{width:48px;height:48px}.panel-actions{gap:8px}}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:12px;top:-64px;z-index:200;background:var(--brand-blue);color:#fff;padding:10px 16px;border-radius:8px;font-family:'IBM Plex Mono',monospace;font-size:13px;text-decoration:none;transition:top .15s ease}.skip-link:focus{top:12px}.noscript-msg{position:absolute;z-index:150;left:0;right:0;margin:0;padding:14px 18px;background:#f4eede;color:#2a261e;font-size:14px;text-align:center}:focus-visible{outline:3px solid #4385f5;outline-offset:2px}#info-panel:focus{outline:none}#scene-wrap:focus-visible{outline-offset:-4px}.scene-footer{position:absolute;left:0;right:0;bottom:6px;z-index:10;padding:0 12px;text-align:center;pointer-events:none}.scene-footer .footer-legal-links{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.03em;color:rgba(233,224,200,.55);margin-bottom:5px}.scene-footer .footer-legal-links a{position:relative;color:rgba(233,224,200,.8);pointer-events:auto;text-decoration:none;border-bottom:1px solid rgba(233,224,200,.35)}.scene-footer .footer-legal-links a::before{content:"";position:absolute;inset:-9px -7px}.scene-footer .footer-legal-links a:hover{color:#e9e0c8;border-bottom-color:#e9e0c8}.scene-footer .footer-legal-links .sep{margin:0 6px;opacity:.6}.brand-mark{text-align:center; pointer-events:none;} .brand-mark .brand-sig{display:flex; align-items:center; justify-content:center; gap:6px; font-family:'IBM Plex Mono',monospace; font-size:9px; letter-spacing:0.03em; color:rgba(233,224,200,0.55);} .brand-mark .brand-icon{width:14px; height:14px; border-radius:50%; flex-shrink:0;} .brand-mark .brand-sig a{color:rgba(233,224,200,0.8); pointer-events:auto; text-decoration:none; border-bottom:1px solid rgba(233,224,200,0.35);} .brand-mark .brand-sig a:hover{color:#e9e0c8; border-bottom-color:#e9e0c8;} .brand-mark .claude-star{color:var(--rust); font-size:14px; display:inline-block;} .brand-mark .brand-inspired{margin-top:1px; font-family:'IBM Plex Mono',monospace; font-size:8.5px; color:rgba(233,224,200,0.35);} .brand-mark .brand-inspired a{color:rgba(233,224,200,0.5); pointer-events:auto; text-decoration:none; border-bottom:1px solid rgba(233,224,200,0.2);} .brand-mark .brand-inspired a:hover{color:rgba(233,224,200,0.8);}@media (max-width:960px){.brand-mark .brand-sig{flex-wrap:wrap;row-gap:2px}#info-panel{flex:0 0 46vh;height:46vh;max-height:none}}@supports (height:1dvh){@media (max-width:960px){#info-panel{flex-basis:46dvh;height:46dvh}}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}