/* Скарб v3 to-10 (REDESIGN-10 §5.6), раунд 1: нижче першого екрана «усе народжується зі скрині». Кольори, тіні, градієнти, зерно й
   ніч - лише токени кіта (css/ui/tokens.css), жодного hex і корала поза кнопками й сургучем. Кожен модуль - один предмет у фокусі й свій
   жест (js/scenes.js, js/room.js): записка відклеюється · сонце дня й сповіщення · кімната скарбів · меню-трифолд · штанга настрою ·
   полароїд · колода · дві скрині й сургучна печатка · Мері відповідає · стрічка «Ваша знахідка». Рух - лише transform / opacity /
   stroke-dashoffset під no-preference; під reduce - складений кінцевий кадр. Ширини перевірено на 360/393/768/1024/1280/1440. */

.section .lk-h2{max-width:20ch}
:is(#inside,#program,#faq,#menu){scroll-margin-top:calc(-1 * var(--section-y) + var(--head-h))}
/* r1 ux-01: перехід «Хочу Скарб» униз ховає шапку - заголовок тарифів сідає на 16 px від краю, обидві ціни одразу в кадрі */
#offer{scroll-margin-top:calc(-1 * var(--section-y) + 16px + env(safe-area-inset-top))}
.dot{color:var(--w-skarb-gold)}
.g{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* r1 interaction-10: кожен предмет відповідає пальцю й курсору однаково - натиск .98, наведення - папір піднімається */
:is(.sky__stop,.ring,button.shelf,button.carte__row,button.plate,button.t,.carte__go,.gym__pill,.peel__go){-webkit-tap-highlight-color:transparent}
:is(.sky__stop,button.shelf,button.carte__row,button.plate,button.t,.carte__go,.gym__pill,.peel__go):active{scale:.98}
@media (prefers-reduced-motion:no-preference){
  :is(.sky__stop,button.shelf,button.carte__row,button.plate,button.t,.carte__go,.gym__pill,.peel__go){transition:scale var(--dur-press) var(--ease-out),background-color var(--dur-hover) var(--ease-out),box-shadow var(--dur-hover) var(--ease-out),color var(--dur-hover) var(--ease-out)}}
/* «Щілина кришки» (r1 creative-04): над меню й спортзалом та сама золота щілина, що в hero. Над спортзалом вона на вході розкривається,
   а штанга піднімається з неї; над меню (lf:blk-skarb-menu p1, власник 09.10 «у блока меню уебанская анимация») щілина просто світиться,
   без руху. Під reduce щілина стоїть відкритою м'якою золотою смугою. */
:is(.menu,.program){position:relative}
:is(.menu,.program)::before{content:"";position:absolute;z-index:0;top:-1px;left:27%;right:27%;height:22px;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--yellow) 95%,transparent),color-mix(in srgb,var(--yellow) 30%,transparent) 55%,transparent);opacity:.85;transform-origin:50% 0}
@media (prefers-reduced-motion:no-preference){
  .program:has(.gym[data-armed])::before{scale:1 .08;opacity:0}
  .program:has(.gym[data-play])::before{animation:slit-open 380ms var(--ease-out) both}
  .gym[data-play] :is(.gym__set,.gym__board),.gym[data-play]:not(:has(.gym__set)){animation:rise-slit 520ms var(--ease-settle) 120ms backwards}}
@keyframes slit-open{from{scale:1 .08;opacity:0}}
@keyframes rise-slit{from{opacity:0;translate:0 28px}}

/* ——— 2 · «Записка відклеюється» ——— */
.contrast__in{display:grid;gap:var(--stack-3)}
.contrast__lead{display:none}
.peel{position:relative;display:grid;justify-items:center;width:min(100%,560px);margin:12px auto 0;padding:46px 8px 8px;--p:1;
  --s1:clamp(0,(var(--p) - .02) / .14,1);--s2:clamp(0,(var(--p) - .18) / .14,1);--s3:clamp(0,(var(--p) - .34) / .14,1);--lift:clamp(0,(var(--p) - .5) / .18,1);--tuck:clamp(0,(var(--p) - .68) / .3,1)}
.peel__must,.peel__want{grid-area:1/1;position:relative;isolation:isolate;width:min(88%,380px);padding:22px 24px 24px;border-radius:var(--r-note) var(--r-note) 18px var(--r-note)}
.peel__want{z-index:1;align-self:end;justify-self:end;margin-top:56px;background:var(--grad-gold);box-shadow:var(--sh-world);rotate:2deg}
.peel__must{z-index:2;align-self:start;justify-self:start;background:repeating-linear-gradient(180deg,transparent 0 43px,var(--line) 43px 44px) 0 52px/100% calc(100% - 52px) no-repeat,var(--cream);box-shadow:var(--sh-paper);
  transform-origin:12% 6%;translate:calc(var(--lift) * -10px - var(--tuck) * 8px) calc(var(--lift) * -18px + var(--tuck) * -14px);rotate:calc(-2deg - var(--lift) * 9deg + var(--tuck) * 3deg);scale:calc(1 + var(--lift) * .03 - var(--tuck) * .05)}
.peel[data-under] .peel__must,.peel:not([data-js]) .peel__must{z-index:0}
.peel__must::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;box-shadow:0 30px 48px -18px color-mix(in srgb,var(--ink-press) 40%,transparent);opacity:calc(var(--lift) - var(--tuck));pointer-events:none}
.peel__tape{position:absolute;top:-12px;left:28px;width:70px;height:22px;rotate:-6deg;background:color-mix(in srgb,var(--world-deep) 85%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--ink) 8%,transparent);opacity:calc(1 - var(--lift))}
.peel__curl{position:absolute;right:0;bottom:0;width:46px;height:46px;border-radius:0 0 18px 0;background:linear-gradient(135deg,transparent 48%,color-mix(in oklab,var(--cream) 72%,var(--w-skarb-gold)) 49% 51%,color-mix(in oklab,var(--cream) 88%,var(--world-deep)) 52% 64%,color-mix(in oklab,var(--cream) 80%,var(--w-skarb-gold)) 100%);
  box-shadow:-3px -3px 8px -2px color-mix(in srgb,var(--ink-press) 18%,transparent),inset -1px -1px 0 var(--line);transform-origin:100% 100%;scale:calc(.35 + var(--lift) * .9)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.peel[data-js] .peel__must:hover .peel__curl{scale:calc(.6 + var(--lift) * .9)}.peel__curl{transition:scale var(--dur-hover) var(--ease-out)}}
.peel__tag{font:700 var(--fs-label)/1.3 var(--font-body);letter-spacing:var(--ls-label);color:var(--muted)}
.peel__want .peel__tag{color:var(--world-ink)}
.peel__list{margin-top:8px;list-style:none}
.peel__list li{position:relative;display:flex;align-items:center;min-height:44px}
.peel__must li{width:fit-content;font:600 1.0625rem/1.3 var(--font-body);color:var(--ink-2)}
.peel__strike{position:absolute;left:-6px;top:calc(50% - 7px);width:calc(100% + 12px);height:14px;overflow:visible;fill:none;stroke:var(--ink-2);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:1}
.peel__must li:nth-child(1) .peel__strike{stroke-dashoffset:calc(1 - var(--s1))}
.peel__must li:nth-child(2) .peel__strike{stroke-dashoffset:calc(1 - var(--s2))}
.peel__must li:nth-child(3) .peel__strike{stroke-dashoffset:calc(1 - var(--s3))}
.peel__strike path{vector-effect:non-scaling-stroke}
.peel__want li{font:italic 400 var(--fs-h3)/1.25 var(--font-display);color:var(--ink)}
.peel__want li::before{content:"";flex:none;width:10px;height:10px;margin-right:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--yellow),var(--w-skarb-gold));box-shadow:0 0 0 4px color-mix(in srgb,var(--w-skarb-gold) 18%,transparent)}
/* рядки «Хочеться» з JS - кнопки до полиць кімнати; монетка штампується на натиску (r1 interaction-08) */
.peel__go{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:start;cursor:pointer}
.peel__arrow{color:var(--world-ink);font-style:normal;font-family:var(--font-body);font-weight:600}
@media (hover:hover){.peel__go:hover{color:var(--world-ink)}}
.peel__go:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:6px}
.peel__want li:has(.peel__go:active)::before{scale:1.45}
@media (prefers-reduced-motion:no-preference){.peel__want li::before{transition:scale var(--dur-press) var(--ease-stone)}}
.peel__say{margin-top:16px;padding-top:14px;border-top:1px dashed var(--world-line)}
.peel__from{font:700 var(--fs-label)/1.3 var(--font-body);color:var(--world-ink)}
.peel__say .lk-note__q{margin-top:4px;font:italic 400 1.0625rem/1.45 var(--font-display)}
/* ↺ - у правому верхньому куті самої записки «Треба» (r1 art-07) */
.peel__again{position:absolute;z-index:3;top:-16px;right:-14px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--raised);box-shadow:var(--sh-paper);color:var(--world-ink);cursor:pointer}
.peel__again svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.peel__again:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-offset)}
.peel[data-js] :is(.peel__must,.peel__want){cursor:pointer}
@media (prefers-reduced-motion:no-preference){@media (hover:hover){.peel__again:hover{rotate:-40deg}}.peel__again{transition:rotate var(--dur-ui) var(--ease-out)}}
@media (max-width:899px){.peel{padding-top:34px}.peel__want{margin-top:128px}}
/* стіл (r1 art-07, creative-12): заголовок - подія масштабу (Literata 64, два рядки) нагорі на рівні «Треба», під ним перше речення
   нотатки Мері великим курсивом; записки - по центру своєї колонки, стос нахилений на -2° до заголовка */
@media (min-width:900px){
  /* r2 art-06, creative-09: 5/7, записки ×1,15 від краю колонки, верх «Треба» - на висоті заголовка, жодного проміжку > 80 px */
  .contrast__in{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:center;column-gap:40px}
  .contrast__head{padding-top:0}
  .contrast__title{max-width:none;font-size:clamp(3rem,1.2rem + 3.4vw,4rem);line-height:1.06;letter-spacing:-.035em}
  .contrast__to{display:block}
  .contrast__lead{display:block;margin-top:24px;max-width:16em;font:italic 400 1.25rem/1.45 var(--font-display);color:var(--world-ink);text-wrap:balance}
  .peel__first{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .peel{width:min(100%,640px);margin:0 0 0 -40px;justify-self:start;min-height:440px;rotate:-2deg}
  .peel :is(.peel__must,.peel__want){width:min(88%,437px)}}
/* ніч (r1 art-08): «Хочеться» світиться зсередини - тепле сяйво, золотий край, світлий текст і монетки; «Треба» лишається матовою;
   маркер - золотий штрих під словами */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .peel__want{background:radial-gradient(90% 80% at 0 0,color-mix(in srgb,var(--yellow) 22%,transparent),transparent 70%),var(--raised);box-shadow:inset 0 0 0 1px var(--w-skarb-gold),var(--sh-world)}
  :root:not([data-theme="light"]) .peel__want :is(li,.lk-note__q){color:var(--on-dark)}
  :root:not([data-theme="light"]) .peel__want li::before{box-shadow:0 0 0 4px color-mix(in srgb,var(--yellow) 22%,transparent),0 0 12px color-mix(in srgb,var(--yellow) 70%,transparent)}
  :root:not([data-theme="light"]) .peel__say .lk-hl{background:linear-gradient(transparent 84%,color-mix(in srgb,var(--w-skarb-gold) 60%,transparent) 84% 96%,transparent 96%);color:inherit}}
:root[data-theme="dark"] .peel__want{background:radial-gradient(90% 80% at 0 0,color-mix(in srgb,var(--yellow) 22%,transparent),transparent 70%),var(--raised);box-shadow:inset 0 0 0 1px var(--w-skarb-gold),var(--sh-world)}
:root[data-theme="dark"] .peel__want :is(li,.lk-note__q){color:var(--on-dark)}
:root[data-theme="dark"] .peel__want li::before{box-shadow:0 0 0 4px color-mix(in srgb,var(--yellow) 22%,transparent),0 0 12px color-mix(in srgb,var(--yellow) 70%,transparent)}
:root[data-theme="dark"] .peel__say .lk-hl{background:linear-gradient(transparent 84%,color-mix(in srgb,var(--w-skarb-gold) 60%,transparent) 84% 96%,transparent 96%);color:inherit}
/* fit:start */
/* B4 #fit «Скарб підійде» (Маша 09.10): шість крафтових бирок на джутовому шнурку з латунними цвяшками - як бирки підбірника в hero.
   Дотик крутить бирку на нитці (rotateY, видно товщину картону на ребрі): на звороті б'є синій штамп «Це я», полиця, з якої почати, і її
   знахідка; «›» відкриває полицю в кімнаті. Гірлянда, а не сітка: свої ширина, зсув, нахил, нитка; одна бирка - світла багажна, одна з
   одним зрізаним кутом, дві зі згином. Без JS - лице й зворот один під одним. Рух - лише transform / opacity під no-preference;
   під reduce боки змінюються прозорістю без повороту. Ніч - окремий рецепт: коричневий крафт під лампою, а не темна копія дня. */
.fit{--kraft:color-mix(in oklab,var(--w-skarb-gold) 30%,var(--w-skarb-bg));--kraft-2:color-mix(in oklab,var(--w-skarb-gold) 48%,var(--w-skarb-bg));
  --cord:color-mix(in oklab,var(--world-ink) 74%,var(--w-skarb-gold));--cord-hi:color-mix(in oklab,var(--w-skarb-gold) 55%,var(--paper));
  --brass:var(--w-skarb-gold);--stamp:color-mix(in oklab,var(--marker) 55%,var(--link));--rule:color-mix(in srgb,var(--world-ink) 22%,transparent);
  --lamp:linear-gradient(color-mix(in srgb,var(--w-skarb-mat) 42%,transparent),transparent 46px);
  --edge:color-mix(in srgb,var(--world-ink) 16%,transparent);--rim:color-mix(in srgb,var(--world-ink) 16%,transparent);--lip:transparent;
  --shade:color-mix(in srgb,var(--world-ink) 46%,transparent);--band:color-mix(in srgb,var(--world-ink) 8%,transparent);
  --crease:linear-gradient(118deg,transparent 49.7%,color-mix(in srgb,var(--raised) 40%,transparent) 49.85%,color-mix(in srgb,var(--world-ink) 14%,transparent) 50.15%,transparent 50.5%),linear-gradient(118deg,transparent 50%,color-mix(in srgb,var(--world-ink) 4%,transparent) 50%);
  --crease-b:linear-gradient(-118deg,transparent 49.7%,color-mix(in srgb,var(--raised) 40%,transparent) 49.85%,color-mix(in srgb,var(--world-ink) 14%,transparent) 50.15%,transparent 50.5%),linear-gradient(-118deg,transparent 50%,color-mix(in srgb,var(--world-ink) 4%,transparent) 50%);
  --ink-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.3' numOctaves='3' seed='11' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7 4.95'/%3E%3C/filter%3E%3Crect width='72' height='72' filter='url(%23n)'/%3E%3C/svg%3E");
  --gap:14px;--km:.75;--px:13px;--fs:.9375rem;--lh:20px;--tw:100%}
.fit__in{display:grid;gap:var(--stack-2)}
.fit__lead{margin-top:10px;font:italic 400 1.0625rem/1.45 var(--font-display);color:var(--world-ink);text-wrap:balance}
.fit__nojs,.fit[data-js] .fit__js{display:inline}
.fit__js,.fit[data-js] .fit__nojs{display:none}
.fit__line{--st:54px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:4px var(--gap);margin:0;padding:6px 0 10px;list-style:none}
.ftag{--l:calc(var(--len) * var(--lm,1));--fw:calc(var(--tw) * (100 - (100 - var(--w,100)) * var(--wv,.6)) / 100);position:relative;display:grid;justify-items:start;padding-top:calc(var(--k) * var(--km,1) + var(--l))}
/* шнурок: свій шматок у кожної бирки (від краю клітинки до вузла й далі), пара - один провис; джут - темна нитка й світлі витки поверх */
.ftag__cord{position:absolute;top:0;left:calc(var(--gap) / -2);width:calc(100% + var(--gap));max-width:none;height:calc(40px * var(--km,1));overflow:visible;fill:none;pointer-events:none}
.ftag__cord path{stroke:var(--cord);stroke-width:2.6;stroke-linecap:round;vector-effect:non-scaling-stroke}
.ftag__cord path+path{stroke:var(--cord-hi);stroke-width:1.2;stroke-dasharray:1.6 3.2}
/* латунний цвяшок на зовнішньому краї пари */
.ftag::after{content:"";position:absolute;top:-6px;width:12px;height:12px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 38% 34%,var(--yellow) 0 1.4px,var(--brass) 3.2px,color-mix(in oklab,var(--world-ink) 82%,var(--brass)) 5.4px,transparent 6px);
  box-shadow:0 2px 3px -1px var(--shade)}
.ftag:nth-child(odd)::after{left:calc(var(--gap) / -2 - 6px)}
.ftag:nth-child(even)::after{right:calc(var(--gap) / -2 - 6px)}
/* бирка висить під своїм вузлом: x вузла = 50 + dx (% шматка шнурка), ширина - w % клітинки */
.ftag__swing{position:relative;width:var(--fw);margin-left:calc((100% - var(--fw)) / 2 + (100% + var(--gap)) * var(--dx,0) / 100);rotate:var(--r);transform-origin:50% calc(var(--l) * -1)}
/* нитка від вузла на шнурку крізь люверс */
.ftag__swing::before{content:"";position:absolute;z-index:2;top:calc(var(--l) * -1 - 3px);left:50%;width:7px;height:calc(var(--l) + 22px);margin-left:-3.5px;border:1.5px solid var(--cord);border-top:0;border-radius:0 0 4px 4px;pointer-events:none;
  background:radial-gradient(circle 3.4px at 50% 3px,var(--cord) 2.6px,transparent 3.4px) border-box no-repeat}
.ftag__swing::after{content:"";position:absolute;z-index:-1;inset:16px 5px 1px;border-radius:6px;box-shadow:0 18px 26px -14px var(--shade),0 2px 4px -1px color-mix(in srgb,var(--shade) 50%,transparent);pointer-events:none}
.ftag__card{position:relative;display:grid;transform-style:preserve-3d}
/* товщина картону: ребра видно лише під час повороту */
.ftag__card::before,.ftag__card::after{content:"";position:absolute;top:20px;bottom:0;left:-1.5px;width:3px;transform:rotateY(90deg);background:color-mix(in oklab,var(--kraft-2) 60%,var(--world-ink));pointer-events:none}
.ftag__card::after{left:auto;right:-1.5px}
.ftag__face{--clip:polygon(20px 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%,0 20px);--f:linear-gradient(transparent,transparent);
  position:relative;display:flex;flex-direction:column;margin:0;padding:32px var(--px) 10px;color:var(--ink);text-align:start;
  background:var(--f),var(--lamp),radial-gradient(130% 80% at 100% 100%,color-mix(in srgb,var(--w-skarb-gold) 14%,transparent),transparent 70%),radial-gradient(125% 115% at 50% 42%,transparent 56%,var(--edge)),var(--kraft);
  box-shadow:inset 0 0 0 1px var(--rim),inset 0 1px 0 var(--lip),inset 0 -10px 16px -12px var(--edge);clip-path:var(--clip)}
.ftag[data-cut="one"] .ftag__front{--clip:polygon(20px 0,100% 0,100% 100%,0 100%,0 20px)}
.ftag[data-cut="one"] .ftag__back{--clip:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%)}
.ftag[data-crease] .ftag__face{--f:var(--crease)}
.ftag[data-crease] .ftag__back{--f:var(--crease-b)}
.ftag[data-paper="manila"]{--kraft:color-mix(in oklab,var(--w-skarb-gold) 19%,var(--paper));--kraft-2:color-mix(in oklab,var(--w-skarb-gold) 34%,var(--paper))}
/* волокно крафту - фактура замість лініювання */
.ftag__face::before{content:"";position:absolute;z-index:-1;inset:0;background:var(--grain);opacity:calc(var(--grain-opacity) * 3.6);mix-blend-mode:var(--grain-blend);pointer-events:none}
.ftag__eye{position:absolute;top:10px;left:50%;width:22px;height:22px;margin-left:-11px;border-radius:50%;
  background:radial-gradient(circle,var(--paper) 0 3.6px,color-mix(in oklab,var(--world-ink) 70%,var(--brass)) 4.1px 4.6px,var(--brass) 5.1px 6.4px,color-mix(in oklab,var(--brass) 45%,var(--yellow)) 6.8px 7.3px,var(--kraft-2) 7.7px 10.4px,transparent 11px)}
.ftag__front{padding-bottom:30px}
.ftag__say{display:block;margin-block:auto;font:italic 400 var(--fs)/var(--lh) var(--font-display);color:var(--ink);text-wrap:balance}
/* знак полиці в куті лиця: у бирки є зворот (той самий гліф, що на звороті) */
.ftag__mark{position:absolute;right:10px;bottom:9px;width:20px;height:20px;color:color-mix(in srgb,var(--world-ink) 55%,transparent)}
/* подивлена бирка: бліде коло штампа на лиці */
.ftag__front::after{content:"";position:absolute;top:13px;right:11px;width:24px;height:24px;border:2px solid var(--stamp);border-radius:50%;rotate:-14deg;opacity:0;pointer-events:none;
  -webkit-mask:var(--ink-mask) 0 0/40px 40px;mask:var(--ink-mask) 0 0/40px 40px}
.ftag[data-seen]:not([data-on]) .ftag__front::after{opacity:.5}
.ftag__stamp{position:absolute;top:3px;right:3px;display:grid;place-items:center;width:var(--st);height:var(--st);border:3px solid var(--stamp);border-radius:50%;rotate:-14deg;color:var(--stamp);
  font:800 .875rem/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;text-shadow:0 0 .7px currentColor;pointer-events:none;
  /* гумовий штамп: фарба лягає щільно, з кількома непрокрасами */
  -webkit-mask:var(--ink-mask) 0 0/72px 72px;mask:var(--ink-mask) 0 0/72px 72px}
.ftag__stamp::before{content:"";position:absolute;inset:4px;border:1.25px solid currentColor;border-radius:50%}
.ftag__from{max-width:calc(100% - var(--st) * .78);min-height:18px;font:700 var(--fs-label)/1.3 var(--font-body);letter-spacing:.02em;white-space:nowrap;color:var(--world-ink)}
/* полиця - окрема смужка на всю ширину бирки: явна ціль «у кімнату», решта звороту повертає бирку */
.ftag__go{display:flex;align-items:center;gap:8px;min-height:44px;margin:6px calc(var(--px) * -1) 0;padding:4px var(--px);background:var(--band);
  font:500 1.0625rem/1.15 var(--font-display);letter-spacing:-.02em;color:var(--ink);text-decoration:none;text-wrap:balance;-webkit-tap-highlight-color:transparent}
