:root{--paper:#f3eee2;--paper-glass:#f3eee2f0;--ink:#1e2225;--muted:#5b605d;--rule:#1e222529;--accent:#a3322a;--gold:#c99a3c;--gold-fill:#e8c67747;--display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--jp:"Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:#c8d3d6;margin:0;overflow:hidden}[hidden]{display:none!important}button{font:inherit;color:inherit;cursor:pointer}kbd{font:10px/1.4 var(--mono);opacity:.75;vertical-align:1px;border:1px solid #ffffff59;border-radius:3px;margin-left:8px;padding:1px 5px;display:inline-block}.experience{position:fixed;inset:0}.scene{touch-action:none;cursor:grab;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.scene:active{cursor:grabbing}.scene.part-hover{cursor:pointer}.scene-loading{text-align:center;font:17px var(--display);color:var(--ink);position:absolute;inset:45% 20% auto}.overlays{pointer-events:none;opacity:0;transition:opacity .6s;position:absolute;inset:0}.overlays.ready{opacity:1}.overlays>*{pointer-events:auto}.overlays .leaders,.overlays .labels{pointer-events:none}.masthead{flex-direction:column;gap:2px;display:flex;position:absolute;top:18px;left:22px;pointer-events:none!important}.wordmark{font:600 19px/1.1 var(--display);letter-spacing:.01em}.wordmark-sub{font:12px/1.3 var(--sans);color:var(--muted)}.in-cockpit .wordmark,.in-cockpit .wordmark-sub{color:#f1ece0;text-shadow:0 1px 6px #0009}.leaders{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.leader{fill:none;stroke:#1e22258c;stroke-width:1px}.leader.selected{stroke:var(--gold);stroke-width:1.5px}.leader-dot{fill:var(--paper);stroke:var(--ink);stroke-width:1.2px}.leader-dot.selected{fill:var(--gold)}.in-cockpit .leader{stroke:#f3eee2bf}.popover-leader{fill:none;stroke:var(--gold);stroke-width:1.4px;stroke-dasharray:3 4}.popover-dot{fill:var(--gold-fill);stroke:var(--gold);stroke-width:1.6px}.labels{position:absolute;inset:0}.part-label{pointer-events:auto;border:1px solid var(--rule);background:var(--paper-glass);font:12.5px/1.25 var(--sans);white-space:nowrap;border-radius:3px;padding:4px 9px;position:absolute;top:0;left:0;box-shadow:0 2px 10px #00000014}.part-label:hover,.part-label.selected{border-color:var(--gold);background:#fbf3dc}.dimension-label{background:var(--ink);color:#f4efe3;font:12.5px/1.4 var(--mono);white-space:nowrap;border-radius:3px;padding:2px 8px;position:absolute;top:0;left:0}.tour-card{background:var(--paper-glass);border:1px solid var(--rule);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);will-change:transform;border-radius:6px;width:min(360px,100vw - 24px);padding:20px 22px 14px;transition:opacity .35s;position:absolute;top:0;left:0;box-shadow:0 10px 40px #14181a2e}.tour-card.moving{opacity:.9}.tour-card h1{font:600 25px/1.12 var(--display);margin:0 0 4px}.tour-card .term,.inspector .term{font:italic 14px/1.4 var(--jp);color:var(--muted);margin:0 0 10px}.tour-card .body{font:15px/1.55 var(--display);margin:8px 0 0}.tour-card .prompt{font:13px/1.45 var(--sans);color:var(--muted);margin:10px 0 0}.tour-card footer{align-items:center;gap:10px;margin-top:16px;display:flex}.progress{gap:5px;margin-right:auto;display:flex}.progress i{background:#1e222533;border-radius:50%;width:6px;height:6px}.progress i.done{background:#1e222573}.progress i.on{background:var(--accent)}.tour-card .back{color:var(--muted);background:0 0;border:0;padding:8px 4px;font-size:13px}.tour-card .primary{background:var(--ink);color:#f4efe3;border:0;border-radius:4px;padding:9px 14px;font-size:14px}.tour-card .primary:hover{background:#33393d}.tour-card .explore{color:var(--muted);text-underline-offset:3px;background:0 0;border:0;margin:10px 0 0;padding:0;font-size:12px;text-decoration:underline;display:block}.resume{border:1px solid var(--rule);background:var(--paper-glass);text-align:left;border-radius:4px;max-width:calc(100vw - 44px);padding:9px 14px;font-size:13px;position:absolute;bottom:78px;left:22px}.toolbar{background:var(--paper-glass);border:1px solid var(--rule);border-radius:6px;align-items:center;gap:6px;padding:5px;display:flex;position:absolute;top:14px;right:14px}.toolbar button{background:0 0;border:1px solid #0000;border-radius:4px;padding:6px 10px;font-size:13px}.toolbar button:hover{background:#1e22250f}.toolbar button.on{border-color:var(--rule);background:#fff8e8}.toolbar .xray{color:var(--muted);align-items:center;gap:6px;padding:0 6px;font-size:12px;display:flex}.toolbar input[type=range]{width:74px;accent-color:var(--ink)}.inspector{background:var(--paper-glass);border:1px solid var(--rule);border-radius:6px;width:min(330px,100vw - 28px);max-height:calc(100vh - 150px);padding:18px 20px;position:absolute;top:66px;right:14px;overflow:auto;box-shadow:0 10px 40px #14181a29}.inspector h2{font:600 21px/1.15 var(--display);margin:0 28px 4px 0}.inspector h3{font:600 12px/1.3 var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 4px}.inspector p{font:14px/1.55 var(--display);margin:6px 0}.inspector .group{font:12px var(--sans);color:var(--muted)}.inspector .evidence{font:11.5px var(--sans);background:#1e222512;border-radius:10px;margin-top:12px;padding:2px 8px;display:inline-block}.inspector .evidence.reconstructed{background:#c99a3c2e}.inspector .source{color:var(--muted);word-break:break-word;font:11.5px/1.4 var(--mono)!important}.close{width:28px;height:28px;color:var(--muted);background:0 0;border:0;font-size:22px;line-height:1;position:absolute;top:10px;right:12px}.parts-index{background:var(--paper-glass);border:1px solid var(--rule);z-index:3;border-radius:6px;flex-direction:column;width:min(300px,100vw - 28px);display:flex;position:absolute;top:66px;bottom:74px;right:14px;box-shadow:0 10px 40px #14181a29}.parts-index header{padding:14px 16px 6px;position:relative}.parts-index h2{font:600 19px var(--display);margin:0}.parts-index input{border:1px solid var(--rule);font:13px var(--sans);background:#fffdf7;border-radius:4px;margin:0 16px 8px;padding:7px 9px}.parts-index .groups{padding:0 8px 12px;overflow:auto}.parts-index h3{font:600 11px var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:12px 8px 4px}.parts-index ul{margin:0;padding:0;list-style:none}.parts-index li button{text-align:left;background:0 0;border:0;border-radius:3px;width:100%;padding:5px 8px;font-size:13.5px}.parts-index li button:hover,.parts-index li button.on{background:var(--gold-fill)}.chapters{background:var(--paper-glass);border:1px solid var(--rule);scrollbar-width:none;border-radius:6px;gap:2px;max-width:calc(100vw - 24px);padding:4px;display:flex;position:absolute;bottom:14px;left:50%;overflow-x:auto;transform:translate(-50%)}.chapters button{white-space:nowrap;background:0 0;border:0;border-radius:4px;align-items:center;gap:7px;padding:7px 12px;font-size:13.5px;display:flex}.chapters button:hover{background:#1e22250f}.chapters button.on{background:var(--ink);color:#f4efe3}.chapters .num{font:11px var(--mono);opacity:.6}@media (max-width:760px){.masthead{top:12px;left:14px}.wordmark{font-size:16px}.wordmark-sub{display:none}.toolbar{gap:2px;top:8px;right:8px}.toolbar .xray{display:none}.toolbar button{padding:6px 8px;font-size:12px}.tour-card{padding:14px 16px 10px}.tour-card h1{font-size:21px}.tour-card .body{font-size:14px}.chapters{bottom:8px}.chapters button{padding:7px 9px;font-size:12.5px}.inspector,.parts-index{max-height:55vh;top:auto;bottom:62px}}@media (max-width:480px){.wordmark .maker{display:none}.toolbar button{padding:5px 7px}}@media (prefers-reduced-motion:reduce){.overlays,.tour-card{transition:none}}.controls-panel .groups{padding:0 16px 14px}.controls-panel h3{margin:14px 0 6px}.control-row{flex-direction:column;gap:5px;margin:0 0 10px;display:flex}.control-label{font:13px var(--sans)}.control-value{color:var(--muted);font-variant-numeric:tabular-nums}.segmented{border:1px solid var(--rule);border-radius:4px;display:flex;overflow:hidden}.segmented button{border:0;border-left:1px solid var(--rule);font:12.5px var(--sans);background:#fffdf7;flex:1;padding:5px 4px}.segmented button:first-child{border-left:0}.segmented button.on{background:var(--gold-fill);font-weight:600}.controls-panel input[type=range]{width:100%;accent-color:var(--ink);background:0 0;border:0;margin:0;padding:0}.control-reset{border:1px solid var(--rule);font:12.5px var(--sans);background:#fffdf7;border-radius:4px;padding:5px 8px}
