/* abudarova.ru — коррекция почерка у детей (25.09.2026).
   Стиль «школьная тетрадь»: бумага, синие чернила, красная линия полей, разлиновка. */
@font-face{font-family:Nunito;src:url(../fonts/nunito-cyr.woff2) format("woff2");font-weight:200 1000;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Nunito;src:url(../fonts/nunito-lat.woff2) format("woff2");font-weight:200 1000;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Caveat;src:url(../fonts/caveat-cyr.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:Caveat;src:url(../fonts/caveat-lat.woff2) format("woff2");font-weight:400 700;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F}

:root{--paper:#fbf7ee;--paper2:#f3eddf;--card:#fffdf8;--ink:#1d3a8f;--ink2:#2f56c8;--text:#23262f;--muted:#646a78;
--line:#e3dccb;--rule:#c9d5ea;--red:#e0565b;--sun:#f2b33d;--r:14px;--tap:46px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font:18px/1.6 Nunito,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--ink2)}
h1,h2,h3{line-height:1.15;margin:0 0 .5em;color:#15213f;letter-spacing:-.01em}
h1{font-size:clamp(34px,5vw,60px);font-weight:800;max-width:14ch}
h2{font-size:clamp(28px,3.4vw,42px);font-weight:800}
h3{font-size:21px;font-weight:800}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}.narrow{max-width:780px}.center{text-align:center}

/* шапка */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 22px;
background:rgba(251,247,238,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#15213f;font-weight:800;line-height:1.1}
.logo small{display:block;font-weight:600;color:var(--muted);font-size:13px}
.mono{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--ink);color:#fff;font:700 28px/1 Caveat,cursive}
/* логотип-«драгоценность»: 24 кадра поворота из Blender (build/gem.py), полоса webp */
.mono.gem{flex:0 0 46px;width:46px;height:46px;border-radius:0;background:url(../img/gem.webp?v=5) 0 0/1472px 46px no-repeat;animation:gem 6.4s steps(32) infinite}
/* искра на гранях: вспыхивает раз в 4,2 с в разных точках знака */
.mono.gem::after{content:"";position:absolute;width:14px;height:14px;left:26px;top:8px;pointer-events:none;opacity:0;
background:radial-gradient(closest-side,#fff,rgba(255,255,255,0)) 50% 50%/14px 2px no-repeat,radial-gradient(closest-side,#fff,rgba(255,255,255,0)) 50% 50%/2px 14px no-repeat,radial-gradient(circle,#fff 0 1.5px,rgba(170,200,255,.6) 2.5px,transparent 5px);
animation:spark 4.2s ease-in-out infinite}
.mono.gem{position:relative}
@keyframes spark{0%,70%{opacity:0;transform:translate(0,0) scale(.3) rotate(0)}78%{opacity:1;transform:translate(0,0) scale(1) rotate(45deg)}86%{opacity:0;transform:translate(0,0) scale(.3) rotate(90deg)}
87%,100%{opacity:0;transform:translate(-14px,18px)}}
@keyframes gem{to{background-position:-1472px 0}}   /* 32 кадра × 46 px */
.top nav{display:flex;align-items:center;gap:22px}.top nav a{color:var(--muted);text-decoration:none;font-size:15px;font-weight:600}
.top nav a:hover{color:var(--ink)}

/* первый экран */
.hero{position:relative;overflow:hidden;padding:70px 0 80px;
background:repeating-linear-gradient(180deg,transparent 0,transparent 35px,rgba(47,86,200,.09) 35px,rgba(47,86,200,.09) 36px)}
.margin-line{position:absolute;top:0;bottom:0;left:max(10px,calc(50% - 600px));width:2px;background:rgba(224,86,91,.45)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:40px;align-items:center}
.kicker{color:var(--red);font-weight:800;font-size:14px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px}
.tagline{margin:6px 0 0;font-size:clamp(20px,2.2vw,26px);color:var(--muted);font-weight:600}
.hand{display:block;width:min(560px,100%);height:auto;margin:2px 0 18px;overflow:visible}
.hand path{fill:transparent;stroke:var(--ink);stroke-width:14;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;
animation:write .7s cubic-bezier(.45,0,.55,1) forwards,ink .5s ease forwards;animation-delay:calc(var(--i)*.16s + .3s),calc(var(--i)*.16s + .8s)}
@keyframes write{to{stroke-dashoffset:0}}
@keyframes ink{to{fill:var(--ink);stroke-width:2}}
.lead{font-size:clamp(17px,1.9vw,20px);color:#3c4150;max-width:54ch;margin:0 0 26px}
.cta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}
.chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.chips li{padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.7);font-size:14px;color:var(--muted);font-weight:600}

/* тетрадный лист с буквами */
.notebook{position:relative;margin:0;padding:18px 18px 14px;background:#fff;border-radius:18px;border:1px solid var(--line);
box-shadow:0 30px 60px -34px rgba(29,58,143,.45);transform:rotate(1.5deg)}
.notebook .ruling{display:block;width:100%;height:auto}
.nl{font:600 104px/1 Caveat,cursive;fill:var(--ink);opacity:0;animation:pop .6s ease forwards}
.nl4{font-size:92px;letter-spacing:6px}
.nl1{animation-delay:2.2s}.nl2{animation-delay:2.6s}.nl3{animation-delay:3s}.nl4{animation-delay:3.4s}
@keyframes pop{to{opacity:1}}
.notebook figcaption{font-size:14px;color:var(--muted);margin-top:8px;text-align:center}
.rl line{vector-effect:non-scaling-stroke}
.rl-main{stroke:#9fb4dc;stroke-width:1.3}.rl-mid{stroke:#c3d0ea;stroke-width:1;stroke-dasharray:4 4}.rl-slant{stroke:#d7def0;stroke-width:1}

/* секции */
.sec{padding:84px 0;scroll-margin-top:60px}.sec.alt{background:var(--paper2)}
.sub{color:var(--muted);max-width:62ch;margin:0 0 32px}.center .sub{margin-left:auto;margin-right:auto}
.pains{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pains li{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px 20px 18px;position:relative;padding-left:52px}
.pains li::before{content:"";position:absolute;left:18px;top:22px;width:20px;height:20px;border-radius:50%;border:2px solid var(--red);
background:radial-gradient(circle,var(--red) 0 3px,transparent 4px)}
.pains b{display:block;font-size:17px;margin-bottom:4px;color:#15213f}.pains span{color:var(--muted);font-size:15px}

.steps{list-style:none;padding:0;margin:0 0 56px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:s}
.steps li{counter-increment:s;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 20px}
.steps li::before{content:counter(s);display:block;font:700 44px/1 Caveat,cursive;color:var(--red);margin-bottom:8px}
.steps b{display:block;font-size:17px;margin-bottom:6px;color:#15213f}.steps span{color:var(--muted);font-size:15px}
.method{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center}
.method-text p{color:#3c4150}
.shrink{display:grid;grid-template-columns:1.6fr 1.15fr .8fr;gap:14px;align-items:end}
.sz{position:relative;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:0 16px 30px -24px rgba(29,58,143,.5)}
.sz svg{display:block;width:100%;height:auto}
.szl{font:600 104px/1 Caveat,cursive;fill:var(--ink)}
.sz em{display:block;text-align:center;font-style:normal;font-size:13px;color:var(--muted);margin-top:4px}

/* фото разной ориентации в один ряд одной высоты: доля ширины = пропорция кадра (--ar) */
.gallery{display:flex;gap:18px;align-items:flex-start}
.gallery figure{flex:var(--ar) 1 0;min-width:0}
.gallery figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px;box-shadow:0 18px 40px -30px rgba(29,58,143,.5)}
.gallery figure:nth-child(1){transform:rotate(-1.2deg)}.gallery figure:nth-child(3){transform:rotate(1.2deg)}
.gallery img{display:block;width:100%;height:auto;border-radius:8px}
.gallery:has(>figure:only-child){max-width:640px;margin:0 auto}.gallery>figure:only-child{transform:none}   /* 25.09: остался один снимок — два чужих убраны */
.gallery figcaption{font:700 24px/1.2 Caveat,cursive;color:var(--ink);text-align:center;margin-top:6px}
.note{color:var(--muted);font-size:15px;margin:22px 0 0}
/* до / после: один текст одного ученика */
.ba{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 0 34px}
.ba figure{position:relative;margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:10px;box-shadow:0 18px 40px -30px rgba(29,58,143,.5)}
.ba img{display:block;width:100%;height:auto;border-radius:8px}
.ba .tag{position:absolute;top:-12px;left:18px;padding:2px 14px;border-radius:8px;background:var(--red);color:#fff;font:700 24px/1.2 Caveat,cursive;box-shadow:0 6px 14px -8px rgba(0,0,0,.4)}
.ba .tag.after{background:var(--ink2)}
.ba.solo{grid-template-columns:minmax(0,560px);justify-content:center}
.scheme{margin:40px auto 0;max-width:900px}
.scheme .ink-ill{display:block;width:100%;height:auto;border-radius:var(--r);mix-blend-mode:multiply}   /* рисунок цветными чернилами вместо 3D (25.09.2026: на iPhone 3D не крутилась) */
.stage{position:relative;aspect-ratio:16/10;border-radius:var(--r);border:1px solid var(--line);overflow:hidden;
background:radial-gradient(ellipse at 50% 30%,#fff 0,#f6f1ff 55%,#ece4fb 100%);box-shadow:0 24px 50px -34px rgba(29,58,143,.5)}
.stage .flat{display:block;width:100%;height:100%;object-fit:cover}
.stage.on .flat{display:none}
.stage canvas{display:block;width:100%!important;height:100%!important;cursor:grab}.stage.grab canvas{cursor:grabbing}
.l3d{position:absolute;left:0;top:0;pointer-events:none;white-space:nowrap;padding:7px 12px;border-radius:12px;background:rgba(255,255,255,.92);
border:1px solid #e2d9f7;box-shadow:0 10px 24px -14px rgba(60,40,140,.55);font-size:13px;line-height:1.25;color:var(--muted);margin-top:-10px}
.l3d b{display:block;color:#15213f;font-size:14px}
.scheme .hint{text-align:center;font:700 22px/1.2 Caveat,cursive;color:var(--ink);margin-top:10px}
.stage:not(.on)+.hint{display:none}
.feats{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;list-style:none;padding:0;margin:14px 0 0}
.feats li{padding:8px 16px;border-radius:12px;background:#f1ecfd;border:1px solid #e2d9f7;font-weight:700;font-size:15px;color:#3b2f7a}
@media (max-width:560px){.stage{aspect-ratio:4/5}.l3d{font-size:11px;padding:5px 8px}.l3d b{font-size:12px}}
.ba-cap{grid-column:1/-1;margin:0;text-align:center;font:700 24px/1.2 Caveat,cursive;color:var(--ink)}
@media (max-width:760px){.ba{grid-template-columns:1fr;gap:24px}}

.two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:34px;align-items:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.card p{color:var(--muted);margin:0}.card.muted{background:transparent;border-style:dashed}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ticks{list-style:none;padding:0;margin:0}.ticks li{position:relative;padding-left:28px;margin:8px 0}
.ticks li::before{content:"";position:absolute;left:2px;top:.55em;width:13px;height:7px;border-left:2.5px solid var(--ink2);border-bottom:2.5px solid var(--ink2);transform:rotate(-45deg)}
.ticks.cols{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}

.prices{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}
.price{font-size:34px;font-weight:800;color:#15213f!important;margin:4px 0 10px!important}
.card.best{border:2px solid var(--ink2);box-shadow:0 20px 40px -28px rgba(29,58,143,.6)}
.incl{margin-bottom:16px}
details{border-bottom:1px solid var(--line);padding:16px 0}
details summary{cursor:pointer;font-weight:800;font-size:18px;list-style:none;display:flex;justify-content:space-between;gap:16px;color:#15213f}
details summary::-webkit-details-marker{display:none}
details summary::after{content:"+";color:var(--red);font-size:26px;line-height:1}details[open] summary::after{content:"–"}
details p{color:var(--muted);margin:10px 0 0}
.rules{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 22px}
.rules ul{color:var(--muted);margin:10px 0 0;padding-left:20px}.rules li{margin:6px 0}

.about{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:start}
.photo{width:220px;height:260px;border-radius:18px;display:grid;place-items:center;background:
repeating-linear-gradient(180deg,#fff 0,#fff 25px,var(--rule) 25px,var(--rule) 26px);border:1px solid var(--line);box-shadow:0 24px 50px -30px rgba(29,58,143,.5);transform:rotate(-2deg)}
.photo span{font:700 140px/1 Caveat,cursive;color:var(--ink)}
.photo:has(img){padding:8px;background:#fff}
.photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%;border-radius:12px}
.lead2{font-size:20px;color:#15213f;font-weight:600}
p.muted{color:var(--muted);font-size:15px}

.cta-sec{background:linear-gradient(180deg,var(--paper),#eef2fb)}
.contacts{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;width:min(900px,calc(100vw - 32px));margin-left:50%;transform:translateX(-50%);}
/* ВСЕ кнопки сайта — лужицы цветных чернил из Blender (build/ink_btn.py, 25.09.2026; до этого — камни build/stone_btn.py, картинки img/stones).
   Картинка камня 520×104 натянута как border-image на 9 частей: углы и ступени граней не тянутся,
   середина растягивается под текст — текст остаётся живым. ::before — тот же камень при другом свете
   (кадр b), плавно проявляется и гаснет → перелив. ::after — острый блик и искра поверх граней.
   Текст обязан лежать в <span>/<svg> с z-index:1, иначе псевдоэлементы перекроют его. */
.btn,.jewel{--bw:14px;--st:url(../img/ink/sapphire_a.webp);--st2:url(../img/ink/sapphire_b.webp);--ink-on:#fff;
position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;box-sizing:border-box;min-height:48px;padding:0 12px;
border:var(--bw) solid transparent;border-image:var(--st) 30 fill / var(--bw) stretch;background:none;
color:var(--ink-on)!important;-webkit-text-fill-color:var(--ink-on);font:700 16px/1 Nunito,sans-serif;letter-spacing:.015em;text-decoration:none;cursor:pointer;
transition:transform .2s,filter .2s}
.btn::before,.jewel::before,.btn::after,.jewel::after{content:"";position:absolute;inset:calc(-1 * var(--bw));pointer-events:none}
.btn::before,.jewel::before{border:var(--bw) solid transparent;border-image:var(--st2) 30 fill / var(--bw) stretch;opacity:0;animation:shimmer 4.6s ease-in-out infinite alternate}
@keyframes shimmer{0%,25%{opacity:0}75%,100%{opacity:1}}
.btn::after,.jewel::after{--k:6px;
clip-path:polygon(var(--k) 0,calc(100% - var(--k)) 0,100% var(--k),100% calc(100% - var(--k)),calc(100% - var(--k)) 100%,var(--k) 100%,0 calc(100% - var(--k)),0 var(--k));
background:
radial-gradient(closest-side,#fff,rgba(255,255,255,0)) right 8px top 8px/0 0 no-repeat,
radial-gradient(closest-side,#fff,rgba(255,255,255,0)) right 14px top 2px/0 0 no-repeat,
linear-gradient(106deg,transparent 44%,rgba(255,255,255,.12) 47%,rgba(255,255,255,.6) 49.5%,rgba(255,255,255,.12) 52%,transparent 55%) -160% 0/260% 100% no-repeat;
animation:glint 6s cubic-bezier(.6,0,.2,1) infinite}
@keyframes glint{
0%,58%{background-size:0 0,0 0,260% 100%;background-position:right 8px top 8px,right 14px top 2px,-160% 0}
80%{background-size:0 0,0 0,260% 100%;background-position:right 8px top 8px,right 14px top 2px,260% 0}
86%{background-size:14px 2px,2px 14px,260% 100%;background-position:right 8px top 8px,right 14px top 2px,260% 0}
94%,100%{background-size:0 0,0 0,260% 100%;background-position:right 8px top 8px,right 14px top 2px,260% 0}}
.btn>span,.btn>svg,.jewel>span,.jewel>svg{position:relative;z-index:1}
.btn>span,.jewel>span{text-shadow:0 1px 2px rgba(0,0,0,.5),0 0 8px rgba(0,0,0,.25)}
.jewel svg{width:20px;height:20px;fill:currentColor;filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}
.btn:hover,.jewel:hover{transform:translateY(-1px);filter:brightness(1.08) saturate(1.1)}
.btn.sm{--bw:11px;min-height:38px;padding:0 10px;font-size:14px;white-space:nowrap}
.btn.sm::after{--k:5px}
/* камни: сапфир — основные кнопки и телефон, горный хрусталь — «Стоимость», топаз — Telegram, изумруд — WhatsApp */
.btn.ghost{--st:url(../img/ink/diamond_a.webp);--st2:url(../img/ink/diamond_b.webp);--ink-on:var(--ink)}
.btn.ghost>span{text-shadow:0 1px 0 rgba(255,255,255,.9),0 0 8px rgba(255,255,255,.7)}
.jewel.tg{--st:url(../img/ink/topaz_a.webp);--st2:url(../img/ink/topaz_b.webp)}
.jewel.wa{--st:url(../img/ink/emerald_a.webp);--st2:url(../img/ink/emerald_b.webp)}
.jewel.ph{--st:url(../img/ink/sapphire_a.webp);--st2:url(../img/ink/sapphire_b.webp)}
/* блики и переливы не синхронны */
.jewel.wa::after,.cta .btn.ghost::after{animation-delay:1.3s}.jewel.ph::after{animation-delay:2.6s}.top .btn::after{animation-delay:3.4s}
.jewel.wa::before,.cta .btn.ghost::before{animation-delay:-1.5s}.jewel.ph::before{animation-delay:-3s}.top .btn::before{animation-delay:-2.2s}
.cta,.contacts{filter:drop-shadow(0 10px 14px rgba(20,30,80,.2))}
.soon{font:700 26px/1.3 Caveat,cursive;color:var(--ink);margin:0;padding:14px 22px;border:2px dashed var(--rule);border-radius:14px;background:#fff}

.foot{border-top:1px solid var(--line);padding:28px 0;font-size:14px;color:var(--muted)}
.foot .wrap{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between}
.foot .dev a{text-decoration:none;border-bottom:1px solid var(--rule)}
.foot .footer-with-credits{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px)}
.foot .footer-credits{text-align:right}
.foot .hosting-recommendation{margin:8px 0 0;line-height:1.6}
@media(max-width:860px){.foot .footer-with-credits{grid-template-columns:minmax(0,1fr)}}
.foot .hosting-recommendation a{text-decoration:none;border-bottom:1px solid var(--rule)}

/* появление */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}

@media (max-width:980px){.pains,.cards,.prices{grid-template-columns:1fr 1fr}.steps{grid-template-columns:1fr 1fr}}
@media (max-width:860px){.top nav a:not(.btn){display:none}.hero-grid,.method,.two{grid-template-columns:1fr}.hero{padding:44px 0 60px}
.notebook{max-width:460px;margin:8px auto 0}.about{grid-template-columns:1fr}.photo{width:160px;height:190px}.photo span{font-size:100px}
.gallery{gap:10px}}
@media (max-width:560px){.pains,.cards,.prices,.steps{grid-template-columns:1fr}.ticks.cols{grid-template-columns:1fr}.sec{padding:60px 0}
.logo small{display:none}.gallery{flex-direction:column;align-items:stretch;max-width:420px;margin:0 auto}}
@media (prefers-reduced-motion:reduce){.jewel::before,.btn::before,.jewel::after,.btn::after,.mono.gem::after{animation:none}.mono.gem{animation:none}.hand path{animation:none;fill:var(--ink);stroke-width:2;stroke-dashoffset:0}.nl{animation:none;opacity:1}.rv{opacity:1;transform:none}html{scroll-behavior:auto}}

/* отзывы (25.09.2026) */
.rev-h{text-align:center;margin:10px 0 22px;font:700 34px/1.2 Caveat,cursive;color:var(--ink)}
.rev{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:28px;align-items:center;max-width:880px;margin:0 auto 34px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:0 18px 40px -30px rgba(29,58,143,.5)}
.rev figure{margin:0}
.rev-video video{display:block;width:100%;height:auto;aspect-ratio:492/960;border-radius:22px;background:#e9e4d6;border:6px solid #1c2233;box-shadow:0 14px 30px -18px rgba(0,0,0,.5)}
.rev-body{display:grid;grid-template-columns:1fr 160px;gap:6px 22px;align-items:start}
.rev blockquote{grid-column:1;margin:0;font:700 clamp(30px,3.4vw,42px)/1.15 Caveat,cursive;color:var(--ink)}
.rev-who{grid-column:1;margin:0;color:var(--muted);font-size:16px}
.rev-photo{grid-column:2;grid-row:1/3}
.rev-photo img{display:block;width:100%;height:auto;border-radius:8px;border:1px solid var(--line);transform:rotate(2deg)}
.rev-photo figcaption{margin-top:6px;text-align:center;font:700 20px/1.2 Caveat,cursive;color:var(--ink)}
@media (max-width:760px){.rev{grid-template-columns:1fr;padding:16px;gap:18px}.rev-video{max-width:220px;margin:0 auto}.rev-body{grid-template-columns:1fr 120px}}

.tripods{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0 4px}.tripods figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.tripods img{display:block;width:100%;height:auto}.tripods figcaption{padding:10px 12px 12px;font-size:14px;color:var(--muted);line-height:1.4}.tripods figcaption b{display:block;color:#15213f;margin-bottom:4px}@media(max-width:520px){.tripods{grid-template-columns:1fr}}


/* ролик (26.09.2026): петля 6 с в листе первого экрана + окно с полным роликом в #work */
.notebook.reel{padding:12px 12px 10px}
.notebook .loop{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:10px;background:#f3eee2}
.film-cta{margin:-8px 0 34px}
.film-cta .btn{font-size:17px;padding:0 16px}
.film-dlg{padding:0;border:0;background:transparent;max-width:none;max-height:none;overflow:visible}
.film-dlg::backdrop{background:rgba(15,22,45,.82);backdrop-filter:blur(3px)}
.film-box{position:relative}
.film-dlg video{display:block;background:#000;border-radius:12px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);
width:min(92vw,calc(84vh * 16 / 9),1120px);aspect-ratio:16/9;height:auto}
.film-dlg.tall video{width:min(92vw,calc(84vh * 9 / 16),460px);aspect-ratio:9/16}
.film-x{position:absolute;top:-46px;right:0;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.95);color:#15213f;
font:700 28px/1 Nunito,sans-serif;cursor:pointer;box-shadow:0 6px 18px -6px rgba(0,0,0,.5)}
.film-x:hover{background:#fff}
@media (max-width:700px){.film-x{top:-44px}}

/* Увеличение фото по нажатию (27.09.2026, просьба Айрата) */
img.zoomable{cursor:zoom-in}
.zoomwrap{position:relative;display:block}
.zoomhint{position:absolute;right:8px;bottom:8px;width:34px;height:34px;border-radius:50%;background:rgba(21,33,63,.72);color:#fff;
  display:grid;place-items:center;pointer-events:none;font-size:18px;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.rev-photo .zoomwrap{transform:rotate(2deg)}.rev-photo .zoomwrap img{transform:none}
.lb{position:fixed;inset:0;z-index:100;background:rgba(12,16,28,.93);display:flex;align-items:center;justify-content:center;
  padding:56px 12px 64px;opacity:0;transition:opacity .18s;touch-action:pan-y pinch-zoom}
.lb.on{opacity:1}
.lb img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px;box-shadow:0 10px 40px rgba(0,0,0,.5);background:#fff;cursor:zoom-out}
.lb button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:50%;width:var(--tap);height:var(--tap);
  font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center}
.lb button:hover,.lb button:focus-visible{background:rgba(255,255,255,.28);outline:none}
.lb .lb-x{top:10px;right:10px}
.lb .lb-p{left:10px;top:50%;margin-top:calc(var(--tap)/-2)}
.lb .lb-n{right:10px;top:50%;margin-top:calc(var(--tap)/-2)}
.lb .lb-cap{position:absolute;left:0;right:0;bottom:14px;text-align:center;color:#e9edf7;font-size:15px;padding:0 70px}
@media (max-width:640px){.lb .lb-p,.lb .lb-n{top:auto;bottom:6px;margin:0}.lb .lb-cap{bottom:18px;font-size:14px}}
@media (prefers-reduced-motion:reduce){.lb{transition:none}}