/* зворот нижчий за лице (довгий пункт на десктопі): смужка полиці посередині вільного місця, знахідка внизу - без порожнього низу */
.fit[data-js] .ftag__go{margin-block:auto 0}
.fit[data-js] .ftag__find{margin-top:auto;padding-top:5px}
.ftag__go .g{flex:none;width:20px;height:20px;color:var(--world-ink)}
.ftag__arr{margin-left:auto;padding-left:4px;font-size:1.3em;line-height:1;color:var(--world-ink)}
.ftag__go:focus-visible{outline:var(--focus-ring);outline-offset:-2px}
@media (hover:hover){.ftag__go:hover{background:color-mix(in srgb,var(--world-ink) 14%,transparent)}}
.ftag__find{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin-top:5px;font:italic 400 .8125rem/1.3 var(--font-display);color:var(--ink);text-wrap:pretty}
.ftag__find b{font:700 .8125rem/1.3 var(--font-body);font-style:normal;color:var(--world-ink)}
.fit:not([data-js]) .ftag__back{clip-path:none;padding-top:4px;border-top:1px dashed var(--rule)}
.fit:not([data-js]) .ftag__back :is(.ftag__eye,.ftag__stamp){display:none}
.fit:not([data-js]) .ftag__from{max-width:none;min-height:0;margin-top:6px}
.fit:not([data-js]) .ftag__mark{display:none}
.fit:not([data-js]) .ftag__front{padding-bottom:13px}
.fit:not([data-js]) .ftag__find{display:block}
.fit[data-js] .ftag__card{transform:perspective(900px) rotateY(0)}
.fit[data-js] .ftag[data-on] .ftag__card{transform:perspective(900px) rotateY(180deg)}
.fit[data-js] .ftag__face{grid-area:1/1;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.fit[data-js] .ftag__back{transform:rotateY(180deg);cursor:pointer}
.fit[data-js] .ftag:not([data-on]) .ftag__back,.fit[data-js] .ftag[data-on] .ftag__front{pointer-events:none}
.ftag__turn{width:100%;border:0;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.ftag__card:has(.ftag__turn:focus-visible){outline:var(--focus-ring);outline-offset:4px;border-radius:8px}
.ftag__turn:focus-visible{outline:none}
.ftag[data-on]{z-index:2}
.ftag[data-on] .ftag__swing{translate:0 -3px}
/* наведення: бирка гойднеться й трохи повернеться на нитці - видно, що в неї є зворот */
@media (hover:hover){.fit[data-js] .ftag:not([data-on]):hover .ftag__swing{rotate:calc(var(--r) * -1.2)}
  .fit[data-js] .ftag:not([data-on]):hover .ftag__card{transform:perspective(900px) rotateY(-16deg)}}
.fit[data-js] .ftag__turn:active{scale:.98}
@media (prefers-reduced-motion:no-preference){
  .fit[data-js] .ftag__card{transition:transform 560ms var(--ease-settle)}
  .ftag__swing{transition:rotate 280ms var(--ease-settle),translate var(--dur-ui) var(--ease-settle)}
  .ftag__turn{transition:scale var(--dur-press) var(--ease-out)}
  .ftag__front::after{transition:opacity var(--dur-ui) var(--ease-out)}
  /* тінь вужчає, коли бирка стає ребром */
  .ftag[data-on] .ftag__swing::after{animation:fit-edge 560ms var(--ease-settle)}
  .ftag[data-seen]:not([data-on]) .ftag__swing::after{animation:fit-edge-back 560ms var(--ease-settle)}
  .fit[data-arm] .ftag__swing{opacity:0}
  .fit[data-in] .ftag__swing{animation:fit-hang 640ms var(--ease-settle) calc(var(--i) * 70ms) backwards}
  /* «тук»: штамп б'є, коли бирка вже розвернулась, і бирка в ту ж мить присідає на нитці */
  .ftag[data-on] .ftag__stamp{animation:fit-stamp 200ms var(--ease-out) 400ms backwards}
  .ftag[data-on] .ftag__swing{animation:fit-thud 180ms var(--ease-out) 440ms}}
@keyframes fit-hang{from{opacity:0;translate:0 -24px;rotate:calc(var(--r) + 9deg)}}
@keyframes fit-stamp{0%{opacity:0;scale:1.45}70%{opacity:1;scale:.97}100%{opacity:1;scale:1}}
@keyframes fit-thud{40%{translate:0 1px}}
@keyframes fit-edge{40%{scale:.08 1;opacity:.5}}
@keyframes fit-edge-back{40%{scale:.08 1;opacity:.5}}
/* reduce: без повороту - боки змінюються прозорістю */
@media (prefers-reduced-motion:reduce){
  .fit[data-js] .ftag__card,.fit[data-js] .ftag[data-on] .ftag__card,.fit[data-js] .ftag__back{transform:none}
  .fit[data-js] .ftag__face{transition:opacity 120ms linear}
  .fit[data-js] .ftag:not([data-on]) .ftag__back,.fit[data-js] .ftag[data-on] .ftag__front{opacity:0}
  .fit[data-js] .ftag[data-cut="one"] .ftag__back{--clip:polygon(20px 0,100% 0,100% 100%,0 100%,0 20px)}
  .ftag__card::before,.ftag__card::after{display:none}}
@media (min-width:601px){
  .fit{--gap:28px;--km:1;--px:20px;--fs:1.125rem;--lh:25px;--tw:min(100%,300px)}
  .fit__line{row-gap:10px}
  .ftag__face{padding-top:42px;padding-bottom:16px}
  .ftag__front{padding-bottom:42px}
  .ftag__mark{right:14px;bottom:12px;width:26px;height:26px}
  .ftag__front::after{top:15px;right:13px;width:28px;height:28px}
  .fit__line{--st:70px}
  .ftag__stamp{font-size:.9375rem}
  .ftag__go{font-size:1.25rem}
  .ftag__find{font-size:.9375rem}}
@media (min-width:1024px){
  .fit{--gap:18px;--fs:1.0625rem;--lh:24px;--tw:100%;--lm:1.5}
  .fit__lead{font-size:1.25rem}
  .fit{--wv:.4;--px:13px}
  .fit__line{grid-template-columns:repeat(6,minmax(0,1fr))}
  .ftag__face{padding-top:40px;padding-bottom:14px}
  .ftag__front{padding-bottom:42px}
  .fit__line{--st:62px}
  .ftag__stamp{font-size:.875rem}
  .ftag__go{font-size:1.125rem}}
/* на широкому екрані бирки стоять у колонці заголовка: перша бирка - по лівому краю H2, цвяшки - на полі */
@media (min-width:1280px){.fit{--gap:20px;--px:15px;--wv:.4;--fs:1.125rem;--lh:26px}
  .ftag__find{font-size:1rem}
  .fit__line{--st:66px}
  .ftag__stamp{font-size:.9375rem}}
/* ніч: коричневий крафт під лампою (теплий верхній блик, волокно, світла кромка згори, глибока тінь), приглушена латунь, яскравий штамп */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fit{--kraft:color-mix(in srgb,color-mix(in srgb,var(--w-skarb-gold) 50%,var(--w-immersion-accent)) 37%,var(--paper));--kraft-2:color-mix(in srgb,color-mix(in srgb,var(--w-skarb-gold) 50%,var(--w-immersion-accent)) 46%,var(--paper));
  --cord:color-mix(in oklab,var(--w-skarb-gold) 60%,var(--paper));--cord-hi:color-mix(in oklab,var(--w-skarb-gold) 28%,var(--paper));--brass:color-mix(in oklab,var(--w-skarb-gold) 66%,var(--paper));
  --stamp:var(--marker);--rule:color-mix(in srgb,var(--w-skarb-gold) 22%,transparent);--edge:color-mix(in srgb,var(--ink-press) 34%,transparent);--rim:color-mix(in srgb,var(--ink-press) 40%,transparent);--lip:color-mix(in srgb,var(--w-skarb-gold) 30%,transparent);
  --lamp:radial-gradient(85% 70% at 22% 0%,color-mix(in srgb,color-mix(in srgb,var(--ink) 60%,var(--yellow)) 13%,transparent),transparent 70%),linear-gradient(color-mix(in srgb,var(--ink) 6%,transparent),transparent 50%);
  --shade:color-mix(in srgb,var(--ink-press) 72%,transparent);--band:color-mix(in srgb,var(--ink-press) 24%,transparent);
  --crease:linear-gradient(118deg,transparent 49.7%,color-mix(in srgb,var(--ink) 16%,transparent) 49.85%,color-mix(in srgb,var(--ink-press) 26%,transparent) 50.15%,transparent 50.5%),linear-gradient(118deg,transparent 50%,color-mix(in srgb,var(--ink-press) 8%,transparent) 50%);
  --crease-b:linear-gradient(-118deg,transparent 49.7%,color-mix(in srgb,var(--ink) 16%,transparent) 49.85%,color-mix(in srgb,var(--ink-press) 26%,transparent) 50.15%,transparent 50.5%),linear-gradient(-118deg,transparent 50%,color-mix(in srgb,var(--ink-press) 8%,transparent) 50%)}
  :root:not([data-theme="light"]) .ftag[data-paper="manila"]{--kraft:color-mix(in srgb,color-mix(in srgb,var(--ink) 48%,var(--w-skarb-gold)) 27%,var(--paper));--kraft-2:color-mix(in srgb,color-mix(in srgb,var(--ink) 48%,var(--w-skarb-gold)) 36%,var(--paper))}
  :root:not([data-theme="light"]) .ftag__face::before{opacity:calc(var(--grain-opacity) * 6)}}
:root[data-theme="dark"] .fit{--kraft:color-mix(in srgb,color-mix(in srgb,var(--w-skarb-gold) 50%,var(--w-immersion-accent)) 37%,var(--paper));--kraft-2:color-mix(in srgb,color-mix(in srgb,var(--w-skarb-gold) 50%,var(--w-immersion-accent)) 46%,var(--paper));
  --cord:color-mix(in oklab,var(--w-skarb-gold) 60%,var(--paper));--cord-hi:color-mix(in oklab,var(--w-skarb-gold) 28%,var(--paper));--brass:color-mix(in oklab,var(--w-skarb-gold) 66%,var(--paper));
  --stamp:var(--marker);--rule:color-mix(in srgb,var(--w-skarb-gold) 22%,transparent);--edge:color-mix(in srgb,var(--ink-press) 34%,transparent);--rim:color-mix(in srgb,var(--ink-press) 40%,transparent);--lip:color-mix(in srgb,var(--w-skarb-gold) 30%,transparent);
  --lamp:radial-gradient(85% 70% at 22% 0%,color-mix(in srgb,color-mix(in srgb,var(--ink) 60%,var(--yellow)) 13%,transparent),transparent 70%),linear-gradient(color-mix(in srgb,var(--ink) 6%,transparent),transparent 50%);
  --shade:color-mix(in srgb,var(--ink-press) 72%,transparent);--band:color-mix(in srgb,var(--ink-press) 24%,transparent);
  --crease:linear-gradient(118deg,transparent 49.7%,color-mix(in srgb,var(--ink) 16%,transparent) 49.85%,color-mix(in srgb,var(--ink-press) 26%,transparent) 50.15%,transparent 50.5%),linear-gradient(118deg,transparent 50%,color-mix(in srgb,var(--ink-press) 8%,transparent) 50%);
  --crease-b:linear-gradient(-118deg,transparent 49.7%,color-mix(in srgb,var(--ink) 16%,transparent) 49.85%,color-mix(in srgb,var(--ink-press) 26%,transparent) 50.15%,transparent 50.5%),linear-gradient(-118deg,transparent 50%,color-mix(in srgb,var(--ink-press) 8%,transparent) 50%)}
:root[data-theme="dark"] .ftag[data-paper="manila"]{--kraft:color-mix(in srgb,color-mix(in srgb,var(--ink) 48%,var(--w-skarb-gold)) 27%,var(--paper));--kraft-2:color-mix(in srgb,color-mix(in srgb,var(--ink) 48%,var(--w-skarb-gold)) 36%,var(--paper))}
:root[data-theme="dark"] .ftag__face::before{opacity:calc(var(--grain-opacity) * 6)}
/* fit:end */

/* ——— 3 · «День зі Скарбом»: небо з власних тонів (однакових у дві теми, r1 art-02, illustrator-04, detail-09): лише жовтий світу,
   папір (--on-dark) і --ink-press. Світанок › день › золота година › ніч без сірого провалу (r1 motion-10) ——— */
.change__in{display:grid;gap:var(--stack-3)}
.change__head .lk-h2{margin-top:0}
.change__lead{margin-top:16px;font:500 var(--fs-body)/1.5 var(--font-body);color:var(--ink-2)}
.change__results{display:grid;gap:12px;margin-top:22px;padding:0;list-style:none}
.change__results li{display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;align-items:start;font:500 1rem/1.45 var(--font-body)}
.change__results .i{margin-top:.25em;color:var(--world-ink)}
.change__head .lk-h2 em{font-style:italic}
.change__pin{max-width:310px;height:auto;margin:22px 0 0 auto;padding:20px 18px 14px;--note-tilt:-1.6deg}
.change__pin::after{display:none}
.change__pin .lk-note__q{font-size:1.0625rem;line-height:1.45}
.sky{position:relative;isolation:isolate;display:grid;grid-template-rows:auto auto 1fr auto;min-height:392px;padding:0 18px 18px;border-radius:var(--r-hero);overflow:hidden;box-shadow:var(--sh-lift);--t:0;
  --sky-dawn-top:color-mix(in oklab,var(--on-dark) 72%,var(--yellow));--sky-dawn-bot:color-mix(in oklab,var(--on-dark) 40%,var(--yellow));
  --sky-noon-top:color-mix(in oklab,var(--on-dark) 93%,var(--yellow));--sky-noon-bot:color-mix(in oklab,var(--on-dark) 80%,var(--yellow));
  --sky-dusk-top:color-mix(in oklab,var(--ink-press) 94%,var(--yellow));--sky-dusk-bot:color-mix(in oklab,var(--ink-press) 70%,var(--yellow));
  --dawn:clamp(0,1 - var(--t),1);--noon:clamp(0,min(var(--t),(2 - var(--t)) / .6),1);--dusk:clamp(0,(var(--t) - 1) / .6,1);--gold:clamp(0,min((var(--t) - 1.1) / .4,(1.9 - var(--t)) / .4),1)}
.sky__air,.sky__air i{position:absolute;inset:0;z-index:-1}
.sky__air{background:var(--sky-noon-bot)}
.sky__dawn{background:radial-gradient(70% 60% at 18% 92%,color-mix(in srgb,var(--yellow) 85%,transparent),transparent 70%),linear-gradient(180deg,var(--sky-dawn-top),var(--sky-dawn-bot));opacity:var(--dawn)}
.sky__noon{background:radial-gradient(60% 50% at 50% 12%,var(--on-dark),transparent 70%),linear-gradient(180deg,var(--sky-noon-top),var(--sky-noon-bot));opacity:var(--noon)}
.sky__dusk{background:radial-gradient(70% 40% at 80% 104%,color-mix(in srgb,var(--yellow) 62%,transparent),transparent 72%),linear-gradient(180deg,var(--sky-dusk-top),var(--sky-dusk-bot));opacity:var(--dusk)}
.sky__air::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 70% 100%,color-mix(in srgb,var(--yellow) 70%,transparent),transparent 72%);opacity:var(--gold)}
.sky__stars{background:radial-gradient(1.5px 1.5px at 22% 18%,var(--on-dark),transparent),radial-gradient(1px 1px at 38% 9%,var(--on-dark),transparent),radial-gradient(1.5px 1.5px at 63% 22%,var(--on-dark),transparent),radial-gradient(1px 1px at 80% 12%,var(--on-dark),transparent),radial-gradient(1px 1px at 12% 34%,var(--on-dark),transparent),radial-gradient(1.5px 1.5px at 90% 30%,var(--on-dark),transparent),radial-gradient(1px 1px at 52% 6%,var(--on-dark),transparent);opacity:clamp(0,(var(--t) - 1.45) / .55,1)}
.sky__air::after{content:"";position:absolute;inset:0;background:var(--grain);mix-blend-mode:var(--grain-blend);opacity:var(--grain-opacity)}
.sky__arc{grid-row:1;width:100%;height:132px;margin-top:10px;overflow:visible;fill:none}
.sky__path{stroke:var(--w-skarb-gold);stroke-width:1.6;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:.9}
.sky__path--in{stroke-width:1;opacity:.55}
.sky[style*="--t"] .sky__path{stroke:color-mix(in oklab,var(--w-skarb-gold) calc(100% - var(--dusk) * 40%),var(--yellow))}
.sky__sun{position:absolute;z-index:3;left:-24px;top:-24px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;outline-offset:2px;transform:translate(60px,110px);cursor:grab}
.sky__sun i{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 34% 30%,var(--on-dark),var(--yellow) 46%,color-mix(in oklab,var(--yellow) 60%,var(--w-skarb-gold)));
  box-shadow:0 0 0 5px color-mix(in srgb,var(--yellow) 32%,transparent),0 0 34px 10px color-mix(in srgb,var(--yellow) 55%,transparent),inset 0 -2px 0 color-mix(in srgb,var(--w-skarb-gold) 50%,transparent)}
@media (prefers-reduced-motion:no-preference){.sky__sun i{transition:scale var(--dur-hover) var(--ease-out)}@media (hover:hover){.sky__sun:hover i{scale:1.08}}}
.sky[data-dragging] .sky__sun i{scale:1.12}
.sky:not([data-js]) .sky__sun{display:none}
.sky[data-js]{cursor:grab}
.sky[data-dragging]{cursor:grabbing}
.sky__sun:focus-visible{outline:var(--focus-ring)}
.sky__stops{grid-row:2;display:flex;justify-content:space-between;gap:8px;margin:-4px -6px 0}
.sky__stop{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;border:0;border-radius:var(--r-pill);background:color-mix(in srgb,var(--on-dark) 80%,transparent);box-shadow:var(--sh-paper);color:var(--ink-press);font:italic 500 1rem/1 var(--font-display);cursor:pointer}
@media (hover:hover){.sky__stop:hover{background:var(--on-dark)}}
.sky__stop[aria-pressed="true"]{background:var(--on-dark);color:var(--ink-press);font-weight:600;box-shadow:0 0 0 2px var(--w-skarb-gold),var(--sh-paper)}
.sky__stop:focus-visible{outline:var(--focus-ring);outline-offset:2px}
/* вечір: невибрані зупинки - прозорі з золотою волосиною й світлим текстом (обидві теми) */
.sky[data-stop="2"] .sky__stop:not([aria-pressed="true"]){background:transparent;box-shadow:inset 0 0 0 1px var(--w-skarb-gold);color:var(--on-dark)}
@media (hover:hover){.sky[data-stop="2"] .sky__stop:not([aria-pressed="true"]):hover{background:color-mix(in srgb,var(--on-dark) 14%,transparent)}}
/* «Скарбинка дня» / Random Скарб - сповіщення застосунку (r1 detail-06): значок, «Скарб · зараз», час; тінь лягає від сонця, край
   теплий на світанку й увечері, холодний удень (r1 tech-12); уся картка - кнопка до полиці, на натиску піднімається */
/* r2 art-03, detail-05: одна щільна поверхня - край і тінь від сонця в її власній тіні, без другої картки всередині */
.pick{grid-row:3;position:relative;isolation:isolate;align-self:center;justify-self:center;width:min(100%,340px);margin-top:16px;padding:14px 18px 8px;border-radius:18px;
  background:var(--on-dark);color:var(--ink-press);
  box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--yellow) calc(var(--dawn) * 60% + var(--dusk) * 60% + var(--gold) * 40%),color-mix(in srgb,var(--ink-press) 10%,transparent)),
    calc((var(--t) - 1) * -12px) 16px 26px color-mix(in srgb,var(--ink-press) calc(18% + var(--dusk) * 14%),transparent)}
/* ніч: сповіщення - піднятий нічний папір із золотим кантом, не найяскравіший прямокутник сторінки */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pick{background:var(--raised);color:var(--ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--w-skarb-gold) 55%,transparent),var(--sh-lift)}:root:not([data-theme="light"]) :is(.pick__now,.pick__shelf){color:var(--muted)}:root:not([data-theme="light"]) .pick__band{color:var(--w-skarb-gold)}:root:not([data-theme="light"]) .pick__open{color:var(--link)}}
:root[data-theme="dark"] .pick{background:var(--raised);color:var(--ink);box-shadow:0 0 0 1px color-mix(in srgb,var(--w-skarb-gold) 55%,transparent),var(--sh-lift)}:root[data-theme="dark"] :is(.pick__now,.pick__shelf){color:var(--muted)}:root[data-theme="dark"] .pick__band{color:var(--w-skarb-gold)}:root[data-theme="dark"] .pick__open{color:var(--link)}
.pick__head{display:flex;align-items:center;gap:8px;font:600 var(--fs-meta)/1.2 var(--font-body)}
.pick__app{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:linear-gradient(160deg,var(--yellow),color-mix(in oklab,var(--yellow) 50%,var(--ink-press)));color:var(--ink-press)}
.pick__app .g{width:15px;height:15px;stroke-width:1.8}
.pick__brand{font-weight:700}
.pick__now{color:color-mix(in oklab,var(--ink-press) 62%,var(--on-dark))}
.pick__time{margin-left:auto;font:500 .9375rem/1 var(--font-display);font-variant-numeric:tabular-nums lining-nums}
.pick__band{display:flex;align-items:center;gap:6px;margin-top:10px;font:700 var(--fs-meta)/1.3 var(--font-body);color:color-mix(in oklab,var(--ink-press) 76%,var(--yellow))}
.pick[data-random] .pick__band::before{content:"";width:15px;height:15px;background:currentColor;-webkit-mask:var(--dice) center/contain no-repeat;mask:var(--dice) center/contain no-repeat;
  --dice:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='4' y='4' width='16' height='16' rx='4'/%3E%3Ccircle cx='9' cy='9' r='1.3' fill='%23000'/%3E%3Ccircle cx='15' cy='15' r='1.3' fill='%23000'/%3E%3Ccircle cx='12' cy='12' r='1.3' fill='%23000'/%3E%3C/svg%3E")}
.pick__title{margin-top:2px;font:500 1.25rem/1.25 var(--font-display);letter-spacing:-.015em;text-wrap:balance}
.pick__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 12px;min-height:44px}
.pick__shelf{font:600 var(--fs-meta)/1.3 var(--font-body);color:color-mix(in oklab,var(--ink-press) 62%,var(--on-dark))}
.pick__open{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:color-mix(in oklab,var(--ink-press) 82%,var(--yellow));font:700 var(--fs-meta)/1 var(--font-body);cursor:pointer}
.pick__open::after{content:"";position:absolute;inset:0;border-radius:inherit}
.pick__open:focus-visible{outline:none}
.pick:has(.pick__open:focus-visible){outline:var(--focus-ring);outline-offset:3px}
@media (prefers-reduced-motion:no-preference){.pick{transition:translate var(--dur-press) var(--ease-out),rotate var(--dur-press) var(--ease-out)}@media (hover:hover){.pick:has(.pick__open:hover){translate:0 -3px}}}
.pick:has(.pick__open:active){translate:0 -4px;rotate:2deg}
.sky__say{grid-row:4;margin-top:14px;text-align:center;font:600 var(--fs-small)/1.4 var(--font-body);color:var(--ink-press);text-wrap:balance}
.sky[data-stop="2"] .sky__say{color:var(--on-dark)}
@media (prefers-reduced-motion:no-preference){.sky[data-dragging] .sky__stars{animation:twinkle 700ms var(--ease-inout) 2 alternate}}
@keyframes twinkle{50%{opacity:.35}}
@media (min-width:900px){
  .change__in{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;column-gap:64px}
  .sky{min-height:420px;padding:0 28px 22px}.sky__arc{height:150px}}

/* ——— 4 · «Кімната скарбів» (r1 art-03, creative-07): стіл - сцена 860 px і колонка бирки праворуч, під ними підпис-рахунок і полиці
   у два рядки; телефон - кімната › рахунок › стрічка полиць › бирка. Бирка «Книги й історії» висить на цвяху з першого кадру. ——— */
.inside{margin-top:var(--space-7);padding-block:20px;background:var(--world)}
.inside__in{display:grid;gap:18px}
.inside__lead{max-width:52em;margin-top:-6px;font:500 var(--fs-meta)/1.5 var(--font-body);color:var(--ink-2);text-wrap:pretty}
.room{position:relative;isolation:isolate;display:grid;gap:14px;min-width:0}
.room__frame{position:relative;z-index:1;aspect-ratio:16/9;border-radius:var(--r-card);overflow:hidden;background:var(--ink-press);box-shadow:0 0 0 1px var(--w-skarb-gold),0 8px 16px -12px color-mix(in srgb,var(--ink-press) 30%,transparent);contain:layout paint}
.room__frame .film{position:absolute;inset:0;margin:0;padding:0;--film-pp:0px;--film-radius:0px;--film-ground:var(--ink-press)}
.room__frame .film :is(img,video){width:100%;height:100%;object-fit:cover}
.room__gl{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0}
.room[data-gl][data-live]:not([data-playing]) .room__gl{opacity:1}
.room__snap{position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:cover;pointer-events:none}
/* «Ще раз» - кругла кнопка 44 px у лівому верхньому куті, не на ковпаку й не на кільці (r1 illustrator-09, customer-09) */
.room__frame .film__again{z-index:4;top:10px!important;left:10px!important;right:auto!important;bottom:auto!important;width:44px;min-width:44px;height:44px;min-height:44px;padding:0!important;border-radius:50%;font-size:0!important;line-height:0;overflow:hidden;color:transparent}
.room__frame .film__again::before{content:"";position:absolute;inset:12px;background:var(--ink);-webkit-mask:var(--replay) center/contain no-repeat;mask:var(--replay) center/contain no-repeat;
  --replay:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12a7 7 0 1 0 2.1-5M5 4v4h4'/%3E%3C/svg%3E")}
.room__frame .film__watch{z-index:4;font-size:.875rem}
.room__frame .film__watch svg{background:var(--world-ink);fill:var(--world)}
/* під час фільму: чип «У кімнату ›» з 1,5 с (тап чи жест по кадру теж пропускає фільм); у живій кімнаті до першого тапу - підказка */
.room__skip{position:absolute;z-index:5;right:10px;top:10px;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:0;border-radius:var(--r-pill);background:color-mix(in srgb,var(--ink-press) 78%,transparent);color:var(--on-dark);font:700 var(--fs-meta)/1 var(--font-body);cursor:pointer}
.room__skip:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.room__hint{position:absolute;z-index:3;left:10px;bottom:10px;margin:0;padding:6px 12px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--ink-press) 58%,transparent);color:var(--on-dark);font:600 var(--fs-meta)/1.2 var(--font-body);opacity:0;pointer-events:none}
.room[data-live]:not([data-touched]) .room__hint{opacity:1}
@media (prefers-reduced-motion:no-preference){.room__hint{transition:opacity var(--dur-ui) var(--ease-out) .9s}.room__skip:not([hidden]){animation:rise var(--dur-ui) var(--ease-out) both}}
/* кільце полиці на предметі: золоте кільце з крапкою, 44 px ціль; горить, коли його бирка висить */
.ring{position:absolute;z-index:3;left:calc(var(--x) * 100% - 22px);top:calc(var(--y) * 100% - 22px);display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer}
.ring i{position:relative;width:22px;height:22px;border-radius:50%;border:2px solid var(--yellow);background:color-mix(in srgb,var(--ink-press) 28%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--ink-press) 45%,transparent),0 0 16px color-mix(in srgb,var(--yellow) 70%,transparent)}
.ring i::after{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--yellow)}
.ring[data-on] i{background:var(--yellow);scale:1.15}
.ring[data-on] i::after{background:var(--ink-press);inset:6px}
.ring:active i{scale:.9}
.ring:focus-visible{outline:var(--focus-ring);outline-offset:-4px}
.room[data-playing] .ring,.room:not([data-live]) .ring{opacity:0;pointer-events:none}
@media (prefers-reduced-motion:no-preference){
  .room[data-play] .ring:not([hidden]) i{animation:ring-in 520ms var(--ease-stone) calc(200ms + var(--i) * 80ms) backwards}
  .ring i{transition:scale var(--dur-ui) var(--ease-out),background-color var(--dur-ui) var(--ease-out)}
  .room__gl{transition:opacity var(--dur-overlay) var(--ease-out)}
  @media (hover:hover){.ring:hover i{scale:1.2}}}
