:root{--bg:#f4f4f2;--surface:#e8e8e6;--surface-muted:#c8c8c6;--ink:#242422;--ink-muted:#5e5e5c;--hairline:#2424222e;--hairline-strong:#24242273;--tower-progress:0;--edge:clamp(20px, 3.8vw, 52px)}*,:before,:after{box-sizing:border-box}html,body,#root{background-color:var(--bg);width:100%;height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none;margin:0;padding:0;overflow:hidden}.font-serif{font-family:Noto Serif,Noto Serif SC,Songti SC,Georgia,serif}.font-sans{font-family:Google Sans,Noto Sans SC,PingFang SC,-apple-system,BlinkMacSystemFont,sans-serif}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible{outline:1px solid var(--ink);outline-offset:4px}.app-shell{background:var(--bg);width:100vw;height:100vh;position:relative;overflow:hidden}.scene-viewport{z-index:1;touch-action:none;cursor:grab;position:absolute;inset:0}.scene-viewport:active{cursor:grabbing}.hud-layer{z-index:10;pointer-events:none;position:absolute;inset:0}.hud-layer:before{content:"";pointer-events:none;background:linear-gradient(#f4f4f2b8 0%,#f4f4f24d 55%,#f4f4f200 100%);height:120px;position:absolute;top:0;left:0;right:0}.hud-layer:after{content:"";pointer-events:none;background:linear-gradient(#f4f4f200 0%,#f4f4f25c 48%,#f4f4f2c7 100%);height:260px;position:absolute;bottom:0;left:0;right:0}.top-bar{top:var(--edge);left:var(--edge);right:var(--edge);z-index:2;justify-content:space-between;align-items:flex-start;gap:24px;display:flex;position:absolute}.brand-mark{pointer-events:auto;text-align:left;flex-direction:column;align-items:flex-start;gap:3px;display:flex}.brand-title{letter-spacing:.16em;color:var(--ink);font-size:13px;font-weight:500}.brand-sub{letter-spacing:.12em;color:var(--ink-muted);text-transform:uppercase;font-size:10.5px}.top-nav{pointer-events:auto;align-items:center;gap:16px;display:flex}.top-nav-links{align-items:center;gap:18px;display:flex}.top-nav-item{letter-spacing:.08em;color:var(--ink-muted);border-bottom:1px solid #0000;align-items:baseline;gap:6px;padding-bottom:4px;font-size:11px;transition:color .24s,border-color .24s;display:inline-flex}.top-nav-item:hover{color:var(--ink)}.top-nav-item.is-active{color:var(--ink);border-bottom-color:var(--ink)}.top-nav-roman{font-size:11.5px;font-weight:500}.top-divider{background:var(--hairline);width:1px;height:12px}.lang-toggle{letter-spacing:.08em;color:var(--ink-muted);align-items:center;gap:5px;font-size:11px;display:inline-flex}.lang-toggle .is-selected{color:var(--ink);font-weight:500}.lang-sep{opacity:.4}.elevation-ruler{right:var(--edge);z-index:2;pointer-events:none;align-items:center;height:min(46vh,380px);display:flex;position:absolute;top:50%;transform:translateY(-50%)}.ruler-axis{pointer-events:auto;width:1px;height:100%;position:relative}.ruler-line{background:var(--hairline);position:absolute;inset:0}.ruler-cursor{background:var(--ink);width:7px;height:1px;right:-3px;bottom:calc(var(--tower-progress,0) * 100%);transition:width .16s;position:absolute}.ruler-stop{color:var(--ink-muted);align-items:center;gap:10px;padding:6px 0 6px 14px;transition:color .22s;display:inline-flex;position:absolute;right:0;transform:translateY(50%)}.ruler-stop:hover,.ruler-stop.is-hovered,.ruler-stop.is-active{color:var(--ink)}.ruler-tick{background:var(--hairline-strong);width:10px;height:1px;transition:width .22s,background-color .22s;display:block}.ruler-stop.is-active .ruler-tick,.ruler-stop:hover .ruler-tick{background:var(--ink);width:18px}.ruler-code{text-align:right;min-width:18px;font-size:11px}.ruler-meta{opacity:0;white-space:nowrap;align-items:baseline;gap:8px;transition:opacity .22s,transform .22s;display:inline-flex;transform:translate(4px)}.ruler-stop:hover .ruler-meta,.ruler-stop.is-hovered .ruler-meta,.ruler-stop.is-active .ruler-meta{opacity:1;transform:translate(0)}.ruler-elev{letter-spacing:.08em;color:var(--ink-muted);font-size:9.5px}.ruler-name{letter-spacing:.04em;font-size:11px}.section-dossier{left:var(--edge);bottom:var(--edge);z-index:2;pointer-events:auto;max-width:min(440px,100vw - 140px);padding:10px 0 4px;position:absolute}.dossier-eyebrow{letter-spacing:.14em;color:var(--ink-muted);text-transform:uppercase;align-items:center;gap:8px;margin-bottom:10px;font-size:10.5px;display:flex}.dossier-code{color:var(--ink);font-size:12px;font-weight:500}.dossier-sep{opacity:.45}.dossier-title{letter-spacing:.02em;color:var(--ink);margin:0 0 12px;font-size:clamp(26px,3.2vw,40px);font-weight:400;line-height:1.18}.dossier-desc{color:var(--ink-muted);max-width:380px;margin:0 0 22px;font-size:13.5px;line-height:1.72}.dossier-actions{border-top:1px solid var(--hairline);flex-wrap:wrap;align-items:center;gap:18px;padding-top:14px;display:flex}.dossier-cta{border:1px solid var(--hairline-strong);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:#f4f4f299;align-items:center;gap:10px;padding:9px 16px;font-size:11.5px;transition:background-color .22s,border-color .22s;display:inline-flex}.dossier-cta:hover{background:var(--ink);border-color:var(--ink);color:var(--bg)}.cta-arrow{font-size:12px;line-height:1}.dossier-route{letter-spacing:.08em;color:var(--ink-muted);font-size:11px}.bottom-controls{right:var(--edge);bottom:var(--edge);z-index:2;pointer-events:auto;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute}.step-controls{border:1px solid var(--hairline);background:#f4f4f2a6;display:inline-flex}.step-btn{width:34px;height:30px;color:var(--ink);place-items:center;font-size:12px;transition:background-color .18s;display:grid}.step-btn+.step-btn{border-left:1px solid var(--hairline)}.step-btn:hover:not(:disabled){background:#29292914}.step-btn:disabled{color:var(--ink-muted);opacity:.35;cursor:default}.interaction-hint{letter-spacing:.12em;color:var(--ink-muted);text-align:right;font-size:10px}.about-backdrop{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:var(--edge);background:#f4f4f2d6;justify-content:center;align-items:center;animation:.26s fadeSlideIn;display:flex;position:fixed;inset:0}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.about-folio{background:var(--bg);border:1px solid var(--hairline-strong);width:min(680px,100%);max-height:86vh;padding:clamp(24px,4vw,44px);overflow-y:auto}.about-header{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:16px;padding-bottom:16px;display:flex}.about-eyebrow{letter-spacing:.14em;color:var(--ink-muted);font-size:10.5px}.about-close{letter-spacing:.12em;color:var(--ink);border:1px solid var(--hairline);padding:4px 8px;font-size:10.5px;transition:background-color .18s}.about-close:hover{background:var(--ink);color:var(--bg)}.about-title{color:var(--ink);margin:24px 0 12px;font-size:clamp(24px,3vw,32px);font-weight:400}.about-lead{color:var(--ink-muted);margin:0 0 28px;font-size:13.5px;line-height:1.75}.about-blocks{gap:20px;margin-bottom:28px;display:grid}.about-block{border-top:1px solid var(--hairline);padding-top:16px}.about-block-meta{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.about-block-title{color:var(--ink);font-size:16px}.about-block-status{letter-spacing:.12em;color:var(--ink-muted);font-size:10px}.about-block-body{color:var(--ink-muted);margin:0;font-size:13px;line-height:1.7}.about-specs{border-top:1px solid var(--hairline);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px;margin:0;padding-top:18px;display:grid}.about-spec-item dt{letter-spacing:.12em;color:var(--ink-muted);margin-bottom:4px;font-size:9.5px}.about-spec-item dd{color:var(--ink);margin:0;font-size:12px}.webgl-fallback{padding:var(--edge);background:var(--bg);place-items:center;display:grid;position:absolute;inset:0}.fallback-inner{width:min(560px,100%)}.fallback-note{letter-spacing:.08em;color:var(--ink-muted);margin-bottom:12px;font-size:11px}.fallback-title{margin:0 0 28px;font-size:32px;font-weight:400}.fallback-list{border-top:1px solid var(--hairline)}.fallback-row{text-align:left;border-bottom:1px solid var(--hairline);grid-template-columns:36px 1fr 24px;align-items:center;width:100%;padding:16px 4px;display:grid}.fallback-row:hover{background:#2929290a}.fallback-info{flex-direction:column;gap:3px;display:flex}.fallback-name{font-size:16px}.fallback-url{color:var(--ink-muted);font-size:11px}@media (max-width:768px){.top-nav-label{display:none}.top-nav-links{gap:12px}.ruler-meta{display:none!important}.section-dossier{max-width:calc(100vw - 76px)}.interaction-hint{display:none}}
