/* ---------- ČOSKORO: úvodná stránka so zberom e‑mailov ---------- */
.soon{--mx:0;--my:0;position:relative;height:100svh;display:flex;flex-direction:column;gap:clamp(10px,3.4svh,52px);padding:clamp(16px,3.6svh,44px) var(--pad) clamp(84px,15svh,160px);color:var(--cream);overflow:hidden;
  background:radial-gradient(90% 70% at 78% 62%,#4d7220 0%,rgba(77,114,32,0) 60%),radial-gradient(60% 50% at 0% 0%,#476a1b 0%,rgba(71,106,27,0) 70%),var(--green)}
.soon__top{display:flex;justify-content:space-between;align-items:center;gap:16px}
.soon__logo{width:clamp(110px,12vw,170px);aspect-ratio:1000/217.52}
.soon__where{font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;padding:8px 15px;border:1.5px solid rgba(255,254,236,.4);border-radius:999px;text-align:center}
.soon__main{flex:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);align-items:center;gap:clamp(20px,4vw,70px);position:relative;z-index:2}
.soon__tag{display:inline-flex;align-items:center;gap:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.9rem;padding:8px 16px 8px 13px;border-radius:999px;background:var(--pink);color:var(--green)}
.soon__tag i{width:9px;height:9px;border-radius:50%;background:var(--green);position:relative}
.soon__tag i::after{content:"";position:absolute;inset:0;border-radius:50%;background:inherit;animation:ping 1.8s ease-out infinite}
.soon__title{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.6rem,min(10.4vw,17.5svh),13rem);line-height:.8;white-space:nowrap;margin:clamp(6px,1.6svh,22px) 0 clamp(14px,3svh,38px)}
.soon__title .line{display:block;overflow:hidden;padding-top:.2em;margin-top:-.03em}
.soon__title .line>span{display:inline-block}
.soon__title em{color:var(--lime)}
.soon__title .rise{animation-name:riseLine}
.soon__lead{max-width:34ch;font-size:clamp(1.15rem,1rem + .6vw,1.55rem);line-height:1.25}

.signup{margin-top:clamp(10px,2.6svh,36px);max-width:600px}
.signup__row{display:flex;gap:8px;padding:8px 8px 14px;border-radius:999px;background:var(--cream);box-shadow:0 0 0 0 rgba(202,216,59,0);transition:box-shadow .3s}
.signup__row:focus-within{box-shadow:0 0 0 5px rgba(202,216,59,.55)}
.signup input[type=email]{flex:1;min-width:0;border:0;background:none;outline:0;padding:6px 8px 0 20px;font:600 1.15rem var(--body);color:var(--green)}
.signup input[type=email]::placeholder{color:rgba(57,86,20,.45)}
.signup .btn{border:0;cursor:pointer;font-family:var(--body);white-space:nowrap}
.signup .btn[disabled]{opacity:.6;pointer-events:none}
.signup__consent{display:flex;gap:12px;align-items:flex-start;margin-top:clamp(8px,1.6svh,16px);font-size:.92rem;line-height:1.3;opacity:.9;cursor:pointer;max-width:52ch}
.signup__consent input{position:absolute;opacity:0;pointer-events:none}
.signup__consent .box{flex:none;width:22px;height:22px;margin-top:1px;border-radius:7px;border:2px solid var(--cream);display:grid;place-items:center;transition:background .2s,border-color .2s}
.signup__consent .box::after{content:"";width:10px;height:6px;border:solid var(--green);border-width:0 0 2.5px 2.5px;rotate:-45deg;translate:0 -1px;scale:0;transition:scale .25s var(--ease)}
.signup__consent input:checked+.box{background:var(--lime);border-color:var(--lime)}
.signup__consent input:checked+.box::after{scale:1}
.signup__consent input:focus-visible+.box{outline:3px solid var(--pink);outline-offset:3px}
.signup__msg{min-height:1.3em;margin-top:6px;font-weight:700;color:var(--pink)}
.signup.shake .signup__row{animation:shake .4s}
@keyframes shake{25%{translate:-7px 0}50%{translate:6px 0}75%{translate:-3px 0}}
.signup__done{margin-top:clamp(20px,3.4vh,36px);padding:clamp(20px,2.6vw,32px);border-radius:var(--r);background:var(--lime);color:var(--green);max-width:600px;animation:rise .7s var(--ease) both}
.signup__done h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.4rem,5vw,4.2rem);line-height:.86;margin-bottom:8px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

.soon__mascot{position:relative;justify-self:center;width:min(100%,430px,48svh)}
.soon__mascot .badge{left:-30%;top:46%;width:40%}
.soon .spark--1{left:52%;top:15%}
.soon .spark--2{right:6%;top:22%}
.soon .spark--3{left:60%;bottom:26%}
.soon .marquee{position:absolute;left:-3vw;right:-3vw;bottom:clamp(14px,3vh,34px);margin:0}

html:has(.soon),body:has(.soon){height:100%;overflow:hidden;overscroll-behavior:none}
.soon .marquee{padding:clamp(4px,.9svh,9px) 0}
.soon .marquee__track{font-size:clamp(1.5rem,min(4.4vw,6svh),4rem)}

