:root{--paper:#f1efe9;--ink:#111111;--wine:#7b1023;--red:#b5162f;--line:rgba(17,17,17,.22);--white:#fff;--pad:clamp(20px,3vw,52px);--display:'Inter Tight',Arial,sans-serif;--serif:'Bodoni Moda',Georgia,serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--display);overflow-x:hidden}body.menu-open{overflow:hidden}img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.skip{position:fixed;left:16px;top:-100px;background:#fff;padding:12px 18px;z-index:10000}.skip:focus{top:16px}.intro-curtain{position:fixed;inset:0;z-index:9999;display:grid;grid-template-columns:1fr 1fr;pointer-events:none}.intro-curtain>div{background:var(--ink);transform-origin:top}.intro-curtain strong{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:clamp(42px,10vw,160px);font-weight:900;letter-spacing:-.07em;animation:introText 1.05s ease .25s both}.intro-curtain>div:first-child{animation:curtainUp .9s cubic-bezier(.76,0,.24,1) .9s forwards}.intro-curtain>div:nth-child(2){animation:curtainDown .9s cubic-bezier(.76,0,.24,1) .9s forwards;transform-origin:bottom}@keyframes introText{0%{opacity:0;letter-spacing:.03em}55%{opacity:1}100%{opacity:0;letter-spacing:-.07em}}@keyframes curtainUp{to{transform:translateY(-100%)}}@keyframes curtainDown{to{transform:translateY(100%)}}
.header{height:76px;padding:0 var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);position:absolute;top:0;left:0;right:0;z-index:50}.header.sticky{position:fixed;background:rgba(241,239,233,.94);backdrop-filter:blur(10px);animation:headerIn .25s ease}.logo{font-weight:900;letter-spacing:-.045em;font-size:23px}.nav{display:flex;gap:34px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.nav a,.direction,footer a{position:relative}.nav a:after,.direction:after,footer a:after{content:"";position:absolute;left:0;right:100%;bottom:-4px;height:1px;background:currentColor;transition:right .3s}.nav a:hover:after,.direction:hover:after,footer a:hover:after{right:0}.header-actions{justify-self:end;display:flex;align-items:center;gap:12px}.lang{border:0;background:transparent;font-size:12px;font-weight:800;cursor:pointer;padding:10px}.book{display:inline-flex;align-items:center;justify-content:space-between;text-transform:uppercase;font-weight:800;letter-spacing:.045em}.book-small{background:var(--ink);color:white;padding:13px 16px;min-width:104px;font-size:12px}.menu{display:none;border:0;background:none;width:38px;height:38px;padding:10px;cursor:pointer}.menu span{display:block;height:2px;background:var(--ink);margin:5px 0}.mobile-nav{position:fixed;inset:76px 0 0;background:var(--paper);padding:40px var(--pad);z-index:49;font-size:10vw;font-weight:800;line-height:1.12;text-transform:uppercase}.mobile-nav a{display:block;margin-bottom:16px}.mobile-nav .book{font-size:20px;border-top:1px solid var(--ink);padding-top:22px;margin-top:30px}
.hero{min-height:100svh;padding:112px var(--pad) 32px;position:relative;display:flex;flex-direction:column;justify-content:center}.hero-meta{position:absolute;top:94px;display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:700;letter-spacing:.11em}.meta-left{left:var(--pad)}.meta-right{right:var(--pad);text-align:right}.hero-title{margin:0;position:relative;z-index:2;font-size:clamp(74px,12.2vw,202px);line-height:.73;letter-spacing:-.082em;font-weight:900;text-transform:uppercase}.hero-line{display:flex;align-items:center;height:.86em;overflow:visible}.hero-line b{font-weight:900;display:block;animation:heroReveal .9s cubic-bezier(.2,.7,.2,1) 1.42s both}.hero-line:nth-child(2) b{animation-delay:1.5s}.hero-line:nth-child(3) b{animation-delay:1.58s}.hero-line:nth-child(4) b{animation-delay:1.66s}.hero-line-image{position:relative}.hero-image{position:absolute;width:19vw;min-width:190px;max-width:320px;aspect-ratio:.78;left:53%;top:50%;transform:translate(-50%,-50%) rotate(2deg);z-index:3;box-shadow:0 22px 50px rgba(0,0,0,.12)}.hero-line-shift{padding-left:17vw}.hero-line-accent{justify-content:flex-end;color:var(--wine)}.hero-bottom{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;margin-top:52px;padding-left:17vw}.hero-bottom p{max-width:430px;font-size:clamp(16px,1.5vw,22px);line-height:1.3;margin:0}.book-hero{width:clamp(250px,25vw,390px);background:var(--wine);color:#fff;padding:18px 20px;min-height:86px}.book-hero span{font-size:11px;align-self:flex-start}.book-hero strong{font-size:42px;letter-spacing:-.06em;margin-left:auto}.book-hero i{font-style:normal;font-size:24px;margin-left:16px}.scroll-cue{position:absolute;bottom:28px;left:var(--pad);font-size:10px;letter-spacing:.1em;font-weight:800;display:flex;gap:12px;align-items:center}.scroll-cue i{font-style:normal;font-size:17px}.ticker{background:var(--ink);color:#fff;overflow:hidden;padding:15px 0}.ticker>div{width:max-content;display:flex;gap:30px;align-items:center;animation:ticker 28s linear infinite}.ticker span{font-size:13px;font-weight:800;letter-spacing:.09em}.ticker i{font-style:normal;color:#e64d67}@keyframes ticker{to{transform:translateX(-50%)}}@keyframes heroReveal{from{transform:translateY(110%);opacity:0}to{transform:none;opacity:1}}
.section-no{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:28px}.section-no.light{color:rgba(255,255,255,.55)}.reset{min-height:100svh;display:grid;grid-template-columns:44% 56%;background:var(--wine);color:#fff;position:relative;overflow:hidden}.reset-photo{min-height:760px}.reset-copy{padding:clamp(70px,8vw,125px) var(--pad);position:relative;z-index:2}.reset h2,.manifesto h2,.services h2,.pricing h2,.studio h2,.visit h2,.faq h2{font-size:clamp(64px,8vw,130px);letter-spacing:-.075em;line-height:.76;text-transform:uppercase;margin:0;font-weight:900}.reset h2 em,.manifesto h2 em,.services h2 em,.pricing h2 em,.studio h2 em,.visit h2 em,.faq h2 em{font-family:var(--serif);font-weight:500;text-transform:none;letter-spacing:-.05em}.reset-lede{max-width:620px;font-size:clamp(18px,1.8vw,27px);line-height:1.25;margin:42px 0}.reset-price{display:flex;align-items:flex-end;gap:18px;border-top:1px solid rgba(255,255,255,.35);border-bottom:1px solid rgba(255,255,255,.35);padding:18px 0;margin-bottom:8px}.reset-price span{font-size:10px;font-weight:800;letter-spacing:.1em}.reset-price strong{font-size:clamp(62px,7vw,105px);line-height:.8;letter-spacing:-.075em}.reset-list{list-style:none;margin:0 0 38px;padding:0}.reset-list li{display:grid;grid-template-columns:50px 1fr;gap:12px;border-bottom:1px solid rgba(255,255,255,.2);padding:16px 0}.reset-list li span{font-size:10px;opacity:.6}.reset-list p{margin:0;font-size:14px;font-weight:600}.outline-link{display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(255,255,255,.6);padding:18px 20px;width:min(100%,460px);font-size:13px;font-weight:800;letter-spacing:.08em}.outline-link i{font-style:normal;font-size:22px}.outline-link.dark{border-color:var(--ink)}.reset-giant{position:absolute;right:-.03em;bottom:-.2em;font-size:31vw;line-height:.8;font-weight:900;letter-spacing:-.1em;color:rgba(255,255,255,.035);pointer-events:none}
.manifesto{background:var(--ink);color:#fff;padding:clamp(85px,10vw,150px) var(--pad)}.manifesto-copy{display:grid;grid-template-columns:1fr 2fr;align-items:start;margin-bottom:90px}.manifesto-copy .section-no{grid-row:1}.manifesto-copy .eyebrow{grid-column:2;margin:0 0 22px;font-size:12px;letter-spacing:.12em;color:#e76378}.manifesto-copy h2{grid-column:2}.manifesto-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:7vw;align-items:start}.manifesto-image{height:78vh;min-height:620px}.principles{padding-top:12vh}.principles article{display:grid;grid-template-columns:52px 1fr;border-top:1px solid rgba(255,255,255,.26);padding:22px 0}.principles article:last-child{border-bottom:1px solid rgba(255,255,255,.26)}.principles span{font-size:10px;opacity:.55}.principles h3{margin:0 0 8px;font-size:25px;text-transform:uppercase;letter-spacing:-.04em}.principles p{margin:0;max-width:420px;color:rgba(255,255,255,.66);font-size:15px;line-height:1.5}
.services{padding:clamp(85px,9vw,140px) var(--pad)}.services-head{display:grid;grid-template-columns:1fr 2fr 1fr;gap:40px;align-items:end;margin-bottom:80px}.services-head .section-no{align-self:start}.services-head h2{font-size:clamp(65px,7.7vw,120px)}.services-head p{font-size:16px;line-height:1.45;max-width:330px;margin:0}.service-list{border-top:1px solid var(--ink)}.service-card{display:grid;grid-template-columns:42% 58%;min-height:600px;border-bottom:1px solid var(--ink)}.service-card figure{margin:0;height:600px;overflow:hidden}.service-card figure img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}.service-card:hover figure img{transform:scale(1.035)}.service-info{padding:42px clamp(30px,5vw,78px);display:flex;flex-direction:column}.service-info>span{font-size:11px;letter-spacing:.12em}.service-info h3{font-size:clamp(52px,6vw,92px);line-height:.86;letter-spacing:-.065em;margin:100px 0 22px;max-width:800px}.service-info p{font-size:17px;line-height:1.45;max-width:470px;margin:0 0 auto}.service-info strong{font-size:14px;border-top:1px solid currentColor;padding-top:18px;margin-top:40px}.service-card-invert{background:var(--wine);color:#fff}.service-card-invert figure{order:2}.big-link{margin:55px 0 0 auto;width:min(100%,520px);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:22px 0;display:flex;justify-content:space-between;font-weight:900;font-size:clamp(20px,2.4vw,34px)}.big-link i{font-style:normal}
.gallery{position:relative;min-height:110vh;padding:120px var(--pad);overflow:hidden}.gallery-word{position:absolute;top:12%;left:-1vw;font-size:21vw;font-weight:900;letter-spacing:-.09em;line-height:.7;color:rgba(17,17,17,.055);z-index:0}.gallery figure{margin:0;position:absolute;z-index:1}.gallery-a{width:47vw;height:54vh;left:6vw;top:27vh}.gallery-b{width:26vw;height:66vh;right:8vw;top:13vh}.gallery-copy{position:absolute;right:8vw;bottom:9vh;width:26vw;font-family:var(--serif);font-size:clamp(24px,3vw,48px);line-height:1.08;letter-spacing:-.035em;margin:0;z-index:2}
.pricing{background:#d7d1c8;padding:clamp(90px,10vw,150px) var(--pad)}.pricing-intro{display:grid;grid-template-columns:1fr 2fr 1fr;gap:40px;align-items:end;margin-bottom:70px}.pricing-intro h2{font-size:clamp(64px,7.4vw,116px)}.pricing-intro p{max-width:360px;line-height:1.45;margin:0}.price-box{border-top:2px solid var(--ink)}.price-tabs{display:flex;border-bottom:1px solid var(--ink)}.price-tabs button{flex:1;border:0;border-right:1px solid var(--ink);background:transparent;padding:18px 12px;font-size:12px;font-weight:800;letter-spacing:.1em;cursor:pointer}.price-tabs button:last-child{border-right:0}.price-tabs button[aria-selected=true]{background:var(--ink);color:#fff}.price-row{display:grid;grid-template-columns:2fr repeat(4,1fr);border-bottom:1px solid rgba(17,17,17,.32);min-height:72px;align-items:center}.price-row>*{padding:15px}.price-row span{text-align:center;font-size:14px}.price-row strong{font-size:17px}.price-head{min-height:52px;font-size:9px;font-weight:800;letter-spacing:.08em}.price-head span:first-child{text-align:left}.addon-grid{display:grid;grid-template-columns:1fr 1fr}.addon-grid>div{display:flex;justify-content:space-between;gap:20px;padding:24px 18px;border-bottom:1px solid rgba(17,17,17,.32)}.addon-grid>div:nth-child(odd){border-right:1px solid rgba(17,17,17,.32)}.price-footer{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-top:28px}.price-footer p{font-size:12px;max-width:420px}.price-footer .outline-link{width:380px}
.studio{display:grid;grid-template-columns:50% 50%;background:var(--wine);color:#fff;min-height:100vh}.studio-photo{height:100vh}.studio-copy{padding:clamp(80px,9vw,140px) var(--pad);display:flex;flex-direction:column;justify-content:center}.studio-copy h2{font-size:clamp(76px,9vw,140px);margin-bottom:50px}.studio-copy>p{font-size:clamp(17px,1.6vw,24px);line-height:1.4;max-width:620px}.studio-copy blockquote{font-family:var(--serif);font-size:clamp(25px,3vw,46px);line-height:1.1;margin:60px 0 0;border-top:1px solid rgba(255,255,255,.4);padding-top:24px}
.visit{display:grid;grid-template-columns:55% 45%;min-height:94vh}.visit-copy{padding:clamp(80px,8vw,125px) var(--pad)}.visit h2{font-size:clamp(72px,9vw,145px)}.visit-data{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:70px 0}.visit-data span{display:block;font-size:9px;letter-spacing:.12em;font-weight:800;margin-bottom:12px}.visit-data strong{font-size:16px;line-height:1.45}.visit-actions{display:flex;align-items:center;gap:28px}.book-large{background:var(--ink);color:#fff;padding:20px 22px;width:min(100%,380px);font-size:13px}.book-large i{font-style:normal;font-size:22px}.direction{font-size:12px;font-weight:800;letter-spacing:.08em}.visit-photo{height:94vh}
.faq{padding:clamp(90px,9vw,140px) var(--pad);display:grid;grid-template-columns:42% 58%;gap:7vw}.faq h2{font-size:clamp(70px,8vw,128px)}.faq-list{border-top:1px solid var(--ink)}.faq-list article{border-bottom:1px solid var(--ink)}.faq-list button{width:100%;border:0;background:transparent;padding:24px 0;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer;font-size:clamp(17px,1.5vw,23px);font-weight:700}.faq-list button i{font-style:normal;font-size:25px;transition:transform .25s}.faq-list button[aria-expanded=true] i{transform:rotate(45deg)}.faq-list article>div p{padding:0 0 28px;margin:0;max-width:650px;line-height:1.55;color:#444}.final-cta{background:var(--ink);color:#fff;padding:80px var(--pad) 95px}.final-cta>p{font-size:11px;letter-spacing:.13em;color:#df6d80;margin:0 0 38px}.final-link{display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid rgba(255,255,255,.45);border-bottom:1px solid rgba(255,255,255,.45);padding:28px 0}.final-link span{font-size:clamp(72px,11vw,180px);line-height:.72;letter-spacing:-.08em;font-weight:900}.final-link i{font-style:normal;font-size:clamp(50px,6vw,96px);padding-bottom:8px}footer{background:var(--ink);color:#fff;border-top:1px solid rgba(255,255,255,.18);padding:32px var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;font-size:11px}footer>div{display:flex;gap:26px;font-weight:700;letter-spacing:.06em}footer>span{text-align:right;color:rgba(255,255,255,.5)}.mobile-book{display:none}
.reveal{opacity:0;transform:translateY(44px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}.image-reveal{overflow:hidden;clip-path:inset(0 0 100% 0);transition:clip-path 1s cubic-bezier(.76,0,.24,1)}.image-reveal.visible,.hero .image-reveal{clip-path:inset(0)}.image-reveal img{transform:scale(1.08);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.image-reveal.visible img,.hero .image-reveal img{transform:scale(1)}.magnetic{transition:transform .2s ease}
@keyframes headerIn{from{transform:translateY(-100%)}to{transform:none}}
@media(max-width:980px){.nav,.header-actions .book-small{display:none}.header{grid-template-columns:1fr auto}.header-actions{grid-column:2}.menu{display:block}.hero{padding-top:110px}.hero-meta{top:90px}.hero-title{font-size:17vw;line-height:.77}.hero-image{width:26vw;min-width:150px;left:60%}.hero-line-shift{padding-left:8vw}.hero-bottom{padding-left:0;grid-template-columns:1fr auto}.reset,.studio,.visit{grid-template-columns:1fr}.reset-photo,.studio-photo,.visit-photo{height:72vh;min-height:560px}.reset-copy{padding-top:80px}.manifesto-copy,.services-head,.pricing-intro{grid-template-columns:1fr}.manifesto-copy .eyebrow,.manifesto-copy h2{grid-column:1}.manifesto-grid{grid-template-columns:1fr}.manifesto-image{height:70vh}.principles{padding-top:20px}.services-head{gap:22px}.service-card{grid-template-columns:1fr 1fr;min-height:500px}.service-card figure{height:500px}.service-info h3{margin-top:70px}.gallery{min-height:95vh}.gallery-a{width:55vw}.gallery-b{width:31vw}.gallery-copy{width:32vw}.pricing-intro{gap:22px}.studio-copy{min-height:80vh}.visit-photo{order:-1}.faq{grid-template-columns:1fr}.faq-title{margin-bottom:20px}}
@media(max-width:680px){:root{--pad:18px}.header{height:64px}.mobile-nav{inset:64px 0 0}.hero{min-height:920px;padding-top:92px;padding-bottom:120px;justify-content:flex-start}.hero-meta{top:73px;font-size:8px}.meta-right{display:none}.hero-title{font-size:19vw;line-height:.78;margin-top:70px}.hero-line{height:.95em}.hero-line-image{height:2.25em;align-items:flex-start}.hero-image{width:44vw;min-width:0;max-width:none;left:auto;right:2vw;top:54%;transform:translateY(-50%) rotate(2deg);height:46vw}.hero-line-image b{position:relative;z-index:4}.hero-line-shift{padding-left:14vw;margin-top:-.48em}.hero-line-accent{justify-content:flex-start}.hero-bottom{grid-template-columns:1fr;gap:26px;margin-top:34px}.hero-bottom p{font-size:17px;max-width:90%}.book-hero{width:100%;min-height:76px}.scroll-cue{bottom:22px}.ticker{padding:13px 0}.ticker>div{gap:22px}.reset{display:block}.reset-photo{height:74vh;min-height:520px}.reset-copy{padding:65px var(--pad) 90px}.reset h2,.manifesto h2,.services h2,.pricing h2,.studio h2,.visit h2,.faq h2{font-size:18vw}.reset-lede{font-size:18px}.reset-price strong{font-size:20vw}.manifesto{padding:80px var(--pad)}.manifesto-copy{margin-bottom:55px}.manifesto-image{height:67vh;min-height:500px}.principles article{grid-template-columns:38px 1fr}.principles h3{font-size:21px}.services{padding:80px var(--pad)}.services-head{margin-bottom:50px}.service-card{display:block;min-height:0}.service-card figure{height:68vh;max-height:620px}.service-card-invert figure{order:0}.service-info{padding:28px 4px 36px}.service-info h3{font-size:15vw;margin:42px 0 20px}.service-info p{font-size:16px}.gallery{min-height:900px;padding:80px var(--pad)}.gallery-word{top:14%;font-size:30vw}.gallery-a{width:72vw;height:43vh;left:0;top:25vh}.gallery-b{width:46vw;height:49vh;right:0;top:52vh}.gallery-copy{width:60vw;right:auto;left:var(--pad);bottom:3vh;font-size:26px}.pricing{padding:80px var(--pad) 100px}.price-tabs button{font-size:9px;padding:16px 6px}.price-row{grid-template-columns:1.7fr repeat(4,.75fr);min-height:66px}.price-row>*{padding:9px 4px}.price-row strong{font-size:12px}.price-row span{font-size:11px}.price-head{font-size:7px}.addon-grid{grid-template-columns:1fr}.addon-grid>div:nth-child(odd){border-right:0}.price-footer{display:block}.price-footer .outline-link{width:100%;margin-top:24px}.studio-photo,.visit-photo{height:70vh;min-height:0}.studio-copy{padding:72px var(--pad);min-height:0}.studio-copy>p{font-size:17px}.visit{min-height:0}.visit-copy{padding:72px var(--pad) 110px}.visit-data{grid-template-columns:1fr;gap:28px;margin:50px 0}.visit-actions{display:block}.book-large{width:100%;margin-bottom:26px}.faq{padding:80px var(--pad) 110px;gap:35px}.final-cta{padding:70px var(--pad) 95px}.final-link span{font-size:19vw}.final-link i{font-size:16vw}footer{display:block;padding-bottom:115px}footer>div{margin:28px 0;flex-wrap:wrap}footer>span{text-align:left}.mobile-book{display:flex;position:fixed;left:10px;right:10px;bottom:10px;z-index:80;background:var(--wine);color:#fff;padding:12px 14px;align-items:center;justify-content:space-between;box-shadow:0 12px 30px rgba(0,0,0,.24)}.mobile-book small{display:block;font-size:8px;letter-spacing:.12em;margin-bottom:3px}.mobile-book strong{font-size:12px}.mobile-book>a{font-size:12px;font-weight:900;border-left:1px solid rgba(255,255,255,.4);padding-left:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro-curtain{display:none}.hero-line b,.ticker>div{animation:none}.reveal{opacity:1;transform:none}.image-reveal{clip-path:none}.image-reveal img{transform:none}.magnetic{transition:none}}

/* Adaptive hardening */
.reset > *, .manifesto-grid > *, .services-head > *, .service-card > *, .pricing-intro > *, .studio > *, .visit > *, .faq > *, .hero-bottom > * { min-width: 0; }

/* 42% + 58% + gap overflowed the viewport on desktop/laptop. */
.faq { grid-template-columns: minmax(0,42%) minmax(0,1fr); }

/* Russian strings are materially longer than the English campaign copy. */
html[lang="ru"] .services h2 { font-size: clamp(58px,6.6vw,106px); }
html[lang="ru"] .pricing h2 { font-size: clamp(56px,6.4vw,102px); }
html[lang="ru"] .studio-copy h2 { font-size: clamp(62px,7.2vw,116px); }
html[lang="ru"] .final-link span { font-size: clamp(62px,9vw,148px); }

@media (max-width:980px) {
  .manifesto-copy, .services-head, .pricing-intro, .faq { grid-template-columns:minmax(0,1fr); }
  .pricing-intro > *, .faq > * { width:100%; max-width:100%; }
}

@media (max-width:680px) {
  .hero { min-height:100svh; padding-bottom:96px; }
  .scroll-cue { display:none; }

  /* Keep the editorial scale without letting long headings clip. */
  .reset h2 { font-size:17vw; }
  .manifesto h2 { font-size:15vw; }
  .services h2 { font-size:14vw; }
  .pricing h2 { font-size:13.5vw; }
  .studio h2 { font-size:16vw; }
  .visit h2 { font-size:15vw; }
  .faq h2 { font-size:16vw; }
  .final-link span { font-size:15.5vw; }

  html[lang="ru"] .hero-title { font-size:16vw; letter-spacing:-.07em; }
  html[lang="ru"] .services h2 { font-size:11.5vw; }
  html[lang="ru"] .pricing h2 { font-size:11.5vw; }
  html[lang="ru"] .studio-copy h2 { font-size:12vw; }
  html[lang="ru"] .final-link span { font-size:10.8vw; line-height:.82; }

  .pricing-intro { min-width:0; }
  .price-box { min-width:0; width:100%; }
  .price-row { min-width:0; }
  .mobile-book { bottom:max(10px, env(safe-area-inset-bottom)); }
}

@media (max-width:560px) {
  /* Mobile price menu: service name gets a full row; levels remain scannable. */
  .price-head { display:none; }
  .price-row {
    grid-template-columns:repeat(4,minmax(0,1fr));
    min-height:0;
    align-items:stretch;
    padding-top:0;
  }
  .price-row strong {
    grid-column:1 / -1;
    padding:15px 4px 12px;
    font-size:15px;
  }
  .price-row span {
    padding:10px 2px 12px;
    border-top:1px solid rgba(17,17,17,.12);
    font-size:13px;
    line-height:1.15;
  }
  .price-row span::before {
    display:block;
    margin-bottom:6px;
    font-size:6.5px;
    line-height:1;
    letter-spacing:.07em;
    font-weight:800;
    color:rgba(17,17,17,.58);
  }
  .price-row span:nth-of-type(1)::before { content:"BEGINNER"; }
  .price-row span:nth-of-type(2)::before { content:"JUNIOR"; }
  .price-row span:nth-of-type(3)::before { content:"SENIOR*"; }
  .price-row span:nth-of-type(4)::before { content:"TOP*"; }
  .price-tabs button { letter-spacing:.055em; }

  .gallery { min-height:820px; }
  .gallery-copy { width:68vw; font-size:24px; }
  .mobile-book { left:8px; right:8px; }
}

@media (max-width:380px) {
  :root { --pad:16px; }
  .logo { font-size:21px; }
  .hero-title { font-size:18vw; }
  .hero-bottom p { font-size:16px; max-width:100%; }
  .book-hero strong { font-size:38px; }
  .service-info h3 { font-size:14vw; }
  .final-link span { font-size:14.5vw; }
  .mobile-book { padding:11px 12px; }
  .mobile-book strong { font-size:11px; }
  .mobile-book > a { padding-left:10px; }
}

/* Prevent decorative off-canvas type/ticker tracks from producing horizontal page bounce. */
html, body { max-width:100%; overflow-x:clip; }

html[lang="ru"] .studio-copy h2 { font-size:clamp(58px,6vw,96px); }

@media (max-width:680px) {
  html[lang="ru"] .hero-line-shift { padding-left:8vw; }
  html[lang="ru"] .studio-copy h2 { font-size:12vw; }
}

/* Hidden state must beat layout display rules (notably .addon-grid). */
[hidden] { display:none !important; }

@media (max-width:680px) {
  .hero-image { width:40vw; height:44vw; right:-1vw; }
}
@media (max-width:680px) {
  .hero-image { right:-7vw; }
}


/* === Layout safety pass: no lost media, no text collisions === */
/* Content is visible by default. Motion only enhances it after JS successfully loads. */
.reveal{opacity:1;transform:none}
.image-reveal{clip-path:none;overflow:hidden}
.image-reveal img{transform:scale(1);transition:transform 1.05s cubic-bezier(.2,.7,.2,1)}
.motion-ready .reveal{opacity:0;transform:translateY(30px)}
.motion-ready .reveal.visible{opacity:1;transform:none}
.motion-ready .image-reveal:not(.hero-visual):not(.hero-image) img{transform:scale(1.035)}
.motion-ready .image-reveal.visible img,.motion-ready .hero-visual img{transform:scale(1)}

/* Hero: editorial asymmetry without placing media over lettering. */
.hero{min-height:100svh;justify-content:center;padding-top:124px}
.hero-stage{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(250px,.75fr);gap:clamp(26px,4vw,72px);align-items:end;width:100%;min-width:0}
.hero-copy{min-width:0}
.hero-title{font-size:clamp(68px,9.6vw,158px);line-height:.79;min-width:0}
.hero-line{height:auto;min-height:.8em;display:block}
.hero-line-shift{padding-left:9vw}
.hero-line-accent{display:flex;justify-content:flex-start;color:var(--wine)}
.hero-visual{position:relative;width:100%;height:min(68vh,760px);min-height:480px;margin:0;align-self:center;box-shadow:0 24px 58px rgba(0,0,0,.12);transform:rotate(1.2deg)}
.hero-visual img{object-position:center center}
.hero-bottom{padding-left:9vw;margin-top:38px;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.hero-bottom p{max-width:520px}
.book-hero{width:min(100%,390px)}
html[lang="ru"] .hero-title{font-size:clamp(52px,7.5vw,124px);letter-spacing:-.065em}
html[lang="ru"] .hero-line-shift{padding-left:4vw}

/* Decorative background type must never compete with real copy. */
.reset-photo,.reset-copy{position:relative;z-index:1}
.reset-giant{z-index:0}

/* Gallery: true grid. Images and copy never share the same box. */
.gallery{min-height:0;padding:clamp(90px,9vw,140px) var(--pad);display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr);grid-template-rows:auto auto;gap:clamp(24px,4vw,64px);align-items:start}
.gallery-word{top:6%;z-index:0;pointer-events:none}
.gallery figure{position:relative!important;inset:auto!important;margin:0;z-index:1;width:auto!important}
.gallery-a{height:clamp(460px,62vw,760px)!important;grid-column:1;grid-row:1 / span 2}
.gallery-b{height:clamp(340px,38vw,540px)!important;grid-column:2;grid-row:1}
.gallery-copy{position:relative!important;inset:auto!important;width:auto!important;grid-column:2;grid-row:2;align-self:end;font-size:clamp(24px,2.7vw,44px);z-index:2}

/* Prevent long translated copy from colliding with adjacent controls. */
.final-link{gap:24px}
.final-link span{min-width:0;overflow-wrap:anywhere}
.final-link i{flex:0 0 auto}
.faq-list button{gap:18px}
.faq-list button span{min-width:0}

@media(max-width:980px){
  .hero{padding-top:110px;min-height:auto}
  .hero-stage{grid-template-columns:minmax(0,1.35fr) minmax(220px,.65fr);gap:28px}
  .hero-title{font-size:clamp(62px,10vw,104px)}
  .hero-visual{height:58vh;min-height:430px}
  .hero-bottom{padding-left:0}
  html[lang="ru"] .hero-title{font-size:clamp(48px,7.7vw,78px)}
  .gallery{grid-template-columns:minmax(0,1.3fr) minmax(220px,.7fr);gap:28px}
}

@media(max-width:760px){
  .hero{padding:96px var(--pad) 82px;min-height:auto}
  .hero-meta{top:74px}
  .hero-stage{display:flex;flex-direction:column;gap:28px;align-items:stretch}
  .hero-copy{display:contents}
  .hero-title{order:1;font-size:clamp(58px,17vw,116px);line-height:.82;margin-top:48px}
  .hero-line-shift{padding-left:7vw}
  .hero-visual{order:2;height:72vw;min-height:330px;max-height:560px;width:78%;align-self:flex-end;transform:rotate(1deg)}
  .hero-bottom{order:3;display:grid;grid-template-columns:1fr;gap:22px;margin-top:0;padding-left:0}
  .hero-bottom p{max-width:100%}
  .book-hero{width:100%}
  html[lang="ru"] .hero-title{font-size:clamp(44px,12.5vw,82px);line-height:.88;letter-spacing:-.055em}
  html[lang="ru"] .hero-line-shift{padding-left:0}

  .gallery{display:grid;grid-template-columns:1fr;grid-template-rows:auto;padding:80px var(--pad);gap:22px}
  .gallery-word{font-size:29vw;top:4%}
  .gallery-a,.gallery-b,.gallery-copy{grid-column:1;grid-row:auto}
  .gallery-a{height:74vw!important;min-height:300px!important}
  .gallery-b{height:88vw!important;min-height:360px!important;width:72%!important;justify-self:end}
  .gallery-copy{font-size:clamp(24px,7vw,34px);max-width:88%;margin-top:8px}
}

@media(max-width:430px){
  .hero{padding-left:16px;padding-right:16px;padding-bottom:84px}
  .hero-title{font-size:17vw;letter-spacing:-.065em}
  .hero-visual{width:84%;height:86vw;min-height:300px}
  .hero-bottom p{font-size:16px}
  .book-hero{min-height:72px}
  .gallery{padding-left:16px;padding-right:16px}
  .gallery-b{width:76%!important}
  .final-link{align-items:center}
  .final-link span{font-size:14vw}
}

@media(max-width:380px){
  .hero-title{font-size:16.6vw}
  html[lang="ru"] .hero-title{font-size:11.9vw}
  .hero-visual{width:88%;min-height:280px}
}

/* Typography collision guard discovered in real viewport render. */
.hero-title{line-height:.88}
.hero-line{line-height:.88;min-height:.88em}
@media(max-width:760px){.hero-title{line-height:.93}.hero-line{line-height:.93;min-height:.93em}html[lang="ru"] .hero-title{line-height:.96}}
@media(max-width:430px){.hero-title{line-height:.95}.hero-line{line-height:.95;min-height:.95em}}

/* Remove the old mobile negative offset from the first editorial experiment. */
.hero-line-shift{margin-top:0!important}

/* Mobile sticky CTA appears only after the hero; it must never cover the hero copy. */
@media(max-width:680px){
  .mobile-book{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(calc(100% + 24px));transition:opacity .25s ease,transform .3s ease,visibility .25s}
  .mobile-book.show{opacity:1;visibility:visible;pointer-events:auto;transform:none}
}

section[id]{scroll-margin-top:84px}
@media(max-width:680px){footer{padding-bottom:48px}}

/* === Principles grid correction ===
   Explicit placement prevents the paragraph from falling into the narrow number column. */
.principles article{
  grid-template-columns:42px minmax(0,1fr);
  column-gap:18px;
  row-gap:10px;
  align-items:start;
}
.principles article > span{
  grid-column:1;
  grid-row:1 / span 2;
  padding-top:3px;
}
.principles article > h3{
  grid-column:2;
  grid-row:1;
  min-width:0;
  margin:0;
  line-height:1.02;
  word-spacing:.06em;
  overflow-wrap:normal;
}
.principles article > p{
  grid-column:2;
  grid-row:2;
  min-width:0;
  max-width:520px;
  margin:0;
  line-height:1.48;
  overflow-wrap:normal;
}

@media(max-width:680px){
  .principles article{
    grid-template-columns:30px minmax(0,1fr);
    column-gap:14px;
    row-gap:10px;
    padding:24px 0 26px;
  }
  .principles article > span{
    font-size:11px;
    padding-top:2px;
  }
  .principles article > h3{
    font-size:clamp(23px,7vw,30px);
    letter-spacing:-.035em;
    line-height:1.02;
    word-spacing:.08em;
  }
  .principles article > p{
    font-size:15px;
    line-height:1.48;
    max-width:34ch;
  }
}

@media(max-width:380px){
  .principles article{
    grid-template-columns:26px minmax(0,1fr);
    column-gap:12px;
  }
  .principles article > h3{font-size:22px}
  .principles article > p{font-size:14px}
}

/* ======================================================================
   FINAL VISUAL QA PASS — mobile rhythm, readable pricing, no collisions
   ====================================================================== */

/* Accessible skip link stays truly outside the viewport until focused. */
.skip{top:0;transform:translateY(-160%);transition:transform .18s ease}
.skip:focus{top:0;transform:none}

/* Give headings a little more breathing room. The editorial look remains
   tight, but words must never read as if they are glued together. */
.principles article > h3{word-spacing:.12em;letter-spacing:-.025em}

@media(max-width:680px){
  /* Shorter visual blocks = faster path to offer / services / booking. */
  .reset-photo{height:62svh;min-height:430px;max-height:580px}
  .manifesto-image{height:56svh;min-height:420px;max-height:560px;width:88%;margin-inline:auto}
  .studio-photo,.visit-photo{height:62svh;min-height:430px;max-height:600px}

  /* A service photo is a supporting visual, not a full extra screen. */
  .service-card figure{height:auto;max-height:none;aspect-ratio:4 / 5}
  .service-info{padding:25px 2px 34px}
  .service-info h3{font-size:13.2vw;line-height:.9;margin:32px 0 16px}
  .service-info p{line-height:1.48}
  .service-info strong{margin-top:30px}

  /* Principles: number + content are visually one unit. */
  .principles{padding-top:28px}
  .principles article{grid-template-columns:28px minmax(0,1fr);column-gap:13px;row-gap:9px;padding:22px 0 24px}
  .principles article > span{font-size:10px;padding-top:4px}
  .principles article > h3{font-size:clamp(22px,6.2vw,27px);line-height:1.04;word-spacing:.14em;letter-spacing:-.025em}
  .principles article > p{font-size:15px;line-height:1.48;max-width:31ch;color:rgba(255,255,255,.72)}

  /* The previous five-column desktop table was technically responsive but
     visually too dense. Each service gets its own title and a 2x2 price grid. */
  .price-tabs{gap:0}
  .price-tabs button{min-height:50px;font-size:10px;letter-spacing:.045em;padding:14px 5px}
  .price-head{display:none!important}
  .price-panel:not(.addon-grid) .price-row:not(.price-head){
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    padding:0;
    border-bottom:1px solid rgba(17,17,17,.32);
  }
  .price-panel:not(.addon-grid) .price-row:not(.price-head) strong{
    grid-column:1/-1;
    padding:18px 2px 13px;
    font-size:17px;
    line-height:1.2;
    border-bottom:1px solid rgba(17,17,17,.13);
  }
  .price-panel:not(.addon-grid) .price-row:not(.price-head) span{
    position:relative;
    display:block;
    min-height:60px;
    padding:27px 8px 11px;
    text-align:left;
    font-size:15px;
    border-top:0;
  }
  .price-panel:not(.addon-grid) .price-row:not(.price-head) span:nth-of-type(odd){border-right:1px solid rgba(17,17,17,.13)}
  .price-panel:not(.addon-grid) .price-row:not(.price-head) span:nth-of-type(-n+2){border-bottom:1px solid rgba(17,17,17,.13)}
  .price-panel:not(.addon-grid) .price-row:not(.price-head) span::before{
    position:absolute;
    top:10px;left:8px;
    display:block;
    margin:0;
    font-size:7px;
    line-height:1;
    letter-spacing:.08em;
    font-weight:800;
    color:rgba(17,17,17,.55);
  }
  .price-footer{padding-top:24px}
  .price-footer p{line-height:1.45}

  /* Visit should not create a dead blank screen before FAQ. */
  .visit-copy{padding-top:66px;padding-bottom:70px}
  .visit-data{margin:44px 0 46px}
  .faq{padding-top:72px}

  /* Keep the fixed CTA above iPhone home indicator. */
  .mobile-book{bottom:calc(8px + env(safe-area-inset-bottom));left:8px;right:8px}
}

@media(max-width:430px){
  .hero-title{font-size:16.6vw}
  .hero-visual{width:82%;height:82vw;min-height:292px}
  .reset-copy{padding-top:58px;padding-bottom:76px}
  .manifesto{padding-top:72px;padding-bottom:72px}
  .services{padding-top:72px;padding-bottom:72px}
  .pricing{padding-top:72px;padding-bottom:82px}
  .studio-copy{padding-top:64px;padding-bottom:68px}
  .final-cta{padding-top:62px}
}

@media(max-width:380px){
  .principles article{grid-template-columns:25px minmax(0,1fr);column-gap:11px}
  .principles article > h3{font-size:21px}
  .principles article > p{font-size:14px;max-width:30ch}
  .price-tabs button{font-size:9px}
  .price-panel:not(.addon-grid) .price-row:not(.price-head) strong{font-size:16px}
  .service-info h3{font-size:12.7vw}
}