@keyframes ring-in{from{opacity:0;scale:0}}
/* нитка від кільця до вушка бирки й сама бирка: крафтовий папір із золотим кантом, вушко з люверсом */
.room__thread{position:absolute;inset:0;z-index:6;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke:var(--w-skarb-gold);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1}
.room[data-playing] .room__thread{opacity:0}
.room__hang{position:relative;padding-top:18px;filter:drop-shadow(0 4px 6px color-mix(in srgb,var(--ink-press) 14%,transparent))}
/* цвях, поки бирка не на нитці предмета */
.room__hang[data-nail]::before,.room:not([data-js]) .room__hang::before{content:"";position:absolute;z-index:6;top:4px;left:var(--nail-x,50%);width:10px;height:10px;margin-left:-5px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--yellow),var(--w-skarb-gold));box-shadow:0 1px 2px color-mix(in srgb,var(--ink-press) 40%,transparent)}
.hang{position:relative;z-index:5;width:min(100%,330px);margin-inline:auto;padding:30px 18px 6px 20px;border-radius:10px 10px 14px 14px;
  background:linear-gradient(170deg,color-mix(in oklab,var(--world) 70%,var(--raised)),var(--raised) 60%);box-shadow:inset 0 0 0 1px var(--world-line);
  clip-path:polygon(16% 0,84% 0,100% 13%,100% 100%,0 100%,0 13%);transform-origin:50% 14px}
.room[data-js]:not([data-live]) .hang{rotate:3deg}
.hang__eye{position:absolute;top:7px;left:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 3px var(--w-skarb-gold),inset 0 1px 3px color-mix(in srgb,var(--ink-press) 30%,transparent)}
.hang__kind{display:flex;align-items:center;gap:6px;font:700 var(--fs-label)/1.2 var(--font-body);letter-spacing:var(--ls-label);color:var(--world-ink)}
.hang__kind .g{width:18px;height:18px}
.hang__name{margin-top:4px;font:500 1.375rem/1.15 var(--font-display);letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.hang__say{margin-top:6px;font:500 var(--fs-meta)/1.45 var(--font-body);color:var(--ink-2);text-wrap:pretty}
.hang__find{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;margin-top:10px;padding-top:10px;border-top:1px dashed var(--world-line);font:italic 400 1rem/1.35 var(--font-display);color:var(--ink)}
.hang__find img{width:28px;height:28px;border-radius:50%;box-shadow:0 0 0 2px var(--raised)}
.hang__find b{font:700 var(--fs-label)/1.3 var(--font-body);font-style:normal;color:var(--world-ink)}
.hang__more{margin-top:6px;font:italic 400 var(--fs-meta)/1.4 var(--font-display);color:var(--world-ink)}
.hang__go{min-height:44px}
/* полиці: рахунок - підпис сцени, 15 пігулок із гліфами продукту; на телефоні - один рядок зі snap, на столі - два рядки під сценою */
.room__bar{position:relative;z-index:3;display:grid;gap:10px;min-width:0}
.shelves,.inside__sum,.inside__pin{position:relative;z-index:3}
.inside__sum{font:500 .8125rem/1.5 var(--font-body);color:var(--ink-2)}
.inside__sum b{font:inherit;font-weight:700;color:var(--ink);font-variant-numeric:lining-nums}
.shelves{display:flex;flex-wrap:wrap;gap:8px;list-style:none}
.shelf__li{display:contents}
.shelf{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 10px;border:0;border-radius:var(--r-pill);background:none;box-shadow:none;color:var(--ink);font:600 var(--fs-ui)/1.2 var(--font-body);text-align:start}
.shelf .g{width:18px;height:18px;color:var(--world-ink)}
button.shelf{cursor:pointer}
button.shelf[aria-pressed="true"]{background:var(--ink);color:var(--paper);box-shadow:none}
button.shelf[aria-pressed="true"] .g{color:var(--yellow)}
button.shelf:focus-visible{outline:var(--focus-ring);outline-offset:2px}
/* r1 interaction-02, creative-11: обрана пігулка під курсором лишається чорнильною */
/* r2 interaction-03: під курсором обрана - відтінок її власної заливки з золотим кантом (у дві теми), не колір невибраних */
@media (hover:hover){button.shelf:not([aria-pressed="true"]):hover{background:var(--raised);box-shadow:none}button.shelf[aria-pressed="true"]:hover{background:color-mix(in oklab,var(--ink) 86%,var(--world-ink));color:var(--paper);box-shadow:inset 0 0 0 1px var(--w-skarb-gold)}}
/* Secondary proof stays readable in flow; the room, menu and plan carry the paper surfaces. */
:is(.inside__pin,.program__pin,.offer__pin){background:none;box-shadow:none;border-radius:0}
:is(.inside__pin,.program__pin,.offer__pin)::before,:is(.inside__pin,.program__pin,.offer__pin)::after{display:none}
.inside__pin{max-width:300px;height:auto;margin:6px 0 0 auto;padding:0;gap:6px;--note-tilt:0deg}
.inside__pin .lk-note__q{font-size:1.0625rem;line-height:1.45}
@media (max-width:1023px){
  .inside__in{gap:12px}
  .room{row-gap:8px}
  .hang{width:min(100%,360px);padding-top:24px}
  .hang__find{margin-top:6px;padding-top:6px}
  .hang__more{margin-top:4px;line-height:1.3}
  .shelves{flex-wrap:nowrap;margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter) 8px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain}
  .shelves::-webkit-scrollbar{display:none}
  .shelf{flex:none;scroll-snap-align:start;white-space:nowrap}
  .inside__sum{font-size:.8125rem}
  .room__hang{padding-top:12px}
  /* r2 ux-06, creative-03, tech-06, art-11: бирка висить одразу під кадром - нитка від кільця йде лише по кадру, не крізь текст;
     рахунок і пін - під биркою, полиці - стрічкою внизу */
  .room{grid-template-columns:minmax(0,1fr) 150px;grid-template-areas:"frame frame" "hang hang" "sum pin" "shelves shelves";column-gap:12px}
  .room__hint{left:auto;right:10px}
  .room__frame{grid-area:frame}.room__bar{display:contents}.inside__sum{grid-area:sum;align-self:center}.shelves{grid-area:shelves}.room__hang{grid-area:hang}
  .inside__pin{grid-area:pin;max-width:none;margin:12px 0 0;padding:0;gap:4px;--note-tilt:0deg}
  .inside__pin .lk-note__q{font-size:.9375rem;line-height:1.35}
  .hang__say{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .inside__pin-more{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
@media (min-width:1024px){
  .room{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"frame hang" "frame pin" "bar bar";column-gap:28px;row-gap:18px;align-items:start}
  .room__frame{grid-area:frame}
  .room__hang{grid-area:hang;padding-top:20px}
  .room__hang[data-nail]::before,.room:not([data-js]) .room__hang::before{left:50%}
  .hang{width:100%}
  .inside__pin{grid-area:pin;align-self:start;margin:24px 0 0;max-width:none}
  .room__bar{grid-area:bar;display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}
  /* r2 creative-02, art-01, editor-01, detail-01, customer-01: рахунок - перший рядок смуги полиць, ні під чим не схований */
  .inside__sum{position:static;flex:1 0 100%;order:-1;max-width:none;margin:0 0 4px;text-align:start}
  .shelves{flex:1;gap:8px 6px}
  .shelf{min-height:40px;padding:0 12px 0 9px;font-size:.875rem}}

/* ——— 5 · «Меню, яке розгортається» (r1 motion-01, creative-10, art-04/-10, ux-03, interaction-04, detail-03/-04/-07) ——— */
.menu{padding-block:8px;background:var(--paper)}
.menu__in{display:grid;gap:24px}
.menu__head{text-align:center;justify-self:center}
.menu__head .lk-h2{margin-inline:auto}
.menu__head .lk-lead{margin-inline:auto;max-width:34em;font-size:1rem;line-height:1.5}
.carte{position:relative;display:grid;justify-items:center;gap:8px;perspective:1400px;min-width:0}
.carte__strip{display:grid;justify-items:center;width:100%}
/* світла тема: кремовий папір із зерном, зубчастий низ, контактна тінь під стосом; золото - лише на гербі й назвах розділів */
.carte__page{position:relative;isolation:isolate;display:flex;flex-direction:column;width:min(100%,380px);min-height:260px;padding:30px 22px 26px;background:var(--cream);
  box-shadow:var(--sh-paper),0 10px 18px -18px color-mix(in srgb,var(--ink-press) 30%,transparent);
  -webkit-mask:linear-gradient(black 0 0) top/100% calc(100% - 5px) no-repeat,radial-gradient(circle at 50% 0,black 3.2px,transparent 3.7px) bottom/9px 6px repeat-x;
  mask:linear-gradient(black 0 0) top/100% calc(100% - 5px) no-repeat,radial-gradient(circle at 50% 0,black 3.2px,transparent 3.7px) bottom/9px 6px repeat-x}
.carte__page::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--grain);mix-blend-mode:var(--grain-blend);opacity:calc(var(--grain-opacity) * 1.6)}
.carte__page::after{content:"";flex:none;height:14px;margin-top:auto;padding-top:14px;box-sizing:content-box;background:radial-gradient(circle,var(--w-skarb-gold) 2.6px,transparent 3.2px) 50% 100%/14px 14px no-repeat,linear-gradient(90deg,transparent,var(--w-skarb-gold) 30% 44%,transparent 44% 56%,var(--w-skarb-gold) 56% 70%,transparent) 50% calc(100% - 6.5px)/70% 1px no-repeat}
.carte__page[data-cover]{z-index:2;border-radius:6px 6px 0 0;box-shadow:inset 0 0 0 7px var(--cream),inset 0 0 0 8px color-mix(in srgb,var(--w-skarb-gold) 55%,transparent),var(--sh-paper)}
/* герб - висока печать «EM» між подвійними золотими лініями: без диска й тіні (медальйон на сторінці один - сургуч гарантії) */
.carte__crest{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto 4px}
.carte__crest::before,.carte__crest::after{content:"";width:40px;height:4px;border-block:1px solid var(--w-skarb-gold)}
.carte__crest b{font:italic 500 1.75rem/1 var(--font-display);letter-spacing:.04em;color:var(--w-skarb-gold);text-shadow:0 1px 0 color-mix(in srgb,var(--on-dark) 70%,transparent),0 -1px 0 color-mix(in srgb,var(--ink-press) 18%,transparent)}
.carte__title{text-align:center;font:italic 400 clamp(2rem,1.7rem + 1.2vw,2.75rem)/1 var(--font-display);letter-spacing:-.02em;color:var(--ink)}
.carte__sub{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px;font:700 var(--fs-label)/1 var(--font-body);letter-spacing:.12em;color:var(--world-ink)}
.carte__sub::before,.carte__sub::after{content:"";width:40px;height:1px;background:var(--w-skarb-gold)}
.carte__head{margin-top:20px;font:italic 500 1.25rem/1.2 var(--font-display);color:var(--w-skarb-gold);text-align:center}
.carte__page:not([data-cover]) .carte__head{margin-top:0}
.carte__rows{margin-top:10px;list-style:none}
.carte__row__li{display:block}
.carte__row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:46px;padding:6px 4px;border:0;border-bottom:1px dotted var(--world-line);border-radius:0;background:none;color:var(--ink);font:600 .9375rem/1.32 var(--font-body);text-align:start}
.carte__rows > :last-child .carte__row,.carte__rows > .carte__row:last-child{border-bottom:0}
button.carte__row{cursor:pointer}
@media (hover:hover){button.carte__row:hover{background:color-mix(in srgb,var(--raised) 70%,transparent)}}
button.carte__row:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:4px}
.carte__text{flex:1}
.carte__own .carte__text{font:italic 400 1.125rem/1.3 var(--font-display);color:var(--link)}
.carte__hand{display:inline-block;--rv-wipe-bg:var(--cream)}
/* lf:blk-skarb-menu p1: «+ своє» не стирається шторкою kit на вході - рядок дописується лише кнопкою «Додати своє» (280 мс) */
#menu .carte__hand.rv-wipe::after{content:none}
/* квадрат від руки (4 різні), галочка пером */
.carte__box{position:relative;flex:none;width:26px;height:26px}
.carte__box::before,.carte__box::after{content:"";position:absolute;background:var(--world-ink)}
.carte__box::before{inset:0;-webkit-mask:var(--sq) center/contain no-repeat;mask:var(--sq) center/contain no-repeat;
  --sq:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Cpath d='M4.6 5.2C10 4.4 16.2 4.6 21.3 5c.6 5.2.5 10.6.1 15.7-5.6.5-11.3.6-16.8.2-.6-5-.6-10.3-.2-15.6z'/%3E%3C/svg%3E")}
.carte__row__li:nth-child(4n+2) .carte__box::before{--sq:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Cpath d='M5.4 4.6c5.4.3 10.8.1 16 .6.3 5.3.6 10.6.2 15.9-5.3.4-10.7.3-16 .1-.4-5.4-.7-10.9-.2-16.6z'/%3E%3C/svg%3E")}
.carte__row__li:nth-child(4n+3) .carte__box::before{--sq:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Cpath d='M4.8 5.4c5.7-.5 11.2.3 16.5-.1.5 5.4.3 10.8.3 16.2-5.6.2-11-.3-16.5 0-.6-5.4-.5-10.7-.3-16.1z'/%3E%3C/svg%3E")}
.carte__row__li:nth-child(4n) .carte__box::before{--sq:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Cpath d='M5.6 4.8c5.1.6 10.5.4 15.5.8.6 5.2.1 10.5.5 15.6-5.2.6-10.5.1-15.7.4-.7-5.4-.5-11.2-.3-16.8z'/%3E%3C/svg%3E")}
.carte__box::after{inset:-7px -9px -2px -3px;-webkit-mask:var(--tick) center/contain no-repeat;mask:var(--tick) center/contain no-repeat;opacity:0;scale:0 1;transform-origin:10% 70%;
  --tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 13l6 6L22 3' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.carte__row__li:nth-child(4n+2) .carte__box::after{--tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 12c2 2 4 4 6 7C13 11 17 6 22 3' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.carte__row__li:nth-child(4n+3) .carte__box::after{--tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 14l4 5c4-7 8-12 14-16' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.carte__row__li:nth-child(4n) .carte__box::after{--tick:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 11c3 1 5 4 7 8 3-8 8-13 13-16' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.carte__row.is-on .carte__box::after{opacity:1;scale:1}
/* галочка вирощує бирку полиці (r1 interaction-04) */
.carte__go{position:relative;display:inline-flex;align-items:center;min-height:36px;margin:-6px 0 6px auto;padding:0 14px;border:0;border-radius:6px 6px 6px 0;background:var(--grad-gold);box-shadow:inset 0 0 0 1px var(--w-skarb-gold),var(--sh-paper);color:var(--world-ink);font:700 var(--fs-meta)/1.2 var(--font-body);cursor:pointer;transform-origin:50% 0}
.carte__row__li:has(.carte__go){display:flex;flex-direction:column}
/* r2 creative-04: бирка полиці - компактний ярлик, що висить з рядка (ціль 44 px - невидимим полем) */
.carte__go::after{content:"";position:absolute;inset:-4px 0}
@media (hover:hover){.carte__go:hover{background:var(--raised)}}
.carte__go:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.carte__note{z-index:3;top:-8px;left:auto;right:max(-6px,calc(50% - 204px));bottom:auto;--st-tilt:4deg;color:var(--world-ink)}
.carte[data-sticker="off"] .carte__note{opacity:0}
/* r2 creative-04, interaction-06, ux-01, ux-04: закладки - кремова доріжка над сторінками (не під ними) і вміщаються без прокрутки */
.carte__tabs{margin:0 0 -2px}
.carte__tabs > button{padding-inline:12px;font-size:.9375rem}
.carte__open{min-height:48px;white-space:nowrap}
/* lf:blk-skarb-menu p1 (власник 09.10 «у блока меню уебанская анимация»): меню вже розкладене, нічого не складається й не
   вилітає. Вхід - один тихий кадр: меню проявляється й осідає на 8 px за 280 мс (без перельоту й повороту), а вже поставлені
   галочки за ті самі 280 мс дописуються пером (scenes.js). Решта руху - лише у відповідь на дотик. Reduce - без руху. */
@media (prefers-reduced-motion:no-preference){
  .carte[data-js]:not([data-play],[data-still]){opacity:0}
  .carte[data-play]{animation:carte-in 280ms var(--ease-out) backwards}}
@keyframes carte-in{from{opacity:0;translate:0 8px}}
/* телефон і планшет: три сторінки вбік стрічкою зі snap і закладками */
@media (max-width:1023px){
  /* First entry formerly added 52px of tabs plus the 6px net grid gap, moving the unchanged strip/program by 58px. */
  .js .carte__tabs{min-height:52px}
  .js .carte__tabs[hidden]{display:flex!important;visibility:hidden;pointer-events:none}
  .carte__strip{display:flex;align-items:stretch;gap:12px;width:calc(100% + 2 * var(--gutter));margin-inline:calc(-1 * var(--gutter));padding:4px var(--gutter) 8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain}
  .carte__strip::-webkit-scrollbar{display:none}
  .carte__page{flex:none;width:min(380px,calc(100vw - 48px));scroll-snap-align:start;border-radius:6px}
  .carte .carte__note{top:auto;bottom:4px;right:10px;--st-tilt:-3deg}
  /* lf:blk-skarb-menu p1: з JS під стрічкою стоїть ряд «Обрати · Відмітити · Додати своє», і стікер після першої галочки ховався
     за ним (видно було лише «є»). Тепер стікер лежить у клітинці сітки стрічки: праворуч на нижньому полі обкладинки, над рядом дій. */
  .carte[data-js] > .carte__tabs{grid-area:1/1}
  .carte[data-js] > .carte__strip{grid-area:2/1}
  .carte[data-js] > .carte__note{position:relative;grid-area:2/1;align-self:end;justify-self:end;inset:auto;margin:0 calc(100% - min(380px,100vw - 48px) + 4px) 4px 0;padding:6px 12px 7px;font-size:.875rem}
  .carte__strip{align-items:start}
  .carte__page{padding:12px 18px}}
/* The crest and title share the cover's top row; all seven authored rows retain 44px targets. */
.carte__page[data-cover]{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto auto auto 1fr;column-gap:10px;align-content:start}
.carte__page[data-cover] .carte__crest{grid-column:1;grid-row:1 / span 2;margin:0;align-self:center}
.carte__page[data-cover] .carte__crest::before,.carte__page[data-cover] .carte__crest::after{display:none}
.carte__page[data-cover] .carte__title{grid-column:2;grid-row:1;text-align:start;font-size:1.75rem}
.carte__page[data-cover] .carte__sub{grid-column:2;grid-row:2;margin-top:4px;justify-content:start;letter-spacing:.06em}
.carte__page[data-cover] .carte__sub::before,.carte__page[data-cover] .carte__sub::after{display:none}
.carte__page[data-cover] .carte__head,.carte__page[data-cover] .carte__rows,.carte__page[data-cover]::after{grid-column:1/-1}
.carte__page[data-cover] .carte__head{margin-top:8px}
.carte__page::after{height:8px;padding-top:8px}
@media (max-width:767px){.menu__head .lk-h2{font-size:1.75rem;line-height:1.18;max-width:none}.menu__head .lk-lead{margin-top:8px;font-size:.8125rem;line-height:1.35}.carte__row{min-height:44px;padding:4px 2px;font-size:.8125rem;line-height:1.25}.carte__own .carte__text{font-size:.9375rem}.carte__head{font-size:1.0625rem}.carte__rows{margin-top:6px}}
/* стіл: рівний розворот - три сторінки пласко поруч, обкладинка посередині (lf:blk-skarb-menu2 нижче); без JS - так само */
@media (min-width:1024px){
  .menu{padding-block:32px}
  .menu__head{display:grid;grid-template-columns:auto minmax(0,26em);align-items:last baseline;column-gap:48px;text-align:start}
  .menu__head .lk-h2{max-width:none;margin:0;font-size:2.5rem;line-height:1.15}.menu__head .lk-lead{margin:0 0 6px}
  .carte{padding-bottom:4px}
  /* r2 creative-05, art-10, detail-09: три сторінки закінчуються на одній лінії, орнамент - унизу кожної */
  .carte__strip{display:grid;grid-template-columns:repeat(3,minmax(0,340px));justify-content:center;align-items:stretch}
  .carte__strip::after{content:"";grid-column:1/-1;grid-row:2;height:26px;margin:-8px 8% 0;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--ink-press) 22%,transparent),transparent)}
  .carte__page{width:auto;padding:16px 24px}
  .carte__row{min-height:44px;padding-block:4px;font-size:.875rem;line-height:1.25}
  .carte__page[data-cover]{grid-column:2;grid-row:1;border-radius:0}
  .carte__page--1{grid-column:1;grid-row:1;border-right:1px dashed var(--world-line);border-radius:6px 0 0 6px}
  .carte__page--2{grid-column:3;grid-row:1;border-left:1px dashed var(--world-line);border-radius:0 6px 6px 0}
  .carte__note{top:auto;right:auto;left:max(-14px,calc(50% - 524px));bottom:24px;--st-tilt:-5deg}
  .carte__tabs{display:none}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .carte__page{background:var(--raised);box-shadow:var(--sh-paper)}:root:not([data-theme="light"]) .carte__page[data-cover]{box-shadow:inset 0 0 0 7px var(--raised),inset 0 0 0 8px var(--w-skarb-gold),var(--sh-paper)}:root:not([data-theme="light"]) .carte__hand{--rv-wipe-bg:var(--raised)}}
:root[data-theme="dark"] .carte__page{background:var(--raised);box-shadow:var(--sh-paper)}
:root[data-theme="dark"] .carte__page[data-cover]{box-shadow:inset 0 0 0 7px var(--raised),inset 0 0 0 8px var(--w-skarb-gold),var(--sh-paper)}
:root[data-theme="dark"] .carte__hand{--rv-wipe-bg:var(--raised)}

/* ——— 6 · «Штанга настрою» (r1 illustrator-01, art-05/-06, creative-05, interaction-05/-06, detail-09/-10, tech-09) ——— */
.program{margin-top:var(--section-y);padding-bottom:var(--section-y);background:var(--cream)}
/* r2 art-07: смуга меню й смуга спортзалу стикаються, як колода й тарифи (без третього проміжку паперу між ними) */
.menu + .program{margin-top:0}
.program__in{display:grid;gap:var(--stack-3)}
.program__result{margin-top:16px;max-width:52ch;font:500 var(--fs-body)/1.5 var(--font-body);color:var(--ink-2)}
.program__facts{margin-top:14px;font:500 var(--fs-body)/1.4 var(--font-body);color:var(--ink-2)}
.program__facts b{font:500 1.75rem/1 var(--font-display);letter-spacing:-.02em;color:var(--world-ink);font-variant-numeric:lining-nums}
.gym{position:relative;isolation:isolate;display:grid;gap:16px;margin-inline:-8px;padding:18px 8px 16px;
  --rim-0:var(--yellow);--rim-1:var(--w-skarb-accent);--rim-2:color-mix(in oklab,var(--w-skarb-gold) 60%,var(--ink-press))}
.gym__set,.gym__board{position:relative;display:grid;gap:12px;min-width:0}
.gym__board{padding:16px 12px;border-radius:var(--r-card);background:var(--raised);box-shadow:var(--sh-paper);isolation:isolate}
.gym__board::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--grain);mix-blend-mode:var(--grain-blend);opacity:var(--grain-opacity);pointer-events:none}
.gym__weeks{display:none}
/* гриф - SVG: хром стрижня, насічка, втулки, чавунні диски з ободом і золотою смугою тону навички, латунні замки зовні */
.gym__bar{position:relative;height:64px}
.gym__svg{display:block;width:100%;height:100%;overflow:visible}
.gym__c0{stop-color:color-mix(in oklab,var(--on-dark) 92%,var(--ink-press))}.gym__c1{stop-color:color-mix(in oklab,var(--on-dark) 45%,var(--ink-press))}.gym__c2{stop-color:color-mix(in oklab,var(--on-dark) 15%,var(--ink-press))}
.gym__i0{stop-color:var(--ink-press)}.gym__i1{stop-color:color-mix(in oklab,var(--ink-press) 78%,var(--on-dark))}
.gym__rod{fill:none;stroke:url(#gym-chrome);stroke-width:6;stroke-linecap:round}
.gym__knurl{fill:none;stroke:color-mix(in srgb,var(--ink-press) 55%,transparent);stroke-width:6;stroke-dasharray:1.1 1.6}
.gym__sleeve{fill:none;stroke:url(#gym-chrome);stroke-width:10;stroke-linecap:round}
.gym__stop{fill:var(--w-skarb-accent);stroke:color-mix(in oklab,var(--w-skarb-gold) 50%,var(--ink-press));stroke-width:.8}
/* r2 illustrator-08: блік уздовж верху стрижня й втулок, гумовий обід і шов між дисками */
.gym__hl{fill:none;stroke:color-mix(in srgb,var(--on-dark) 70%,transparent);stroke-width:1.2;stroke-linecap:round}
.gym__collar{fill:var(--w-skarb-accent);stroke:color-mix(in oklab,var(--w-skarb-gold) 50%,var(--ink-press));stroke-width:.8}
.gym__floor{fill:color-mix(in srgb,var(--ink-press) 16%,transparent)}
.gym__p{transform-box:fill-box;transform-origin:50% 50%}
.gym__p-body{fill:url(#gym-iron);stroke:color-mix(in srgb,var(--ink-press) 60%,transparent);stroke-width:.6}
.gym__p-rim{fill:color-mix(in srgb,var(--on-dark) 30%,transparent)}
.gym__p-edge{fill:none;stroke:color-mix(in oklab,var(--ink-press) 70%,var(--on-dark));stroke-width:2}
.gym__p-seam{fill:color-mix(in srgb,var(--ink-press) 85%,transparent)}
.gym__p-band--0{fill:var(--rim-0)}.gym__p-band--1{fill:var(--rim-1)}.gym__p-band--2{fill:var(--rim-2)}
.gym__now{min-height:1.3em;text-align:center;font:600 var(--fs-meta)/1.3 var(--font-body);color:var(--muted);text-wrap:balance}
.gym[data-picked] .gym__now{color:var(--world-ink)}
/* стійка: чавунні диски обличчям до нас - обід, підняте кільце, латунна маточина, гліф навички витиснений золотом на 12 годині */
.gym__rack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px;list-style:none;justify-items:center;align-items:start;padding:4px 0 12px;border-bottom:1px solid var(--world-line)}
.plate__li{display:contents}
/* r2 art-04, detail-07, creative-06: чавунний диск лиття - отвір паперу 6 px, латунна маточина ≤ 34 %, підняте кільце, обід тону навички
   (1,5 px) і світло обода; гліф витиснений на верхньому поясі; усі диски на одній осі, назви - з одного рядка */
.plate{position:relative;display:grid;grid-template-rows:var(--disc-max,56px) auto;justify-items:center;align-items:center;gap:6px;min-width:44px;min-height:44px;padding:0;border:0;background:none;color:var(--ink);font:600 var(--fs-meta)/1.2 var(--font-body);text-align:center;--disc-max:56px}
.plate[data-plate="listening"],.plate[data-plate="grammar"]{--rim:var(--rim-0)}.plate[data-plate="speaking"],.plate[data-plate="pronunciation"],.plate[data-plate="fun"]{--rim:var(--rim-1)}.plate[data-plate="vocabulary"],.plate[data-plate="reading"]{--rim:var(--rim-2)}
.plate__disc{position:relative;display:block;width:calc(34px + var(--n) * 2.6px);aspect-ratio:1;border-radius:50%;--gs:clamp(12px,calc((34px + var(--n) * 2.6px) * .27),15px);--iron-hi:color-mix(in oklab,var(--ink-press) 70%,var(--on-dark));--iron:var(--ink-press);--iron-lo:color-mix(in oklab,var(--ink-press) 88%,var(--paper));
  background:radial-gradient(closest-side,var(--paper) 0 13%,color-mix(in oklab,var(--yellow) 72%,var(--ink-press)) 15% 27%,color-mix(in oklab,var(--yellow) 30%,var(--ink-press)) 28% 31%,transparent 32%),
    radial-gradient(closest-side,transparent 0 60%,color-mix(in srgb,var(--on-dark) 18%,transparent) 61% 63%,color-mix(in srgb,var(--ink-press) 60%,transparent) 64% 66%,transparent 67% 85%,var(--rim) 87% 93%,color-mix(in oklab,var(--rim) 45%,var(--ink-press)) 95%),
    repeating-conic-gradient(from 8deg,color-mix(in srgb,var(--on-dark) 4%,transparent) 0 2deg,transparent 2deg 6deg),
    radial-gradient(circle at 34% 28%,var(--iron-hi),var(--iron) 58%,var(--iron-lo));
  box-shadow:0 0 0 1.5px color-mix(in srgb,var(--rim) 80%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--on-dark) 20%,transparent),inset 0 2px 1px color-mix(in srgb,var(--on-dark) 22%,transparent),inset 0 -3px 5px color-mix(in srgb,var(--ink-press) 60%,transparent),0 5px 10px color-mix(in srgb,var(--ink-press) 30%,transparent)}
.plate__disc .g{position:absolute;top:calc(20.5% - var(--gs) / 2);left:50%;width:var(--gs);height:var(--gs);translate:-50% 0;color:color-mix(in oklab,var(--rim) 85%,var(--on-dark));stroke-width:2;filter:drop-shadow(0 -1px 0 color-mix(in srgb,var(--ink-press) 80%,transparent)) drop-shadow(0 1px 0 color-mix(in srgb,var(--on-dark) 18%,transparent))}
.plate__name{max-width:9ch;min-height:2.4em;font-size:var(--fs-meta);line-height:1.2;text-wrap:balance}
button.plate{cursor:pointer}
button.plate[aria-pressed="true"] .plate__disc{opacity:.28;box-shadow:inset 0 0 0 2px var(--world-line);background:repeating-radial-gradient(circle,transparent 0 6px,var(--world-line) 6px 7px)}
button.plate[aria-pressed="true"] .plate__disc .g{opacity:0}
button.plate[aria-pressed="true"] .plate__name{color:var(--world-ink)}
button.plate:focus-visible{outline:var(--focus-ring);outline-offset:3px;border-radius:12px}
@media (prefers-reduced-motion:no-preference){@media (hover:hover){button.plate:hover .plate__disc{translate:0 -4px;rotate:-8deg}}.plate__disc{transition:translate var(--dur-ui) var(--ease-out),rotate var(--dur-ui) var(--ease-out),opacity var(--dur-ui) var(--ease-out)}}
/* план: телефон - 4 рядки (тижні) × 8 квадратів із гліфом; стіл - 4 тижні стовпчиками з назвами. Папір і чорнильний гліф; світлі -
   золото світу; хвиля від грифа: затримка за тижнем і місцем */
.plan{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none}
.plan__week{min-width:0}
.plan__wk{margin-bottom:6px;text-align:center;font:italic 500 .9375rem/1.2 var(--font-display);color:var(--world-ink)}
.plan__row{display:grid;gap:8px;list-style:none}
.t__li{display:block}
.t{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;padding:0;border:0;border-radius:4px;background:none;box-shadow:inset 0 -1px 0 var(--line);color:var(--ink);font:600 var(--fs-meta)/1.22 var(--font-body);text-align:start}
.t .g{width:19px;height:19px;color:var(--ink-2)}
.t__name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
button.t{cursor:pointer}
@media (hover:hover){button.t:hover{background:var(--world);box-shadow:inset 0 0 0 1px var(--w-skarb-gold)}}
button.t:focus-visible{outline:var(--focus-ring);outline-offset:2px}
:is(.plan[data-skills~="listening"] .t[data-skill="listening"],.plan[data-skills~="speaking"] .t[data-skill="speaking"],.plan[data-skills~="vocabulary"] .t[data-skill="vocabulary"],.plan[data-skills~="pronunciation"] .t[data-skill="pronunciation"],.plan[data-skills~="grammar"] .t[data-skill="grammar"],.plan[data-skills~="reading"] .t[data-skill="reading"],.plan[data-skills~="writing"] .t[data-skill="writing"],.plan[data-skills~="fun"] .t[data-skill="fun"]){opacity:1;background:var(--grad-gold),var(--world);box-shadow:inset 0 0 0 1.5px var(--w-skarb-gold)}
:is(.plan[data-skills~="listening"] .t[data-skill="listening"],.plan[data-skills~="speaking"] .t[data-skill="speaking"],.plan[data-skills~="vocabulary"] .t[data-skill="vocabulary"],.plan[data-skills~="pronunciation"] .t[data-skill="pronunciation"],.plan[data-skills~="grammar"] .t[data-skill="grammar"],.plan[data-skills~="reading"] .t[data-skill="reading"],.plan[data-skills~="writing"] .t[data-skill="writing"],.plan[data-skills~="fun"] .t[data-skill="fun"]) .g{color:var(--world-ink)}
.t[data-sheet-from]{outline:2px solid var(--world-ink);outline-offset:2px}
.gym__say{font:italic 400 var(--fs-meta)/1.4 var(--font-display);color:var(--world-ink);text-wrap:pretty}
.gym__price{justify-self:start;min-height:44px}
.program__pin{max-width:460px;height:auto;margin:16px 0 0;padding:0;gap:6px;--note-tilt:0deg}
.program__pin::after{display:none}
.program__pin .lk-note__q{font-size:1.0625rem;line-height:1.45}
@media (prefers-reduced-motion:no-preference){
  .t{transition:opacity var(--dur-ui) var(--ease-out) calc(var(--w) * 60ms + var(--i) * 15ms),scale var(--dur-press) var(--ease-out)}
  .gym[data-armed] :is(.t,.plate__disc){opacity:0}
  .gym[data-play] .t{animation:cell-in 420ms var(--ease-settle) calc((var(--i) + var(--w)) * var(--stagger-matrix,30ms)) backwards}
  .gym[data-play] .plate__disc{animation:plate-roll 700ms var(--ease-stone) backwards}
  .gym[data-play] .plate__li:nth-child(2) .plate__disc{animation-delay:70ms}.gym[data-play] .plate__li:nth-child(3) .plate__disc{animation-delay:140ms}
  .gym[data-play] .plate__li:nth-child(4) .plate__disc{animation-delay:210ms}.gym[data-play] .plate__li:nth-child(5) .plate__disc{animation-delay:280ms}
  .gym[data-play] .plate__li:nth-child(6) .plate__disc{animation-delay:350ms}.gym[data-play] .plate__li:nth-child(7) .plate__disc{animation-delay:420ms}}
@keyframes cell-in{from{opacity:0;scale:.6}}
@keyframes plate-roll{from{opacity:0;translate:80px 0;rotate:200deg}}
/* картка тренування (kit sheet): тиждень і навичка, назва, що робите / що у вас буде, хід до 49 € */
.drill{padding:4px 2px 2px;max-width:34ch}
.drill__wk{display:flex;align-items:center;gap:8px;font:600 var(--fs-label)/1.3 var(--font-body);color:var(--muted)}
.drill__skill{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:var(--r-pill);background:var(--world);color:var(--world-ink);font-weight:700}
.drill__name{margin-top:8px;font:500 1.375rem/1.2 var(--font-display);letter-spacing:-.02em;color:var(--ink)}
.drill__preview{margin-top:12px;font:500 var(--fs-small)/1.5 var(--font-body);color:var(--ink)}
.drill__go{margin-top:8px;min-height:44px}
/* r2 ux-02: хід до 49 € не ховається під краєм картки - липне до її низу */
.lk-sheet .drill__go{position:sticky;bottom:0;z-index:1;display:flex;margin-inline:-20px;padding:8px 20px;background:var(--raised);box-shadow:0 -10px 12px -10px color-mix(in srgb,var(--ink-press) 18%,transparent)}
/* The whole open training surface sits above the review pin, including its visible CTA. */
.gym__board.lk-sheet-host{z-index:4}
.program:has(.gym__board.lk-sheet-host) .program__pin{visibility:hidden}
/* ніч: квадрати - піднятий папір із золотим гліфом, світлі - світяться золотом */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .t{background:none}:root:not([data-theme="light"]) .t .g{color:var(--w-skarb-gold)}}
:root[data-theme="dark"] .t{background:none}:root[data-theme="dark"] .t .g{color:var(--w-skarb-gold)}
/* ніч (r2 creative-06, detail-07): чавун із теплим відблиском (не контур), золотий обід 80 % і внутрішнє світло, золотий гліф */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .plate__disc{--iron-hi:color-mix(in oklab,var(--yellow) 22%,var(--raised));--iron:var(--raised);--iron-lo:var(--paper);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--w-skarb-gold) 80%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--yellow) 30%,transparent),inset 0 2px 1px color-mix(in srgb,var(--on-dark) 26%,transparent),0 6px 14px color-mix(in srgb,var(--ink-press) 85%,transparent)}:root:not([data-theme="light"]) .plate__disc .g{color:color-mix(in oklab,var(--yellow) 80%,var(--on-dark))}:root:not([data-theme="light"]) .gym__p-rim{fill:color-mix(in srgb,var(--yellow) 70%,transparent)}}
:root[data-theme="dark"] .plate__disc{--iron-hi:color-mix(in oklab,var(--yellow) 22%,var(--raised));--iron:var(--raised);--iron-lo:var(--paper);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--w-skarb-gold) 80%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--yellow) 30%,transparent),inset 0 2px 1px color-mix(in srgb,var(--on-dark) 26%,transparent),0 6px 14px color-mix(in srgb,var(--ink-press) 85%,transparent)}:root[data-theme="dark"] .plate__disc .g{color:color-mix(in oklab,var(--yellow) 80%,var(--on-dark))}:root[data-theme="dark"] .gym__p-rim{fill:color-mix(in srgb,var(--yellow) 70%,transparent)}
@media (max-width:1023px){
  .program__head{display:contents}
  .program__in{gap:0}
  .gym{margin-top:var(--stack-3)}
  .plate{--disc-max:44px}
  .plate__disc{width:calc(30px + var(--n) * 1.8px);--gs:12px}
  .gym__rack{row-gap:10px;padding-bottom:10px}
  .program__pin{margin-top:16px;padding:0}
  .program__pin .lk-note__q{font-size:1rem}}