@media (max-width:820px){
  .soon{padding-bottom:clamp(64px,11svh,110px)}
  .soon__main{grid-template-columns:1fr;align-content:center;gap:clamp(4px,1.4svh,16px)}
  .soon__title{font-size:min(18vw,10.5svh);margin-bottom:clamp(8px,1.8svh,18px)}
  .soon__lead{font-size:clamp(.98rem,2.3svh,1.2rem)}
  .soon__mascot{grid-row:1;width:min(40vw,19svh);justify-self:end;margin:0 8% -3svh 0}
  .soon__mascot .badge{left:-56%;top:26%;width:52%}
  .soon__where{font-size:.68rem;padding:6px 10px;letter-spacing:.06em}
  .soon__logo{width:104px}
  .soon__tag{font-size:.78rem;padding:6px 13px 6px 11px}
  .soon .spark--1,.soon .spark--3{display:none}
  .signup input[type=email]{padding-left:14px;font-size:1rem}
  .signup .btn{padding:13px 16px;font-size:.85rem;gap:6px}
  .signup .btn svg{width:16px;height:16px}
  .signup__consent{font-size:.8rem;gap:10px}
  .signup__done{padding:16px 18px}
  .signup__done p{font-size:.95rem}
}
@media (max-height:560px){.soon__mascot{display:none}.soon__main{grid-template-columns:1fr}}
@media (min-width:821px) and (max-height:760px){
  .soon{padding-bottom:clamp(70px,13svh,100px)}
  .soon__title{font-size:min(9.4vw,13.5svh);margin-bottom:clamp(8px,1.8svh,16px)}
  .soon__lead{font-size:1.05rem}
  .soon__tag{font-size:.78rem;padding:6px 13px 6px 11px}
  .signup .btn{padding:13px 22px}
  .signup__consent{font-size:.82rem}
  .signup__msg{margin-top:2px}
  .soon .marquee{bottom:8px}
}

/* po prihlásení: úvodný text je už zbytočný, poďakovanie má miesto a nedotýka sa pásu */
.soon.is-done .soon__lead{display:none}
.soon.is-done .soon__title{margin-bottom:0}
.signup__done{margin-top:clamp(12px,2.4svh,28px);padding:clamp(16px,2.2svh,28px) clamp(18px,2.4vw,32px)}
.signup__done h2{font-size:clamp(2rem,min(5vw,6.5svh),4.2rem)}
.signup__done p{font-size:clamp(.92rem,2.1svh,1.15rem);line-height:1.3}
.soon{padding-bottom:calc(clamp(84px,15svh,160px) + 2.2vw)}
@media (max-width:820px){.soon{padding-bottom:calc(clamp(64px,11svh,110px) + 3vw)}}
@media (min-width:821px) and (max-height:760px){.soon{padding-bottom:calc(clamp(70px,13svh,100px) + 2.2vw)}}

/* ---------- maskot sa nakláňa spoza pravého okraja (nohy ostávajú mimo obrazovky) a zdraví sa ---------- */
.soon__main{grid-template-columns:1fr}
.soon__mascot{--mw:min(72svh,46vw,780px);--tilt:-70deg;--px:75%;--py:0%;position:absolute;z-index:-1;width:var(--mw);top:68%;margin-top:calc(var(--mw)*-1.05);right:calc(var(--pad)*-1 - var(--mw)*.84);justify-self:auto;transform-origin:50% 100%;rotate:var(--tilt);
  animation:peekIn 1.1s cubic-bezier(.3,1.3,.5,1) 3s both,peekSway 3.4s ease-in-out 4.1s infinite alternate}
.soon__mascot .maskot{animation:none}
.soon__mascot .maskot.hop{animation:hop .8s var(--ease)}
.bubble{position:absolute;right:54%;bottom:99%;white-space:nowrap;rotate:calc(var(--tilt)*-1 + 3deg);transform-origin:100% 100%;padding:.5em .85em .42em;border-radius:1.1em 1.1em .25em 1.1em;background:var(--pink);color:var(--green);font-family:var(--display);text-transform:uppercase;font-size:clamp(1.3rem,calc(var(--mw)*.062),2.8rem);line-height:1;box-shadow:0 14px 26px -14px rgba(0,0,0,.55);
  animation:bubbleIn .55s cubic-bezier(.3,1.5,.5,1) 4s both}
.bubble b{font-weight:400}
.bubble::after{content:"";position:absolute;right:.5em;bottom:-.5em;width:.8em;height:.7em;background:inherit;clip-path:polygon(0 0,100% 0,100% 100%)}
.bubble.pop{animation:bubbleIn .55s cubic-bezier(.3,1.5,.5,1) .35s both}
@keyframes peekIn{from{rotate:var(--tilt);translate:var(--px,45%) var(--py,60%)}to{rotate:calc(var(--tilt) - 3deg);translate:0 0}}
@keyframes peekSway{from{rotate:calc(var(--tilt) - 3deg)}to{rotate:calc(var(--tilt) + 4deg)}}
@keyframes bubbleIn{from{scale:0;opacity:0}to{scale:1;opacity:1}}
.soon .spark--2{right:auto;left:60%;top:16%}
@media (max-width:820px){
  .soon__main{align-content:center}
  .soon__mascot{--mw:min(46vw,24svh);--tilt:-72deg;position:relative;top:auto;right:auto;justify-self:end;margin:calc(var(--mw)*-1.05 + 100px) calc(var(--mw)*-.84 - var(--pad)) -62px 0}
  .bubble{font-size:1rem}
  .soon .spark--2{display:none}
}
@media (max-height:560px){.soon__mascot{display:none}}
@media (prefers-reduced-motion:reduce){.soon__mascot,.bubble{animation:none}}

.signup__consent a{text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.signup__consent a:hover{color:var(--lime)}
