/* Arriving through a home window (shared/arrive.js; owner, 2026-10-17). The world carries straight on from the camera
   move; on top of it the page's shading, then its words, then its controls, then the bar fade in like light on a wall.
   Pages that open on their own scene (Ways to watch, Wallpapers, Sound) let the scene itself fade in first.
   Opacity and a touch of blur only: never a transform, so nothing that is already placed or tilted moves. */
@keyframes sw-arrive-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes sw-arrive-words { from { opacity: 0; filter: blur(2px); } to { opacity: 1; filter: none; } }

/* 0 · the scene, on pages that open on their own scene */
.arrived .ways .view, .arrived .wallpapers .view, .arrived .sound .stage-wrap {
  animation: sw-arrive-fade .7s ease both; }

/* 1 · the shading over the world */
.arrived .worlds .scrim, .arrived .film .shade, .arrived .about .shade, .arrived .roadmap .shade, .arrived .support .shade,
.arrived .press .shade, .arrived .privacy .shade {
  animation: sw-arrive-fade .9s .05s ease both; }

/* 2 · the words */
.arrived .worlds main, .arrived .about .words, .arrived .film .stagebox, .arrived .roadmap .intro, .arrived .support .panel,
.arrived .press .intro, .arrived .privacy .promise, .arrived .ways .panel, .arrived .wallpapers .intro, .arrived .sound .intro {
  animation: sw-arrive-words .7s .2s ease both; }
.arrived .about .words .kicker { animation: sw-arrive-words .6s .3s ease both; }
.arrived .about .words h1 { animation: sw-arrive-words .6s .38s ease both; }
.arrived .about .words .body { animation: sw-arrive-words .7s .46s ease both; }

/* 3 · what you act on */
.arrived .roadmap .markers, .arrived .roadmap .stops, .arrived .roadmap .board, .arrived .support .plate, .arrived .press .spots,
.arrived .press .ticker, .arrived .press .billboard, .arrived .privacy .spots, .arrived .wallpapers .controls,
.arrived .sound .strip, .arrived .film .close, .arrived .ways .touches, .arrived .ways .next {
  animation: sw-arrive-words .7s .45s ease both; }

/* 4 · the bar and the small print */
.arrived .bar, .arrived .fine { animation: sw-arrive-fade .7s .65s ease both; }

/* the light version (shared/lite.js: phones, touch tablets, Low Data): one quick fade of the whole page */
.arrived-lite body { animation: sw-arrive-fade .35s ease both; }
