.build-boot { overflow: hidden; }
.studio-arriving body > :not(.route-curtain) { visibility: hidden; }
.build-loader { display: none; }
.build-boot .build-loader {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: block;
  background: var(--paper);
  color: var(--ink);
  overflow: hidden;
}
.build-loader .loader-shell {
  width: auto;
  height: 100%;
  margin: 0;
  padding: clamp(20px,3vw,44px) var(--gutter) max(24px,env(safe-area-inset-bottom));
  display: grid;
  grid-template-rows: auto 1fr auto;
}
.loader-mast { display:flex; align-items:center; justify-content:space-between; padding-bottom:20px; border-bottom:1px solid var(--line); }
.loader-mast .logo { width:166px; height:auto; margin:0; }
.entrance-kicker, .loader-mast > span, .loader-caption, .route-signature {
  font: 400 clamp(10px,.95vw,14px)/1.5 ui-monospace,monospace;
  letter-spacing: .12em;
}
.loader-main { display:grid; align-content:center; justify-items:center; gap:24px; min-width:0; min-height:0; padding-block:24px; }
.loader-copy { text-align:center; }
.loader-copy > .entrance-kicker { display:block; margin-bottom:14px; color:var(--muted); }
.loader-title { margin:0; font:400 clamp(32px,3.65vw,58px)/1.1 var(--display); letter-spacing:-.015em; text-transform:none; }
.loader-line { display:block; white-space:nowrap; }
.entrance-copy em { color:var(--accent); font-style:italic; }
.entrance-word { display:inline-block; overflow:clip; vertical-align:top; padding-bottom:.12em; margin-bottom:-.12em; }
.entrance-glyph { display:inline-block; will-change:transform; }
.build-boot .entrance-copy:not(.is-revealing) { visibility:hidden; }
.boot-core { position:relative; width:min(390px,48svh,72vw); aspect-ratio:1; }
.boot-ring { width:100%; height:100%; display:block; }
.boot-orbit { fill:none; stroke:var(--muted); stroke-width:1; opacity:.28; }
.boot-orbit-inner { stroke-dasharray:13 4; opacity:.2; }
.boot-segment { fill:none; stroke:var(--line); stroke-width:12; }
.boot-segment.is-on { stroke:var(--accent); }
.boot-readout { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; }
.boot-state, .boot-identity { font:400 clamp(10px,1vw,13px)/1.4 ui-monospace,monospace; letter-spacing:.15em; }
.boot-state { color:var(--muted); }
.boot-identity { color:var(--accent); }
.loader-bottom { display:flex; justify-content:center; padding-top:18px; border-top:1px solid var(--line); }
.loader-caption { color:var(--muted); }
.loader-progress { margin:0; color:var(--ink); font:400 clamp(62px,7vw,106px)/.9 var(--display); font-style:italic; }
.loader-progress b { font-weight:400; font-variant-numeric:tabular-nums; }
.loader-progress span { font-size:.4em; vertical-align:top; margin-left:3px; }
.is-ready .boot-state { color:var(--accent); }
.route-curtain { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; background:var(--paper); color:var(--ink); overflow:hidden; }
.route-inner { width:100%; padding:var(--gutter); text-align:center; }
.route-inner > .entrance-kicker { display:block; margin-bottom:30px; color:var(--muted); }
.route-copy { max-width:1100px; margin:auto; font:400 clamp(56px,8.8vw,136px)/1.05 var(--display); letter-spacing:-.015em; text-wrap:balance; color:var(--accent); }
.route-signature { display:block; margin-top:36px; color:var(--muted); letter-spacing:.04em; }
@media (max-width:700px) {
  .loader-mast { padding-bottom:16px; }
  .loader-mast .logo { width:119px; }
  .loader-mast > span { max-width:130px; text-align:right; }
  .loader-main { gap:28px; padding-block:20px; }
  .loader-copy > .entrance-kicker { margin-bottom:12px; }
  .loader-title { font-size:clamp(28px,7.4vw,44px); }
  .boot-core { width:min(76vw,350px,43svh); }
  .loader-bottom { padding-top:16px; }
  .loader-progress { font-size:64px; }
  .loader-caption { font-size:10px; }
  .route-copy { font-size:clamp(48px,13vw,86px); }
}
@media (max-height:600px) and (min-width:500px) {
  .build-loader .loader-shell { padding-block:16px; }
  .loader-mast { padding-bottom:10px; }
  .loader-mast .logo { width:118px; }
  .loader-main { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; padding-block:10px; }
  .loader-title { font-size:clamp(22px,3.8vw,46px); }
  .boot-core { width:min(220px,55svh,42vw); }
  .loader-progress { font-size:60px; }
  .loader-copy > .entrance-kicker { margin-bottom:12px; }
}
@media (prefers-reduced-motion:reduce) {
  .build-boot { overflow:auto; }
  .build-boot .build-loader, .route-curtain { display:none; }
  .studio-arriving body > * { visibility:visible; }
}
