/* игра «Буквы» (letters): стили только этой игры. Селекторы без #s-letters действуют на всю страницу — новые правила пишите через #s-letters. */
.bg.soft{filter:saturate(.75) brightness(1.1)}

/* letters + numbers */
.abc-stage{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;gap:5vmin;padding:16vmin 4vmin 4vmin}

.abc-pic{height:44vmin;max-width:44vmin;object-fit:contain;animation:pop-in .5s .25s backwards;filter:drop-shadow(0 1vmin 1vmin rgba(0,0,0,.25))}
.abc-pic.pop{position:absolute;right:6vw;bottom:6vh;height:34vmin;animation:pop-in .45s backwards}
.abc-stage .next{width:16vmin;height:16vmin;max-width:none;max-height:none;--b1:#7ddf7a;--b2:#35b955;--b3:#1f8038;animation:pulse 1.2s 2.5s infinite}
.abc-stage.quiz .tile{width:24vmin;height:24vmin;font-size:17vmin}
@media (orientation:portrait){
  .abc-stage.show{flex-direction:column}
  .abc-pic.pop{right:50%;translate:50% 0;bottom:5vh}
  }
#s-letters .bg{object-position:50% 20%}

/* ---------- letters v2: places, things with letters, the helper, the album ---------- */
#s-letters .bg{filter:none;transition:opacity .4s}
#s-letters .abc-stage{display:flex;flex-direction:row;align-items:stretch;justify-content:center;gap:3vmin;padding:calc(16vmin + env(safe-area-inset-top)) calc(3vmin + env(safe-area-inset-right)) calc(3vmin + env(safe-area-inset-bottom)) calc(3vmin + env(safe-area-inset-left))}
#s-letters.has-helper .abc-stage{padding-left:calc(27vmin + env(safe-area-inset-left))}
#s-letters .helper{z-index:8}
.lt-field{position:relative;flex:1 1 auto;min-width:0;min-height:0}
.lt-prompt{flex:0 0 34%;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}
.lt-word{max-width:100%;max-height:min(46vmin,100%);object-fit:contain;filter:drop-shadow(0 1vmin 1vmin rgba(0,0,0,.3));animation:pop-in .5s backwards;touch-action:none}
.lt-face{height:min(38vmin,100%);max-width:100%;aspect-ratio:1;flex:none;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 35%,#fff7e0,#ffc9a0);border:1vmin solid #fff;box-shadow:0 1vmin 0 #e89a5c,0 1.4vmin 2.6vmin rgba(0,0,0,.28);animation:pop-in .5s backwards;touch-action:none}
.lt-face img{width:100%;height:118%;object-fit:cover;object-position:50% 0;display:block}

/* a thing with a letter */
.lt-it{position:absolute;width:var(--s,24vmin);height:var(--s,24vmin);translate:-50% -50%;animation:lt-pop .5s cubic-bezier(.3,1.2,.5,1) backwards;touch-action:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.lt-it>img,.lt-it>svg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 .8vmin .7vmin rgba(0,0,0,.28))}
.lt-it>b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:900 calc(var(--s,24vmin)*.52)/1 "Arial Black","Arial Rounded MT Bold","Nunito",Arial,sans-serif;color:#fff;pointer-events:none;paint-order:stroke fill;-webkit-text-stroke:calc(var(--s,24vmin)*.045) #3b2a1a;transition:opacity .25s,scale .25s}
.lt-it.bad{animation:shake .45s}
.lt-it.hint{filter:drop-shadow(0 0 2.4vmin #fff59a) drop-shadow(0 0 1.2vmin #ffd23f);animation:pulse 1s infinite}
.lt-it.good{z-index:3;pointer-events:none}
.lt-it.away{opacity:.3;transition:opacity .4s;pointer-events:none}
.lt-it.hid>b{opacity:0;scale:.3}
.lt-it.hid{animation:lt-pop .5s cubic-bezier(.3,1.2,.5,1) backwards,lt-wobble 2.6s 1s ease-in-out infinite}
@keyframes lt-wobble{50%{rotate:4deg}}
/* cubes in towers (room) */
.lt-it.block .cube{position:absolute;inset:0;border-radius:2.2vmin;background:var(--c);box-shadow:inset 0 -1.3vmin 0 rgba(0,0,0,.2),inset 0 1.1vmin 0 rgba(255,255,255,.35),0 .8vmin 1.4vmin rgba(0,0,0,.25)}
.lt-it.block .cube:after{content:"";position:absolute;inset:12%;border-radius:1.6vmin;background:#fff}
.lt-it.block .cube.under{top:calc(var(--k)*100%);bottom:calc(var(--k)*-100%);filter:saturate(.7) brightness(1.08)}
.lt-it.block .cube.under:after{inset:30%;border-radius:50%;background:rgba(255,255,255,.55)}
.lt-it.block>b{color:var(--c);-webkit-text-stroke:0;font-size:calc(var(--s)*.5)}
.lt-it.block.good{animation:lt-jump .7s}
@keyframes lt-jump{40%{transform:translateY(-30%) rotate(-8deg)}}
/* balloons (sky): bobbing; the right one flies away */
.lt-it.balloon{height:calc(var(--s)*1.32)}
.lt-it.balloon>svg{color:var(--c)}
.lt-it.balloon>b{bottom:28%}
.lt-it.balloon:not(.good){animation:lt-pop .5s cubic-bezier(.3,1.2,.5,1) backwards,lt-bob 3.2s .5s ease-in-out infinite}
.lt-it.balloon:nth-child(2n){animation-duration:.45s,3.8s}
@keyframes lt-bob{50%{transform:translateY(-2.2vmin) rotate(2deg)}}
.lt-it.balloon.good{animation:lt-fly 2.6s .5s ease-in forwards}
@keyframes lt-fly{to{transform:translateY(-120vh) rotate(-10deg)}}
/* fish (sea): swimming on the spot; the caught one goes up with the net */
.lt-it.fish>b{left:14%;right:-4%;top:4%;-webkit-text-stroke-color:#123a6b}
.lt-it.fish:not(.good){animation:lt-pop .5s cubic-bezier(.3,1.2,.5,1) backwards,lt-swim 4s .5s ease-in-out infinite}
.lt-it.fish:nth-child(2n){animation-duration:.45s,5s}
@keyframes lt-swim{25%{transform:translate(-2.5vmin,-1vmin)}75%{transform:translate(2.5vmin,1vmin)}}
.lt-it.fish.caught{transition:transform .9s ease-in,opacity .4s .5s;transform:translateY(-80vh);opacity:0}
.lt-net{position:fixed;width:30vmin;z-index:20;pointer-events:none;translate:0 0;filter:drop-shadow(0 1vmin 1vmin rgba(0,0,0,.25))}
/* apples on the tree (garden); the right one falls */
.lt-it.apple>b{top:16%;-webkit-text-stroke-color:#7a1010}
.lt-it.apple:not(.good){animation:lt-pop .5s cubic-bezier(.3,1.2,.5,1) backwards,lt-sway 3.4s .5s ease-in-out infinite;transform-origin:50% 0}
@keyframes lt-sway{50%{rotate:5deg}}
.lt-it.apple.good{animation:lt-fall .9s cubic-bezier(.5,0,.8,.6) forwards}
@keyframes lt-fall{70%{transform:translateY(var(--fall,55vh))}85%{transform:translateY(calc(var(--fall,55vh) - 5vh))}to{transform:translateY(var(--fall,55vh))}}
/* footprints in the snow (winter) */
.lt-it.step{height:calc(var(--s)*1.4)}
.lt-it.step>svg{rotate:var(--r);filter:none}
.lt-it.step>b{bottom:22%;color:#2f5f9e;-webkit-text-stroke:0}
.lt-it.step.good>svg{filter:drop-shadow(0 0 2vmin #fff) drop-shadow(0 0 1vmin #9fd4ff)}
/* stars (space): twinkling; the right one shines bigger */
.lt-it.star>b{top:8%;color:#6a3fc8;-webkit-text-stroke:0;font-size:calc(var(--s)*.42)}
.lt-it.star:not(.good)>svg{animation:lt-twinkle 2.4s ease-in-out infinite}
.lt-it.star:nth-child(2n)>svg{animation-delay:-1.2s}
@keyframes lt-twinkle{50%{filter:drop-shadow(0 0 2vmin #fff59a);scale:1.06}}
.lt-it.star.good{animation:lt-shine 1.2s forwards}
@keyframes lt-shine{50%{transform:scale(1.35) rotate(20deg)}to{transform:scale(1.15)}}
.lt-it.star.good>svg{filter:drop-shadow(0 0 3vmin #fff59a)}
/* the train (farm): letters ride in the wagons */
.lt-train{position:absolute;left:0;right:0;bottom:4%;display:flex;align-items:flex-end;justify-content:center;animation:lt-arrive 1.6s cubic-bezier(.2,.8,.3,1) backwards}
@keyframes lt-arrive{from{transform:translateX(-110vw)}}
.lt-train .lt-it{position:relative;translate:none;width:var(--w);height:calc(var(--w)*1.22);margin-right:-2%;animation:none}
.lt-train .lt-it>img{top:auto;height:auto}
.lt-train .lt-it>b{left:13%;right:13%;top:0;bottom:auto;height:calc(var(--w)*.74);border-radius:calc(var(--w)*.12);background:#fff;border:calc(var(--w)*.035) solid var(--c);box-shadow:0 calc(var(--w)*.035) 0 var(--c),0 calc(var(--w)*.05) calc(var(--w)*.06) rgba(0,0,0,.25);color:var(--c);-webkit-text-stroke:0;font-size:calc(var(--w)*.56)}
.lt-train .lt-it.bad{animation:shake .45s}
.lt-train .lt-it.good{animation:lt-jump .6s 2}
.lt-train .engine{width:calc(var(--w)*.95);height:auto;filter:drop-shadow(0 .8vmin .7vmin rgba(0,0,0,.28))}
/* cookies (kitchen) */
.lt-it.cookie>b{color:#7a3e12;-webkit-text-stroke:0;font-size:calc(var(--s)*.5)}
.lt-it.cookie.good{animation:lt-eat 1.4s .5s forwards}
@keyframes lt-eat{30%{transform:scale(1.15)}to{transform:scale(0);opacity:0}}

/* meet the letter */
#s-letters .abc-stage.meet{align-items:center}
.lt-meet{display:flex;align-items:center;justify-content:center;gap:5vmin;flex:1}
.lt-meet .lt-it.big{position:relative;translate:none;--s:40vmin;flex:none}
.lt-meet .lt-it.balloon.big{--s:34vmin}
.lt-meet .lt-it.step.big{--s:30vmin}
.lt-meet .lt-train.one{position:relative;bottom:auto;left:auto;right:auto;--w:32vmin}
.lt-meet .lt-train .lt-it.big{width:var(--w);height:calc(var(--w)*1.22)}
.lt-meet .abc-pic{height:40vmin;max-width:40vmin}
#s-letters .abc-stage .next{position:absolute;right:calc(3vmin + env(safe-area-inset-right));bottom:calc(3vmin + env(safe-area-inset-bottom))}

/* the letter comes alive */
.lt-alive{position:fixed;z-index:30;translate:-50% -50%;pointer-events:none;perspective:80vmin}
.lt-alive .tile{width:30vmin;height:30vmin;font-size:22vmin;animation:none}
.lt-born{height:36vmin;max-width:40vmin;object-fit:contain;filter:drop-shadow(0 1vmin 1vmin rgba(0,0,0,.3));animation:lt-born .6s cubic-bezier(.3,1.5,.5,1),floaty 2s .6s ease-in-out infinite}
@keyframes lt-born{from{transform:rotateY(-90deg) scale(.6)}60%{transform:rotateY(6deg) scale(1.14 .9)}80%{transform:scale(.97 1.05)}}
#s-letters .with-prompt .lt-alive .tile{width:20vmin;height:20vmin;font-size:15vmin}

/* build the letter from pieces */
.lt-slot,.lt-piece{position:absolute;left:50%;top:50%;width:var(--s);height:var(--s);margin:calc(var(--s)*-.5) 0 0 calc(var(--s)*-.5);display:flex;align-items:center;justify-content:center;font:900 calc(var(--s)*.86)/1 "Arial Black","Arial Rounded MT Bold","Nunito",Arial,sans-serif}
.lt-slot{color:rgba(255,255,255,.5);-webkit-text-stroke:.6vmin rgba(90,59,31,.35);border-radius:6vmin;background:rgba(255,255,255,.5);border:.7vmin dashed #fff;box-shadow:0 0 0 .3vmin rgba(90,59,31,.25)}
.lt-slot.whole{color:var(--c);-webkit-text-stroke:0;background:#fff;border-style:solid;border-color:var(--c);animation:goodt .6s}
.lt-piece{color:var(--c);-webkit-text-stroke:.5vmin #fff;paint-order:stroke fill;touch-action:none;cursor:grab;filter:drop-shadow(0 1vmin 1vmin rgba(0,0,0,.3));animation:pop-in .45s backwards;z-index:2}
.lt-piece.drag{z-index:5;filter:drop-shadow(0 2vmin 1.6vmin rgba(0,0,0,.35))}
.lt-piece.home{filter:none;pointer-events:none}

/* trace the letter */
.lt-trace{position:absolute;inset:0;touch-action:none;animation:pop-in .45s backwards}

/* the alphabet album */
.abc-album-btn{right:calc(2vmin + env(safe-area-inset-right));top:calc(2vmin + env(safe-area-inset-top));--b1:#c49cff;--b2:#9b6cf0;--b3:#6c44b8}
.abc-album{position:absolute;inset:0;z-index:60;display:none;align-items:center;justify-content:center;background:rgba(40,20,70,.45);padding:calc(3vmin + env(safe-area-inset-top)) calc(3vmin + env(safe-area-inset-right)) calc(3vmin + env(safe-area-inset-bottom)) calc(3vmin + env(safe-area-inset-left))}
.abc-album.show{display:flex;animation:pop-in .35s}
.ab-book{position:relative;background:#fff8e8;border-radius:4vmin;border:1vmin solid #c49cff;box-shadow:0 1.4vmin 0 #8f63d8,0 2vmin 4vmin rgba(0,0,0,.35);padding:3vmin;max-width:100%;max-height:100%}
.ab-grid{display:grid;grid-template-columns:repeat(11,1fr);gap:1.4vmin}
.ab-c{position:relative;width:min(11vmin,7.4vw);aspect-ratio:1;border-radius:1.8vmin;background:#efe6d6;display:flex;align-items:center;justify-content:center;font:900 min(7vmin,4.8vw)/1 "Arial Black","Arial Rounded MT Bold","Nunito",Arial,sans-serif;color:#d5c8b2;touch-action:none}
.ab-c.on{background:#fff;color:var(--c);box-shadow:0 .5vmin 0 var(--c),0 .8vmin 1.2vmin rgba(0,0,0,.18)}
.ab-c.on b{translate:-14% -10%}
.ab-c img{position:absolute;right:-6%;bottom:-6%;width:52%;height:52%;object-fit:contain;filter:drop-shadow(0 .3vmin .3vmin rgba(0,0,0,.25))}
.ab-c.fresh{animation:lt-stamp .6s backwards}
.ab-c.fresh:nth-child(3n+1){animation-delay:.7s}
.ab-c.fresh:nth-child(3n+2){animation-delay:1.15s}
.ab-c.fresh:nth-child(3n){animation-delay:1.6s}
@keyframes lt-stamp{from{scale:2.4;opacity:0;rotate:-20deg}}
.ab-x{position:absolute!important;right:-4vmin;top:-4vmin;width:11vmin;height:11vmin;--b1:#ff8a8a;--b2:#ff5b6e;--b3:#c23447}

/* small life in the places */
.lt-decor{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.lt-decor i{position:absolute;border-radius:50%}
#s-letters[data-sc="sea"] .lt-decor i{border:.3vmin solid rgba(255,255,255,.8);background:rgba(255,255,255,.18);animation:lt-bubble linear infinite}
@keyframes lt-bubble{from{transform:translateY(60vh)}to{transform:translateY(-110vh)}}
#s-letters[data-sc="winter"] .lt-decor i{background:#fff;opacity:.9;animation:lt-snow linear infinite}
@keyframes lt-snow{from{transform:translate(0,-110vh)}to{transform:translate(4vmin,10vh)}}
#s-letters[data-sc="space"] .lt-decor i{background:#fff;box-shadow:0 0 1vmin #fff;animation:lt-tw 2.6s ease-in-out infinite}
@keyframes lt-tw{50%{opacity:.2;scale:.5}}

/* where the things live in each place */
#s-letters[data-sc="garden"] .abc-stage:not(.meet) .lt-field{flex-basis:auto;margin-bottom:24vh}
#s-letters[data-sc="kitchen"] .abc-stage:not(.meet):not(.build):not(.trace) .lt-field{margin-top:22vh}
#s-letters[data-sc="winter"] .abc-stage:not(.meet):not(.build):not(.trace) .lt-field{margin-top:14vh}

@media (orientation:portrait){
  #s-letters .abc-stage,#s-letters.has-helper .abc-stage{flex-direction:column;padding:calc(28vmin + env(safe-area-inset-top)) 3vw calc(30vmin + env(safe-area-inset-bottom))}   /* top: below the stars badge (17vmin + 10vmin) */
  .lt-prompt{flex:0 0 30%}
  .lt-meet{flex-direction:column;gap:3vmin}
  .lt-meet .lt-it.big{--s:36vmin}
  .lt-meet .abc-pic{height:34vmin;max-width:60vw}
  .ab-grid{grid-template-columns:repeat(6,1fr)}
  .ab-c{width:min(12.5vw,9vh);font-size:min(8vw,6vh)}
  #s-letters[data-sc="garden"] .abc-stage:not(.meet) .lt-field{margin-bottom:8vh}
  #s-letters[data-sc="kitchen"] .abc-stage:not(.meet):not(.build):not(.trace) .lt-field{margin-top:6vh}
  #s-letters[data-sc="winter"] .abc-stage:not(.meet):not(.build):not(.trace) .lt-field{margin-top:4vh}
  #s-letters .abc-stage .next{right:calc(4vw + env(safe-area-inset-right));bottom:calc(8vmin + env(safe-area-inset-bottom))}
}
@media (orientation:portrait){
  #s-letters .ask-btn{top:calc(2vmin + env(safe-area-inset-top))}
  #s-letters .helper{left:calc(4vw + env(safe-area-inset-left));bottom:calc(4vmin + env(safe-area-inset-bottom));width:21vmin;height:21vmin}
}
/* помощник из семьи: размер и место на экране этой игры (их читает общий .helper.fam3d в core/core.css).
   --hp-h = высота фигуры (доля высоты экрана), --hp-x = отступ слева, --hp-y = где стоят ноги (от низа) */
#s-letters .helper.fam3d{--hp-h:42%;--hp-x:2.5vmin;--hp-y:1%}
@media (orientation:portrait){#s-letters .helper.fam3d{--hp-h:27%}}
/* дедушка крупный (42% / 27% высоты экрана): игра уступает ему место.
   Альбомная: слева полоса под фигуру (тело кончается на ~35vmin). Портретная: поле кончается над фигурой (bottom в % высоты экрана),
   кнопка «дальше» стоит справа от фигуры, в той же полосе внизу */
#s-letters.has-fam3d .abc-stage{padding-left:calc(37vmin + env(safe-area-inset-left))}
@media (orientation:portrait){
  #s-letters.has-fam3d .abc-stage{padding-left:3vw;bottom:29%;padding-bottom:2vmin}
  #s-letters.has-fam3d .abc-stage .next{top:calc(100% + 4vmin);bottom:auto}
}

/* ---------- polish 15.10: feel — pulses, flash, curtain, rainbow, words, +1, rings, living place (plan: agents/polish/letters_plan.md) ---------- */
@keyframes lt-pop{from{scale:0 0;opacity:0}45%{opacity:1}60%{scale:1.14 .88}80%{scale:.96 1.05}to{scale:1 1}}
#s-letters .lt-fxl{position:absolute;inset:0;z-index:45;pointer-events:none;overflow:hidden}
#s-letters .lt-flash,#s-letters .lt-pulse,#s-letters .lt-veil{position:absolute;inset:0;opacity:0}
#s-letters .lt-veil{background:linear-gradient(#e8f6ff,#fff)}
#s-letters .lt-pulse{background:radial-gradient(circle at 50% 55%,transparent 20%,var(--pc,#fff) 120%)}
/* the freeze: the things stand still for a moment, taps still work */
#s-letters.lt-hold .lt-it,#s-letters.lt-hold .lt-decor i,#s-letters.lt-hold .lt-glints i,#s-letters.lt-hold .amb *,#s-letters.lt-hold .lt-born,#s-letters.lt-hold .lt-train{animation-play-state:paused}
/* rainbow after a level: a wide soft band drifts slowly (translate + opacity only) */
#s-letters .lt-rainbow{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity .7s ease-out;z-index:1;pointer-events:none}
#s-letters .lt-rainbow i{position:absolute;left:-60%;top:0;width:200%;height:100%;background:linear-gradient(100deg,#ff5b6e,#ff9f1c,#ffd23f,#5fd068,#3fa3ff,#b26cff,#ff5b6e,#ff9f1c,#ffd23f,#5fd068,#3fa3ff);animation:lt-rb 5s ease-in-out infinite alternate paused}
#s-letters.lt-rb .lt-rainbow{opacity:.2}
#s-letters.lt-rb .lt-rainbow i{animation-play-state:running}
@keyframes lt-rb{to{translate:30% 0}}
/* living places: twinkles everywhere, butterflies and clouds only where there is a sky */
#s-letters .lt-glints{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
#s-letters .lt-glints i{position:absolute;width:3.2vmin;height:3.2vmin;opacity:0;background:#fff;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:lt-glint 3s ease-in-out infinite}
@keyframes lt-glint{0%,100%{opacity:0;scale:.3}50%{opacity:.85;scale:1}}
#s-letters .amb .cloud,#s-letters .amb .fly,#s-letters .amb .bird{display:none}
#s-letters:is([data-sc=sky],[data-sc=garden],[data-sc=farm]) .amb .cloud{display:block}
#s-letters:is([data-sc=garden],[data-sc=farm],[data-sc=room]) .amb .fly{display:block}
#s-letters[data-sc=sea] .lt-glints,#s-letters[data-sc=space] .lt-glints{display:none}
/* the letters breathe a little: the hero of the screen is alive */
@keyframes lt-breath{from{scale:1}to{scale:1.07}}
#s-letters .lt-it:not(.hid):not(.good):not(.away)>b{animation:lt-breath 1.8s ease-in-out var(--bd,0s) infinite alternate}
#s-letters .lt-word:not(.pop),#s-letters .lt-face{animation:pop-in .5s backwards,lt-breath 2.4s .6s ease-in-out infinite alternate}
/* words (under the things: a word never hides one), +1 and rings */
#s-letters .lt-say{position:absolute;left:50%;top:calc(15.5vmin + env(safe-area-inset-top));z-index:2;translate:-50% 0;white-space:nowrap;font:900 9vmin/1 'Arial Rounded MT Bold',sans-serif;color:#fff;-webkit-text-stroke:.9vmin #ff7aa8;paint-order:stroke fill;text-shadow:0 1vmin 0 #d6477f,0 1.6vmin 2.4vmin rgba(0,0,0,.25);pointer-events:none}
#s-letters .lt-say.rec{-webkit-text-stroke-color:#ffb300;color:#fff8d0;font-size:7.5vmin;text-shadow:0 1vmin 0 #c98a00,0 0 3vmin #ffe680}
#s-letters .lt-plus{position:absolute;font:900 7vmin/1 sans-serif;-webkit-text-stroke:.7vmin #fff;paint-order:stroke fill;pointer-events:none}
#s-letters .lt-ringfx{position:absolute;width:18vmin;height:18vmin;margin:-9vmin 0 0 -9vmin;border:1vmin solid #fff;border-radius:50%;pointer-events:none}
/* a piece is lifted while it is carried */
#s-letters .lt-piece{transition:scale .2s cubic-bezier(.3,1.6,.5,1)}
#s-letters .lt-piece.drag{scale:1.1}
/* the album: the book and the cards jump in one after another */
#s-letters .abc-album.show .ab-book{animation:lt-book-in .45s cubic-bezier(.3,1.5,.5,1)}
@keyframes lt-book-in{from{scale:.6;opacity:0}}
#s-letters .abc-album.show .ab-c:not(.fresh){animation:lt-card-in .4s cubic-bezier(.3,1.6,.5,1) backwards;animation-delay:calc(.1s + var(--k,0)*.018s)}
@keyframes lt-card-in{from{scale:.2;opacity:0}}
@media (orientation:portrait){#s-letters .lt-say{top:calc(17vmin + env(safe-area-inset-top))}}
@media (prefers-reduced-motion:reduce){#s-letters .lt-it>b,#s-letters .lt-glints i,#s-letters .lt-word,#s-letters .lt-face{animation:none}}