@media (min-width:600px) and (max-width:1023px){.gym__rack{grid-template-columns:repeat(7,minmax(0,1fr))}.gym__bar{height:84px}}
/* Телефон: стійка одним рядком зі snap (вицвітає там, куди ще гортати), назви тренувань - на окремій паперовій дошці;
   відгук іде у потоці після матриці.
   Клітинки 44 px і проміжок 8 (DESIGN §8) лишаються. */
@media (max-width:599px){
  .gym__rack{display:flex;gap:14px;margin-inline:-8px;padding:4px 14px 10px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:14px;scrollbar-width:none;overscroll-behavior-x:contain}
  .gym__rack::-webkit-scrollbar{display:none}
  .gym__rack[data-more="end"]{-webkit-mask:linear-gradient(90deg,black 80%,transparent);mask:linear-gradient(90deg,black 80%,transparent)}
  .gym__rack[data-more="start"]{-webkit-mask:linear-gradient(270deg,black 80%,transparent);mask:linear-gradient(270deg,black 80%,transparent)}
  .gym__rack[data-more="both"]{-webkit-mask:linear-gradient(90deg,transparent,black 14% 86%,transparent);mask:linear-gradient(90deg,transparent,black 14% 86%,transparent)}
  .plate{flex:none;scroll-snap-align:start}}
@media (max-width:767px){
  .program{padding-top:16px;padding-bottom:16px}
  #program .lk-h2{font-size:1.75rem;line-height:1.22}
  .program__facts{margin-top:10px}
  .gym{gap:8px;margin-top:8px;padding-top:14px}
  .gym__set{gap:8px}
  .gym__board{gap:10px}
  .gym__say{display:block}
  .gym__price{max-width:100%;line-height:1.3}
  .gym__bar{height:56px}
  .gym__rack{padding-bottom:8px}
  .plan__wk{margin-bottom:4px}
  .program__pin{position:relative;z-index:2;max-width:none;margin:16px 0 0;padding:0;--note-tilt:0deg}
  .program__pin .lk-note__q{font-size:.9375rem;line-height:1.35}
  .pin-more{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
/* Власник: один обʼєкт у фокусі, решта розкривається. На телефоні - 8 назв обраного тижня замість 32 безіменних квадратів. */
@media (max-width:1023px){
  #program .lk-h2{max-width:none;font-size:clamp(1.75rem,1rem + 2vw,2.25rem);line-height:1.22}
  .js .gym:not([data-fallback]) .gym__weeks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;height:44px}
  .gym__weeks button{height:44px;min-height:44px;padding:6px 2px;border:0;border-radius:var(--r-pill);background:var(--cream);box-shadow:inset 0 0 0 1px var(--world-line);color:var(--ink);font:600 .8125rem/1.25 var(--font-body);cursor:pointer}
  .gym__weeks button[data-match]{box-shadow:inset 0 -2px 0 var(--w-skarb-gold),inset 0 0 0 1px var(--world-line)}
  .gym__weeks button[aria-selected="true"]{background:var(--world);color:var(--world-ink);box-shadow:inset 0 0 0 1.5px var(--w-skarb-gold)}
  .gym__weeks button:focus-visible{outline:var(--focus-ring);outline-offset:2px}
  .gym__weeks button:active{scale:.98}
  .js .gym:not([data-fallback]) .plan{grid-template-columns:minmax(0,1fr)}
  .js .gym:not([data-fallback]) .plan__week:not([data-current]),.js .gym:not([data-fallback]) .plan__wk{display:none}
  .js .gym:not([data-fallback]) .plan__row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .js .gym:not([data-fallback]) .t{justify-content:start;min-height:44px;padding:4px 8px}
  .gym[data-js][data-play] .t{animation:none}
  .js .gym:not([data-fallback]) .t__name{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font-size:.8125rem;line-height:1.25}
  #program .program__facts{font-size:.9375rem}
  .program__facts b{font-size:1.5rem}
  @media (prefers-reduced-motion:no-preference){.gym__weeks button{transition:scale var(--dur-press) var(--ease-out),background-color var(--dur-ui) var(--ease-out)}}}
@media (max-width:767px){
  #program .lk-h2{font-size:1.625rem;line-height:1.18}
  .program__facts{margin-top:8px}
  #program .program__facts{font-size:.8125rem;line-height:1.3}
  .program__facts b{font-size:1.25rem}
  .gym__set{grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:auto auto}
  .gym__bar{grid-column:1;grid-row:1}
  .gym__now{grid-column:2;grid-row:1;align-self:center;min-height:3.9em;font-size:.8125rem;text-align:start;text-wrap:pretty}
  .gym__rack{grid-column:1/-1;grid-row:2}
  .gym__board{gap:8px}
  .program__pin{gap:4px;padding:0;max-width:none}
  .program__pin .lk-note__q{font-size:.875rem;line-height:1.3}}
/* The unboxed phone stage needs no duplicate padding around the paper board. */
@media (max-width:599px){
  .gym{margin-inline:0;padding:0}
  .gym__board{padding-block:12px}
  .gym__say{display:none}}
@media (min-width:768px) and (max-width:1023px){
  .program{padding-top:24px;padding-bottom:24px}
  .gym{gap:8px;margin-top:8px}
  .gym__say{display:block}
  .gym__price{max-width:100%;line-height:1.3}
  .program__pin{position:relative;z-index:2;max-width:none;margin:16px 0 0;padding:0;--note-tilt:0deg}
  .program__pin .lk-note__q{font-size:.9375rem;line-height:1.35}
  .program__pin .pin-more{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
/* стіл (r1 art-06): гриф і стійка - ліва колонка під заголовком, план 4 тижні з назвами - праворуч, картка тренування - під ним */
@media (min-width:1024px){
  .program{padding-top:48px;padding-bottom:48px}
  .program__in{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:40px;row-gap:22px;align-items:start}
  .program__head{grid-column:1;grid-row:1}
  .gym{display:contents}
  .gym__set,.gym__board{padding:20px 24px;isolation:isolate}
  /* The board is the single paper surface; its proof follows without overlapping it. */
  .program__in{grid-template-rows:auto auto 1fr;row-gap:16px}
  .gym__set{grid-column:1;grid-row:2 / span 2;gap:14px}
  .gym__board{grid-column:2;grid-row:1 / span 2;align-self:start;gap:12px}
  .program__pin{position:relative;z-index:2;grid-column:2;grid-row:3;align-self:start;justify-self:start;margin:0;max-width:460px;padding:0;--note-tilt:0deg}
  .gym__bar{height:80px}
  .gym__rack{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 8px}
  .plate__disc{width:calc(34px + var(--n) * 2.6px)}
  .plan{gap:10px}
  .plan__wk{margin-bottom:8px;padding-left:4px}
  .plan__row{gap:6px}
  .t{min-height:40px;justify-content:flex-start;gap:10px;padding:0 10px}
  .t .g{width:18px;height:18px}
  .t__name{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font-size:.8125rem;line-height:1.2}
  .gym__say{font-size:1rem}}

/* ——— 7 · Мері: полароїд на золотому колі; на вході коло росте, полароїд сідає, наклейки ставляться штампами (r1 motion-02); тап
   перевертає його - «Що дивиться Мері» на лінованому папері (r1 creative-09) ——— */
.mary{padding-top:48px}
.mary__in{display:grid;gap:24px}
.mary__pic{position:relative;justify-self:center;width:min(76vw,400px);isolation:isolate}
/* r2 art-12, motion-03: золоте коло 1,1 ширини полароїда з центром ближче до нижнього лівого кута - видно серп ≈ 30 % */
.mary__pic::before{content:"";position:absolute;z-index:-1;left:-5%;top:50%;width:110%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 35%,var(--yellow),color-mix(in oklab,var(--yellow) 70%,var(--world-accent)));translate:-24% calc(-50% + 16%)}
@media (max-width:600px){.mary__pic::before{width:104%;left:-2%;translate:-12% calc(-50% + 14%)}}
.flip{position:relative;perspective:1200px}
.flip__in{display:grid;transform-style:preserve-3d}
.flip__in > *{grid-area:1/1}
.mary__photo{--frame-tilt:-3deg}
.mary__photo figcaption{font-size:1.125rem}
.flip__back{display:none}
.flip[data-js] .flip__in{cursor:pointer}
.flip[data-js] .flip__back{position:relative;isolation:isolate;display:grid;align-content:center;gap:14px;padding:30px 26px 26px;border-radius:var(--r-note);
  background:var(--cream);
  box-shadow:var(--sh-lift);rotate:-3deg;transform:rotateY(180deg);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flip[data-js] .flip__back::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--grain);mix-blend-mode:var(--grain-blend);opacity:calc(var(--grain-opacity) * 1.6)}
.flip[data-js] .flip__face{backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flip[data-js] .flip__in{transform:rotateY(0deg)}
.flip[data-back] .flip__in{transform:rotateY(180deg)}
.flip__title{font:italic 500 1.375rem/1.2 var(--font-display);color:var(--world-ink);text-wrap:balance}
.flip__list{display:grid;gap:0;list-style:none}
.flip__list li{padding:5px 0 4px;border-bottom:1px solid color-mix(in srgb,var(--w-skarb-gold) 24%,transparent);font:italic 400 1.0625rem/1.4 var(--font-display);color:var(--ink)}
.flip__hl{background:linear-gradient(transparent 74%,color-mix(in srgb,var(--yellow) 85%,transparent) 74% 98%,transparent 98%);color:inherit;padding-inline:.1em}
.flip__go{position:relative;justify-self:start;margin-top:4px}
.flip__loop{position:absolute;left:-6px;right:-14px;bottom:-12px;width:calc(100% + 20px);height:22px;overflow:visible;fill:none;stroke:var(--w-skarb-gold);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;pointer-events:none}
/* r2 motion-04: поворот паперу без «моргання» - 90° близько 250 мс, легкий доворот у кінці */
@media (prefers-reduced-motion:no-preference){.flip__in{transition:transform 640ms linear(0,.06 12%,.24 25%,.5 40%,.78 56%,.95 72%,1.012 86%,1)}.flip__loop path{stroke-dashoffset:1;transition:stroke-dashoffset 600ms var(--ease-out) 400ms}.flip[data-back] .flip__loop path{stroke-dashoffset:0}}
.mary__st{max-width:12em;font-size:var(--fs-small);font-style:normal;font-family:var(--font-body);font-weight:500;color:var(--ink-2)}
.mary__st b{display:block;font:500 1.5rem/1.1 var(--font-display);color:var(--world-ink)}
.mary__st--a{--st-top:2%;left:auto;right:-12%;--st-tilt:4deg}
.mary__st--b{top:auto;bottom:16%;--st-left:-7%;--st-tilt:-3deg}
@media (max-width:600px){.mary__st--a{--st-top:-9%;right:-13%;max-width:9.5em;padding:8px 12px 9px}.mary__st--a b{font-size:1.25rem}}
.mary__pic[data-back] .mary__st{opacity:0;visibility:hidden;pointer-events:none}
/* r2 interaction-01: зворот полароїда - над наклейками, його посилання ловить курсор */
.mary__pic[data-back] .flip{z-index:2}
/* керування: чип «↻» на куті фото (стіл) і наклейка-кнопка на нижньому краї полароїда (телефон) */
.mary__chip{position:absolute;z-index:4;top:-12px;left:-12px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--raised);box-shadow:var(--sh-paper);color:var(--world-ink);cursor:pointer}
.mary__chip svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mary__chip:focus-visible,.mary__tab:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.mary__tab{position:absolute;z-index:4;right:-4px;bottom:-22px;display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border:0;border-radius:var(--r-note);background:var(--grad-gold),var(--world);box-shadow:inset 0 0 0 1px var(--w-skarb-gold),var(--sh-paper);color:var(--world-ink);font:italic 500 1.0625rem/1 var(--font-display);white-space:nowrap;rotate:-2deg;cursor:pointer}
@media (min-width:768px){.mary__tab{display:none}}
@media (max-width:767px){.mary__turn,.mary__chip{display:none}}
@media (prefers-reduced-motion:no-preference){
  @media (hover:hover){.mary__chip:hover svg{rotate:-40deg}}.mary__chip svg{transition:rotate var(--dur-ui) var(--ease-out)}
  .mary__st{transition:opacity var(--dur-ui) var(--ease-out),visibility 0s linear var(--dur-ui)}
  .mary__pic:not([data-back]) .mary__st{transition-delay:0s}
  .mary__pic[data-armed]::before,.mary__pic[data-armed] :is(.flip,.mary__st,.mary__chip,.mary__tab){opacity:0}
  .mary__pic[data-play] :is(.mary__chip,.mary__tab){animation:sticker-stamp 280ms var(--ease-stone) 880ms backwards}
  .mary__pic[data-play]::before{animation:mary-circle 1100ms var(--spring-float,var(--ease-settle)) backwards}
  .mary__pic[data-play] .flip{animation:mary-settle 700ms var(--ease-settle) 120ms backwards}
  .mary__pic[data-play] .mary__st--a{animation:sticker-stamp 280ms var(--ease-stone) 640ms backwards}
  .mary__pic[data-play] .mary__st--b{animation:sticker-stamp 280ms var(--ease-stone) 760ms backwards}}
@keyframes mary-circle{from{opacity:0;scale:.9}}
@keyframes mary-settle{0%{opacity:0;translate:0 16px;rotate:-6deg}15%{opacity:1}100%{opacity:1;translate:0;rotate:0deg}}
@keyframes sticker-stamp{from{opacity:0;scale:1.18}}
.mary__q{margin-top:var(--stack-2);max-width:55ch;color:var(--ink)}
.mary__q p{font:500 var(--fs-body)/1.55 var(--font-body)}
.mary__q p + p{margin-top:16px}
.mary__q p:first-child{font:italic 400 var(--fs-quote)/1.5 var(--font-display)}
.mary__turn{margin-top:14px;padding:0;border:0;background:none;cursor:pointer}
/* ніч: полароїд лишається папером */
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mary__photo{background:color-mix(in oklab,var(--on-dark) 86%,var(--paper))}:root:not([data-theme="light"]) .mary__photo figcaption{color:var(--ink-press)}}
:root[data-theme="dark"] .mary__photo{background:color-mix(in oklab,var(--on-dark) 86%,var(--paper))}:root[data-theme="dark"] .mary__photo figcaption{color:var(--ink-press)}
@media (min-width:1024px){.mary__in{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:88px}.mary__text{max-width:36rem}}
@media (max-width:1023px){.mary__pic{width:min(68vw,320px)}.mary__q{font-size:1.0625rem;line-height:1.45}.mary__text .lk-h2{font-size:1.875rem;line-height:1.2}
  .flip[data-js] .flip__back{gap:8px;padding:20px 18px}
  .flip__title{font-size:1.25rem}
  .flip__list li{padding:3px 0;font-size:.9375rem;line-height:1.3}}

