:root{--color-bg: #f7f8fa;--color-bg-raw: #f2efe8;--color-surface: #ffffff;--color-surface-2: #fbf9f4;--color-surface-offset: #d3c9c1;--color-border: #e4dcce;--color-divider: #e9e2d4;--color-text: #0f172a;--color-text-muted: #475569;--color-text-faint: #9a9488;--color-text-inverse: #f9f8f4;--color-neutral: #93a7a7;--color-neutral-highlight: #e4eaea;--color-accent: #2563eb;--color-accent-strong: #173f65;--color-accent-soft: #7fa8f5;--color-accent-highlight: #e7edfd;--color-accent-glow: rgba(46, 117, 173, .55);--radius-sm: .5rem;--radius-md: .875rem;--radius-lg: 1.25rem;--radius-xl: 1.75rem;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(44, 53, 67, .08);--shadow-md: 0 8px 24px rgba(44, 53, 67, .1);--shadow-lg: 0 20px 60px rgba(44, 53, 67, .16);--text-xs: clamp(.75rem, .7rem + .25vw, .8rem);--text-sm: clamp(.875rem, .8rem + .3vw, .95rem);--text-base: clamp(1rem, .95rem + .2vw, 1.05rem);--text-lg: clamp(1.1rem, 1rem + .6vw, 1.35rem);--text-xl: clamp(1.4rem, 1.2rem + 1vw, 1.9rem);--text-2xl: clamp(1.8rem, 1.4rem + 1.8vw, 2.6rem);--font-display: "Cabinet Grotesk", "Satoshi", system-ui, sans-serif;--font-body: "Satoshi", "Segoe UI", system-ui, sans-serif;--transition-interactive: .22s cubic-bezier(.16, 1, .3, 1);--sheet-height: 0px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{min-height:100dvh;overflow:hidden;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg)}button{cursor:pointer;background:none;border:none;font:inherit;color:inherit}a{color:var(--color-accent-strong)}h1,h2,h3,p,li{text-wrap:pretty}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}#app{position:relative;width:100vw;height:100dvh;background:radial-gradient(120% 120% at 50% 20%,#fdfdfe 0%,var(--color-bg) 55%,#eef1f5 100%);overflow:hidden}#scene-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}.topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.75rem;z-index:20;pointer-events:none;transition:right .48s cubic-bezier(.16,1,.3,1)}body.panel-open .topbar{right:min(420px,92vw)}.brand{display:flex;align-items:center;gap:.55rem;pointer-events:auto}.atlas-mark{width:30px;height:30px;overflow:visible;flex:none}.atlas-mark path{fill:var(--color-accent)}.atlas-mark path:nth-child(2){fill:#8ab6d4}.atlas-mark path:nth-child(3){fill:#173f65}.atlas-mark path:nth-child(4){fill:#4d88b2;opacity:.75}.brand-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--color-text);letter-spacing:-.01em}.brand-tag{font-size:var(--text-xs);color:var(--color-text-faint);background:var(--color-surface);border:1px solid var(--color-border);padding:.15rem .55rem;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.06em}.breadcrumb{display:flex;align-items:center;gap:.4rem;pointer-events:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:.5rem .9rem;box-shadow:var(--shadow-sm);font-size:var(--text-sm);max-width:min(70vw,560px);overflow-x:auto;scrollbar-width:none}.breadcrumb::-webkit-scrollbar{display:none}.breadcrumb button{color:var(--color-text-muted);white-space:nowrap;padding:.15rem .3rem;border-radius:var(--radius-sm);transition:color var(--transition-interactive),background var(--transition-interactive)}.breadcrumb button:hover{color:var(--color-accent-strong);background:var(--color-accent-highlight)}.breadcrumb button[aria-current=true]{color:var(--color-text);font-weight:600}.breadcrumb .sep{color:var(--color-text-faint);font-size:var(--text-xs)}.breadcrumb[hidden]{display:none}.hint{position:absolute;left:50%;bottom:6.5rem;transform:translate(-50%);z-index:15;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:.7rem 1.4rem;box-shadow:var(--shadow-sm);font-size:var(--text-sm);color:var(--color-text-muted);text-align:center;animation:hint-float 3.2s ease-in-out infinite;transition:opacity var(--transition-interactive);pointer-events:none}.hint strong{color:var(--color-accent-strong);font-weight:600}.hint.is-hidden{opacity:0}@keyframes hint-float{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-6px)}}.recenter-btn{position:absolute;left:1.25rem;bottom:1.25rem;z-index:22;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--color-surface);color:var(--color-accent-strong);box-shadow:var(--shadow-md);border:1px solid var(--color-border);opacity:0;transform:scale(.85);pointer-events:none;transition:opacity .22s ease,transform .22s cubic-bezier(.16,1,.3,1),bottom var(--transition-interactive)}.recenter-btn.is-visible{opacity:1;transform:scale(1);pointer-events:auto}.recenter-btn:active{transform:scale(.92)}.panel-handle{display:none}.tooltip{position:absolute;z-index:30;max-width:240px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.75rem .9rem;box-shadow:var(--shadow-md);pointer-events:none;transform:translate(14px,-12px);transition:opacity .14s ease}.tooltip-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);color:var(--color-text);margin-bottom:.15rem}.tooltip-desc{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.4}.tooltip-cta{font-size:var(--text-xs);color:var(--color-accent-strong);font-weight:600;margin-top:.35rem}.selected-callout{position:absolute;z-index:31;max-width:260px;background:var(--color-accent-strong);color:#fff;border-radius:var(--radius-md);padding:.4rem .7rem;box-shadow:var(--shadow-md);pointer-events:none;transform:translate(14px,-12px);opacity:0;transition:opacity .26s ease}.selected-callout.is-visible{opacity:1}.selected-callout:before{content:"";position:absolute;left:-5px;bottom:-5px;width:10px;height:10px;border-radius:50%;background:var(--color-accent-strong);box-shadow:0 0 0 2px #ffffff59}.selected-callout-name{font-family:var(--font-display);font-weight:800;font-size:var(--text-sm);line-height:1.2}.panel{position:absolute;top:0;right:0;height:100%;width:min(420px,92vw);background:var(--color-surface);box-shadow:var(--shadow-lg);z-index:25;padding:5.5rem 1.75rem 1.75rem;overflow-y:auto;transform:translate(100%);transition:transform .48s cubic-bezier(.16,1,.3,1);border-left:1px solid var(--color-border)}.panel.is-open{transform:translate(0)}.panel-back{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--text-sm);color:var(--color-text-muted);margin-bottom:1.25rem;padding:.4rem .7rem;border-radius:var(--radius-full);transition:background var(--transition-interactive),color var(--transition-interactive)}.panel-back:hover{background:var(--color-accent-highlight);color:var(--color-accent-strong)}.panel-eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-accent-strong);font-weight:700;margin-bottom:.4rem}.panel-title{font-family:var(--font-display);font-weight:800;font-size:var(--text-xl);color:var(--color-text);letter-spacing:-.01em;margin-bottom:.4rem}.panel-subtitle{font-size:var(--text-base);color:var(--color-text-muted);margin-bottom:1.5rem}.fine-detail-note{display:flex;align-items:center;gap:.5rem;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:-.6rem;margin-bottom:1.1rem}.fine-detail-note.is-error{color:#a15c3a}.fine-detail-spinner{width:11px;height:11px;flex:none;border-radius:50%;border:2px solid var(--color-border);border-top-color:var(--color-accent-strong);animation:spin .8s linear infinite}.panel-category{display:inline-block;font-size:var(--text-xs);font-weight:700;color:var(--color-accent-strong);background:var(--color-accent-highlight);padding:.3rem .7rem;border-radius:var(--radius-full);margin-bottom:1rem}.pain-options{display:flex;flex-direction:column;gap:.65rem;list-style:none}.pain-btn{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:.95rem 1.15rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;color:var(--color-text);background:var(--color-surface-2);transition:border-color var(--transition-interactive),background var(--transition-interactive),transform var(--transition-interactive)}.pain-btn:hover{border-color:var(--color-accent);background:var(--color-accent-highlight);transform:translate(2px)}.pain-btn .arrow{color:var(--color-text-faint);transition:transform var(--transition-interactive),color var(--transition-interactive)}.pain-btn:hover .arrow{color:var(--color-accent-strong);transform:translate(3px)}.panel-divider{height:1px;background:var(--color-divider);margin:1.25rem 0;border:none}.panel-section-label{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);color:var(--color-text);margin-bottom:.75rem}.conditions-list{list-style:none;display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.5rem}.conditions-list li{display:flex;align-items:flex-start;gap:.6rem;font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}.conditions-list li:before{content:"";flex-shrink:0;width:6px;height:6px;margin-top:.5em;border-radius:50%;background:var(--color-accent)}.btn{display:flex;align-items:center;justify-content:center;width:100%;padding:.9rem 1.2rem;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:700;transition:background var(--transition-interactive),border-color var(--transition-interactive),transform .12s ease}.btn:active{transform:scale(.98)}.btn-primary{background:var(--color-accent);color:#fff;margin-bottom:.7rem}.btn-primary:hover{background:var(--color-accent-strong)}.btn-secondary{background:var(--color-surface);color:var(--color-accent-strong);border:1.5px solid var(--color-accent-soft)}.btn-secondary:hover{background:var(--color-accent-highlight)}.stub-note{font-size:var(--text-xs);color:var(--color-text-faint);text-align:center;margin-top:.85rem}.structure-list-hint{font-size:var(--text-sm);color:var(--color-text-muted);background:var(--color-surface-2);border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:.85rem 1rem;margin-top:.5rem}.loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--color-bg);z-index:50;transition:opacity .42s ease,visibility .42s ease}.loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loader p{font-size:var(--text-sm);color:var(--color-text-muted)}.loader-spinner{width:40px;height:40px;border-radius:50%;border:3px solid var(--color-border);border-top-color:var(--color-accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.credits{position:absolute;bottom:0;left:0;right:0;z-index:15;text-align:center;padding:.6rem 1rem;pointer-events:none}.credits p{font-size:var(--text-xs);color:var(--color-text-faint);pointer-events:auto}.credits a{color:var(--color-text-muted);text-decoration:underline;text-underline-offset:2px}.credits a:hover{color:var(--color-accent-strong)}@media (max-width: 720px){.topbar{padding:1rem}.brand-tag{display:none}.breadcrumb{max-width:58vw;padding:.4rem .7rem}.panel{inset:auto 0 0;width:100%;max-width:100%;display:flex;flex-direction:column;overflow:hidden;height:32vh;height:32dvh;max-height:88vh;max-height:88dvh;border-left:none;border-top:1px solid var(--color-border);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:0;transform:translateY(100%);transition:transform .48s cubic-bezier(.16,1,.3,1),height .26s cubic-bezier(.16,1,.3,1)}.panel.is-open{transform:translateY(0)}.panel.is-dragging{transition:transform .48s cubic-bezier(.16,1,.3,1)}.panel-handle{display:flex;align-items:center;justify-content:center;flex:none;height:30px;touch-action:none;cursor:grab}.panel-handle:before{content:"";width:36px;height:4px;border-radius:var(--radius-full);background:var(--color-border);transition:background var(--transition-interactive)}.panel-handle.is-dragging,.panel-handle:active{cursor:grabbing}.panel-handle.is-dragging:before,.panel-handle:active:before{background:var(--color-accent-soft)}.panel-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.25rem 1.25rem 1.5rem}.recenter-btn{bottom:calc(var(--sheet-height, 0px) + 1rem);left:1rem;width:42px;height:42px}body.panel-open .topbar{right:0}body.panel-open .brand{display:none}body.panel-open .breadcrumb{max-width:82vw}.hint{bottom:5.5rem;max-width:88vw;font-size:var(--text-xs)}.tooltip{max-width:200px}.credits p{font-size:.68rem;padding:0 .5rem}}.structure-picker{display:grid;gap:.55rem;margin:.8rem 0 1rem}.structure-picker-btn{width:100%;min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-align:left}.structure-picker-btn:hover{border-color:var(--color-accent-soft);background:var(--color-accent-highlight)}.structure-picker-btn span{font-weight:700;min-width:0;flex:1 1 auto;overflow-wrap:break-word;line-height:1.3}.structure-picker-btn small{color:var(--color-text-muted);flex:0 1 auto;text-align:right;overflow-wrap:anywhere;line-height:1.3}.assessment-from-region{margin-top:.25rem}.assessment-progress{height:7px;overflow:hidden;border-radius:999px;background:var(--color-surface-2);margin:.35rem 0 .45rem}.assessment-progress span{display:block;height:100%;border-radius:inherit;background:var(--color-accent);transition:width .24s ease}.assessment-step{margin:0 0 1rem;font-size:var(--text-xs);color:var(--color-text-muted)}.assessment-options{display:grid;gap:.7rem;margin:1rem 0}.assessment-option{width:100%;min-height:58px;padding:.9rem 1rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);text-align:left;font-weight:700;line-height:1.35}.assessment-option:hover{border-color:var(--color-accent);background:var(--color-accent-highlight)}.assessment-disclaimer{margin-top:1rem;font-size:var(--text-xs);line-height:1.5;color:var(--color-text-faint)}.assessment-alert{margin:1rem 0;padding:.9rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-accent-soft);background:var(--color-accent-highlight);color:var(--color-text);font-size:var(--text-sm);line-height:1.5}.assessment-alert.is-urgent{border-color:#c98272;background:#fff0ec}.structure-picker-btn small{opacity:.68}.region-model-note{margin:10px 0 14px;padding:10px 12px;border-radius:12px;background:#2e75ad1a;font-size:.86rem;line-height:1.4}.scene-atmosphere{position:absolute;inset:0;z-index:5;pointer-events:none;background:radial-gradient(48% 42% at 50% 34%,#ffffff8c,#fff0 62%),radial-gradient(120% 70% at 50% 100%,#173f6524,#3c6e8f00 55%),radial-gradient(140% 100% at 50% 0%,#fff0 55%,#2c35430d)}@media (max-width: 720px){.credits{display:none}}#dev-diagnostics{position:fixed;right:1rem;bottom:1rem;z-index:200;width:min(360px,calc(100vw - 2rem));padding:1rem;color:#eef8fb;background:#111c23f0;border:1px solid rgba(255,255,255,.14);border-radius:14px;box-shadow:0 18px 60px #00000040;backdrop-filter:blur(14px);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}#dev-diagnostics strong{display:block;margin-bottom:.55rem;font-family:inherit}#dev-diagnostics pre{white-space:pre-wrap;margin:0 0 .5rem;line-height:1.55}#dev-diagnostics small{opacity:.65}.loader.has-error{background:#f7f2e6f0}.panel-collapsible{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:.65rem;background:var(--color-surface-2);overflow:hidden}.panel-collapsible-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);color:var(--color-text);user-select:none;transition:background var(--transition-interactive)}.panel-collapsible-summary::-webkit-details-marker{display:none}.panel-collapsible-summary:after{content:"";width:8px;height:8px;border-right:2px solid var(--color-text-faint);border-bottom:2px solid var(--color-text-faint);transform:rotate(45deg);transition:transform var(--transition-interactive);flex:none}.panel-collapsible[open] .panel-collapsible-summary:after{transform:rotate(-135deg)}.panel-collapsible-summary:hover{background:var(--color-accent-highlight)}.panel-collapsible-body{padding:0 1rem 1rem;animation:panel-collapsible-reveal .22s ease}@keyframes panel-collapsible-reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.panel-fact-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0}.panel-fact-list li{display:flex;align-items:flex-start;gap:.6rem;font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5}.panel-fact-list li:before{content:"";flex-shrink:0;width:6px;height:6px;margin-top:.5em;border-radius:50%;background:var(--color-accent)}.panel-fact-dl{display:grid;grid-template-columns:1fr;gap:.5rem 0;margin:0}.panel-fact-dl dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--color-accent-strong);margin-top:.6rem}.panel-fact-dl dd{font-size:var(--text-sm);color:var(--color-text);margin:.15rem 0 0}.related-structure-chips{display:flex;flex-wrap:wrap;gap:.5rem}.related-chip{padding:.5rem .9rem;border-radius:var(--radius-full);border:1.5px solid var(--color-accent-soft);background:var(--color-surface);color:var(--color-accent-strong);font-size:var(--text-xs);font-weight:700;transition:background var(--transition-interactive),transform var(--transition-interactive)}.related-chip:hover{background:var(--color-accent-highlight);transform:translateY(-1px)}.panel-empty-note{font-size:var(--text-sm);color:var(--color-text-faint);margin:0}.atlascore-facts{display:grid;gap:.5rem;margin:1.1rem 0 .15rem}.atlascore-fact{width:100%;text-align:left;border:1px solid var(--color-border);background:var(--color-surface-2);border-radius:var(--radius-md);padding:.75rem .9rem}.atlascore-fact span{display:block;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.07em;text-transform:uppercase;margin-bottom:.25rem}.atlascore-fact strong{color:var(--color-text);font-size:var(--text-sm);line-height:1.4;font-weight:600}@media (max-width: 720px){.panel-collapsible-summary{padding:.95rem 1rem;min-height:44px}.related-chip{padding:.6rem 1rem;min-height:40px}}.topbar-encyclopedia{margin-left:auto;color:#2563eb;font-size:.78rem;font-weight:700;text-decoration:none;border:1px solid rgba(46,117,173,.28);border-radius:999px;padding:7px 12px;background:#ffffffa3;display:inline-flex;align-items:center;gap:6px}.topbar-product-links{margin-left:auto;display:flex;align-items:center;gap:8px;pointer-events:auto}.topbar-product-links>a:first-child{color:#8a5148;font-size:.78rem;font-weight:700;text-decoration:none;border:1px solid rgba(138,81,72,.2);border-radius:999px;padding:7px 12px;background:#fff5f1b8;display:inline-flex;align-items:center;gap:6px}.topbar-product-links .topbar-encyclopedia{margin-left:0}.topbar-icon{width:16px;height:16px;flex:none;display:none}.panel-encyclopedia-link{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding:12px 16px;text-decoration:none;border:1px solid rgba(46,117,173,.28);border-radius:14px;background:#2e75ad0f;color:#2563eb;font-weight:700}.panel-encyclopedia-link:hover{background:#2e75ad1f;border-color:#2e75ad73}.panel-encyclopedia-link .panel-encyclopedia-text{display:flex;flex-direction:column;gap:2px}.panel-encyclopedia-link .panel-encyclopedia-lead{font-size:.7rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#475569}.panel-encyclopedia-link .arrow{font-size:1.1rem;flex:none}.panel-region-deepdive{border-color:#b5624f52;background:#b5624f14;color:#9c4a39;cursor:pointer}.panel-region-deepdive:hover{background:#b5624f26;border-color:#b5624f80}.panel-region-deepdive .panel-encyclopedia-lead{color:#b5624f}@media (max-width:640px){.topbar-product-links{gap:5px}.topbar-product-links>a:first-child,.topbar-encyclopedia{width:38px;height:38px;padding:0;justify-content:center}.topbar-label{display:none}.topbar-icon{display:block}}
