@import url('../atlas-navigation.css');
:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:#050c17;color:#edf3f6;--muted:#aac0d0;--line:#294254;--mint:#84eed5;--gold:#ffcd86}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 70% 0,#12253a 0,transparent 55%),#050c17}a{color:var(--mint);text-decoration:none}a:hover{text-decoration:underline}button,input{font:inherit;color:inherit}button{border:1px solid var(--line);background:#152739;border-radius:8px;padding:9px 13px;cursor:pointer;min-height:40px}button:hover{background:#203b50}button:focus-visible,input:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.primary{background:var(--gold);color:#142232;border-color:var(--gold);font-weight:700}.primary:hover{background:#ffe0ae}#app{max-width:1540px;margin:auto;padding:20px 28px 36px}.nav{display:flex;gap:24px;align-items:center;font-size:13px}.brand{color:#e9f4fa;font-weight:750;letter-spacing:.13em}.brand span{font-size:10px;color:#8baac1;font-weight:450}.languages{margin-left:auto;display:flex;gap:13px}.languages [aria-current=page]{color:var(--gold)}header{display:flex;align-items:end;justify-content:space-between;gap:30px;margin:25px 0 22px}.eyebrow{font-size:10px;letter-spacing:.17em;color:var(--mint);font-weight:700}h1{font-size:clamp(26px,3vw,39px);line-height:1.16;letter-spacing:-.045em;margin:7px 0 0;font-weight:600}header p{max-width:340px;color:var(--muted);font-size:14px;line-height:1.65;margin:0}h2{font-size:23px;letter-spacing:-.025em;line-height:1.25;margin:10px 0 14px}.chapters{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:14px}.chapters button{display:flex;align-items:center;justify-content:center;gap:10px;background:#102034b0;border-color:#2c4259;font-size:13px;padding:9px 8px}.chapters button span{font:10px ui-monospace,monospace;color:#90a9bf}.chapters button[aria-current=step]{border-color:var(--gold);background:#493d2b;color:#ffe2b6}.chapters button[aria-current=step] span{color:var(--gold)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:24px}.stage{position:relative;background:#030b16;border:1px solid #385368;border-radius:15px;overflow:hidden;align-self:start}#space{height:clamp(420px,calc(100svh - 280px),720px);width:100%;touch-action:none;outline:none}#space canvas{display:block}.scene-top{position:absolute;z-index:2;top:16px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}.live{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.12em;color:#c0d7e8;text-shadow:0 1px 6px #000}.live i{width:5px;height:5px;border-radius:100%;background:var(--mint);box-shadow:0 0 9px var(--mint)}.views{display:flex;gap:3px;pointer-events:auto;background:#0b1828df;padding:3px;border:1px solid #344c61;border-radius:9px}.views button{font-size:11px;min-height:32px;padding:6px 10px;background:transparent;border:0}.views [aria-pressed=true]{background:#334a60;color:#ffdda6}.view-controls{position:absolute;left:16px;bottom:60px;display:flex;gap:5px}.view-controls button{padding:7px 10px;font-size:11px;min-height:32px;background:#0f2133e8}.legend{position:absolute;right:16px;bottom:67px;display:flex;gap:14px;font-size:10px;color:#b7cddd;pointer-events:none}.legend span:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;background:#84c5ff}.legend .laser:before{background:var(--gold)}.legend .reply:before{background:var(--mint)}.scene-bottom{position:absolute;bottom:0;left:0;right:0;border-top:1px solid #2f495e;padding:13px 17px;display:flex;justify-content:space-between;gap:15px;background:#091728ef;color:#b7cfdf;font-size:10px;line-height:1.5}.scene-bottom span:first-child{color:#e4c99e}#loading{position:absolute;top:40%;left:12%;right:12%;text-align:center;background:#102237ed;padding:20px;border-radius:12px;font-size:14px}.lesson{padding:9px 0}.lesson>p{font-size:15px;line-height:1.8;color:#c2d4e1;margin:0}.lesson-actions{display:flex;gap:8px;margin:18px 0 22px}.lesson-actions .primary{font-size:12px;flex:1}.metrics{border-top:1px solid #2a4256}.metrics>div{padding:12px 0;border-bottom:1px solid #263b4f}.metrics span{display:block;font-size:11px;color:#a9c0d3}.metrics strong{display:block;color:#f5dfba;font:600 27px/1.3 ui-monospace,monospace;letter-spacing:-.04em;margin:4px 0}.metrics small{display:block;color:#95aec2;font-size:10px;line-height:1.6}.metrics .route-metric strong{font-size:18px;color:var(--mint)}.route-strip{margin-top:18px;padding:17px 23px;border:1px solid #2a4258;border-radius:13px;background:#0c1b2bf0}.route-nodes{display:flex;align-items:center;justify-content:space-between;gap:24px}.route-nodes>div{position:relative;flex:1;display:flex;gap:10px;align-items:center;color:#7d9bb1;font-size:12px;min-width:0}.route-nodes>div:not(:last-child):after{content:'→';position:absolute;right:-19px;color:#6d8da5}.route-nodes i{display:grid;place-items:center;width:31px;height:31px;border:1px solid #314c63;border-radius:8px;font-style:normal;font-size:19px;flex-shrink:0}.route-nodes .active{color:#ffe0ab}.route-nodes .active i{border-color:#e6bb73;background:#68512a60}.route-nodes .returning.active{color:var(--mint)}.route-nodes .returning.active i{border-color:var(--mint);background:#1e55465c}.route-nodes .returning:not(:last-child):after{content:'←';color:var(--mint)}#path-note{margin:12px 0 0;padding-top:12px;border-top:1px solid #263c50;color:#a7c0d2;font-size:12px;line-height:1.65}.experiment{margin-top:28px;padding:23px 25px;border:1px solid #2d4459;background:#0f2031b3;border-radius:14px}.experiment-heading{display:flex;justify-content:space-between;gap:15px;align-items:center}.experiment-heading h2{font-size:21px;margin:7px 0 0}.experiment-heading button{font-size:11px;color:#a9c5d8}.controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:20px 0}.controls button{font-size:12px}.switch{display:flex;gap:10px;align-items:center;min-height:40px;padding:9px 14px;background:#122a3d;border:1px solid #314e64;border-radius:8px;font-size:13px}.switch input{accent-color:var(--mint);width:16px;height:16px}.location{display:grid;grid-template-columns:1fr 1fr auto;gap:20px;align-items:center}.location label{display:grid;grid-template-columns:1fr auto;gap:9px;font-size:12px;color:#b4ccdd}.location input{grid-column:1/-1;width:100%;accent-color:var(--gold);cursor:pointer}.location output{font-family:ui-monospace,monospace;color:#f4d49f}.presets{display:flex;flex-wrap:wrap;gap:6px;max-width:280px}.presets button{font-size:11px;min-height:34px;padding:6px 10px}.experiment-note{color:#8faabe;font-size:12px;line-height:1.7;margin:17px 0 0}.shell-details{margin-top:17px;padding-top:15px;border-top:1px solid #2b4358;font-size:12px;color:#a3bfd2}summary{cursor:pointer;line-height:1.6}#shells{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:15px}.shell{display:flex;gap:9px;align-items:start}.shell input{accent-color:var(--c);margin:4px 0}.shell b{display:block;color:var(--c);font-size:12px;line-height:1.5}.shell small{display:block;color:#9bb6c9;font-size:11px;line-height:1.6;margin-top:6px}.shell-details p{line-height:1.7}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:25px 0}.principles article{padding:22px;border:1px solid #2a4056;border-radius:12px;background:#0c1a2bbf}.principles h3{font-size:20px;font-weight:550;letter-spacing:-.02em;margin:9px 0 12px}.principles strong{font:600 20px/1.7 ui-monospace,monospace;color:#f5d59e}.principles strong span{font-size:12px;color:#9db9ce;font-weight:450}.principles p{font-size:13px;line-height:1.8;color:#adc4d5;margin:12px 0 0}.assumptions{font-size:13px;line-height:1.8;color:#9bb5c9;border-top:1px solid #2c4359;padding-top:18px}.assumptions summary{color:#c2d8e6}.sources{display:flex;flex-wrap:wrap;gap:10px 25px;margin-top:18px}footer{margin-top:30px;font-size:10px;letter-spacing:.08em;color:#7393ad}[hidden]{display:none!important}
@media(min-width:1600px){#space{height:640px}}@media(max-width:1100px){.layout{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.lesson>p{font-size:14px}.legend{display:none}.location{grid-template-columns:1fr 1fr}.presets{grid-column:1/-1;max-width:none}.route-nodes{gap:19px}.route-nodes>div{font-size:11px;gap:7px}#shells{grid-template-columns:1fr 1fr}}@media(max-width:800px){#app{padding:18px 16px 30px}header{display:block;margin:22px 0 18px}header p{max-width:550px;margin-top:12px}h1{font-size:31px}.layout{grid-template-columns:1fr}.lesson{padding:8px 0}.lesson>p{font-size:16px}.metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.metrics strong{font-size:23px}.metrics .route-metric strong{font-size:16px}.principles{grid-template-columns:1fr}.route-nodes{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.route-nodes>div{font-size:12px}.route-nodes>div:nth-child(3):after{display:none}#space{height:450px}.chapters{gap:5px}.chapters button{flex-direction:column;gap:4px;font-size:11px;min-height:48px}}@media(max-width:480px){.nav{gap:15px;font-size:12px}.brand span{display:none}header p{font-size:13px}h1{font-size:29px}.scene-top{left:10px;right:10px;top:10px;flex-direction:column;align-items:start;gap:8px}.views{align-self:end}.views button{font-size:10px;padding:5px 9px}.live{font-size:8px}#space{height:390px}.scene-bottom{display:block;padding:11px 12px}.scene-bottom span{display:block}.view-controls{bottom:75px;left:11px}.metrics{grid-template-columns:1fr 1fr}.metrics .route-metric{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5px}.metrics .route-metric small{grid-column:1/-1}.lesson-actions .primary{font-size:13px}.route-strip{padding:16px}.route-nodes>div{gap:7px;font-size:10px}.route-nodes i{width:24px;height:26px;font-size:16px}.route-nodes>div:not(:last-child):after{right:-13px}.experiment{padding:20px 17px}.experiment-heading{align-items:start;flex-direction:column}.experiment-heading h2{font-size:21px}.location{grid-template-columns:1fr}.presets{grid-column:auto}#shells{grid-template-columns:1fr}.controls{gap:8px}.switch{flex:1;font-size:12px;padding:9px 11px}.principles article{padding:21px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.metrics{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin:0 0 15px}.metrics .route-metric{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px}.metrics .route-metric small{grid-column:1/-1}.metrics strong{font-size:25px}.lesson>p{font-size:14px;line-height:1.75}.lesson-actions{margin:15px 0}.lesson h2{font-size:22px}.stage #space{height:clamp(390px,calc(100svh - 330px),680px)}
@media(max-width:800px){.stage #space{height:440px}.lesson>p{font-size:16px}.metrics{grid-template-columns:1fr 1fr 1fr;gap:16px}.metrics .route-metric{grid-column:auto;display:block}.metrics .route-metric strong{font-size:16px}}
@media(max-width:480px){.stage #space{height:390px}.metrics{grid-template-columns:1fr 1fr}.metrics .route-metric{grid-column:1/-1;display:grid}}
@media(max-width:480px){.chapters{grid-template-columns:repeat(6,minmax(0,1fr))}.chapters button{min-width:0;padding:6px 2px;font-size:10px}.chapters button span{font-size:9px}}

.mini-metrics{display:none}@media(max-width:800px){.mini-metrics{display:flex;position:absolute;left:16px;right:16px;bottom:112px;gap:10px;justify-content:space-between;pointer-events:none}.mini-metrics span{background:#081a2bd9;border:1px solid #3b5c73;border-radius:8px;padding:7px 11px;font-size:9px;color:#b7d0e1}.mini-metrics b{display:block;font:600 18px ui-monospace,monospace;color:#f5d39c;margin-bottom:3px}}

/* Keep packet measurements outside the canvas and its orbit controls. */
.scene-top{position:relative;top:auto;left:auto;right:auto;padding:16px 18px}
.packet-reading{padding:0 18px 14px;border-bottom:1px solid #2b4358;color:#c5dcea}
.packet-reading-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px 18px;flex-wrap:wrap;font-size:13px;line-height:1.5}
.packet-reading-title strong{font-weight:550;color:#ffe0ab}.packet-reading-title>span{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums}
.packet-track{position:relative;margin:12px 6px;height:7px}.packet-track #packet-links{display:flex;height:100%;gap:0}.packet-link{min-width:0;background:#89caff}.packet-link.laser{background:#ffcb76}
#packet-marker{position:absolute;top:50%;width:12px;height:12px;border:2px solid #081a2b;background:#ffe4aa;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #ffe4aa}
.packet-reading.returning #packet-marker{background:#75eed6;box-shadow:0 0 0 1px #75eed6}
.packet-reading small{display:block;font-size:12px;line-height:1.5;color:#9fbdcf}
@media(max-width:480px){.scene-top{padding:12px 12px 10px}.packet-reading{padding:0 12px 12px}.packet-reading-title{gap:4px 10px}}

.stage.has-packet{display:flex;flex-direction:column;height:calc(100svh - var(--atlas-player-height,120px) - 24px);min-height:500px;max-height:780px}
.stage.has-packet .scene-top,.stage.has-packet .packet-reading{flex-shrink:0}
.stage.has-packet #space{flex:1 1 auto;height:0;min-height:200px}
.stage.has-packet .scene-bottom{position:relative;flex:0 0 auto}