/* ——— 8 · «Що кажуть наші учні»: «Колода нотаток» кіта на кремовій смузі ——— */
/* lf:reviews · 08.10 записки з сундука - kit «Стопка листів» v2 (шкіра chest): вкладки-теми 07.10 над стопкою, маркер у цитаті,
   край стрічки вкладок згасає, без «Оригінал ›». На 1440 заголовок ліворуч, стопка праворуч. */
.voices{margin-top:var(--section-y);padding-bottom:var(--section-y);background:var(--cream)}
.voices__in{display:grid;gap:12px 20px}
.voices__intro{margin:0;max-width:26em;color:var(--ink-2);font:400 var(--fs-body,1rem)/1.55 var(--font-body);text-wrap:pretty}
.voices__deck{margin-top:12px}
@media (min-width:1024px){.voices__in{grid-template-columns:minmax(0,4fr) minmax(0,7fr);column-gap:clamp(40px,5vw,88px);align-items:center}.voices__in>:not(.voices__deck){grid-column:1}.voices__deck{grid-column:2;grid-row:1/span 3;margin-top:0}}
/* lf:reviews r3: the chest lid holds the unfolded note; the title and the line stand in the middle beside it */
@media (min-width:1024px){.voices__in{grid-template-rows:1fr auto auto 1fr}.voices__in>.lk-h2{grid-row:2;align-self:end}.voices__intro{grid-row:3;align-self:start}.voices__deck{grid-row:1/span 4}}
/* /lf:reviews */

/* ——— 9 · lf:offers «Купон зі скрині» (N120, F71; offers r1): один купон-квиток кіта (chest) з перемикачем 49 / 29 €. Вибір = купон
   відривається по перфорації й лягає новий (≤ 280 мс). На столі ліворуч рішення (заголовок, умова, вибір, печатка, слово учениці),
   праворуч один купон. Без JS обидва квитки стоять один під одним. ——— */
