@font-face{font-family:Inter;src:url('fonts/inter-400.ttf');font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url('fonts/inter-500.ttf');font-weight:500;font-display:swap}@font-face{font-family:Inter;src:url('fonts/inter-600.ttf');font-weight:600;font-display:swap}@font-face{font-family:Inter;src:url('fonts/inter-700.ttf');font-weight:700;font-display:swap}
:root{font-family:Inter,sans-serif;color:#F8FAFC;background:#0A1929;font-synthesis:none;color-scheme:dark;--teal:#169C95;--line:#ffffff24;--muted:#94A3B8}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:transparent;border:0}button:disabled{opacity:.25;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--teal);outline-offset:5px}header{height:64px;position:relative;z-index:5;display:flex;align-items:center;padding:0 26px;gap:24px;border-bottom:1px solid var(--line);background:#0A1929}.brand{display:flex;gap:10px;align-items:center}.brand img{width:118px;height:36px}.brand span{font-size:11px;color:var(--muted);align-self:flex-start;padding-top:5px}.edition{font-size:12px;color:var(--muted);padding-left:24px;border-left:1px solid var(--line)}#trace{margin-left:auto;background:var(--teal);border-radius:6px;padding:11px 16px;font-size:12px;font-weight:600}#stage{position:relative;height:calc(100dvh - 64px);width:100vw;overflow:clip;isolation:isolate;touch-action:pinch-zoom;background:radial-gradient(ellipse at 50% 40%,#0d2532,#080f19 80%);cursor:grab}#stage.dragging{cursor:grabbing;user-select:none}#scene,#hit-world{position:absolute;inset:0;width:100%;height:100%}#hit-world{pointer-events:none}.chapter-intro{position:absolute;left:32px;top:30px;pointer-events:none;z-index:3}.eyebrow{display:flex;align-items:center;gap:8px;color:#63C9C2;font-size:10px;letter-spacing:1.6px;margin:0 0 12px}.eyebrow span{width:6px;height:6px;background:var(--teal)}h1{font-size:clamp(28px,3vw,44px);font-weight:500;letter-spacing:-1.5px;line-height:1.08;margin:0 0 12px}.intro-copy{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.groups{display:flex;gap:14px;margin-top:22px;pointer-events:auto}.groups button{padding:0 0 7px;font-size:11px;color:var(--muted);border-bottom:1px solid transparent}.groups button.active{border-color:var(--teal);color:#fff}.groups button:hover{color:#fff}.view-tools{position:absolute;right:28px;top:30px;display:flex;gap:8px;z-index:3}.view-tools button{background:#0A1929bb;border:1px solid var(--line);padding:8px 11px;border-radius:5px;font-size:11px;color:#CBD5E1}.view-tools button:hover{border-color:var(--teal)}.chapters{position:absolute;left:32px;bottom:105px;z-index:3;display:flex;flex-direction:column;gap:4px}.nav-caption{font-size:9px;letter-spacing:1.4px;color:#64748B;margin-bottom:12px}.chapters a{display:flex;align-items:center;gap:9px;font-size:11px;padding:8px 0;color:#7b8b9e}.chapters a.active,.chapters a:hover{color:#fff}.chapters i{width:5px;height:5px;background:var(--chapter);border-radius:50%;box-shadow:0 0 9px color-mix(in srgb,var(--chapter) 30%,transparent)}.chapters a span{font-size:9px;color:var(--chapter);font-variant-numeric:tabular-nums}.screen-caption{position:absolute;bottom:106px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;white-space:nowrap;z-index:3;pointer-events:none;text-shadow:0 1px 8px #000}.screen-caption>span:first-child{color:#6DCFC9;font-size:11px}.screen-caption strong{font-size:14px;font-weight:500}#screen-hint{font-size:11px;color:#94A3B8;border-left:1px solid var(--line);padding-left:12px}.transport{width:max-content;position:absolute;left:50%;transform:translateX(-50%);bottom:48px;display:flex;align-items:center;gap:12px;z-index:3}.transport button{height:32px;border:1px solid var(--line);border-radius:5px;background:#0A1929bd;min-width:32px}.transport button:hover{border-color:#169C95}.transport #inspect{white-space:nowrap;font-size:11px;padding:0 12px;margin-left:8px}#progress{font-size:11px;color:#CBD5E1;min-width:32px;text-align:center;font-variant-numeric:tabular-nums}.gesture-hint{position:absolute;left:32px;bottom:24px;color:#64748B;font-size:10px;pointer-events:none;margin:0}.source-note{position:absolute;right:28px;bottom:24px;color:#64748B;font-size:10px;pointer-events:none;margin:0}.screen-plane{position:absolute;top:0;left:0;width:1120px;height:940px;transform-origin:0 0;background:#0A1929;border:1px solid #8FB8C2;overflow:hidden;border-radius:5px;contain:layout style;pointer-events:auto;cursor:pointer}.window-bar{height:64px;display:flex;align-items:center;padding:0 24px;gap:18px;background:#0A1929}.window-bar>span{color:#51C2B9;font-size:13px}.window-bar strong{font-size:23px;font-weight:500}.window-bar small{margin-left:auto;font-size:11px;color:#94A3B8}.screen-plane img{display:block;width:1120px;height:837px;object-fit:contain;background:#F8FAFC}.plane-foot{height:39px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:11px;color:#94A3B8}.sr-only{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}dialog{padding:0;width:min(94vw,1500px);max-width:94vw;max-height:94dvh;background:#0A1929;color:#fff;border:1px solid var(--line);border-radius:8px}dialog::backdrop{background:#050a13e8;backdrop-filter:blur(8px)}.dialog-top{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#0A1929}.dialog-top strong{font-size:14px;font-weight:500}.dialog-top button{font-size:26px}#capture-image{width:100%;max-height:calc(94dvh - 110px);object-fit:contain;display:block;background:#F8FAFC}dialog p{font-size:11px;color:#94A3B8;margin:14px 20px}body:not([data-renderer]) #stage:after{content:'Preparing the court journey…';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:12px;color:#94A3B8}
@media(max-width:900px){header{padding:0 18px;gap:14px}.edition{display:none}.chapter-intro{left:20px;top:26px}.chapter-intro h1{font-size:30px}.view-tools{right:20px;top:28px}.chapters{left:20px;bottom:130px}.gesture-hint{left:20px}.source-note{display:none}.screen-caption{bottom:106px}.screen-caption #screen-hint{display:none}}
@media(max-width:600px){header{padding:0 14px;height:60px}.brand img{width:96px;height:32px}.brand span{font-size:10px}#trace{font-size:10px;padding:9px 10px}#stage{height:calc(100dvh - 60px)}.chapter-intro{left:18px;top:22px}.eyebrow{font-size:9px;margin-bottom:9px}h1,.chapter-intro h1{font-size:27px;letter-spacing:-.8px}.intro-copy{font-size:10px}.groups{gap:12px;margin-top:15px}.groups button{font-size:10px}.view-tools{top:auto;right:16px;bottom:18px}.view-tools button{font-size:9px;padding:7px 8px}#reset{display:none}.chapters{left:18px;right:18px;bottom:135px;flex-direction:row;gap:16px;justify-content:center}.chapters .nav-caption{display:none}.chapters a{font-size:0;gap:5px}.chapters a span{font-size:9px}.chapters a.active{font-size:10px}.chapters a i{width:4px;height:4px}.screen-caption{bottom:102px;gap:9px}.screen-caption strong{font-size:12px}.screen-caption>span:first-child{font-size:10px}.transport{bottom:53px;gap:9px}.transport #inspect{font-size:10px}.gesture-hint{font-size:9px;bottom:21px;left:18px;max-width:200px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Chapter colors follow the current cluster; geometry and motion stay shared. */
.eyebrow{color:color-mix(in srgb,var(--teal) 65%,white)}.screen-caption>span:first-child{color:color-mix(in srgb,var(--teal) 65%,white)}.window-bar>span{color:var(--card-ink,#51C2B9)}.screen-plane{border-color:color-mix(in srgb,var(--card-color,#169C95) 60%,#8FB8C2)}

#trace{color:var(--accent-ink,#FFFFFF)}

/* Full feature index and projected node connections. */
.feature-nav{top:222px;bottom:90px;left:32px;width:222px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ffffff24 transparent;padding:0 7px 8px 0;gap:0;display:block}.feature-nav .nav-caption{display:block;position:sticky;top:0;background:#0A1929ed;padding:5px 0 9px;margin:0;font-size:9px;z-index:1}.feature-chapter{position:relative;padding:0 0 10px}.feature-nav .chapter-link{font-size:11px;display:flex;gap:7px;min-height:30px;padding:6px 0;color:#94A3B8}.feature-nav .chapter-link strong{font-size:11px;font-weight:500;flex:1}.feature-nav .chapter-link.active{color:white}.chapter-link small{font-size:9px;color:#64748B}.chapter-node{width:4px;height:4px;border:1px solid var(--chapter);border-radius:50%;flex-shrink:0}.feature-items{display:flex;flex-direction:column;gap:1px;padding-left:17px}.feature-items button{display:flex;align-items:center;gap:8px;width:100%;min-height:22px;padding:3px 0 3px 4px;text-align:left;color:#7f90a4;font-size:10.5px;line-height:16px;border-radius:3px}.feature-items button>span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feature-items button:hover,.feature-items button.active{color:#fff;background:color-mix(in srgb,var(--chapter) 12%,transparent)}.feature-node{width:4px;height:4px;border:1px solid var(--chapter);border-radius:50%;opacity:.45;margin-right:1px;flex-shrink:0}.feature-items button.active .feature-node,.feature-items button:hover .feature-node{background:var(--chapter);opacity:1}.chapter-link i{box-shadow:none}.feature-nav a span{font-size:9px}
#node-lines,#map-hits{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}#node-lines{z-index:2;fill:none}#map-hits{z-index:3}#map-hits[hidden]{display:none}.map-chapter{cursor:pointer;outline:none;pointer-events:none}.map-chapter polygon{pointer-events:all;fill:transparent;stroke:var(--chapter);stroke-width:1;stroke-opacity:.55}.map-chapter:hover polygon,.map-chapter:focus-visible polygon{fill:color-mix(in srgb,var(--chapter) 10%,transparent);stroke-width:2;stroke-opacity:1}.map-chapter circle{fill:var(--chapter);stroke:#fff;stroke-width:1;pointer-events:all}.map-chapter text{fill:white;font-family:Inter,sans-serif;font-size:12px;font-weight:500;paint-order:stroke;stroke:#0A1929;stroke-width:4px;stroke-linejoin:round;pointer-events:all}.map-chapter .map-chapter-count{font-size:9px;fill:#CBD5E1;font-weight:400}.is-map .groups,.is-map .screen-caption,.is-map .transport,.is-map #chapter-view{display:none}.is-map #stage{cursor:default}.is-map .gesture-hint{font-size:0}.is-map .gesture-hint:after{content:'Choose a chapter · Scroll to adjust zoom';font-size:10px}.is-map .chapter-intro{max-width:calc(100vw - 270px)}#all-chapters{border-color:var(--teal);color:#fff}#all-chapters[aria-pressed=true]{background:color-mix(in srgb,var(--teal) 18%,#0A1929)}#features-toggle{display:none}
@media(max-width:1100px) and (min-width:601px){.feature-nav{left:20px;width:182px}.feature-nav .chapter-link strong{font-size:10px}.feature-nav .chapter-link{gap:5px}.feature-items{padding-left:12px}.feature-items button{font-size:10px}.is-map .chapter-intro{max-width:calc(100vw - 260px)}}
@media(max-width:600px){.feature-nav{display:none;position:absolute;top:200px;bottom:102px;left:18px;right:auto;width:min(280px,calc(100vw - 36px));padding:8px 12px;background:#0A1929f5;border:1px solid #ffffff24;border-radius:7px;z-index:8}.features-open .feature-nav{display:block}.feature-nav .chapter-link{font-size:11px;white-space:nowrap}.feature-nav .chapter-link strong{font-size:11px}.feature-nav .nav-caption{display:block}.feature-items button{font-size:11px;min-height:28px}.feature-nav .chapter-link span{font-size:9px}.feature-nav .chapter-link i{width:5px;height:5px}#features-toggle{display:block;position:absolute;left:18px;top:165px;z-index:8;background:#0A1929d9;border:1px solid #ffffff24;border-radius:5px;padding:7px 9px;font-size:10px;color:#CBD5E1}#features-toggle span{color:#64748B;margin-left:8px}#chapter-view{display:none}.is-map .chapter-intro{max-width:calc(100vw - 36px)}.is-map #features-toggle{top:144px}.is-map .feature-nav{top:184px}.map-chapter text{font-size:10px}.map-chapter .map-chapter-count{font-size:8px}.is-map .gesture-hint{max-width:175px}.is-map .gesture-hint:after{font-size:9px}.features-open #node-lines{z-index:9}}

@media(min-height:1200px) and (min-width:601px){.feature-items button{font-size:12px;min-height:26px}.feature-nav .chapter-link strong{font-size:12px}.feature-nav .chapter-link{min-height:34px}}

@media(min-width:601px){.feature-nav{background:linear-gradient(90deg,#0A1929f5,#0A1929e8 92%,transparent)}}

/* Keep projected screen hit targets below the navigation controls. */
#hit-world{z-index:1}
/* A selected feature turns face-on and fills the clear space beside the index. */
#release-focus{display:none}.is-focused #release-focus{display:block}.is-focused #chapter-view{display:none}.is-focused #stage{cursor:default}.is-focused .chapter-intro .intro-copy,.is-focused .groups{visibility:hidden}.is-focused .chapter-intro h1{font-size:26px;letter-spacing:-.7px}.is-focused .screen-caption,.is-focused .transport{left:calc(50% + 135px)}.is-focused .gesture-hint{font-size:0}.is-focused .gesture-hint:after{content:'Click outside or press Escape to continue the journey';font-size:10px}.is-focused #node-lines path{opacity:0}.is-focused #node-lines path.is-active{opacity:.9;stroke-width:1.5}
#next-chapter{position:absolute;right:28px;bottom:145px;z-index:4;display:flex;align-items:center;gap:9px;max-width:220px;text-align:left;padding:11px 12px;border:1px solid color-mix(in srgb,var(--next-chapter) 45%,transparent);background:#0A1929e8;border-radius:5px;font-size:10px;color:#CBD5E1}#next-chapter i{width:7px;height:7px;border:1px solid var(--next-chapter);border-radius:50%;flex-shrink:0}#next-chapter b{font-weight:400;color:var(--next-chapter)}#next-chapter:hover,#next-chapter:focus-visible{color:white;border-color:var(--next-chapter)}#next-chapter:hover i{background:var(--next-chapter);box-shadow:0 0 10px var(--next-chapter)}.is-map #next-chapter,.is-focused #next-chapter{display:none}.chapter-link.is-hovered{color:#fff}.chapter-link.is-hovered .chapter-node{background:var(--chapter);box-shadow:0 0 10px var(--chapter)}.map-chapter.is-hovered polygon{fill:color-mix(in srgb,var(--chapter) 12%,transparent);stroke-width:2;stroke-opacity:1}.map-chapter.is-hovered circle{r:6;filter:drop-shadow(0 0 6px var(--chapter))}
@media(max-width:1100px) and (min-width:601px){.is-focused .screen-caption,.is-focused .transport{left:calc(50% + 105px)}.is-focused .screen-caption #screen-hint{display:none}#next-chapter{right:20px;max-width:185px}}
@media(max-width:600px){.is-focused .screen-caption,.is-focused .transport{left:50%}.is-focused .chapter-intro h1{font-size:24px}.is-focused .view-tools{gap:5px}.is-focused .gesture-hint{display:none}#next-chapter{right:18px;bottom:145px;max-width:180px;padding:9px;font-size:9px}.is-focused #features-toggle{top:165px}}
