*{box-sizing:border-box}html{scroll-padding-top:1rem}body{margin:0;background:var(--color-background);color:var(--color-text);font:1rem/1.55 var(--font-body)}a{color:inherit;text-underline-offset:5px}button,input,select{font:inherit;color:inherit}button{cursor:pointer;min-height:44px;border:1px solid var(--color-border);background:transparent;padding:.65rem .85rem;text-align:left}button:hover{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}button:disabled{cursor:default;color:var(--color-muted);background:transparent;border-color:var(--color-border)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;top:-100px;z-index:5;background:var(--color-background);padding:1rem}.skip:focus{top:0}header{max-width:1440px;margin:auto;padding:1.4rem 3rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--color-border)}.brand{position:relative;text-decoration:none;font-size:.9rem;font-weight:900;letter-spacing:-.04em;line-height:1;padding-right:2.5rem}.brand span{position:absolute;right:0;top:-.3rem;font-size:2.2rem;color:var(--color-accent)}nav{display:flex;gap:1.6rem;flex-wrap:wrap;font-size:.75rem}main{max-width:1440px;margin:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--font-display);font-weight:900;line-height:.98;letter-spacing:-.06em}h1{font-size:clamp(3.2rem,7vw,7.3rem);margin-bottom:2rem}h1 span{color:var(--color-accent)}h2{font-size:clamp(2.2rem,4vw,4rem);margin-bottom:1.5rem}h3{font-size:2.1rem;margin-bottom:1rem}.eyebrow{font-size:.65rem;letter-spacing:.06em;color:var(--color-muted);margin-bottom:1.5rem}.object-story{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:3rem;padding:3rem;align-items:start}.scene{margin:0;min-width:0;background:var(--color-surface);padding:1.2rem;position:sticky;top:1rem;grid-column:2;grid-row:1;overflow:hidden}.scene-meta{display:flex;justify-content:space-between;gap:1rem;font-size:.58rem;letter-spacing:.05em}.scene canvas,.scene>[data-runtime-fallback]{display:block;width:100%;height:auto;aspect-ratio:7/6;max-height:530px;object-fit:contain}.part-labels{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-size:.55rem;border-block:1px solid var(--color-text);padding:.6rem 0;opacity:0}.scene figcaption{font-size:.66rem;min-height:2.8em;margin:1rem 0}.scene-controls{display:flex;flex-wrap:wrap;gap:.5rem}.scene-controls button{font-size:.68rem;border-color:var(--color-text);padding:.5rem .65rem}.explode-control{display:block;border-top:1px solid var(--color-border);margin-top:1.1rem;padding-top:.8rem;font-size:.75rem}.explode-control output{float:right}input[type=range]{display:block;width:100%;accent-color:var(--color-accent);min-height:44px}#repair-status{font-size:.7rem;margin:.6rem 0 0;min-height:3em}.story-copy{grid-column:1;grid-row:1;min-width:0}.hero{min-height:640px;display:flex;flex-direction:column;justify-content:center}.hero>p:not(.eyebrow){max-width:32ch;color:var(--color-muted);font-size:1rem}.hero>a{font-size:.85rem}.materials{padding:3rem 0}.materials>p:not(.eyebrow){max-width:45ch;font-size:.9rem;color:var(--color-muted)}.materials dl{margin:2rem 0}.materials dl>div{padding:1.1rem 0;border-top:1px solid var(--color-border)}.materials dt{font-size:.75rem;font-weight:700;color:var(--color-accent)}.materials dd{margin:.6rem 0 0;font-size:.9rem;max-width:39ch}.materials .boundary{font-size:.75rem!important;border-top:1px solid var(--color-border);padding-top:1rem}.logic{background:var(--color-accent);color:var(--color-on-accent);padding:4rem 3rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem 4rem}.logic>.eyebrow{grid-column:1/-1;color:var(--color-on-accent)}.logic>div>p{font-size:.9rem;max-width:45ch}.catalogue-route{padding:4rem 3rem;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.7fr);gap:3rem;align-items:start}.catalogue{min-width:0}.catalogue>p:not(.eyebrow){font-size:.9rem;color:var(--color-muted);max-width:53ch}.filters{display:grid;grid-template-columns:1fr 1fr;gap:1rem;border-block:1px solid var(--color-border);padding:1.3rem 0}.filters label{font-size:.75rem}.filters select{display:block;width:100%;max-width:100%;padding:.6rem;background:var(--color-background);color:var(--color-text);border:1px solid var(--color-border);min-height:44px;margin-top:.5rem;font-size:.8rem;border-radius:0}#filter-status{font-size:.72rem!important;margin:1rem 0 1.5rem}.objects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1.5rem}.object{min-width:0}.object img{display:block;width:100%;height:auto;border-bottom:1px solid var(--color-border)}.object-meta{font-size:.65rem;color:var(--color-accent);margin:1rem 0 .6rem}.object h3{font-size:1.8rem;margin-bottom:.8rem;letter-spacing:-.05em}.object>div>p:not(.object-meta){font-size:.8rem;color:var(--color-muted);max-width:35ch}.object button{font-size:.75rem}.route{background:var(--color-accent);color:var(--color-on-accent);padding:1.5rem;min-width:0;align-self:start}.route .eyebrow{color:var(--color-on-accent);font-size:.6rem}.route h2{font-size:2.25rem;letter-spacing:-.06em;overflow-wrap:anywhere}.route h2 span{font-size:1.4rem;display:block;margin-top:.8rem;letter-spacing:-.04em}.route>p:not(.eyebrow){font-size:.8rem}.route :focus-visible{outline-color:var(--color-surface)}.route button{border-color:var(--color-on-accent);color:var(--color-on-accent);font-size:.7rem;padding:.5rem .65rem}.route button:hover{background:var(--color-on-accent);color:var(--color-accent)}.route button:disabled{color:var(--color-on-accent);border-style:dashed;opacity:.65}.route-actions{display:flex;gap:.6rem;flex-wrap:wrap}.route-actions button:first-child{background:var(--color-on-accent);color:var(--color-accent);border-color:var(--color-on-accent)}.route-actions button:first-child:disabled{background:transparent;color:var(--color-on-accent)}#route-list{list-style:none;padding:0;margin:1.5rem 0}#route-list li{display:grid;grid-template-columns:35px minmax(0,1fr);gap:.7rem;border-top:1px solid var(--color-on-accent);padding:1rem 0}.stop-number{font-size:1.6rem;font-weight:900;line-height:1}.route-item-title{display:block;font-size:.9rem}#route-list small{display:block;font-size:.65rem;margin:.5rem 0 .8rem}.route-buttons{display:flex;gap:.4rem;flex-wrap:wrap}.route-buttons button{min-height:44px;font-size:.65rem;padding:.4rem .55rem}#route-status{font-size:.72rem!important;min-height:3em}.memory-note{margin:1.3rem 0 0;font-size:.68rem!important;border-top:1px solid var(--color-on-accent);padding-top:1rem}#no-results{padding:1rem;border:1px solid var(--color-border);font-size:.85rem}#no-results button{font-size:.8rem}.flight{position:fixed;left:0;top:0;min-width:40px;height:40px;padding:.3rem;background:var(--color-text);color:var(--color-background);font-size:1.2rem;font-weight:900;z-index:9;pointer-events:none;text-align:center}.workbench{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:3rem;padding:3rem;align-items:start}.workbench>.scene{grid-column:2;grid-row:1;padding:1rem}.catalogue-work{grid-column:1;grid-row:1;min-width:0}.catalogue-title{padding:0 0 2.5rem}.catalogue-title h1{font-size:clamp(3rem,4.7vw,4.8rem)}.catalogue-title>p:not(.eyebrow){font-size:.9rem;max-width:44ch;color:var(--color-muted)}.catalogue-page .catalogue-route{padding:0;display:block}.catalogue-page .catalogue>h2{font-size:2.4rem}.catalogue-page .catalogue>.eyebrow{display:none}.catalogue-page .objects{grid-template-columns:1fr;gap:0}.catalogue-page .object{display:grid;grid-template-columns:.7fr 1.3fr;gap:1.8rem;border-top:1px solid var(--color-border);padding:1.7rem 0;align-items:center}.catalogue-page .object img{border:0}.catalogue-page .object-meta{margin-top:0}.catalogue-page .object h3{font-size:2rem}.catalogue-page .route{margin-top:2.5rem;padding:2rem}.catalogue-page .route h2{font-size:2.7rem}.catalogue-page #route-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.catalogue-page .materials{margin-top:1rem;padding-bottom:0}.catalogue-page .materials h2{font-size:2.9rem}footer{max-width:1440px;margin:auto;border-top:1px solid var(--color-border);padding:2rem 3rem;display:flex;gap:1rem;justify-content:space-between;flex-wrap:wrap;font-size:.65rem;color:var(--color-muted)}footer p{max-width:55ch;margin:0}@media(max-width:1050px){header{padding:1.4rem 1.5rem}nav{gap:1rem}.object-story,.workbench{padding:2rem 1.5rem;gap:2rem}.hero{min-height:600px}.hero h1{font-size:clamp(3rem,6vw,5rem)}.scene{padding:.8rem}.scene-controls button{font-size:.65rem}.logic{padding:3rem 1.5rem;gap:2rem}.catalogue-route{padding:3rem 1.5rem;gap:1.5rem;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr)}.objects{gap:1.5rem 1rem}.route{padding:1.1rem}.route h2{font-size:2rem}.workbench{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.catalogue-title h1{font-size:3rem}.catalogue-page .object{gap:1rem}.catalogue-page .object h3{font-size:1.75rem}.catalogue-page #route-list{grid-template-columns:1fr}.catalogue-page .route{padding:1.5rem}.catalogue-page .route h2{font-size:2.3rem}footer{padding:1.5rem}}@media(max-width:750px){header{padding:1.2rem;align-items:flex-start;flex-direction:column;gap:1rem}nav{font-size:.7rem;gap:.7rem 1rem}.object-story,.workbench{display:flex;flex-direction:column;padding:1.5rem 1.2rem;gap:2rem}.scene,.workbench>.scene{position:relative;top:auto;width:100%;padding:1rem;order:0}.scene canvas,.scene>[data-runtime-fallback]{height:290px;aspect-ratio:auto;object-fit:contain}.scene-meta{font-size:.55rem}.scene figcaption{font-size:.65rem;min-height:0}.scene-controls{gap:.5rem}.scene-controls button{font-size:.65rem;padding:.5rem .65rem}.story-copy,.catalogue-work{width:100%;order:1}.hero{min-height:0;padding:1rem 0 2rem}.hero h1{font-size:clamp(3.3rem,13vw,5rem)}.hero>p:not(.eyebrow){font-size:.95rem;max-width:35ch}.hero .eyebrow{font-size:.6rem}.materials{padding:2rem 0}.materials h2{font-size:2.9rem}.logic{padding:3rem 1.2rem;display:block}.logic h2{font-size:2.6rem}.logic>div{margin-top:2rem}.logic>div>p{font-size:.85rem}.catalogue-route{display:block;padding:3rem 1.2rem}.catalogue h2{font-size:2.9rem}.filters{gap:.8rem}.filters select{font-size:.75rem}.objects{grid-template-columns:1fr;gap:2rem}.object img{max-height:280px;object-fit:contain}.object h3{font-size:2.2rem}.object>div>p:not(.object-meta){max-width:100%;font-size:.85rem}.route{margin-top:3rem;padding:1.5rem}.route h2{font-size:2.8rem}.route>p:not(.eyebrow){font-size:.85rem}.route-actions button{font-size:.75rem}.route-buttons button{font-size:.7rem}.catalogue-title{padding:1rem 0 2rem}.catalogue-title h1{font-size:clamp(2.8rem,11vw,4rem)}.catalogue-page .catalogue-route{padding:0}.catalogue-page .catalogue>h2{font-size:2.6rem}.catalogue-page .object{grid-template-columns:100px minmax(0,1fr);gap:1rem;padding:1.5rem 0;align-items:start}.catalogue-page .object img{min-height:130px;object-fit:contain}.catalogue-page .object-meta{font-size:.6rem}.catalogue-page .object h3{font-size:1.85rem}.catalogue-page .object>div>p:not(.object-meta){font-size:.78rem}.catalogue-page .object button{font-size:.7rem}.catalogue-page .route{padding:1.5rem}.catalogue-page .route h2{font-size:2.5rem}.catalogue-page .materials h2{font-size:2.7rem}footer{display:block;padding:1.5rem 1.2rem}footer p{margin-bottom:1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