.offer{padding-bottom:var(--section-y);background:var(--world)}
.offer__in{display:grid;gap:12px}
.offer__head{max-width:720px}
.offer__buy{display:grid;gap:14px;min-width:0}
.offer__top{margin:0}
.offer__terms{margin:0;font:600 var(--fs-meta)/1.5 var(--font-body);color:var(--world-ink)}
.offer__seg{position:relative;justify-self:start;max-width:100%;margin-top:10px;overflow:visible}
.offer__seg button{min-height:48px;padding-inline:18px;font-variant-numeric:tabular-nums lining-nums}
.offer__flag{position:absolute;z-index:2;top:-13px;left:14px;display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:6px 6px 6px 0;background:var(--grad-gold),var(--world);box-shadow:inset 0 0 0 1px var(--w-skarb-gold),var(--sh-paper);color:var(--world-ink);font:700 .8125rem/1 var(--font-body);rotate:-2deg;pointer-events:none}
.offer__cards{display:grid;gap:28px;min-width:0}
.offer__cards[data-js]{gap:0;padding-top:6px}
.offer__cards[data-js]>.sk-price{grid-area:1/1}
.offer__cards[data-js]>.sk-price[data-off]{visibility:hidden;opacity:0;pointer-events:none}
.offer__cards[data-js] .price__pick{display:none}
.price{--tk-notch:12px}
.offer .price.lk-ticket{--tk-main:var(--raised);--tk-stub:var(--world);filter:drop-shadow(0 1px 1px color-mix(in srgb,var(--ink-press) 14%,transparent)) drop-shadow(0 14px 22px color-mix(in srgb,var(--ink-press) 13%,transparent))}
.offer .price.lk-ticket .price__main{background:var(--tk-main)}
/* кришка скрині: золотий кант зі світлом зі щілини над корінцем; на дотик кришка прочиняється на кілька градусів */
.price .lk-ticket__stub::after{content:"";position:absolute;inset:0 0 auto;height:14px;border-bottom:3px double var(--w-skarb-gold);background:linear-gradient(180deg,color-mix(in oklab,var(--w-skarb-gold) 46%,var(--world)),color-mix(in oklab,var(--w-skarb-gold) 18%,var(--world)));transform-origin:50% 100%;pointer-events:none}
.price__pick{position:absolute;top:-14px;right:18px;z-index:5;display:inline-flex;align-items:center;min-height:30px;margin:0;padding:0 14px;border-radius:6px 6px 6px 0;background:var(--world-ink);color:var(--paper);font:700 var(--fs-meta)/1 var(--font-body);box-shadow:var(--sh-paper);rotate:2deg}
.price__name{font:500 var(--fs-title-s)/1.15 var(--font-display);letter-spacing:var(--ls-title);text-wrap:balance}
.price__detail{display:none}
.price__scope{margin-top:8px}
.price__list{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.price__list li{display:grid;grid-template-columns:16px minmax(0,1fr);column-gap:10px;align-items:start;font:500 var(--fs-ui)/1.45 var(--font-body);color:var(--ink)}
.price__list .i{margin-top:.2em;color:var(--world-ink);stroke-width:2}
.price__sum{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
.sk-price-amount{font:500 clamp(2.75rem,2rem + 1.6vw,3.5rem)/1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap;color:var(--ink)}
.price__note{font:700 var(--fs-meta)/1.4 var(--font-body);color:var(--world-ink)}
.offer__note{max-width:var(--measure);font:500 var(--fs-meta)/1.5 var(--font-body);color:var(--ink-2)}
.price .price__access{position:relative;display:grid;gap:4px;padding-left:24px;font-size:.8125rem;line-height:1.38;color:var(--ink)}
.price__access::before{content:"";position:absolute;left:5px;top:9px;bottom:9px;width:1px;background:repeating-linear-gradient(180deg,var(--w-skarb-gold) 0 5px,transparent 5px 9px)}
.price__access p{position:relative}
.price__access p::before{content:"";position:absolute;left:-24px;top:.38em;width:11px;height:11px;border-radius:50%;background:var(--raised);box-shadow:inset 0 0 0 1.5px var(--w-skarb-gold)}
.price :is(.lk-cta,.lk-inkpill){width:100%;min-height:var(--cta-h-s);margin-top:2px;padding-inline:18px;white-space:nowrap}
.price__help{width:100%}
.price__help summary,.offer__refund summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;color:var(--link);font:600 .8125rem/1.4 var(--font-body);list-style:none}
.price__help summary::-webkit-details-marker,.offer__refund summary::-webkit-details-marker{display:none}
.price__help summary::after,.offer__refund summary::after{content:"+";font:500 1.25rem/1 var(--font-body)}
.price__help[open] summary::after,.offer__refund[open] summary::after{content:"−"}
.price__help summary:focus-visible,.offer__refund summary:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.price__help[open] .price__access{margin-bottom:8px}
/* offers r3 (власник 08.10 «убери 72 год»): печатки «72 год» більше немає; біля перемикача - лише рядок про повернення й умови */
.offer__seal{display:grid;gap:2px;max-width:30rem}
.offer__seal-head{font:600 .9375rem/1.4 var(--font-body);color:var(--ink)}
.offer__refund summary{min-height:44px}
.offer__guarantee{margin-top:6px;max-width:var(--measure);font:500 .875rem/1.5 var(--font-body);color:var(--ink)}
.offer__legal{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.offer__legal .refund{font-size:.8125rem;line-height:1.45}
.offer__links{display:flex;flex-wrap:wrap;gap:0 20px;margin-top:4px}
.offer__links a{display:inline-flex;align-items:center;min-height:44px;font:600 var(--fs-meta)/1.3 var(--font-body);color:var(--link);text-decoration:none}
@media (hover:hover){.offer__links a:hover{text-decoration:underline;text-underline-offset:.25em}}
/* слово учениці (C-035, дослівно, «бестроковий» як у неї) - золотий маркер */
.offer__said{margin:0;max-width:22rem}
.offer__said p{font:italic 500 1.0625rem/1.45 var(--font-display);color:var(--ink)}
.offer__said mark{padding:0 .12em;border-radius:3px;background:linear-gradient(transparent 52%,color-mix(in srgb,var(--yellow) 62%,transparent) 52% 92%,transparent 92%);color:inherit}
.offer__said figcaption{margin-top:4px;font:700 .8125rem/1.3 var(--font-body);color:var(--world-ink)}
.offer__cards{position:relative}
@media (min-width:1024px) and (prefers-reduced-motion:no-preference){.offer__cards[data-js]>.sk-price:not([data-off]){transition:translate var(--dur-ui) var(--ease-out)}}
@media (hover:hover) and (min-width:1024px) and (prefers-reduced-motion:no-preference){.offer__cards[data-js]>.sk-price:not([data-off]):hover{translate:0 -3px}}
@media (prefers-reduced-motion:no-preference){
  /* вибір: старий купон відходить, новий лягає, його корінець «відривається» по перфорації й сідає на місце */
  .offer__cards[data-js]>.sk-price{transition:opacity 160ms var(--ease-out),visibility 0s linear 0s}
  .offer__cards[data-js]>.sk-price[data-off]{transition:opacity 140ms var(--ease-out),visibility 0s linear 140ms}
  .offer__cards[data-js]>.sk-price[data-tear]{animation:coupon-in 280ms var(--ease-settle) both}
  .offer__cards[data-js]>.sk-price[data-tear] .lk-ticket__stub{animation:coupon-tear 280ms var(--ease-settle) both}
  .price .lk-ticket__stub::after{transition:transform var(--dur-ui) var(--ease-out)}
  .price:is(:hover,:focus-within) .lk-ticket__stub::after{transform:perspective(220px) rotateX(16deg)}}
@keyframes coupon-in{from{opacity:0;transform:translateY(10px) rotate(-.8deg)}}
@keyframes coupon-tear{from{transform:translate(6px,-3px) rotate(2.2deg)}}
@media (max-width:767px){
  .offer__seg{justify-self:stretch;margin-top:12px}
  .offer__seg button{flex:1 1 0;padding-inline:10px}
  .offer__cards[data-js]{padding-top:4px}
  .price.lk-ticket{display:flex;flex-direction:column}
  .price .lk-ticket__stub{order:-1;gap:8px;padding:28px 18px 12px;border-radius:var(--tk-r) var(--tk-r) 0 0;-webkit-mask:var(--tk-cut-a);mask:var(--tk-cut-a)}
  .price .lk-ticket__stub::before{top:auto;bottom:-2px}
  .price.lk-ticket .lk-ticket__main{padding:14px 18px 16px;border-radius:0 0 var(--tk-r) var(--tk-r);-webkit-mask:var(--tk-cut-b);mask:var(--tk-cut-b)}
  .price.lk-ticket .lk-ticket__main::before,.price.lk-ticket .lk-ticket__main::after{display:none}
  .price__pick{left:18px;right:auto}
  .price__name{font-size:1.375rem}
  .price__scope{margin-top:4px;font-size:.8125rem}
  .price__list{gap:4px;margin-top:8px}
  .price__list li{font-size:.875rem;line-height:1.4}
  .sk-price-amount{font-size:2.5rem}
  .offer__seal{margin-top:2px}
  .offer__said{display:none}}
@media (max-width:374px){.price :is(.lk-cta,.lk-inkpill){font-size:.9375rem;padding-inline:12px}.offer__seg button{font-size:.875rem}}
@media (min-width:768px){.price.lk-ticket{grid-template-columns:minmax(0,1.05fr) minmax(300px,1fr)}.price .lk-ticket__stub{gap:10px;padding:40px 26px 26px}.price__sum{flex-direction:column;align-items:flex-start;gap:6px}.price :is(.lk-cta,.lk-inkpill){white-space:normal;text-wrap:balance;min-height:52px;line-height:1.25}}
@media (min-width:1024px){
  .offer__in{grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:auto auto auto auto auto 1fr;column-gap:64px;row-gap:16px;align-items:start}
  .offer__buy{display:contents}
  .offer__head{grid-area:1/1}
  .offer__top{grid-area:2/1}
  .offer__seg{grid-area:3/1;margin-top:8px}
  .offer__seal{grid-area:4/1;margin-top:10px}
  .offer__said{grid-area:5/1;margin-top:10px}
  .offer__cards{grid-column:2;grid-row:1/7;align-self:center}
  .price .lk-ticket__main{padding-top:40px}}
@media (forced-colors:active){.price{border:1px solid CanvasText}}

/* ——— 10 · FAQ «Мері, а підкажіть» (faq кіта): на вході питання роздаються по черзі, шеврон першого кличе (r1 motion-03) ——— */
.faq__in{display:grid;gap:var(--stack-3)}
.faq__say .refund{margin-top:10px;font:500 var(--fs-meta)/1.5 var(--font-body);color:var(--ink-2)}
.faq__say p + p{margin-top:8px}
.faq__help a{color:var(--link);font-weight:600}
@media (prefers-reduced-motion:no-preference){
  .lk-faq[data-armed] .lk-faq__item{opacity:0}
  .lk-faq[data-play] .lk-faq__item{animation:faq-deal 460ms var(--ease-settle) calc(var(--i,0) * 60ms) backwards}
  .lk-faq[data-play] .lk-faq__item:first-child .lk-faq__chev{animation:faq-ring 560ms var(--ease-out) 760ms 2}}
@keyframes faq-deal{from{opacity:0;translate:0 10px}}
@keyframes faq-ring{50%{scale:1.12}}
@media (min-width:1024px){.faq__in{grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:56px;align-items:start}}

/* ——— 11 · Фінал (finale кіта, слот ribbon): Мері «руки сердечком» у золотому колі, стрічка «Ваша знахідка: … ›» на нижньому ободі ——— */
.start{margin-top:var(--section-y)}
#start .lk-finale__photo img{object-position:50% 14%}
#start .lk-fin__ribbon{bottom:-4%;rotate:-3deg}
@media (max-width:767px){#start .lk-fin__ribbon{bottom:-14%}}
.fin__find{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 .3em;min-height:44px;color:inherit;text-decoration:none}
.fin__go{flex-basis:100%;font-weight:600;white-space:nowrap}
.fin__find:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.lk-finale__text .lk-cta{min-width:260px}
.lk-finale .cta-micro{margin-top:4px}
@media (min-width:1024px){.lk-finale .cta-micro{text-align:start}}

/* Док: лише на телефоні й планшеті - бар кіта. lf:bl-rest (бэклог detail.unity): на столі плаваючої коралової пілюлі більше немає,
   як на решті шести лендингів - «Хочу Скарб» несе пілюля шапки (кіт ховає .lk-dock від 1024). */

/* Підвал (frame lk-foot): рядки посилань не торкаються один одного (G-29) */
.footer__team{font-weight:600;color:var(--ink)}
.lk-foot__links{row-gap:8px}



/* 08.10 fresh phone evidence: retain the result list/day scene and all ticket facts in a shorter composition. */
@media (max-width:767px){
  .change{padding-top:28px}
  .change__in{gap:20px}
  .change__head .lk-h2{font-size:1.75rem;line-height:1.15}
  .change__lead{margin-top:12px;line-height:1.375}
  .change__results{gap:8px;margin-top:14px}
  .change__results li{gap:8px;line-height:1.375}
  .sky{min-height:300px;padding:0 16px 12px}
  .sky__arc{height:96px;margin-top:8px}
  .sky__stops{margin-top:4px}
  .sky__stop{padding-inline:12px}
  .pick{margin-top:10px;padding:12px 16px 4px}
  .pick__band{margin-top:6px}
  .sky__say{margin-top:8px}
  .offer{padding-block:28px}
}

/* lf:results - 08.10 #change: галочок немає, зміст несе небо дня. Підпис обраного часу - одна фраза Literata під сповіщенням,
   міняється разом із зупинкою (ранок › перерва › вечір). */
.change__lead{max-width:30em;text-wrap:pretty}
.sky__say{margin-top:18px;font:500 clamp(1.1875rem,1.08rem + .45vw,1.4375rem)/1.3 var(--font-display);letter-spacing:-.01em;color:var(--ink-press)}
@media (max-width:767px){.sky__say{margin-top:12px}}
/* /lf:results */
/* lf:inside - «Скарб - це спортзал» (#program): сітки 4 × 8 не видно. Тап по блину показує на дошці його тренування з назвами,
   згруповані по тижнях; за замовчуванням на грифі «Слухати», дошка заповнена. Тиждень без збігу - тихий прочерк. */
#program .gym__weeks{display:none!important}
#program .plan{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px}
#program .gym .plan__week,#program .gym .plan__wk{display:block!important}
#program .gym .plan__week{inert:none}
#program .plan__row{gap:6px}
#program .plan__row>li{display:contents}
#program .plan .t{display:none;justify-content:flex-start;gap:8px;min-height:44px;padding:8px 10px;border-radius:6px;background:color-mix(in oklab,var(--world) 55%,var(--raised));box-shadow:inset 0 0 0 1px var(--world-line);text-align:start;opacity:1}
#program .plan .t__name{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;color:var(--ink);font:600 .875rem/1.25 var(--font-body);text-wrap:balance}
#program .plan .t .g{flex:none;width:18px;height:18px;color:var(--w-skarb-gold)}
#program :is(.plan[data-skills~="listening"] .t[data-skill="listening"],.plan[data-skills~="speaking"] .t[data-skill="speaking"],.plan[data-skills~="vocabulary"] .t[data-skill="vocabulary"],.plan[data-skills~="pronunciation"] .t[data-skill="pronunciation"],.plan[data-skills~="grammar"] .t[data-skill="grammar"],.plan[data-skills~="reading"] .t[data-skill="reading"],.plan[data-skills~="writing"] .t[data-skill="writing"],.plan[data-skills~="fun"] .t[data-skill="fun"]){display:flex}
#program .plan__week[data-empty]::after{content:"-";display:block;padding-top:8px;color:var(--muted);text-align:center;font:500 .875rem/1 var(--font-body)}
.no-js #program .plan .t{display:flex}
@media (max-width:1023px){#program .plan{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.js #program .gym .plan__row{grid-template-columns:minmax(0,1fr)}#program .plan .t{padding:6px 8px}}
/* «English Menu» (#menu): повні дошки 07.10 повернуто; дії Codex - три олівцеві кнопки під меню, що працюють на заповненій сторінці. */
#menu .carte__acts{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:16px}
#menu .carte__acts[hidden]{display:none}
#menu .carte__acts button{min-height:44px;padding:8px 13px;border:1.5px dashed color-mix(in srgb,var(--w-skarb-gold) 80%,transparent);border-radius:var(--r-pill,999px);background:var(--raised);color:var(--world-ink);font:italic 500 .9375rem/1.2 var(--font-display);cursor:pointer;-webkit-tap-highlight-color:transparent}
#menu .carte__acts button:focus-visible{outline:var(--focus-ring);outline-offset:2px}
@media (hover:hover){#menu .carte__acts button:hover{border-style:solid;background:var(--world)}}
#menu .carte__acts button:active{scale:.98}
#menu .carte__row.is-picked{position:relative}
/* lf:blk-skarb-menu2: обраний пункт обведено від руки рамкою, як «страву дня» в меню (овал різав перші літери рядка у два-три рядки) */
#menu .carte__row.is-picked::after{content:"";position:absolute;inset:-3px -6px -3px -8px;border:2px solid var(--w-skarb-gold);border-radius:14px 19px 12px 21px/17px 12px 19px 14px;rotate:-.6deg;pointer-events:none}
/* lf:blk-skarb-menu p1: «Обрати» - обвідка проявляється на місці за 200 мс (рядок не хитається) */
@media (prefers-reduced-motion:no-preference){#menu .carte__row.is-picked::after{animation:carte-pick 200ms var(--ease-out) backwards}}
@keyframes carte-pick{from{opacity:0;scale:.97}}
/* r2 (owner 08.10 «норм идея, но доделать надо. на 7.5»; «на 393 справа обрезана подпись шестого блина»): на телефоні стійка -
   сітка 4 + 3, усі сім блинів і підписи видно, без бокового гортання; вхід коротший (≤ 0,5 с), дошка з двома блинами за замовчуванням. */
@media (max-width:599px){#program .gym__rack{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 4px;margin-inline:0;padding:4px 0 10px;overflow:visible;-webkit-mask:none;mask:none}#program .plate{min-width:44px;font-size:.8125rem;text-align:center}}
#program{--stagger-matrix:14ms}
@media (prefers-reduced-motion:no-preference){#program .gym[data-play] .t{animation-duration:260ms}#program .gym[data-play] :is(.gym__set,.gym__board){animation-duration:360ms;animation-delay:40ms}#program .gym[data-play] .plate__disc{animation-duration:320ms}#program .gym[data-play] li:nth-child(n) .plate__disc{animation-delay:0ms}#program .gym[data-play] li:nth-child(2) .plate__disc{animation-delay:25ms}#program .gym[data-play] li:nth-child(3) .plate__disc{animation-delay:50ms}#program .gym[data-play] li:nth-child(4) .plate__disc{animation-delay:75ms}#program .gym[data-play] li:nth-child(5) .plate__disc{animation-delay:100ms}#program .gym[data-play] li:nth-child(6) .plate__disc{animation-delay:125ms}#program .gym[data-play] li:nth-child(7) .plate__disc{animation-delay:150ms}}
/* /lf:inside */

/* lf:mary · «Чому я зібрала Скарб» (owner-eye 08.10): цитата 07.10 і один рядок, як з'явився Скарб; кадр - Мері дивиться крізь рамку з
   долонь (з усіх наявних фото лише цей «про кадр»; портрет героя головної тут більше не повторюється). «Що дивиться Мері ›» на місці. */
.mary__photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 34%}
#mary .mary__q p:nth-child(2){display:none}
#mary .mary__q p:first-child::before{content:"«"}
#mary .mary__q p:first-child::after{content:"»"}
#mary .mary__q p:nth-child(3){margin-top:14px;color:var(--ink-2)}
/* /lf:mary */
/* lf:pol-products */
/* #contrast: записку «Треба» тягнуть рукою (grab), золота «Хочеться» - не кнопка, у ній кнопки-рядки до полиць. */
.peel[data-js] .peel__must{cursor:grab}
.peel[data-js] .peel__must:active{cursor:grabbing}
.peel[data-js] .peel__want{cursor:auto}
/* #contrast ≥ 1024 (creative-art: заголовок і записку ближче, без порожнечі зліва знизу): стос дзеркалимо - золота «Хочеться»
   стоїть одразу біля «в «хочу»», «Треба» відклеюється праворуч угорі й ховається під неї. Колонка записок - на всю ширину. */
@media (min-width:1024px){
  .contrast__in{column-gap:32px}
  .peel{width:100%;max-width:none;margin:0 0 0 -24px;min-height:420px;rotate:-1.5deg}
  .peel :is(.peel__must,.peel__want){width:min(60%,437px)}
  .peel__want{justify-self:start;align-self:end;margin-top:0;rotate:-1.5deg}
  .peel__must{justify-self:end;margin:28px 56px 0 0;transform-origin:88% 6%;translate:calc(var(--lift) * 10px + var(--tuck) * 8px) calc(var(--lift) * -18px + var(--tuck) * -14px);rotate:calc(2deg + var(--lift) * 9deg - var(--tuck) * 3deg)}
  .peel__tape{left:auto;right:28px;rotate:6deg}
  .peel__curl{right:auto;left:0;border-radius:0 0 0 18px;background:linear-gradient(225deg,transparent 48%,color-mix(in oklab,var(--cream) 72%,var(--w-skarb-gold)) 49% 51%,color-mix(in oklab,var(--cream) 88%,var(--world-deep)) 52% 64%,color-mix(in oklab,var(--cream) 80%,var(--w-skarb-gold)) 100%);box-shadow:3px -3px 8px -2px color-mix(in srgb,var(--ink-press) 18%,transparent),inset 1px -1px 0 var(--line);transform-origin:0 100%}
  .contrast__head{align-self:center;margin-top:48px}
}
/* #hero: скриню відкриває кнопка chest__hit поверх смуги (клавіатура - «Random Скарб»); картинки під нею - не окремі цілі */
.chest__strip :is(.chest__poster,.chest__end,.chest__clip){cursor:auto}
/* /lf:pol-products */
/* lf:reviews-f1 · the open chest is the whole module: the heading stands on the scene (kit notes «head» slot), the lid
   spans both columns, the chosen note unfolds centre-left under it (owner r3: «слева как-то совсем пусто») */
@media (min-width:1024px){.voices__in{display:block}.voices__deck{margin-top:0}}
.voices__deck{min-width:0}
/* /lf:reviews-f1 */
/* lf:inside-f1 · #menu: «.carte__go» - ціль 44 px на телефоні (ux.mobile). #program: план тижнів заповнений із першого кадру
   (data-skills у розмітці, не чекає JS). */
.carte__go{min-height:44px}
#program .gym[data-armed] .t{opacity:1}
@media (prefers-reduced-motion:no-preference){#program .gym[data-play] .t{animation:none}}
/* /lf:inside-f1 */

/* lf:recog-f1 · #contrast: the heading enters in two beats (a pen strikes «треба», then the marker finds «хочу»); a tap on
   a «Хочеться» row lights the pair for 220 ms */
.contrast__must{position:relative;white-space:nowrap}
.contrast__must::after{content:'';position:absolute;left:-.04em;right:-.04em;top:56%;height:.07em;min-height:2px;border-radius:2px;background:var(--ink-2);transform-origin:0 50%;rotate:-2deg}
.contrast__title em{position:relative;z-index:0}
.contrast__title em::before{content:'';position:absolute;z-index:-1;left:-.04em;right:-.06em;bottom:.06em;height:.26em;border-radius:40% 55% 45% 60%;background:color-mix(in srgb,var(--yellow) 70%,transparent);rotate:-1.5deg;transform-origin:0 50%}
@media (prefers-reduced-motion:no-preference){
  .contrast__head[data-arm] .contrast__must::after,.contrast__head[data-arm] .contrast__title em::before{scale:0 1}
  .contrast__head[data-in] .contrast__must::after{transition:scale 260ms var(--ease-out,cubic-bezier(.2,.7,.3,1))}
  .contrast__head[data-in] .contrast__title em::before{transition:scale 320ms var(--ease-out,cubic-bezier(.2,.7,.3,1)) 460ms}
  .contrast__head .contrast__must,.peel .peel__tag{transition:color 220ms var(--ease-out,ease),background-color 220ms var(--ease-out,ease)}
}
.contrast__head[data-pair] .contrast__must{color:var(--ink-2)}
.contrast__head[data-pair] .contrast__title em::before{background:var(--yellow)}
.peel[data-pair] .peel__want .peel__tag{background-color:color-mix(in srgb,var(--yellow) 55%,transparent);border-radius:4px}
/* /lf:recog-f1 */

/* lf:offers-f1 «Вибір на самому квитку» (власник r3 «на 7», r2 «убери 72 год»): перемикач 49 / 29 € - два корінці-вкладки на верхньому
   краю квитка (обраний підіймається й зростається з квитком, необраний лежить нижче з перфорацією); «Рекомендую!» - на квитку 49 €;
   у квитка з програмою - штамп-диск «32 тренування»; ліворуч - лише заголовок і рядок; коралл в один рядок; «3 дні» - під квитком. */
#offer .offer__seg.lk-seg{display:flex;gap:6px;width:auto;justify-self:start;margin:10px 0 0 14px;padding:0;border-radius:0;background:none;z-index:2;overflow:visible}
#offer .offer__seg .lk-seg__pill,#offer .offer__flag{display:none}
#offer .offer__seg.lk-seg>button{flex:none;min-height:48px;padding:0 18px 4px;border-radius:14px 14px 0 0;background:var(--world);color:var(--world-ink);font:700 .9375rem/1 var(--font-body);translate:0 6px;box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--world-ink) 10%,transparent)}
#offer .offer__seg.lk-seg>button::before{content:"";position:absolute;left:10px;right:10px;bottom:5px;border-bottom:1.5px dashed color-mix(in srgb,var(--world-ink) 38%,transparent)}
#offer .offer__seg.lk-seg>button[aria-selected=true]{background:color-mix(in oklab,var(--w-skarb-gold) 46%,var(--world));color:var(--ink);translate:0 0;box-shadow:0 -6px 14px -6px color-mix(in srgb,var(--ink-press) 22%,transparent)}
#offer .offer__seg.lk-seg>button[aria-selected=true]::before{opacity:0}
#offer .offer__seg.lk-seg>button:focus-visible{outline:var(--focus-ring);outline-offset:2px}
@media (hover:hover){#offer .offer__seg.lk-seg>button[aria-selected=false]:hover{translate:0 3px;color:var(--ink)}}
#offer .offer__cards[data-js]{padding-top:0}
#offer .offer__cards[data-js] .price__pick{display:inline-flex}
#offer .price__main{position:relative}
.price__lacks{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);font:600 var(--fs-meta)/1.45 var(--font-body);color:var(--ink-2)}
/* штамп-диск програми: млинець штанги, відбитий чорнилом світу (декор; зміст - у списку картки) */
.offer__disc{position:absolute;top:16px;right:14px;display:grid;place-items:center;width:100px;aspect-ratio:1;border-radius:50%;color:var(--world-ink);rotate:-12deg;pointer-events:none;
  background:radial-gradient(circle,var(--world) 0 7px,color-mix(in srgb,var(--world-ink) 55%,transparent) 7.5px 9px,transparent 9.5px);
  box-shadow:inset 0 0 0 2.5px currentColor,inset 0 0 0 23px var(--raised),inset 0 0 0 24.5px color-mix(in srgb,currentColor 60%,transparent);opacity:.92}
.offer__disc svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.offer__disc text{fill:currentColor;font:700 14px/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase}
.offer__disc b{position:relative;margin-top:-30px;padding:0 3px;border-radius:4px;background:var(--raised);font:500 1.375rem/1 var(--font-display);letter-spacing:-.03em;font-variant-numeric:lining-nums}
#offer .price--main .price__name,#offer .price--main .price__scope{max-width:calc(100% - 108px)}
@media (prefers-reduced-motion:no-preference){
  #offer .offer__seg.lk-seg>button{transition:translate var(--dur-ui) var(--ease-out),background-color var(--dur-ui) var(--ease-out),color var(--dur-hover) var(--ease-out),scale var(--dur-press,.12s)}
  #offer .offer__seg.lk-seg>button:active{scale:.98}
  .offer__cards[data-js]>.sk-price[data-tear] .offer__disc{animation:disc-stamp 220ms var(--ease-out) 160ms both}
  @keyframes disc-stamp{from{opacity:0;scale:1.3;rotate:-24deg}}}
@media (max-width:767px){
  #offer .offer__seg.lk-seg{margin:12px 0 0 10px}
  #offer .offer__seg.lk-seg>button{padding:0 14px 4px;font-size:.875rem}
  #offer .price__pick{left:auto;right:14px}
  .offer__disc{top:10px;right:10px;width:92px}
  .offer__disc text{font-size:15px}
  #offer .price--main .price__name,#offer .price--main .price__scope{max-width:calc(100% - 92px)}
  #offer .price--main .price__list li:first-child{padding-right:76px}
  .offer__seal{margin-top:6px}}
#offer .price :is(.lk-cta,.lk-inkpill){white-space:nowrap}
@media (min-width:768px){#offer .price.lk-ticket{grid-template-columns:minmax(0,1fr) minmax(340px,.95fr)}#offer .price :is(.lk-cta,.lk-inkpill){padding-inline:22px;text-wrap:nowrap}}
@media (min-width:1024px){
  #offer .offer__in{grid-template-columns:minmax(0,4fr) minmax(0,8fr);grid-template-rows:auto auto auto auto;column-gap:56px;row-gap:0}
  #offer .offer__head{grid-area:2/1;align-self:end}
  #offer .offer__top{grid-area:3/1;align-self:start;margin-top:14px}
  #offer .offer__terms{font-size:1rem}
  #offer .offer__seg{grid-area:1/2;margin:0 0 0 22px}
  #offer .offer__cards{grid-column:2;grid-row:2/4;align-self:start}
  #offer .offer__seal{grid-area:4/2;margin-top:14px;max-width:none;display:flex;flex-wrap:wrap;align-items:center;gap:0 18px}
  #offer .offer__seal-text{display:contents}
  #offer .offer__said{display:none}
  #offer .price.lk-ticket{grid-template-columns:minmax(0,1fr) 380px}
  #offer .price .lk-ticket__main{padding-top:32px}}
/* /lf:offers-f1 */

/* lf:inside-f2 · #inside: одна стрічка полиць із маскою праворуч і «Усі 15 ›» (замість двох рядів по 15 однакових чипів). */
#inside .shelves:not([data-all]){flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;
  -webkit-mask:linear-gradient(90deg,black calc(100% - 72px),transparent);mask:linear-gradient(90deg,black calc(100% - 72px),transparent)}
#inside .shelves:not([data-all])::-webkit-scrollbar{display:none}
#inside .shelves[data-all]{flex-wrap:wrap;overflow:visible}
#inside .shelves>li{flex:none;white-space:nowrap}
#inside .shelves:not([data-all]) .shelf span{white-space:nowrap}
.shelves__all{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;border:0;background:none;color:var(--link);font:600 .9375rem/1 var(--font-body);cursor:pointer;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.shelves__all[hidden]{display:none}
.shelves__all:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:999px}
@media (min-width:1024px){#inside .shelves{min-width:0}}
/* /lf:inside-f2 */

/* lf:offers-f2 «Квиток, що відривається» (власник r3 «на 7»): склад без повторів, маршрут доступу видно, рядок повернення звичайним
   начертанням ліворуч під заголовком (PLAN-full-2 §0), штамп із зазорами, повний контур корінця, зміна 49 / 29 € без накладання */
#offer .offer__seal-head{font:400 .875rem/1.45 var(--font-body);color:var(--ink-2)}
#offer [data-offer-id="skarb-program"] .price__list li:last-child{grid-template-columns:minmax(0,1fr);margin-top:2px;padding-top:8px;border-top:1px dashed var(--line);font-weight:400;font-size:var(--fs-meta);color:var(--ink-2)}
#offer [data-offer-id="skarb-program"] .price__list li:last-child .i{display:none}
#offer .price .price__access{gap:2px;margin:2px 0 4px}
#offer .price .price__access p{min-height:20px}
#offer .offer__seg.lk-seg>button[aria-selected=false]{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--world-ink) 34%,transparent);touch-action:pan-y;rotate:var(--pull-r,0deg)}
#offer .offer__seg.lk-seg>button[aria-selected=false][data-drag]{translate:var(--pull-x,0px) calc(6px + var(--pull-y,0px))}
#offer .offer__seg.lk-seg>button[aria-selected=false]::before{bottom:6px}
#offer .offer__seg.lk-seg>button[data-drag]{transition:none;cursor:grabbing}
#offer .offer__seg.lk-seg>button[data-pull]::before{border-bottom-style:solid;border-bottom-color:var(--world-ink)}
.offer__disc{top:20px;right:26px}
#offer .price--main .price__name,#offer .price--main .price__scope{max-width:calc(100% - 128px)}
@media (min-width:768px){#offer .price--main .price__scope{max-width:none}}
#offer .offer__cards[data-js]{isolation:isolate}
@media (prefers-reduced-motion:no-preference){
  #offer .offer__cards[data-js]>.sk-price,#offer .offer__cards[data-js]>.sk-price[data-off]{transition:none}
  #offer .offer__cards[data-js]>.sk-price[data-leave]{visibility:visible;animation:coupon-up 160ms var(--ease-out) both}
  #offer .offer__cards[data-js]>.sk-price[data-tear]{animation:coupon-land 220ms var(--ease-out) 160ms both}
  #offer .offer__cards[data-js]>.sk-price[data-tear] .lk-ticket__stub{animation:none}
  #offer .offer__cards[data-js]>.sk-price[data-tear] .offer__disc{animation:disc-stamp 220ms var(--ease-out) 320ms both}
  @keyframes coupon-up{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-18px) rotate(-1.2deg)}}
  @keyframes coupon-land{from{opacity:0;transform:translateY(-10px)}45%{opacity:1}to{opacity:1;transform:none}}}
@media (hover:hover) and (min-width:1024px) and (prefers-reduced-motion:no-preference){
  #offer .offer__cards[data-js]::after{content:"";position:absolute;left:10%;right:10%;bottom:-12px;z-index:-1;height:26px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--ink-press) 20%,transparent),transparent);opacity:0;transition:opacity var(--dur-ui) var(--ease-out);pointer-events:none}
  #offer .offer__cards[data-js]:has(>.sk-price:not([data-off]):hover)::after{opacity:1}
  #offer .offer__cards[data-js]>.sk-price:not([data-off]):hover{translate:0 -2px}}
@media (max-width:767px){
  #offer{scroll-margin-top:calc(-1 * var(--section-y) + var(--head-h, 56px) + 8px)}
  .offer__disc{top:24px;right:14px;width:84px}
  .offer__disc text{font-size:15px}
  #offer .price--main .price__name,#offer .price--main .price__scope{max-width:calc(100% - 100px)}
  #offer .price--main .price__list li:first-child{padding-right:88px}}
@media (min-width:1024px){
  #offer .offer__in{grid-template-rows:auto auto auto 1fr;row-gap:0}
  #offer .offer__head{grid-area:2/1;align-self:start;padding-top:6px}
  #offer .offer__top{grid-area:3/1;margin-top:12px}
  #offer .offer__seal{grid-area:4/1;align-self:start;display:grid;gap:0;max-width:22rem;margin-top:28px;padding-top:14px;border-top:1px solid var(--line)}
  #offer .offer__seal-text{display:grid}
  #offer .offer__cards{grid-column:2;grid-row:2/5}}
/* /lf:offers-f2 */

/* lf:mary-f2 · #mary («гуд», полірування): з полароїда стирчать три паперові закладки - справжні полиці Скарбу (книжка, серіал,
   канал). Дотик відкриває записку з назвою знахідки й шляхом до полиці. Фото й текст модуля не змінені. */
.mary__pic{margin-bottom:92px}
.mary__marks{position:absolute;z-index:3;right:6%;top:calc(100% - 26px);display:flex;gap:8px;justify-content:flex-end}
.mark{--mk:var(--yellow);--mk-t:-2deg}
.mark:nth-child(2){--mk:color-mix(in oklab,var(--w-skarb-ink,var(--world-ink)) 22%,var(--paper));--mk-t:1.5deg}
.mark:nth-child(3){--mk:color-mix(in oklab,var(--link) 18%,var(--paper));--mk-t:-1deg}
.mark>summary{display:grid;place-items:end center;min-width:64px;min-height:58px;padding:0 10px 14px;list-style:none;cursor:pointer;-webkit-tap-highlight-color:transparent;
  background:linear-gradient(180deg,color-mix(in srgb,var(--on-dark) 18%,transparent),transparent 40%),var(--mk);color:var(--ink);font:700 .8125rem/1 var(--font-body);letter-spacing:.02em;rotate:var(--mk-t);transform-origin:50% 0;
  clip-path:polygon(0 0,100% 0,100% 100%,50% 84%,0 100%);filter:drop-shadow(0 5px 4px color-mix(in srgb,var(--ink-press) 22%,transparent))}
.mark>summary::-webkit-details-marker{display:none}
.mark>summary::marker{content:""}
.mark[open]>summary{translate:0 8px}
.mark>summary:focus-visible{outline:var(--focus-ring);outline-offset:3px}
.mark__say{position:absolute;right:0;top:calc(100% + 14px);width:max-content;max-width:min(300px,80vw);margin:0;padding:10px 14px;border-radius:var(--r-note,8px);background:var(--raised);box-shadow:var(--sh-paper);rotate:-.8deg;font:400 .9375rem/1.4 var(--font-body)}
.mark__say .lk-link{display:inline-flex;align-items:center;min-height:44px}
@media (prefers-reduced-motion:no-preference){
  .mark>summary{transition:translate 220ms var(--ease-standard,cubic-bezier(.2,.7,.3,1))}
  .mark>summary:active{scale:.98}
  .mark[open] .mark__say{animation:mark-say 220ms var(--ease-standard,cubic-bezier(.2,.7,.3,1)) both}
  @keyframes mark-say{from{opacity:0;translate:0 -6px}}
}
.mark:first-child>summary{color:var(--on-yellow,var(--ink-press))}
/* /lf:mary-f2 */
/* lf:recog-f3 · #contrast (оно «норм»): на 393 «Хочеться» не накриває третій пункт «Треба» (перекриття менше на 24 px - видно всі три
   закреслені), підсвітка маркера кінчається на «!». */
@media (max-width:600px){.peel__want{margin-top:152px}}
#contrast .peel__say .lk-hl{padding-inline-end:0;margin-inline-end:0;-webkit-box-decoration-break:clone;box-decoration-break:clone}
/* /lf:recog-f3 */

/* lf:offers-f3 #offer «Квиток, що відривається» (оно; r3 «ну можно чуть лучше, на 7»; r2 «норм, убери 72 год»; PLAN-full-3 §0.4).
   Рядка повернення на картці немає - обіцянка C04 (72 години) лише в «Умови та оферти», а той - одним рядком під квитком. Ліва колонка
   (заголовок і «Разовий платіж») стоїть на спільному центрі з квитком, без порожніх 120 px під нею. Перемикання - квиток
   перещёлкується (фліп від верхнього краю, 120 + 220 мс), новий виїжджає з-під вкладки (translateY −8 › 0 + opacity), потім
   відбиваються ціна й штамп (scale 1.06 › 1, +120 мс). «Рекомендую!» не ріже пунктир вкладки на телефоні (зазор 8 px). */
#offer .offer__seal-head{display:none}
/* невибраний квиток не тримає висоту комірки: «Умови та оферти» стоїть одразу під видимим квитком (на 393 був порожній пояс ~70 px) */
#offer .offer__cards[data-js]{position:relative}
#offer .offer__cards[data-js]>.sk-price[data-off]:not([data-leave]){position:absolute;top:0;left:0;right:0}
#offer .offer__disc text{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1,"tnum" 0}
@media (max-width:767px){
  #offer .offer__cards[data-js] .price__pick{top:14px;right:14px;rotate:1.5deg}
  #offer .offer__seal{margin-top:10px}}
@media (min-width:1024px){
  #offer .offer__in{grid-template-rows:auto auto auto auto;row-gap:0}
  #offer .offer__head{grid-area:2/1;align-self:end;padding-top:0}
  #offer .offer__top{grid-area:3/1;align-self:start;margin-top:14px}
  #offer .offer__cards{grid-column:2;grid-row:2/4}
  #offer .offer__seal{grid-area:4/2;align-self:start;justify-self:start;display:flex;max-width:none;margin:10px 0 0 6px;padding:0;border:0}
  #offer .offer__seal-text{display:block}
  #offer .offer__refund[open]{max-width:44rem}}
@media (prefers-reduced-motion:no-preference){
  #offer .offer__cards[data-js]>.sk-price[data-leave]{transform-origin:50% 0;animation:coupon-flip-out 120ms cubic-bezier(.4,0,1,1) both}
  #offer .offer__cards[data-js]>.sk-price[data-tear]{transform-origin:50% 0;animation:coupon-flip-in 220ms var(--ease-out) 100ms both}
  #offer .offer__cards[data-js]>.sk-price[data-tear] .offer__disc{animation:disc-stamp-f3 180ms var(--ease-out) 440ms both}
  #offer .offer__cards[data-js]>.sk-price[data-tear] .sk-price-amount{display:inline-block;transform-origin:0 70%;animation:price-stamp-f3 180ms var(--ease-out) 440ms both}
  @keyframes coupon-flip-out{from{transform:perspective(1200px) rotateX(0)}to{opacity:0;transform:perspective(1200px) rotateX(64deg)}}
  @keyframes coupon-flip-in{from{opacity:0;transform:perspective(1200px) translateY(-8px) rotateX(-48deg)}60%{opacity:1}to{opacity:1;transform:perspective(1200px) translateY(0) rotateX(0)}}
  @keyframes disc-stamp-f3{from{opacity:0;scale:1.06}}
  @keyframes price-stamp-f3{from{scale:1.06}}}
/* #program (оно; r1 «доделать… на 7.5», r2 «норм»; full2 art/illustrator/owner.eye 8): на столі блини - одним рядом під штангою
   (≈ 56 px), без «привидів»: знятий на гриф блин лишає на стійці лише тінь на підлозі й свою назву. Тап по блину - як і раніше, блин
   іде на гриф і запалює свої тренування в плані (initGym). */
@media (min-width:1024px){
  #program .gym__rack{grid-template-columns:repeat(7,minmax(0,1fr));column-gap:0;row-gap:0;margin-inline:-14px;padding-bottom:14px}
  #program .plate{--disc-max:60px;gap:8px}
  #program .plate__disc{width:calc(53px + var(--n) * .75px);--gs:15px}
  #program .plate__name{max-width:none;white-space:nowrap;font-size:.8125rem;letter-spacing:-.01em}
  #program .plate[data-plate="reading"] .plate__name{max-width:7ch;white-space:normal}}
#program button.plate[aria-pressed="true"]::before{content:"";grid-area:1/1;align-self:end;justify-self:center;width:50px;height:11px;margin-bottom:2px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--ink-press) 34%,transparent),transparent);pointer-events:none}
#program button.plate[aria-pressed="true"] .plate__disc{opacity:0;translate:0 -10px}
#program .plate__disc{grid-area:1/1}
/* /lf:offers-f3 */
/* lf:mary-f3 · #mary на ≤ 767 (аудит full2 ux.mobile 8: ярлик «Що дивиться Мері ›» лежав поверх закладок «Серіал» і «Канал», їх не
   можна було перемкнути; «Мері» на полароїді закрита закладками; p.mark__say вилазив за лівий край на 360). Тепер закладки визирають
   з-під полароїда (він зверху, підпис видно цілком), рядок закладки - одразу під нею в полі, ярлик - окремим рядком нижче (≥ 8 px). */
@media (max-width:767px){
  .mary__pic{--pic-h:calc(min(76vw,400px) * 1.42);display:flex;flex-direction:column}
  .mary__pic>.flip{position:relative;z-index:2}
  .mary__marks{order:1;position:relative;z-index:1;right:auto;top:auto;margin:-26px 6% 0 0;justify-content:flex-end}
  .mary__marks:has(.mark[open]){margin-bottom:68px}
  .mark__say{right:0;max-width:min(260px,calc(100vw - 48px))}
  .mary__tab{order:2;position:relative;right:auto;bottom:auto;align-self:flex-end;margin-top:12px}
  .mary__st--b{top:auto;bottom:auto;inset-block:calc(var(--pic-h,360px) * .52) auto}
}
/* /lf:mary-f3 */

/* lf:system-f3 · #menu (оно, «норм»): по 3 пункти в сторінці, решта - «+ ще N» на місці; пункти ≥ 15 px; середня карта English Menu
   у 1,15 раза ширша й на 8 px вища за сусідні; галочка - чорнильний штрих (stroke-dashoffset 260 мс). #inside: бирка в полі 16 px. */
/* lf:blk-skarb-menu2: «+ ще N» - лише на вузькому екрані; на столі розворот показує всі пункти тижня */
@media (max-width:1023px){.carte[data-js] .carte__rows > li[data-more]{display:none}}
.carte__more{display:inline-flex;align-items:center;align-self:flex-start;min-height:44px;margin:2px 0 0;padding:0 4px;border:0;background:none;color:var(--link);font:600 .9375rem/1.2 var(--font-body);cursor:pointer;-webkit-tap-highlight-color:transparent}
.carte__page[data-cover] .carte__more{grid-column:1/-1}
.carte__more:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:999px}
.carte__more:active{scale:.98}
.carte[data-js] .carte__box::after{display:none}
.carte__ink{position:absolute;left:-3px;top:-7px;width:calc(100% + 12px);height:calc(100% + 9px);overflow:visible;fill:none;stroke:var(--world-ink);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 2;stroke-dashoffset:1;opacity:0;pointer-events:none}
.carte__row.is-on .carte__ink{stroke-dashoffset:0;opacity:1}
/* lf:blk-skarb-menu p1: галочка з'являється в момент дотику - перо дописує штрих за 200 мс (крива «Checkbox Draw» з
   kinetics.colorion.co, коротша); зняти - штрих гасне за 120 мс. Раніше на вході правило [data-play] затримувало кожну нову
   галочку на 760 мс. */
@media (prefers-reduced-motion:no-preference){
  .carte__ink{transition:stroke-dashoffset 200ms var(--ease-out),opacity 120ms var(--ease-out)}
  .carte__row.is-on .carte__ink{transition:stroke-dashoffset 200ms cubic-bezier(.16,1,.3,1),opacity 0s}
}
@media (max-width:767px){.carte__row{font-size:.9375rem;line-height:1.3}}
@media (min-width:1024px){
  .carte__strip{grid-template-columns:minmax(0,340px) minmax(0,390px) minmax(0,340px)}
  .carte__page[data-cover]{padding:22px 28px 18px}
  .carte__page[data-cover] .carte__row{font-size:1rem}
  .carte__row{font-size:.9375rem;line-height:1.3}
}
@media (max-width:600px){#inside .hang{width:min(100% - 28px,340px)}}
/* /lf:system-f3 */
/* lf:reviews-f4 · #voices (PLAN-full-4 §0.3 п. 2): блок світлий - папір сторінки; предмет блоку з f5b - книжкова полиця
   (kit notes «shelf», нижче lf:reviews-f5b). */
.voices{background:var(--paper)}
.voices__in{display:block}
.voices__deck{margin-top:0}
.js .voices__deck:not([data-deck]) .lk-deck__cards{visibility:hidden;min-height:520px}
/* /lf:reviews-f4 */
/* lf:results-f4 · #change (власник f2: «можно чуть лучше сделать, там на 7»). Дуга дня та сама, але панель стала предметом світу:
   небо дня у дерев'яній рамі вікна, під ним підвіконня. Сповіщення-знахідка лягає на підвіконня поверх стосу попередніх, поруч
   три предмети дня (книжка, подкаст, серіал) - підсвічений той, що зараз. Ліворуч один рядок крупно. Панель 7/12, ліва колонка
   по центру панелі. Рух - лише transform і opacity (initDay); під reduce - «перерва» з карткою. */
#change .change__lead--one{max-width:16ch;margin-top:20px;color:var(--world-ink);font:500 clamp(1.625rem,1.32rem + 1.1vw,2.25rem)/1.18 var(--font-display);letter-spacing:-.02em;text-wrap:balance}
#change .window{--frame:color-mix(in oklab,var(--w-skarb-gold) 58%,var(--ink-press));--frame-hi:color-mix(in oklab,var(--w-skarb-gold) 80%,var(--on-dark));--sill-top:color-mix(in oklab,var(--w-skarb-bg) 70%,var(--raised));--sill-edge:color-mix(in oklab,var(--w-skarb-gold) 42%,var(--w-skarb-bg));position:relative;display:grid;min-width:0}
#change .sky{overflow:visible;border-radius:18px 18px 6px 6px;box-shadow:0 1px 2px color-mix(in srgb,var(--ink-press) 8%,transparent),0 18px 40px -16px color-mix(in srgb,var(--ink-press) 30%,transparent)}
#change .sky__air{overflow:hidden;border-radius:inherit}
#change .sky::after{content:"";position:absolute;inset:0;z-index:2;border:12px solid var(--frame);border-radius:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-press) 40%,transparent),inset 0 10px 18px -8px color-mix(in srgb,var(--ink-press) 35%,transparent),0 0 0 1px color-mix(in srgb,var(--frame-hi) 30%,transparent);background:linear-gradient(90deg,color-mix(in srgb,var(--frame-hi) 22%,transparent),transparent 2px) 0 0/100% 100% no-repeat border-box;pointer-events:none}
#change .sky__arc{margin-top:22px}
#change .sky__stops{position:relative;z-index:3;margin-inline:4px}
#change .sky__sun{z-index:4}
#change .sky__say{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Сповіщення лежить на підвіконні поверх стосу двох попередніх */
#change .pick{grid-row:3;grid-column:1;z-index:5;justify-self:start;align-self:end;width:min(100%,348px);margin:28px 0 30px 8px}
#change .pick--ghost{grid-row:3;grid-column:1;pointer-events:none}
#change .sky__stack{grid-row:3;grid-column:1;justify-self:start;align-self:end;position:relative;z-index:4;width:min(100%,348px);height:var(--pick-h,150px);margin:28px 0 30px 8px;pointer-events:none}
#change .sky__stack i{position:absolute;inset:0;border-radius:18px;background:color-mix(in oklab,var(--on-dark) 90%,var(--yellow));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-press) 10%,transparent),0 6px 14px -6px color-mix(in srgb,var(--ink-press) 30%,transparent);transform:translateY(-12px) scale(.94);transform-origin:50% 0}
#change .sky__stack i+i{transform:translateY(-23px) scale(.88);opacity:.8}
/* Підвіконня: верхня площина й торець, на ньому три предмети дня */
#change .sill{position:relative;z-index:3;height:72px;margin:-4px -20px 0;pointer-events:none}
#change .sill__ledge{position:absolute;inset:0 0 auto;height:30px;background:linear-gradient(180deg,color-mix(in oklab,var(--sill-top) 88%,var(--ink-press)),var(--sill-top) 40%);clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 100%,0 100%);box-shadow:none}
#change .sill__ledge::after{content:"";position:absolute;inset:auto 0 -14px;height:14px;background:var(--sill-edge)}
#change .sill::before{content:"";position:absolute;left:0;right:0;top:30px;height:14px;background:linear-gradient(180deg,var(--sill-edge),color-mix(in oklab,var(--sill-edge) 80%,var(--ink-press)));border-radius:0 0 4px 4px;box-shadow:0 10px 18px -10px color-mix(in srgb,var(--ink-press) 40%,transparent)}
#change .sill__finds{position:absolute;right:34px;bottom:48px;display:flex;align-items:flex-end;gap:10px;pointer-events:auto}
#change .sill__find{display:grid;place-items:center;align-content:center;gap:4px;min-width:56px;height:68px;padding:6px 8px;border:0;border-radius:4px 6px 6px 4px;background:var(--c-find);color:var(--on-find,var(--ink-press));font:700 13px/1 var(--font-body);box-shadow:inset 3px 0 0 color-mix(in srgb,var(--ink-press) 18%,transparent),0 2px 1px color-mix(in srgb,var(--ink-press) 18%,transparent);cursor:pointer;transform-origin:50% 100%;-webkit-tap-highlight-color:transparent}
#change .sill__find .g{width:20px;height:20px;stroke-width:1.8}
#change .sill__find--book{--c-find:color-mix(in oklab,var(--w-immersion-accent) 70%,var(--on-dark));height:76px;rotate:-3deg}
#change .sill__find--pod{--c-find:color-mix(in oklab,var(--w-listening-accent) 55%,var(--on-dark));width:64px;height:64px;border-radius:8px}
#change .sill__find--film{--c-find:color-mix(in oklab,var(--w-skarb-gold) 45%,var(--on-dark));height:58px;rotate:2deg}
#change .sill__find--book{background:linear-gradient(90deg,color-mix(in oklab,var(--c-find) 62%,var(--ink-press)) 0 7px,transparent 7px),linear-gradient(270deg,color-mix(in oklab,var(--on-dark) 90%,var(--yellow)) 0 3px,transparent 3px),var(--c-find);border-radius:2px 5px 5px 2px;box-shadow:0 2px 1px color-mix(in srgb,var(--ink-press) 18%,transparent)}
#change .sill__find--pod .g{box-sizing:content-box;padding:6px;border-radius:50%;background:color-mix(in oklab,var(--on-dark) 55%,transparent)}
#change .sill__find--film{padding-top:18px;background:repeating-linear-gradient(-45deg,var(--ink-press) 0 6px,var(--on-dark) 6px 12px) 0 0/100% 12px no-repeat,var(--c-find);border-radius:3px}
#change .sill__find[data-on]{transform:translateY(-6px);box-shadow:inset 3px 0 0 color-mix(in srgb,var(--ink-press) 18%,transparent),0 0 0 2px var(--yellow),0 10px 16px -6px color-mix(in srgb,var(--ink-press) 35%,transparent)}
@media (prefers-reduced-motion:no-preference){
  #change .sill__find{transition:transform 220ms var(--ease-out),box-shadow 220ms var(--ease-out)}
  #change .sill__find:active{scale:.98}
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) #change .window{--frame:color-mix(in oklab,var(--w-skarb-gold) 46%,var(--paper));--sill-top:color-mix(in oklab,var(--w-skarb-gold) 30%,var(--cream));--sill-edge:color-mix(in oklab,var(--w-skarb-gold) 26%,var(--paper))}
  :root:not([data-theme="light"]) #change .sky__stack i{background:color-mix(in oklab,var(--raised) 80%,var(--w-skarb-gold));box-shadow:0 0 0 1px color-mix(in srgb,var(--w-skarb-gold) 40%,transparent)}
  :root:not([data-theme="light"]) #change .sill__find{--on-find:var(--ink-press)}
}
:root[data-theme="dark"] #change .window{--frame:color-mix(in oklab,var(--w-skarb-gold) 46%,var(--paper));--sill-top:color-mix(in oklab,var(--w-skarb-gold) 30%,var(--cream));--sill-edge:color-mix(in oklab,var(--w-skarb-gold) 26%,var(--paper))}
:root[data-theme="dark"] #change .sky__stack i{background:color-mix(in oklab,var(--raised) 80%,var(--w-skarb-gold));box-shadow:0 0 0 1px color-mix(in srgb,var(--w-skarb-gold) 40%,transparent)}
@media (min-width:1024px){
  #change .change__in{grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(40px,4vw,64px);align-items:center}
  #change .sky{min-height:440px;padding:0 30px 26px}
}
@media (max-width:767px){
  #change .change__lead--one{margin-top:12px}
  #change .sky{padding:0 16px 22px}
  #change .sky::after{border-width:9px}
  #change .pick,#change .sky__stack{justify-self:center;margin:30px 0 34px;width:calc(100% - 8px)}
  #change .sky{min-height:0}
  #change .sill__find{min-width:52px;height:60px}#change .sill__find--book{height:66px}#change .sill__find--pod{width:58px;height:58px}#change .sill__find--film{height:52px}
  #change .sill{margin-inline:-10px}
  #change .sill__finds{right:auto;left:50%;translate:-50% 0}
}
@media (forced-colors:active){#change .sky::after{border-color:CanvasText}}
/* /lf:results-f4 */
/* lf:recog-f4 · #contrast (оно «норм»): вхід по пунктах і на телефоні - три пункти «Треба» закреслюються пером по черзі, коли записка
   в кадрі (220 мс, крок 80 мс), потім маркер знаходить «хочу» в заголовку (320 мс). Reduce і повторний візит - закреслено одразу. */
@media (prefers-reduced-motion:no-preference){
  .peel[data-strike="arm"] .peel__must .peel__strike{stroke-dashoffset:1}
  .peel[data-strike="go"] .peel__must .peel__strike{animation:lf-strike 220ms var(--ease-out,cubic-bezier(.2,.7,.3,1)) both}
  .peel[data-strike="go"] .peel__must li:nth-child(2) .peel__strike{animation-delay:80ms}
  .peel[data-strike="go"] .peel__must li:nth-child(3) .peel__strike{animation-delay:160ms}
  #contrast:has(.peel[data-strike="arm"]) .contrast__title em::before{scale:0 1}
  #contrast:has(.peel[data-strike="go"]) .contrast__head .contrast__title em::before{transition:scale 320ms var(--ease-out,cubic-bezier(.2,.7,.3,1)) 420ms}
}
@keyframes lf-strike{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
/* /lf:recog-f4 */

/* lf:offers-f4 #offer «Квиток, що відривається» (власник f2 09.10 01:52 «было чутка лучше»; r3 «на 7»; r2 «убери 72 год»; PLAN-full-4
   §0.4). Ліва колонка f2 (10105) повернута: заголовок по верху квитка, «Разовий платіж, без підписки», а внизу колонки - волосяна лінія
   й «Умови та оферти +» на рівні низу квитка (колонка тримає висоту квитка). Рядка повернення на картці немає. Квиток ≈ 760 px по центру
   своєї колонки. Штамп «32 тренування · 4 тижні» - на корінці біля ціни; під «Безстроковий доступ» - один рядок «що всередині».
   Зміна вкладки: новий квиток виїжджає з-під вкладки (translateY −8 › 0, 220 мс) поверх старого, без затухання; ціна й штамп +120 мс. */
#offer .price__more{margin:4px 0 0;color:var(--ink-2);font:600 var(--fs-meta)/1.4 var(--font-body);text-wrap:balance}
#offer .price--main .price__name,#offer .price--main .price__scope{max-width:none}
#offer .price--main .price__list li:first-child{padding-right:0}
#offer .price__stub{position:relative}
#offer .price--main :is(.price__sum,.price__more){padding-right:104px}
#offer .price__stub .offer__disc{top:30px;right:18px;left:auto;width:92px;rotate:-10deg;z-index:2}
@media (max-width:767px){
  #offer .price--main :is(.price__sum,.price__more){padding-right:88px}
  #offer .price--main .price__sum .price__note{display:block;margin-top:2px}
  #offer .price__stub .offer__disc{top:58px;right:12px;width:80px}
  #offer .price__stub .offer__disc text{font-size:15px}}
@media (min-width:1024px){
  #offer .offer__in{grid-template-columns:minmax(0,4fr) minmax(0,8fr);grid-template-rows:auto auto auto 1fr;column-gap:56px;row-gap:0}
  #offer .offer__seg{grid-area:1/2;justify-self:start;margin:0 0 0 22px}
  #offer .offer__head{grid-area:2/1;align-self:start;padding-top:14px}
  #offer .offer__top{grid-area:3/1;align-self:start;margin-top:12px}
  #offer .offer__terms{font-size:1rem}
  #offer .offer__cards{grid-column:2;grid-row:2/5;align-self:start;justify-self:center;width:100%;max-width:760px}
  #offer .offer__seal{grid-area:4/1;align-self:end;justify-self:stretch;display:block;max-width:22rem;margin:28px 0 4px;padding:14px 0 0;border:0;border-top:1px solid var(--line)}
  #offer .offer__seal-text{display:block}
  #offer .offer__refund[open]{max-width:none}}
@media (prefers-reduced-motion:no-preference){
  #offer .offer__cards[data-js]>.sk-price[data-leave]{visibility:visible;opacity:1;z-index:0;transform:none;animation:none}
  #offer .offer__cards[data-js]>.sk-price[data-tear]{z-index:1;opacity:1;transform-origin:50% 0;animation:coupon-drop 220ms var(--ease-out) both}
  #offer .offer__cards[data-js]>.sk-price[data-tear] .sk-price-amount{display:inline-block;transform-origin:0 70%;animation:price-stamp-f3 180ms var(--ease-out) 120ms both}
  #offer .offer__cards[data-js]>.sk-price[data-tear] .offer__disc{animation:disc-stamp-f3 180ms var(--ease-out) 120ms both}
  @keyframes coupon-drop{from{transform:translateY(-8px)}}}
/* #program (оно, r2 «норм»; full3 owner.eye 8, evenness 8, composition 8.5): блини ≥ 56 px одним рядом, тап надіває блин на гриф
   (280 мс, без вильоту) і запалює його тренування; у тижні видно 2 тренування, решта - дотиком «Тиждень N +N»; цитата учениці -
   під штангою зліва впритул. На телефоні стійка - один ряд із 7 блинів 44 px без сітки 4 + 3 (назву обраного каже підпис під грифом). */
#program .gym .plan .t[data-more]{display:none}
#program .plan__wkb{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:44px;margin:0;padding:0 6px;border:0;border-radius:10px;background:none;color:var(--world-ink);font:italic 500 1rem/1.2 var(--font-display);cursor:pointer;-webkit-tap-highlight-color:transparent}
#program .plan__wkb:disabled{cursor:default;opacity:1;color:var(--world-ink)}
#program .plan__more{font:700 var(--fs-label)/1 var(--font-body);font-style:normal;color:var(--ink-2)}
#program .plan__more:empty{display:none}
#program .plan__wkb[data-has] .plan__more{padding:4px 7px;border-radius:999px;background:var(--world);box-shadow:inset 0 0 0 1px var(--world-line)}
#program .plan__wkb:focus-visible{outline:var(--focus-ring);outline-offset:2px}
@media (hover:hover){#program .plan__wkb:not(:disabled):hover .plan__more{background:color-mix(in oklab,var(--w-skarb-gold) 30%,var(--world))}}
#program .plan__wk{margin-bottom:4px;padding:0}
@media (min-width:1024px){
  #program .gym__set{grid-column:1;grid-row:2}
  #program .gym__board{grid-column:2;grid-row:1/span 3;align-self:center}
  #program .program__pin{grid-column:1;grid-row:3;justify-self:stretch;max-width:none;margin:-4px 0 0;padding:0 24px}
  #program .plate__disc{width:calc(56px + var(--n) * .6px)}}
@media (max-width:599px){
  #program .gym__rack{grid-template-columns:repeat(7,44px);justify-content:space-between;gap:0;padding:2px 0 8px}
  #program .plate{min-width:44px;gap:0}
  #program .plate__disc{width:44px}
  #program .plate__name{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
@media (prefers-reduced-motion:no-preference){#program .plan__wkb:active{scale:.98}#program .plan__wkb{transition:scale 120ms var(--ease-out)}}
/* /lf:offers-f4 */
/* lf:mary-f4 · #mary (оно, «гуд»; аудит full3 ux.mobile 8): на ≤ 767 закладки «Книжка / Серіал / Канал» завжди видно й можна натиснути
   цілком: з-під фото визирають на 14 px (вільно ≥ 44 px), а коли полароїд перевернуто, закладки й «Назад до фото» стають під зворотом
   із зазором 8 px (scenes.js initMary ставить --back-over). */
@media (max-width:767px){
  .mary__marks{margin-top:-14px}
  .mary__pic[data-back] :is(.mary__marks,.mary__tab){translate:0 calc(var(--back-over,0px) + 22px)}
  .mark__say{max-width:min(260px,calc(100vw - 56px))}
}
@media (max-width:767px) and (prefers-reduced-motion:no-preference){
  .mary__pic :is(.mary__marks,.mary__tab){transition:translate 280ms var(--ease-standard,cubic-bezier(.2,.7,.3,1))}
}
/* /lf:mary-f4 */
/* lf:system-f4 → recog-f6 · шапка (customer.want): «Хочу Скарб» у шапці не дублює корал hero - пілюля проявляється, лише коли
   корал hero вийшов за верх екрана (page.js: IntersectionObserver ставить data-pill на шапку); до того вона поза потоком, а «Увійти»
   стоїть біля правого краю й відʼїжджає ліворуч разом із появою пілюлі (критичний CSS, блок lf:recog-f6). */
/* /lf:system-f4 */
/* lf:reviews-f5b · #voices - книжкова полиця Скарбу (kit notes «shelf»; власник 09.10 «сундук не то»): на десктопі заголовок
   і книжки ліворуч на одній полиці з розгорнутою книгою праворуч; на телефоні заголовок, полиця, сторінка. Резерв висоти
   колоди до монтування - під полицю (заголовок до монтування стоїть над колодою). */
.voices{margin-top:calc(var(--section-y) * .5)}
.js .voices__deck:not([data-deck]) .lk-deck__cards{min-height:420px}
@media (max-width:767px){.js .voices__deck:not([data-deck]) .lk-deck__cards{min-height:560px}}
/* /lf:reviews-f5b */
/* lf:results-f5 · #change (власник f2 «можно чуть лучше… на 7»). Те саме вікно з дугою дня й підвіконням. Ліворуч один h2 і одразу
   під ним крупний рядок-лід та результати одним реченням. Рама має товщину (фаска світло зверху), переплет хрестом і слабкий
   діагональний відблиск скла. На підвіконні - три маленькі речі 64 px без підписів (книжка із закладкою, навушники, хлопавка);
   річ цього часу дня піднімається, під нею тепла пляма світла. Сповіщення міняється один раз: над старим, яке тримається під ним.
   Висота вікна не стрибає: стос дорівнює картці (stretch), назві картки зарезервовано два рядки. */
#change .change__head{display:grid;align-content:center}
#change .change__lead--one{margin-top:14px;font-size:clamp(1.5rem,1.24rem + .9vw,2rem);line-height:1.2}
#change .change__lead--one+.change__lead{margin-top:12px;max-width:27em}
#change .pick__title{min-height:2.5em}
#change .sky__stack{align-self:stretch;height:auto}
#change .pick--ghost{z-index:5}
#change .sky::after{border-color:color-mix(in oklab,var(--frame) 55%,var(--frame-hi)) var(--frame) color-mix(in oklab,var(--frame) 78%,var(--ink-press)) var(--frame);
  background:
    linear-gradient(90deg,transparent calc(50% - 3px),color-mix(in oklab,var(--frame) 86%,var(--frame-hi)) calc(50% - 3px) calc(50% - 2px),var(--frame) calc(50% - 2px) calc(50% + 3px),transparent calc(50% + 3px)) padding-box,
    linear-gradient(180deg,transparent calc(58% - 3px),color-mix(in oklab,var(--frame) 70%,var(--frame-hi)) calc(58% - 3px) calc(58% - 2px),var(--frame) calc(58% - 2px) calc(58% + 3px),transparent calc(58% + 3px)) padding-box,
    linear-gradient(122deg,transparent 14%,color-mix(in srgb,var(--on-dark) 6%,transparent) 14% 21%,transparent 21% 24%,color-mix(in srgb,var(--on-dark) 4%,transparent) 24% 25.5%,transparent 25.5% 62%,color-mix(in srgb,var(--on-dark) 4%,transparent) 62% 67%,transparent 67%) padding-box;
  box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--frame) 70%,var(--ink-press)),inset 0 9px 14px -6px color-mix(in srgb,var(--ink-press) 42%,transparent),inset 6px 0 10px -6px color-mix(in srgb,var(--ink-press) 28%,transparent),0 0 0 1px color-mix(in srgb,var(--frame-hi) 30%,transparent)}
#change .sky__stop[data-pass]:not([aria-pressed="true"]){box-shadow:0 0 0 2px color-mix(in srgb,var(--yellow) 80%,transparent),0 0 18px 2px color-mix(in srgb,var(--yellow) 45%,transparent)}
/* Підвіконня: три речі 64 px */
#change .sill__finds{display:flex;right:30px;bottom:44px;gap:4px}
#change .sill__find,#change .sill__find--book,#change .sill__find--pod,#change .sill__find--film{position:relative;display:block;width:64px;min-width:0;height:64px;padding:0;border-radius:12px;background:none;box-shadow:none;rotate:none}
#change .sill__find::before{content:"";position:absolute;left:-6px;right:-6px;bottom:-6px;height:22px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--yellow) 70%,transparent),transparent);opacity:0;pointer-events:none}
#change .sill__find[data-on]{transform:translateY(-5px);box-shadow:none}
#change .sill__find[data-on]::before{opacity:1}
#change .sill__find:focus-visible{outline:var(--focus-ring);outline-offset:2px}
#change .o{position:relative;display:block;width:64px;height:64px;overflow:visible}
@media (min-width:1024px){#change .sill__find,#change .sill__find--book,#change .sill__find--pod,#change .sill__find--film,#change .o{width:76px;height:76px}#change .sill__finds{bottom:42px;gap:6px}}
#change .o--book{rotate:-4deg}
#change .o--clap{rotate:3deg}
#change .o-shadow{fill:color-mix(in srgb,var(--ink-press) 26%,transparent)}
#change .sill__find[data-on] .o-shadow{opacity:.55}
#change .o-cover{fill:color-mix(in oklab,var(--w-immersion-accent) 82%,var(--ink-press))}
#change .o-spine{fill:color-mix(in oklab,var(--w-immersion-accent) 58%,var(--ink-press))}
#change .o-band{stroke:var(--yellow);stroke-width:1.6;fill:none}
#change .o-label{fill:color-mix(in oklab,var(--on-dark) 88%,var(--yellow))}
#change .o-ink{stroke:color-mix(in srgb,var(--ink-press) 55%,transparent);stroke-width:1.3;stroke-linecap:round;fill:none}
#change .o-pages{fill:color-mix(in oklab,var(--on-dark) 90%,var(--yellow))}
#change .o-pages-l{stroke:color-mix(in srgb,var(--ink-press) 16%,transparent);stroke-width:.6;fill:none}
#change .o-ribbon{fill:color-mix(in oklab,var(--yellow) 70%,var(--w-skarb-gold))}
#change .o-gloss{stroke:color-mix(in srgb,var(--on-dark) 28%,transparent);stroke-width:1.4;stroke-linecap:round;fill:none}
#change .o-band-h{stroke:color-mix(in oklab,var(--ink-press) 88%,var(--w-listening-accent));stroke-width:4.4;stroke-linecap:round;fill:none}
#change .o-band-hi{stroke:color-mix(in srgb,var(--on-dark) 38%,transparent);stroke-width:1.2;stroke-linecap:round;fill:none}
#change .o-cup{fill:color-mix(in oklab,var(--w-listening-accent) 74%,var(--ink-press))}
#change .o-pad{fill:color-mix(in oklab,var(--ink-press) 82%,var(--w-listening-accent))}
#change .o-cup-hi{stroke:color-mix(in srgb,var(--on-dark) 34%,transparent);stroke-width:1.4;stroke-linecap:round;fill:none}
#change .o-led{fill:var(--yellow)}
#change .o-board{fill:color-mix(in oklab,var(--ink-press) 92%,var(--w-skarb-gold))}
#change .o-chalk{stroke:color-mix(in srgb,var(--on-dark) 55%,transparent);stroke-width:1;fill:none}
#change .o-chalk-t{stroke:color-mix(in srgb,var(--on-dark) 78%,transparent);stroke-width:1.6;stroke-linecap:round;fill:none}
#change .o-stripe{fill:var(--on-dark)}
#change .o-arm{transform-box:view-box;transform-origin:11.4px 21.3px;rotate:-13deg}
#change .o-hinge{fill:var(--yellow);stroke:color-mix(in oklab,var(--yellow) 50%,var(--ink-press));stroke-width:.8}
@media (prefers-reduced-motion:no-preference){
  #change .sill__find{transition:transform 220ms var(--ease-out)}
  #change .sill__find::before{transition:opacity 220ms var(--ease-out)}
  #change .sill__find[data-on] .o-arm{animation:sk-clap 360ms var(--ease-out) 1}
  @keyframes sk-clap{40%{rotate:0deg}}
}
@media (max-width:767px){
  #change .sill__finds{right:auto;left:50%;translate:-50% 0;bottom:44px;gap:10px}
  #change .sill__find,#change .sill__find--book,#change .sill__find--pod,#change .sill__find--film,#change .o{width:56px;height:56px}
}
/* /lf:results-f5 */
/* lf:offers-f5 #offer «Квиток, що відривається» (власник f2 «было чутка лучше»; r3 «на 7»; r2 «убери 72 год»; full4 owner.eye 7,5,
   copy.brevity 8, composition 8,5; PLAN-full-5 §0.4). Ліва колонка без провалів: крупний заголовок (як у f1) верхом по верху квитка,
   під ним «Разовий платіж, без підписки», за 24 px - «Умови та оферти +»; лінії й порожнього крему між ними немає. Квиток каже кожну
   думку раз: рядків «400+ знахідок і …» під ціною немає, штамп 32 лишився предметом. Порожній низ квитка 49 € - три обкладинки
   справжніх полиць (кадр фільму кімнати) і «400+ знахідок на 15 полицях»; дотик до обкладинки відкриває полицю в кімнаті. Зміна
   49 / 29 € - квиток перевертається довкола вертикальної осі (0 › 90°, −90° › 0, разом 280 мс, без вильоту); під reduce - миттєво. */
#offer .price__finds{display:flex;align-items:center;gap:14px;margin-top:12px}
#offer .price__covers{--pf:50px;--bw:375px;display:flex;flex:none;padding:4px 0 2px 4px}
#offer .pf{position:relative;display:block;flex:none;width:var(--pf);height:var(--pf);margin:0 0 0 -14px;padding:0;border:0;border-radius:10px;background:var(--world);
  box-shadow:0 0 0 3px var(--raised),0 0 0 4px color-mix(in srgb,var(--world-ink) 16%,transparent),0 8px 14px -6px color-mix(in srgb,var(--ink-press) 40%,transparent);
  rotate:var(--r,0deg);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#offer .pf:first-child{margin-left:0;--r:-7deg}
#offer .pf:nth-child(2){z-index:1;--r:2deg;translate:0 -3px}
#offer .pf:nth-child(3){--r:8deg}
#offer .pf__img{position:absolute;inset:0;border-radius:inherit;background:url(assets/img/skarb-v2-end-960.webp) no-repeat;background-size:var(--bw) auto;
  background-position:clamp(var(--pf) - var(--bw),var(--pf) / 2 - var(--x) * var(--bw),0px) clamp(var(--pf) - var(--bw) * .5625,var(--pf) / 2 - var(--y) * var(--bw) * .5625,0px)}
#offer .pf__img::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(160deg,color-mix(in srgb,var(--on-dark) 22%,transparent),transparent 45%);pointer-events:none}
#offer .pf:focus-visible{outline:var(--focus-ring);outline-offset:4px;z-index:2}
#offer .price__count{display:grid;gap:2px;margin:0;min-width:0}
#offer .price__count b{font:500 1.375rem/1.1 var(--font-display);letter-spacing:-.02em;color:var(--ink);font-variant-numeric:lining-nums}
#offer .price__count span{font:600 var(--fs-meta)/1.35 var(--font-body);color:var(--ink-2)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){#offer .pf:hover{z-index:2;translate:0 -5px;rotate:0deg}}
@media (prefers-reduced-motion:no-preference){
  #offer .pf{transition:translate var(--dur-ui) var(--ease-out),rotate var(--dur-ui) var(--ease-out),scale var(--dur-press) var(--ease-out)}
  #offer .pf:active{scale:.98}
  #offer .offer__cards[data-js]{perspective:1600px}
  #offer .offer__cards[data-js]>.sk-price[data-leave]{visibility:visible;opacity:1;z-index:1;transform-origin:50% 50%;animation:tk-flip-out 140ms cubic-bezier(.4,0,1,1) both}
  #offer .offer__cards[data-js]>.sk-price[data-tear]{z-index:2;opacity:1;transform-origin:50% 50%;animation:tk-flip-in 140ms var(--ease-settle) 140ms both}
  #offer .offer__cards[data-js]>.sk-price[data-tear] .sk-price-amount{animation:none}
  #offer .offer__cards[data-js]>.sk-price[data-tear] .offer__disc{animation:disc-stamp-f3 160ms var(--ease-out) 260ms both}
  @keyframes tk-flip-out{from{transform:rotateY(0)}to{transform:rotateY(90deg)}}
  @keyframes tk-flip-in{from{transform:rotateY(-90deg)}to{transform:rotateY(0)}}}
@media (max-width:767px){
  #offer .price__finds{gap:12px;margin-top:12px}
  #offer .price__covers{--pf:46px;--bw:345px}
  #offer .pf{margin-left:-10px}
  #offer .price__count b{font-size:1.1875rem}
  #offer .offer__seal{margin-top:8px}}
@media (min-width:1024px){
  #offer .offer__in{grid-template-rows:auto auto auto auto 1fr}
  #offer .offer__head{grid-area:2/1;align-self:start;margin-top:-.14em;padding-top:0}
  #offer .offer__head .lk-h2{font-size:clamp(3rem,5.5vw,5rem);line-height:1.02}
  #offer .offer__top{grid-area:3/1;align-self:start;margin-top:16px}
  #offer .offer__terms{font-size:1.125rem}
  #offer .price--main .lk-ticket__main{padding-bottom:22px}
  #offer .offer__seal{grid-area:4/1;align-self:start;justify-self:start;display:block;max-width:22rem;margin:12px 0 0;padding:0;border:0}
  #offer .offer__cards{grid-column:2;grid-row:2/6;align-self:start}}
/* #program (оно, «норм»; full4 owner.eye 8, composition 8,5, evenness 8,5; PLAN-full-5 §0.4): блини стоять одразу під грифом (56 px на
   столі, 44 px на телефоні), підпис обраного - під блинами; план і цитата учениці - одна права колонка: цитата впритул під дошкою,
   уся колонка по вертикальному центру лівої (без ≈ 130 px порожнечі під планом). Дотик, як і раніше, надіває блин на гриф (280 мс). */
#program .gym__side{position:relative;display:grid;gap:14px;min-width:0}
#program .gym__side .program__pin{grid-column:auto;grid-row:auto;margin:0;padding:0 8px;max-width:none}
@media (max-width:767px){
  #program .gym__side{gap:12px}
  #program .gym__side .program__pin{padding:0}
  #program .gym{gap:6px}
  #program .gym__rack{padding-bottom:4px}
  #program .gym__board{padding-block:10px}
  #program .lk-h2{font-size:1.5rem}
  #program .program__result{margin-top:10px}}
@media (min-width:1024px){
  #program .program__in{grid-template-rows:auto auto;row-gap:16px}
  #program .gym__set{grid-column:1;grid-row:2;gap:6px}
  #program .gym__bar{order:1;height:76px}
  #program .gym__rack{order:2;margin-top:-6px;padding-bottom:6px;border-bottom:0}
  #program .gym__now{order:3;padding-top:10px;border-top:1px solid var(--world-line)}
  #program .gym__side{grid-column:2;grid-row:1/span 2;align-self:center}
  #program .gym__board{grid-column:auto;grid-row:auto;align-self:auto}
  #program .gym__side .program__pin{padding:0 24px}}
/* /lf:offers-f5 */
/* lf:offers-f6 #program (оно, «норм»; full5 detail.details 8: на 1024 підписи блинів зливалися - «СлухатиГоворити», «ГраматикаЧитати»;
   «Тиждень / 1» ламався, «+2» висів збоку). 1024-1279, де стійка у лівій колонці вужча за 7 × 72 px: підписи блинів - у дві доріжки
   (парні на рядок нижче), кожен має ширину двох кроків і не торкається сусіда; висота доріжок зарезервована (без зсуву). «Тиждень N» не
   рветься, бейдж «+N» поруч або під номером. 1440 і 393 - як були. */
#program .plan__wkb{flex-wrap:wrap;row-gap:2px}
#program .plan__wkb>span:first-child{white-space:nowrap}
@media (min-width:1024px) and (max-width:1279px){
  #program .plate__name{max-width:calc(200% - 8px);min-height:1.2em;white-space:nowrap}
  #program .plate[data-plate="reading"] .plate__name{max-width:calc(200% - 8px);white-space:nowrap}
  #program .gym__rack>li:nth-child(even) .plate__name{margin-top:calc(1.2em + 6px)}
  #program .gym__rack{padding-bottom:6px}
  #program .plan__wkb{padding-inline:2px;font-size:.9375rem;column-gap:4px}}
/* /lf:offers-f6 */

/* lf:mary-f5 · #mary (оно, «гуд»; аудит full4 creative.idea 8,5: «тап по закладке - у самой закладки одна строка о находке»;
   creative.evenness: «цитату Literata поднять к центру полароида, веса колонок уравнять»). Записка тепер стоїть біля своєї закладки
   (носик вказує на неї) і несе власний рядок полиці з js/shelf-data.js (SHELF_TAGS[slug].say) дослівно, під ним - шлях до полиці.
   На ≥ 1024 текст стоїть по центру полароїда (нижнє поле однакове в обох колонок), цитата Literata крупніша. */
.mark{position:relative}
.mark__say{width:min(288px,calc(100vw - 88px));max-width:none;padding:12px 14px 2px}
.mark__say::before{content:"";position:absolute;top:-5px;width:12px;height:12px;border-radius:2px;background:var(--raised);rotate:45deg;left:var(--nx,28px)}
.mark:first-child .mark__say{left:-8px;right:auto;--nx:30px}
.mark:nth-child(2) .mark__say{left:50%;right:auto;margin-left:max(-144px,calc((100vw - 88px) / -2));--nx:calc(50% - 6px)}
.mark:nth-child(3) .mark__say{left:auto;right:-8px;--nx:calc(100% - 42px)}
.mark__line{display:block;color:var(--ink);font:italic 400 1rem/1.4 var(--font-display);text-wrap:pretty}
.mark__say .lk-link{display:block;min-height:44px;padding-block:11px;line-height:22px}
@media (min-width:768px){
  .mary__pic{margin-bottom:156px}
}
@media (min-width:1024px){
  .mary__text{margin-bottom:156px}
  .mary__q p:first-child{font-size:1.5rem;line-height:1.42}
}
@media (max-width:767px){
  .mary__marks:has(.mark[open]){margin-bottom:var(--say-h,172px)}
  .mark__say{max-width:none}
}
/* /lf:mary-f5 */
/* lf:mary f6 · #mary («гуд», полірування за аудитом full5 ux.mobile 8 і detail.details 8,5). Телефон: закладки опущені на 12 px -
   з-під полароїда кожна натискається живою смугою ≥ 44 px; відкрита закладка на тон темніша з тонким краєм і тінню (не зливається з
   жовтим колом); «Що дивиться Мері ›» - звичайне посилання рядком під запискою, без рамки, заголовок ближче до предмета. Ніч: рамка
   полароїда - теплий нічний папір, не світло-сіра. */
.mark[open]>summary{background:linear-gradient(180deg,color-mix(in srgb,var(--on-dark) 18%,transparent),transparent 40%),linear-gradient(color-mix(in srgb,var(--ink-press) 14%,transparent),color-mix(in srgb,var(--ink-press) 14%,transparent)),var(--mk);
  filter:drop-shadow(0 0 .7px color-mix(in srgb,var(--ink-press) 60%,transparent)) drop-shadow(0 6px 5px color-mix(in srgb,var(--ink-press) 30%,transparent))}
@media (max-width:767px){
  .mary__marks{margin-top:-2px}
  .mary__pic{margin-bottom:0}
  .mary__pic[data-back]{margin-bottom:calc(var(--back-over,0px) + 22px)}
  .mary__tab{margin:0 6% 0 0;padding:0 2px;border-radius:6px;background:none;box-shadow:none;color:var(--link);font:600 1rem/1.2 var(--font-body);rotate:none}
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mary__photo{background:color-mix(in oklab,color-mix(in oklab,var(--ink) 80%,var(--w-skarb-ink)) 86%,var(--paper))}}
:root[data-theme="dark"] .mary__photo{background:color-mix(in oklab,color-mix(in oklab,var(--ink) 80%,var(--w-skarb-ink)) 86%,var(--paper))}
/* /lf:mary f6 */
/* lf:blk-skarb-menu2 p1 · #menu (власник 09.10 ~15:08: «та проблема не в анимации была, а в самом угловом меню»). Замість
   обкладинки з двома сторінками, складеними під кутом ±58° (стиснутий текст, приглушені рядки, сторінка відкривалася лише через
   закладку), на столі English Menu - рівний розворот: три сторінки лежать пласко поруч, як меню, розкладене на столі. Це композиція
   07.10, яку власник 08.10 назвав «норм», з функціями Codex. Обкладинка з кантом стоїть посередині й трохи ширша (центральну
   сторінку розвороту читають першою), усі три сторінки на одній лінії. Згини - лише м'яка тінь у долині шва, без 3D. Усі пункти
   тижня видно й відмічаються на будь-якій сторінці, «+ ще N» лишився тільки на телефоні. Телефон і планшет - як було. */
.carte{--crease:color-mix(in srgb,var(--ink-press) 15%,transparent)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .carte{--crease:color-mix(in srgb,var(--ink-press) 75%,transparent)}}
:root[data-theme="dark"] .carte{--crease:color-mix(in srgb,var(--ink-press) 75%,transparent)}
@media (min-width:1024px){
  .carte__strip{padding-block:6px 10px}
  .carte[data-js] .carte__more{display:none}
  /* долина згину: тінь лягає з боку шва на бічну сторінку, обкладинка лежить зверху своєю тінню */
  .carte .carte__strip > .carte__page--1{box-shadow:inset -26px 0 24px -24px var(--crease),var(--sh-paper)}
  .carte .carte__strip > .carte__page--2{box-shadow:inset 26px 0 24px -24px var(--crease),var(--sh-paper)}
  .carte[data-js] .carte__page[data-cover]{z-index:3;box-shadow:inset 0 0 0 7px var(--cream),inset 0 0 0 8px color-mix(in srgb,var(--w-skarb-gold) 55%,transparent),var(--sh-e1,var(--sh-paper))}
  /* стікер «Робити все не треба» лежить на столі під правим краєм розвороту, у ряду дій праворуч: ні бирка «Полиця», ні довгий
     рядок сторінки його не зачіпають (на вільному полі сторінки він налягав на рядок, щойно під ним виростала бирка) */
  .carte[data-js] > .carte__strip{grid-area:1/1}
  .carte[data-js] > .carte__acts{grid-area:2/1}
  .carte[data-js] > .carte__note{position:relative;grid-area:2/1;align-self:start;justify-self:end;inset:auto;margin:14px calc(max(0px,(100% - 1070px) / 2) + 10px) 0 0;--st-tilt:-3deg}
}
/* на широкому столі рядки всіх трьох сторінок одного кеглю (16 px), як на обкладинці: розворот читається одним аркушем */
@media (min-width:1280px){.carte__page .carte__row{font-size:1rem}}
/* /lf:blk-skarb-menu2 */
/* lf:results-f6 · #change (власник f2 «можно чуть лучше… на 7»; illustrator full5 8,5: «плоскі іконки ~50 px, притиснуті вправо,
   ліві 60 % підвіконня порожні»). Те саме вікно, та сама дуга й рядок результатів, той самий резерв висоти. Речі стоять по всьому
   підвіконню, 84 px на 1440 (76 на 1024, 68 на планшеті, 60 на телефоні); у кожної щільна тінь контакту під дном і м'яка
   відкинута тінь, теплий обідок з боку сонця дуги (ранок - зліва, перерва - зверху, вечір - справа), під сонцем тепла пляма на
   підвіконні. Матеріал: книжка - шкіра з корінцем на бинтах, тиснена рамка, золоте тиснення й кутики, золочений обріз сторінок;
   навушники - шкіряні амбушюри з прострочкою, шкіряна дужка зі строчкою, металеві повзунки, вилки й заклепки; хлопавка - грифель
   із фаскою, крейдяні рядки й цифри рукою, крейдяний пил. Рама на ≥ 1024 - 16 px з фаскою (світло зверху й зліва, тінь справа й
   знизу), фальц біля скла; переплет має товщину й кидає м'яку тінь на скло. Рух лише opacity / translate, під reduce - без руху. */
#change .sill__finds{left:clamp(18px,7%,56px);right:clamp(18px,7%,56px);bottom:44px;justify-content:space-between;gap:0;translate:none}
#change .sill__find,#change .sill__find--book,#change .sill__find--pod,#change .sill__find--film,#change .o{width:60px;height:60px}
#change .sill__find::before{left:2px;right:2px;bottom:-4px;height:18px}
#change .sill__pool{position:absolute;left:0;right:0;top:0;height:30px;overflow:hidden;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 100%,0 100%);pointer-events:none}
#change .sill__pool::before{content:"";position:absolute;inset:0;background:radial-gradient(34% 140% at 50% 0%,color-mix(in srgb,var(--yellow) 34%,transparent),transparent 72%);opacity:0}
#change .sky[data-stop]+.sill .sill__pool::before{opacity:1}
#change .sky[data-stop="0"]+.sill .sill__pool::before{translate:-30% 0}
#change .sky[data-stop="2"]+.sill .sill__pool::before{translate:30% 0}
#change .o-cast{opacity:.9}
#change .sk-cast0{stop-color:color-mix(in srgb,var(--ink-press) 34%,transparent)}
#change .sk-cast1{stop-color:transparent}
#change .o-contact{fill:color-mix(in srgb,var(--ink-press) 40%,transparent)}
#change .sky[data-stop="0"]+.sill .o-cast{translate:3px 0}
#change .sky[data-stop="2"]+.sill .o-cast{translate:-3px 0}
#change .o-rim{fill:none;stroke:color-mix(in oklab,var(--yellow) 72%,var(--on-dark));stroke-width:1.6;stroke-linecap:round;opacity:0}
#change .sky[data-stop="0"]+.sill .o-rim--l,#change .sky[data-stop="2"]+.sill .o-rim--r{opacity:.95}
#change .sky[data-stop="1"]+.sill .o-rim{opacity:.4}
/* книжка: шкіра, бинти, тиснення, золото */
#change .o-cover{fill:url(#skc-lea)}
#change .sk-lea0{stop-color:color-mix(in oklab,var(--w-immersion-accent) 60%,var(--ink-press))}
#change .sk-lea1{stop-color:color-mix(in oklab,var(--w-immersion-accent) 86%,var(--ink-press))}
#change .sk-lea2{stop-color:color-mix(in oklab,var(--w-immersion-accent) 74%,var(--ink-press))}
#change .o-spine{fill:color-mix(in oklab,var(--w-immersion-accent) 50%,var(--ink-press))}
#change .o-hub{fill:color-mix(in oklab,var(--w-immersion-accent) 64%,var(--ink-press))}
#change .o-hub-hi,#change .o-groove-hi{stroke:color-mix(in srgb,var(--on-dark) 30%,transparent);stroke-width:.7;stroke-linecap:round;fill:none}
#change .o-groove{stroke:color-mix(in srgb,var(--ink-press) 38%,transparent);stroke-width:.9;fill:none}
#change .o-emb-d{fill:none;stroke:color-mix(in srgb,var(--ink-press) 36%,transparent);stroke-width:.8}
#change .o-emb-l{fill:none;stroke:color-mix(in srgb,var(--on-dark) 24%,transparent);stroke-width:.8}
#change .sk-foil0{stop-color:color-mix(in oklab,var(--yellow) 66%,var(--w-skarb-gold))}
#change .sk-foil1{stop-color:color-mix(in oklab,var(--yellow) 55%,var(--on-dark))}
#change .o-foil-l{fill:none;stroke:color-mix(in oklab,var(--yellow) 78%,var(--w-skarb-gold));stroke-width:1.5;stroke-linecap:round}
#change .o-corner{fill:color-mix(in oklab,var(--yellow) 58%,var(--w-skarb-gold))}
#change .o-head{fill:color-mix(in oklab,var(--on-dark) 84%,var(--yellow));stroke:color-mix(in srgb,var(--ink-press) 16%,transparent);stroke-width:.4}
#change .o-pages{fill:url(#skc-edge)}
#change .sk-gilt0{stop-color:color-mix(in oklab,var(--yellow) 78%,var(--w-skarb-gold))}
#change .sk-gilt1{stop-color:color-mix(in oklab,var(--on-dark) 82%,var(--yellow))}
#change .o-pages-l{stroke:color-mix(in srgb,var(--ink-press) 15%,transparent);stroke-width:.45}
#change .o-gloss{stroke:color-mix(in srgb,var(--on-dark) 16%,transparent);stroke-width:2.6}
/* навушники: шкіра й метал */
#change .o-band-h{stroke:color-mix(in oklab,var(--ink-press) 84%,var(--w-listening-accent));stroke-width:4.8}
#change .o-stitch{fill:none;stroke:color-mix(in srgb,var(--on-dark) 36%,transparent);stroke-width:.55;stroke-dasharray:1.3 1.1}
#change .sk-met0{stop-color:color-mix(in oklab,var(--on-dark) 70%,var(--ink-press))}
#change .sk-met1{stop-color:var(--on-dark)}
#change .sk-met2{stop-color:color-mix(in oklab,var(--on-dark) 38%,var(--ink-press))}
#change .o-notch{stroke:color-mix(in srgb,var(--ink-press) 42%,transparent);stroke-width:.5}
#change .o-yoke{fill:none;stroke:color-mix(in oklab,var(--on-dark) 58%,var(--ink-press));stroke-width:1.6;stroke-linecap:round}
#change .o-cup{fill:url(#skc-cup)}
#change .sk-cup0{stop-color:color-mix(in oklab,var(--w-listening-accent) 86%,var(--on-dark))}
#change .sk-cup1{stop-color:color-mix(in oklab,var(--w-listening-accent) 64%,var(--ink-press))}
#change .o-pad{fill:url(#skc-pad)}
#change .sk-pad0{stop-color:color-mix(in oklab,var(--ink-press) 90%,var(--w-listening-accent))}
#change .sk-pad1{stop-color:color-mix(in oklab,var(--ink-press) 66%,var(--w-listening-accent))}
#change .o-pad-st{fill:none;stroke:color-mix(in srgb,var(--on-dark) 30%,transparent);stroke-width:.45;stroke-dasharray:1 .9}
#change .o-cup-hi{stroke:color-mix(in srgb,var(--on-dark) 46%,transparent);stroke-width:1.2}
#change .o-rivet{fill:color-mix(in oklab,var(--on-dark) 76%,var(--ink-press))}
/* хлопавка: грифель, крейда */
#change .o--clap rect.o-board{fill:url(#skc-slate)}
#change .sk-sl0{stop-color:color-mix(in oklab,var(--ink-press) 84%,var(--w-skarb-gold))}
#change .sk-sl1{stop-color:color-mix(in oklab,var(--ink-press) 96%,var(--w-skarb-gold))}
#change .o-bevel{fill:none;stroke:color-mix(in srgb,var(--on-dark) 14%,transparent);stroke-width:.7}
#change .o-dust{fill:none;stroke:color-mix(in srgb,var(--on-dark) 9%,transparent);stroke-width:3.6;stroke-linecap:round}
#change .o-chalk{stroke:color-mix(in srgb,var(--on-dark) 52%,transparent);stroke-width:.9;stroke-dasharray:5 .7;stroke-linecap:round}
#change .o-chalk-t{stroke:color-mix(in srgb,var(--on-dark) 84%,transparent);stroke-width:1.15;stroke-dasharray:7 .5;stroke-linejoin:round}
#change .o-chalk-dot{fill:none;stroke:color-mix(in srgb,var(--on-dark) 60%,transparent);stroke-width:1.2;stroke-linecap:round}
#change .o-bar-hi{fill:none;stroke:color-mix(in srgb,var(--on-dark) 24%,transparent);stroke-width:.6}
#change .o-hinge{fill:url(#skc-hinge);stroke:color-mix(in srgb,var(--ink-press) 40%,transparent);stroke-width:.5}
#change .o-hinge-pin{fill:color-mix(in srgb,var(--ink-press) 60%,transparent)}
@media (prefers-reduced-motion:no-preference){
  #change .o-rim,#change .o-cast,#change .sill__pool::before{transition:opacity 220ms var(--ease-out),translate 280ms var(--ease-out)}
}
@media (min-width:768px){#change .sill__find,#change .sill__find--book,#change .sill__find--pod,#change .sill__find--film,#change .o{width:68px;height:68px}}
@media (min-width:1024px){
  #change .sky{padding-bottom:46px}
  #change .sill__finds{bottom:42px}
  #change .sill__find,#change .sill__find--book,#change .sill__find--pod,#change .sill__find--film,#change .o{width:76px;height:76px}
  /* рама: товщина 16 px, фаска від світла зверху-зліва, фальц біля скла, тінь рами й переплету на склі */
  #change .sky::after{border-width:16px;
    border-color:color-mix(in oklab,var(--frame) 42%,var(--frame-hi)) color-mix(in oklab,var(--frame) 84%,var(--ink-press)) color-mix(in oklab,var(--frame) 66%,var(--ink-press)) color-mix(in oklab,var(--frame) 70%,var(--frame-hi));
    background:
      linear-gradient(90deg,transparent calc(50% - 4px),color-mix(in oklab,var(--frame) 50%,var(--frame-hi)) calc(50% - 4px) calc(50% - 3px),var(--frame) calc(50% - 3px) calc(50% + 3px),color-mix(in oklab,var(--frame) 70%,var(--ink-press)) calc(50% + 3px) calc(50% + 4px),color-mix(in srgb,var(--ink-press) 24%,transparent) calc(50% + 4px),transparent calc(50% + 15px)) padding-box,
      linear-gradient(180deg,transparent calc(58% - 4px),color-mix(in oklab,var(--frame) 46%,var(--frame-hi)) calc(58% - 4px) calc(58% - 3px),var(--frame) calc(58% - 3px) calc(58% + 3px),color-mix(in oklab,var(--frame) 66%,var(--ink-press)) calc(58% + 3px) calc(58% + 4px),color-mix(in srgb,var(--ink-press) 26%,transparent) calc(58% + 4px),transparent calc(58% + 17px)) padding-box,
      linear-gradient(122deg,transparent 14%,color-mix(in srgb,var(--on-dark) 6%,transparent) 14% 21%,transparent 21% 24%,color-mix(in srgb,var(--on-dark) 4%,transparent) 24% 25.5%,transparent 25.5% 62%,color-mix(in srgb,var(--on-dark) 4%,transparent) 62% 67%,transparent 67%) padding-box;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-press) 50%,transparent),inset 0 0 0 3px color-mix(in oklab,var(--frame) 74%,var(--ink-press)),inset 0 0 0 4px color-mix(in srgb,var(--frame-hi) 40%,transparent),inset 0 16px 20px -10px color-mix(in srgb,var(--ink-press) 46%,transparent),inset 10px 0 14px -10px color-mix(in srgb,var(--ink-press) 30%,transparent),0 0 0 1px color-mix(in srgb,var(--frame-hi) 34%,transparent)}
}
@media (min-width:1280px){#change .sill__find,#change .sill__find--book,#change .sill__find--pod,#change .sill__find--film,#change .o{width:84px;height:84px}}
@media (max-width:767px){#change .sill__finds{left:24px;right:24px;translate:none;bottom:44px;justify-content:space-around}}
/* /lf:results-f6 */
/* lf:inside-f6 · #menu (ux.mobile 8): стікер «Робити все не треба» - лише папірець, він не ловить дотиків ні схованим, ні видимим;
   ряд дій над ним, тож «Відмітити» й «Додати своє» натискаються на всій площі (393, 360). */
#menu .carte__note{pointer-events:none}
#menu .carte__acts{position:relative;z-index:4}
/* /lf:inside-f6 */
/* lf:bl-rest · #mary (бэклог detail.details). Телефон: «Що дивиться Мері ›» - другим рядком у відкритій записці, під посиланням
   полиці (scenes.js initMary переносить кнопку й міряє --say-h), без окремого рядка з пустотою; заголовок ближче до предмета.
   Стіл: цитата без висячого рядка «це досі.»» (рядки врівноважені). */
@media (max-width:767px){
  .mark__say .mary__tab{position:static;display:flex;align-self:auto;order:0;width:auto;min-height:44px;margin:-6px 0 0;padding:11px 0;line-height:22px;translate:none;rotate:none}
  .mary__pic[data-back] .mark__say .mary__tab{translate:none}
}
@media (min-width:1024px){#mary .mary__q p:first-child{text-wrap:balance}}
/* /lf:bl-rest */
