/* One real sky, clipped by one real border. Never scale the canvas. */
html[data-soft-nav] { scroll-behavior:auto!important }
html[data-soft-nav] .stars-frame { view-transition-name:none; position:absolute; pointer-events:none; box-sizing:border-box; overflow:hidden; border:1px solid var(--rule-strong); border-radius:22px; z-index:0; contain:paint; }
html[data-soft-nav] .stars-frame canvas { position:absolute!important; width:100vw!important; height:100lvh!important; max-width:none; }
html[data-soft-nav] :is(.row,.proj,.pc) { animation:none }
html[data-soft-nav][data-swapping] .wrap { pointer-events:none }
@media(prefers-reduced-motion:reduce) { html[data-soft-nav] * { scroll-behavior:auto!important } }

/* Main is a programmatic reading target. Interactive descendants keep their rings. */
html[data-soft-nav] main:focus { outline:none }

.soft-shared { position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:20;view-transition-name:none }
.soft-shared * { pointer-events:none!important }
.soft-shared .draw::after { display:none }
/* Computed snapshots freeze text-fill separately from color in both engines. */
.soft-shared[data-shared-kind=title] > * { color:var(--blue)!important; -webkit-text-fill-color:var(--blue)!important }

.soft-shared[data-shared-kind=meta] { overflow:hidden }
