/* W29-4.5 shell polish for the code-only front candidate. */
html, body { min-width: 320px; background: var(--nos-bg, #030c18); }
body { color: var(--nos-text, #edf2ff); }
#app { min-height: 100dvh; background: var(--nos-bg, #030c18); }
#app > p[role="status"] { min-height: 100dvh; display: grid; place-items: center; margin: 0; color: var(--nos-text-muted, #9ba8c4); font: 13px/1.5 var(--nos-font-ui, system-ui, sans-serif); }
.atelier-shell { position: relative; isolation: isolate; background: var(--nos-bg, #030c18); }
.atelier-shell::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: radial-gradient(720px 360px at 58% -12%, rgba(92, 68, 190, .16), transparent 70%); }
.atelier-shell.is-routing::after { content: ""; position: fixed; inset: 0 0 auto; z-index: 30; height: 2px; pointer-events: none; background: linear-gradient(90deg, transparent, var(--nos-accent, #8b64ff), var(--nos-focus, #27d5e9), transparent); animation: atelier-route-progress 900ms ease-in-out infinite; }
.atelier-shell.is-entering .atelier-main,
.atelier-shell.is-entering .atelier-module,
.atelier-shell.is-entering .atelier-vision { animation: atelier-content-in 180ms cubic-bezier(.23,1,.32,1) both; }
.atelier-top { position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--nos-bg-elevated, #071321) 92%, transparent); backdrop-filter: blur(14px); }
.atelier-nav button:focus-visible, .atelier-nav summary:focus-visible, .atelier-dock button:focus-visible, .atelier-top a:focus-visible, .atelier-top button:focus-visible { outline: 2px solid var(--nos-focus, #27d5e9); outline-offset: 3px; }
.atelier-main { min-width: 0; }
.atelier-hero, .atelier-projects article, .atelier-vision { box-shadow: none; }

@keyframes atelier-route-progress { 0%,100% { opacity: .35; transform: scaleX(.35); transform-origin: left; } 50% { opacity: 1; transform: scaleX(.75); } }
@keyframes atelier-content-in { from { opacity: .35; transform: translateY(4px); } to { opacity: 1; transform: none; } }

@media (max-width: 760px) {
  .atelier-shell::before { position: absolute; }
  .atelier-top { backdrop-filter: none; }
  .atelier-nav { scrollbar-width: thin; }
  .atelier-dock { padding-bottom: env(safe-area-inset-bottom); }
}

@media (prefers-reduced-motion: reduce) {
  .atelier-shell.is-routing::after, .atelier-shell.is-entering .atelier-main,
  .atelier-shell.is-entering .atelier-module, .atelier-shell.is-entering .atelier-vision { animation: none !important; }
  .atelier-shell.is-routing::after { opacity: .85; transform: none; }
  .atelier-top { backdrop-filter: none; }
}
