/* descent.css — the Descent's drawing, its passage and the Surfacing (Move 1 · lane 4; scores/move-1/descent.md).
   Loaded by kit/descent.js (and linked by /beneath/ for the arrival). Keyframes from BLA:50-57, cut at 55 % where the
   page goes beneath (1,293 ms of the 2,350 ms passage), each interval eased cubic-bezier(.66,0,.24,1) as the source's
   are; /beneath/ plays the ember's last 45 % (1,057 ms). The Surfacing is BLA's light veil retimed to 950 ms. The
   @keyframes themselves are in seam/point.css, every page's first-paint /src/point.css: in Chromium a stylesheet that
   brings @keyframes restyles the page when it arrives, and this one arrives at idle, when descent.js binds the foot
   (on / 30-60 ms of style unthrottled, a long task at 4x CPU; under 5 ms without them) */
.asg-dimple{position:absolute;left:0;top:-45px;width:100%;height:135px;overflow:visible;pointer-events:none}
.asg-down.asg-ghost{position:fixed;left:0;right:0;bottom:env(safe-area-inset-bottom,0px);min-height:44px;margin:0;z-index:2147483300;pointer-events:none}
/* the veil wells from the foot (The Mirror.dc.html:51): the under-dark, risen to six tenths of the screen at the give */
.asg-dv{position:fixed;inset:0;z-index:2147483200;pointer-events:none;opacity:var(--dv,0);
 background:radial-gradient(circle at 50% 62%,#07060C 0%,rgba(7,6,12,.96) 45%,rgba(7,6,12,.9) 100%);
 -webkit-mask-image:linear-gradient(to top,#000 calc(var(--dv,0)*60% - 12%),transparent calc(var(--dv,0)*60% + 24%));
 mask-image:linear-gradient(to top,#000 calc(var(--dv,0)*60% - 12%),transparent calc(var(--dv,0)*60% + 24%))}
/* the passage: the page itself is the paper, and lifts away (each child of <body> on screen by itself, kit/descent.js
   lift(): never <body>, whose translate would make it the containing block of every fixed piece); the dark wells up;
   the ember crosses */
.asg-lift{animation:asg-paper 1293ms cubic-bezier(.66,0,.24,1) both;will-change:translate}
.asg-pass{position:fixed;inset:0;z-index:2147483500;overflow:hidden;pointer-events:auto;touch-action:none}
.asg-pass-dark{position:absolute;inset:0;animation:asg-dark 1293ms cubic-bezier(.66,0,.24,1) both;
 background:linear-gradient(180deg,rgba(243,176,90,.16) 0%,rgba(218,59,18,.05) 5%,rgba(20,16,10,0) 13%),
  radial-gradient(120% 90% at 50% 46%,#14100A 0%,#0A0806 55%,#060402 100%)}
.asg-pass-ember,.asg-arrive{position:fixed;left:50%;top:46%;width:11px;height:11px;border-radius:50%;pointer-events:none;
 background:radial-gradient(circle,#FFFCF4 0%,#F7C478 45%,#DA3B12 100%);
 box-shadow:0 0 26px 8px rgba(243,176,90,.7),0 0 60px 22px rgba(218,59,18,.30)}
.asg-pass-ember{animation:asg-ember 1293ms cubic-bezier(.66,0,.24,1) both}
/* arriving beneath by the Descent (<html data-came="descent">, set before first paint by /beneath/'s head): the ember
   finishes 1.18 → 1 → .7 and fades into the room, and carries the Point's crossing name while it does */
.asg-arrive{display:none;z-index:2147483100}
[data-came="descent"] .asg-arrive{display:block;view-transition-name:asg-point;
 animation:asg-ember-in 1057ms cubic-bezier(.66,0,.24,1) both}
[data-came="descent"] #asg-pt{view-transition-name:none}
/* the Surfacing: the warm light blooms out of the Point's seat and the paper comes up to meet it (BLA:31-34, 2039-2040) */
.asg-surf{position:fixed;inset:0;z-index:2147483500;overflow:hidden;pointer-events:auto;touch-action:none}
.asg-surf-scrim{position:absolute;inset:0;animation:asg-scrim 950ms cubic-bezier(.22,.61,.36,1) both;
 background:linear-gradient(0deg,rgba(40,30,18,.16) 0%,rgba(40,30,18,0) 9%),radial-gradient(120% 90% at 50% 42%,#FDFBF6 0%,#F2EBDD 60%,#E9E1D1 100%)}
.asg-surf-bloom{position:absolute;left:50%;top:46%;width:2400px;height:2400px;margin:-1200px 0 0 -1200px;border-radius:50%;
 background:radial-gradient(circle,rgba(255,248,232,.95) 0%,rgba(247,213,163,.55) 32%,rgba(243,176,90,0) 68%);
 animation:asg-bloom 950ms cubic-bezier(.16,1,.3,1) both}
@media (prefers-reduced-motion:reduce){
 .asg-lift,.asg-pass-dark,.asg-pass-ember,.asg-surf-scrim,.asg-surf-bloom{animation:none}
 .asg-dv,.asg-dimple,[data-came="descent"] .asg-arrive{display:none}}
