/* The Recipe — block «Offer»: One Campaign. Frame fixed by Nick's answers 19.09 (name «One Campaign», button «Say go», contents as written,
   tone aimed at effectiveness); the thousand is H-A «Тысяча из тысячи» — the price built of exactly 1,000 dots, one per dollar.
   Source: Материалы/2026-09-16 — контакт и футер/choice/H-A.html + poster.css, scoped to .offer. Its own button class (.gobtn) — .rbtn belongs to Work. */
.offer{--on-accent:#12302A;position:relative;z-index:2;min-height:100vh;min-height:100svh;display:grid;align-content:space-between;gap:clamp(16px,2.6vh,30px);
  padding:clamp(72px,10vh,110px) var(--edge,max(16px,4vw)) max(104px,12vh);background:var(--accent);color:var(--on-accent);overflow:clip}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .offer{--on-accent:#0B1A16}}
:root[data-theme="dark"] .offer{--on-accent:#0B1A16}
.offer{--edge:max(var(--gutter),calc((100vw - 1200px) / 2))}
.offer .veil{position:absolute;inset:0;z-index:8;background:var(--paper);transform-origin:top;transform:scaleY(1);transition:transform .8s cubic-bezier(.65,0,.2,1);pointer-events:none}
.offer.in .veil{transform:scaleY(0)}
.offer .top{display:flex;justify-content:space-between;align-items:baseline;gap:14px 26px;flex-wrap:wrap;opacity:0}
.offer.in .top{animation:of-up .6s .3s cubic-bezier(.2,.9,.2,1) forwards}
.offer .nm{margin:0;font:800 clamp(28px,3.4vw,52px)/1 var(--display);letter-spacing:-.035em}
.offer .lead{margin:0;font:600 clamp(14px,1.15vw,17px)/1.4 var(--text);max-width:42ch;opacity:.86;text-wrap:pretty}
.offer .num{position:relative;width:100%;height:clamp(180px,40vh,460px);align-self:center}
.offer .num canvas{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:pan-y}
.offer .count{position:absolute;left:0;right:0;top:var(--gb,auto);margin:0;text-align:center;font:700 clamp(11px,1vw,13px)/1 var(--text);letter-spacing:.2em;text-transform:uppercase;opacity:0}
.offer.in .count{animation:of-fade .5s 2.2s forwards}
.offer .cad{position:absolute;right:var(--gx,0);top:var(--gy,4px);font:800 clamp(13px,1.2vw,17px)/1 var(--text);letter-spacing:.14em;opacity:0}
.offer.in .cad{animation:of-fade .5s 1.9s forwards}
.offer .from{position:absolute;left:var(--gx,0);top:var(--gy,4px);font:800 clamp(13px,1.2vw,17px)/1 var(--text);letter-spacing:.14em;text-transform:uppercase;opacity:0}
.offer.in .from{animation:of-fade .5s 1.9s forwards}
.offer .bottom{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:clamp(14px,2.2vw,42px);align-items:end}
.offer .what{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.offer .what li{font:700 clamp(18px,1.7vw,28px)/1.15 var(--display);letter-spacing:-.025em;display:flex;gap:.45em;align-items:baseline;opacity:0;transform:translateY(12px)}
.offer.in .what li{animation:of-up .55s cubic-bezier(.2,.9,.2,1) forwards}
.offer.in .what li:nth-child(1){animation-delay:1.1s}
.offer.in .what li:nth-child(2){animation-delay:1.2s}
.offer .what i{flex:none;width:.32em;height:.32em;border-radius:2px;background:currentColor;position:relative;top:-.18em}
.offer .budget{margin:0;font:600 clamp(14px,1.1vw,16px)/1.4 var(--text);max-width:34ch;opacity:0;border-left:3px solid currentColor;padding-left:12px}
.offer.in .budget{animation:of-up .55s 1.35s forwards}
.offer .budget b{font-weight:800}
.offer .go{opacity:0}
.offer.in .go{animation:of-up .55s 1.45s forwards}

/* «Say go» — the shape of the site's one button (Work's «See THE Recipe →»), inverted on gold */
.gobtn{--bh:clamp(60px,5.4vw,82px);position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:calc(var(--bh) * .2);height:var(--bh);
  padding:0 calc(var(--bh) * .11) 0 calc(var(--bh) * .38);border:0;border-radius:999px;background:var(--on-accent);color:var(--accent);cursor:pointer;text-decoration:none;
  font:800 calc(var(--bh) * .44)/1 var(--display);letter-spacing:-.02em;white-space:nowrap;box-shadow:0 2px 0 rgba(0,0,0,.12),0 26px 50px -22px rgba(0,0,0,.5);
  transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.gobtn:hover{transform:translateY(-3px)}
.gobtn:active{transform:translateY(0) scale(.985)}
.gobtn:focus-visible{outline:3px solid var(--on-accent);outline-offset:4px}
.gobtn .fill{position:absolute;inset:0;z-index:-1;background:var(--paper);clip-path:inset(0 100% 0 0);transition:clip-path .5s cubic-bezier(.7,0,.15,1)}
.gobtn:hover .fill,.gobtn:focus-visible .fill{clip-path:inset(0 0 0 0)}
.gobtn .t{transform:translateY(.04em);transition:color .25s .12s}
.gobtn:hover .t,.gobtn:focus-visible .t{color:var(--ink)}
.gobtn .go-c{display:grid;place-items:center;width:calc(var(--bh) * .78);aspect-ratio:1;border-radius:50%;background:var(--accent);color:var(--on-accent);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.gobtn .go-c svg{width:44%;height:44%}
.gobtn:hover .go-c{transform:translateX(3px)}
.offer.in .gobtn .go-c svg{animation:of-nudge 1.8s ease-in-out 2.6s infinite}
@keyframes of-nudge{0%,55%,100%{transform:none}28%{transform:translateX(18%)}}
@keyframes of-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes of-fade{from{opacity:0}to{opacity:.78}}
@media (max-width:900px){.offer .bottom{grid-template-columns:1fr;gap:18px;align-items:start}.offer .budget{max-width:none}}
@media (max-width:759px){.offer .count{letter-spacing:.12em;font-size:10px}.offer{padding-top:84px}.offer .num{height:clamp(150px,28vh,280px)}.offer .gobtn{--bh:64px}}
@media (prefers-reduced-motion:reduce){.offer .veil{display:none}.offer *{animation-duration:0s!important;animation-delay:0s!important}}
