/* AETHER prototype. Mobile first; desktop enhancements at the bottom. */
:root{
  --space:#05060F; --deep:#0B0F2A; --panel:rgba(10,11,30,.62); --rose:#E88FB5; --ion:#7FE3F0; --violet:#8B6FF0; --gold:#F3C77A;
  --star:#F2F0FF; --text:rgba(242,240,255,.78); --mute:#8E8BB5; --line:rgba(242,240,255,.14);
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif; --sans:'Golos Text',system-ui,-apple-system,'Segoe UI',sans-serif;
  --pad:20px; --radius:26px; --ease:cubic-bezier(.22,.7,.2,1);
  --safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--space);-webkit-text-size-adjust:100%;overflow-x:hidden}
body{font-family:var(--sans);font-feature-settings:"locl" 0;color:var(--star);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  background:radial-gradient(120% 60% at 50% 0%,#0d1a3a,transparent 60%),radial-gradient(80% 50% at 80% 40%,rgba(90,50,160,.35),transparent 70%),radial-gradient(90% 50% at 20% 75%,rgba(120,60,140,.25),transparent 70%),var(--space)}
body.lock{overflow:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--ion);outline-offset:3px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

#cosmos{position:fixed;left:0;top:0;width:100%;height:100vh;height:100lvh;z-index:0;display:block;opacity:0;transition:opacity 1.2s var(--ease)}
#cosmos.on{opacity:1}
.no-webgl #cosmos{display:none}
main,footer{position:relative;z-index:2}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:99px;font-size:15.5px;font-weight:500;white-space:nowrap;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s}
.btn.glow{background:linear-gradient(120deg,#F5C6DB,#E88FB5 45%,#B79CF2);color:#1A0F2E;box-shadow:0 0 0 6px rgba(232,143,181,.1),0 0 44px rgba(232,143,181,.38)}
.btn.glow:hover{transform:translateY(-1px);box-shadow:0 0 0 8px rgba(232,143,181,.14),0 0 60px rgba(232,143,181,.5)}
.btn.ghost{border:1px solid rgba(242,240,255,.28);background:rgba(5,6,15,.3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.btn.ghost:hover{border-color:rgba(242,240,255,.55)}
.btn.sm{min-height:42px;padding:0 20px;font-size:14px}
.btn svg{width:20px;height:20px;flex:none}

/* header */
header{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px var(--pad);padding-top:calc(14px + env(safe-area-inset-top,0px));text-shadow:0 1px 14px rgba(5,6,15,.85);transition:padding .4s var(--ease)}
header::before{content:"";position:absolute;inset:0 0 -34px;z-index:-1;opacity:0;transition:opacity .4s;background:linear-gradient(rgba(5,6,15,.92),rgba(5,6,15,.55) 62%,rgba(5,6,15,0));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-mask:linear-gradient(#000 60%,transparent);mask:linear-gradient(#000 60%,transparent)}
header.scrolled::before{opacity:1}
.logo{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:21px;letter-spacing:.3em;font-weight:500;min-width:0}
.logo i{font-style:normal;flex:none;display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(242,240,255,.35);border-radius:50%;letter-spacing:0;font-size:20px;position:relative}
.logo i::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid rgba(127,227,240,.3);transform:rotate(-24deg) scaleY(.42)}
.logo span{transition:opacity .35s,max-width .45s var(--ease);max-width:160px;overflow:hidden}
nav.main,.hdr-right .lang,.hdr-right .btn{display:none}
.hdr-right{display:flex;align-items:center;gap:14px}
.burger{width:46px;height:46px;border-radius:50%;border:1px solid rgba(242,240,255,.3);position:relative;background:rgba(5,6,15,.25);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.burger i{position:absolute;left:14px;right:14px;height:1.5px;background:var(--star);transition:transform .4s var(--ease),top .4s var(--ease)}
.burger i:first-child{top:18px}.burger i:last-child{top:26px}
.menu-open .burger i:first-child{top:22px;transform:rotate(45deg)}.menu-open .burger i:last-child{top:22px;transform:rotate(-45deg)}
/* where you are, in the header on phones */
.where{position:absolute;left:50%;top:calc(50% + env(safe-area-inset-top,0px)/2);transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text);opacity:0;pointer-events:none;transition:opacity .4s;white-space:nowrap;max-width:calc(100% - 150px);overflow:hidden}
.where::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ion);box-shadow:0 0 10px var(--ion)}
.where b{font-weight:500;color:var(--star)}
header.scrolled .where{opacity:1}
header.scrolled .logo span{opacity:0;max-width:0}

/* language switch */
.lang{display:inline-flex;gap:2px;padding:3px;border:1px solid rgba(242,240,255,.2);border-radius:99px;font-size:13px}
.lang button{min-width:40px;min-height:30px;border-radius:99px;color:var(--mute)}
.lang button[aria-pressed="true"]{background:rgba(242,240,255,.14);color:var(--star)}

/* full-screen menu on phones */
.menu{position:fixed;inset:0;z-index:25;display:flex;flex-direction:column;justify-content:space-between;gap:30px;padding:calc(100px + env(safe-area-inset-top,0px)) 24px calc(28px + var(--safe-b));background:rgba(5,6,15,.82);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);opacity:0;visibility:hidden;transition:opacity .45s var(--ease),visibility 0s .45s}
.menu-open .menu{opacity:1;visibility:visible;transition:opacity .45s var(--ease)}
.menu nav{display:grid;gap:6px}
.menu nav a{font-family:var(--serif);font-weight:300;font-size:44px;line-height:1.15;display:flex;align-items:baseline;gap:14px;opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.menu nav a small{font-family:var(--sans);font-size:13px;color:var(--mute)}
.menu-open .menu nav a{opacity:1;transform:none}
.menu-open .menu nav a:nth-child(2){transition-delay:.05s}.menu-open .menu nav a:nth-child(3){transition-delay:.1s}.menu-open .menu nav a:nth-child(4){transition-delay:.15s}
.menu .bottom{display:grid;gap:14px}
.menu .row{display:flex;gap:10px}
.menu .row .btn{flex:1}

/* journey map (desktop) */
.rail{display:none}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;align-items:end;text-align:center;padding:0 var(--pad) calc(96px + var(--safe-b))}
.hero>div{text-shadow:0 2px 18px rgba(5,6,15,.9)}
/* logo + name: the brand lives here, so the small header logo waits until you scroll */
header:not(.scrolled) .logo{opacity:0;visibility:hidden}
.logo{transition:opacity .45s var(--ease),visibility .45s}
/* phones: once scrolled the header shows only the mark next to "where you are", so the word never needs to appear */
@media (max-width:999px){.logo span{display:none}}
.brand{display:grid;justify-items:center;gap:6px;margin:0 auto 22px;opacity:0;transform:scale(.94);filter:blur(8px);transition:opacity 1.3s var(--ease),transform 1.3s var(--ease),filter 1.3s var(--ease)}
.ready .brand{opacity:1;transform:none;filter:none}
.brand .mark{width:78px;height:78px;margin-bottom:2px}
.brand .mark svg{width:100%;height:100%;overflow:visible}
.brand .name{font-family:var(--serif);font-weight:400;font-size:clamp(40px,11.5vw,88px);line-height:1;letter-spacing:.32em;padding-left:.32em;background:linear-gradient(180deg,#FFFFFF 20%,#CFC8F5 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 2px 16px rgba(5,6,15,.9))}
.brand .kind{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:11.5px;font-weight:500;letter-spacing:.42em;padding-left:.42em;text-transform:uppercase;color:var(--ion)}
.brand .kind::before,.brand .kind::after{content:"";width:28px;height:1px;background:linear-gradient(90deg,transparent,rgba(127,227,240,.7))}
.brand .kind::after{transform:scaleX(-1)}
/* the clear promise */
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(31px,8.4vw,64px);line-height:1.05;letter-spacing:-.005em;max-width:13em;margin:0 auto;text-wrap:balance}
.hero h1 .w{display:inline-block;opacity:0;filter:blur(10px);transform:translateY(.12em);transition:opacity 1.4s var(--ease),filter 1.4s var(--ease),transform 1.4s var(--ease)}
.ready .hero h1 .w{opacity:1;filter:none;transform:none}
.offer{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:7px;margin:18px auto 0;max-width:56em}
.offer li{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border:1px solid rgba(242,240,255,.18);border-radius:99px;background:rgba(5,6,15,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:12.5px;color:var(--star);white-space:nowrap}
.offer li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--rose);box-shadow:0 0 8px var(--rose)}
.offer li:nth-child(2)::before{background:var(--ion);box-shadow:0 0 8px var(--ion)}
.offer li:nth-child(3)::before{background:var(--violet);box-shadow:0 0 8px var(--violet)}

.hero .offer{opacity:0;transform:translateY(10px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.hero .offer{transition-delay:1.1s}
.hero .acts{display:grid;gap:12px;margin:24px auto 0;max-width:420px;opacity:0;transform:translateY(10px);transition:opacity 1.2s 1.5s var(--ease),transform 1.2s 1.5s var(--ease)}
.ready .hero .offer,.ready .hero .acts{opacity:1;transform:none}
.dive{display:none}
.lens{display:none}

/* sections */
section{position:relative;padding:110px var(--pad) 90px}
.depth{font-size:13.5px;color:var(--mute);margin-bottom:14px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}
.depth b{font-family:var(--serif);font-style:italic;font-weight:400;font-size:21px;color:var(--ion)}
h2{font-family:var(--serif);font-weight:300;font-size:clamp(40px,10.5vw,92px);line-height:1;max-width:12em;text-wrap:balance}
.intro{max-width:32em;color:var(--text);margin-top:18px}
.whisper{display:none}

/* portfolio: swipe carousel on phones */
.reel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);margin:14px calc(var(--pad) * -1) -30px;padding:30px var(--pad) 56px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.reel::-webkit-scrollbar{display:none}
.card{flex:0 0 82%;scroll-snap-align:center;border-radius:28px;padding:1px;background:linear-gradient(150deg,rgba(232,143,181,.55),rgba(139,111,240,.2) 40%,rgba(127,227,240,.45));box-shadow:0 14px 34px rgba(0,0,0,.4);text-align:left;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.card>div{height:100%;border-radius:27px;padding:10px;background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column}
.card .shot{border-radius:19px;overflow:hidden;background:#0b0c1e;aspect-ratio:4/4.6}
.card img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 1.2s var(--ease)}
.card .c{padding:14px 8px 6px;display:grid;gap:2px}
.card h3{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.1}
.card .meta{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;color:var(--mute)}
.card .meta em{font-style:normal;color:var(--ion);white-space:nowrap}
.dots{display:flex;justify-content:center;gap:8px;margin-top:6px}
.dots i{width:7px;height:7px;border-radius:50%;background:rgba(242,240,255,.25);transition:width .4s var(--ease),background .4s}
.dots i.on{width:22px;border-radius:5px;background:var(--ion)}

/* packages */
.packs{display:grid;gap:16px;margin-top:40px}
.pack{border-radius:var(--radius);padding:1px;background:linear-gradient(160deg,rgba(127,227,240,.4),rgba(139,111,240,.18) 45%,rgba(232,143,181,.35))}
.pack>div{border-radius:calc(var(--radius) - 1px);padding:26px 22px 24px;background:rgba(9,10,28,.7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);height:100%;display:flex;flex-direction:column;gap:14px}
.pack .ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:rgba(127,227,240,.1);border:1px solid rgba(127,227,240,.3)}
.pack .ico svg{width:24px;height:24px;stroke:var(--ion)}
.pack h3{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.05}
.pack p{color:var(--text)}
.pack ul{list-style:none;display:grid;gap:9px;margin:4px 0 8px}
.pack li{display:flex;gap:10px;font-size:15px;color:var(--star)}
.pack li::before{content:"";flex:none;width:18px;height:18px;margin-top:3px;border-radius:50%;background:radial-gradient(circle,var(--ion) 0 3px,transparent 4px),rgba(127,227,240,.12);box-shadow:inset 0 0 0 1px rgba(127,227,240,.35)}
.pack .btn{margin-top:auto;width:100%;white-space:normal;text-align:center;line-height:1.3;padding:12px 18px}
.unsure{margin-top:26px;color:var(--text);text-align:center}
.unsure a{color:var(--ion);border-bottom:1px solid rgba(127,227,240,.4);white-space:nowrap}

/* process */
.descent{position:relative;margin-top:50px;max-width:1080px;padding-left:40px}
.descent::before{content:"";position:absolute;left:10px;top:6px;bottom:6px;width:1px;background:linear-gradient(var(--ion),rgba(139,111,240,.6),rgba(243,199,122,.6))}
.stop{position:relative;margin-bottom:44px}
.stop:last-child{margin-bottom:0}
.stop .o{position:absolute;left:-41px;top:12px;width:22px;height:22px;border-radius:50%;background:var(--space);border:1px solid var(--ion);box-shadow:0 0 22px rgba(127,227,240,.6)}
.stop .o::after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--ion)}
.stop:nth-child(3) .o{border-color:var(--violet);box-shadow:0 0 22px rgba(139,111,240,.7)}.stop:nth-child(3) .o::after{background:var(--violet)}
.stop:nth-child(4) .o{border-color:var(--gold);box-shadow:0 0 22px rgba(243,199,122,.7)}.stop:nth-child(4) .o::after{background:var(--gold)}
.stop .t{text-shadow:0 2px 20px rgba(5,6,15,.9)}
.stop h3{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.1;margin-bottom:6px}
.stop h3 small{font-family:var(--sans);font-size:13px;color:var(--mute);font-weight:400;margin-right:10px;vertical-align:middle}
.stop p{color:var(--text)}

/* contact */
.contact{text-align:left;padding-bottom:120px}
.panel{margin-top:36px;padding:22px 18px;border-radius:30px;background:rgba(10,11,30,.62);border:1px solid rgba(243,199,122,.22);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 0 90px rgba(243,199,122,.07)}
form{display:grid;gap:16px}
.fld{display:grid;gap:8px;font-size:14px;color:var(--mute)}
.fld input,.fld textarea{width:100%;font:inherit;font-size:16px;color:var(--star);padding:14px 16px;border-radius:16px;background:rgba(5,6,15,.62);border:1px solid rgba(242,240,255,.12);outline:none;transition:border-color .25s,box-shadow .25s}
.fld textarea{min-height:110px;resize:vertical}
.fld input::placeholder,.fld textarea::placeholder{color:rgba(242,240,255,.35)}
.fld input:focus,.fld textarea:focus{border-color:rgba(127,227,240,.6);box-shadow:0 0 0 4px rgba(127,227,240,.12)}
.fld.bad input{border-color:#ff8fa3}
.err{display:none;font-size:13px;color:#ffb3c1}
.fld.bad .err{display:block}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{min-height:42px;padding:0 16px;border-radius:99px;border:1px solid rgba(242,240,255,.2);font-size:14.5px;color:rgba(242,240,255,.85);transition:background .25s,border-color .25s}
.chips button[aria-pressed="true"]{background:rgba(232,143,181,.16);border-color:var(--rose);color:var(--star)}
.form-foot{display:grid;gap:12px;margin-top:4px}
.alt{display:flex;gap:8px;flex-wrap:wrap}
.alt a,.alt button{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:99px;border:1px solid rgba(242,240,255,.22);font-size:14px}
.alt svg{width:18px;height:18px}
.done{display:none;text-align:center;padding:30px 10px}
.done .mark{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff,#E88FB5 35%,#6a3a8a 80%);box-shadow:0 0 50px rgba(232,143,181,.45)}
.done .mark svg{width:28px;height:28px;stroke:#1A0F2E}
.done h3{font-family:var(--serif);font-weight:400;font-size:34px;margin-bottom:8px;padding-right:0!important}
.done p{color:var(--text);margin-bottom:22px}
.sent form{display:none}.sent .done{display:block}

/* sending, privacy note, anti-spam field */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.fmsg:empty{display:none}
.fmsg,.book .msg{font-size:14px;color:#ffb3c1;line-height:1.5}
.fmsg a,.book .msg a{color:var(--star);border-bottom:1px solid rgba(242,240,255,.4)}
.consent{font-size:12.5px;color:var(--mute);line-height:1.5}
.consent a{color:var(--text);border-bottom:1px solid rgba(242,240,255,.3)}
.book .consent{margin-top:12px;text-align:center}
.btn.busy{opacity:.75;cursor:progress}

footer{padding:34px var(--pad) calc(110px + var(--safe-b));display:grid;gap:10px;font-size:14px;color:var(--mute)}
footer a{color:var(--text)}
.f-contacts,.f-legal{display:flex;flex-wrap:wrap;gap:6px 20px}
.f-legal a{color:var(--mute)}
.f-legal a:hover,.f-contacts a:hover{color:var(--star)}
.nojs{position:relative;z-index:3;padding:20px;text-align:center;background:#0b0c1e;color:var(--star)}
.nojs a{color:var(--ion)}

/* sticky contact bar on phones */
.bar{position:fixed;left:12px;right:12px;bottom:calc(12px + var(--safe-b));z-index:20;display:flex;gap:10px;padding:8px;border-radius:99px;background:rgba(8,9,24,.72);border:1px solid rgba(242,240,255,.14);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 20px 50px rgba(0,0,0,.45);transform:translateY(140%);transition:transform .55s var(--ease)}
.bar.show{transform:none}
.bar .btn{flex:1;min-height:48px}
.bar .round{flex:none;width:48px;min-height:48px;padding:0;border-radius:50%}
.menu-open .bar,.sheet-open .bar{transform:translateY(140%)}

/* sheets (project viewer, booking) */
.sheet{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;visibility:hidden;pointer-events:none}
.sheet.open{visibility:visible;pointer-events:auto}
.sheet .scrim{position:absolute;inset:0;background:rgba(3,4,12,.66);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .45s var(--ease)}
.sheet.open .scrim{opacity:1}
.sheet .box{position:relative;width:100%;max-height:92vh;max-height:92dvh;overflow:auto;overscroll-behavior:contain;border-radius:28px 28px 0 0;background:linear-gradient(180deg,#0f1030,#080918);border:1px solid rgba(242,240,255,.12);border-bottom:0;box-shadow:0 -30px 80px rgba(0,0,0,.5);padding:10px 18px calc(24px + var(--safe-b));transform:translateY(100%);transition:transform .55s var(--ease)}
.sheet.open .box{transform:none}
.sheet .handle{display:block;width:44px;height:5px;border-radius:5px;background:rgba(242,240,255,.25);margin:4px auto 14px;touch-action:none}
.sheet .x{position:absolute;right:12px;top:12px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(242,240,255,.08)}
.sheet .x svg{width:18px;height:18px;stroke:var(--star)}
.sheet h3{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.05;padding-right:50px}
.sheet .sub{color:var(--text);margin-top:6px}

/* "example design" label on the portfolio cards */
.card .ex{justify-self:start;margin-bottom:6px;padding:3px 10px;border-radius:99px;font-size:11.5px;font-weight:500;letter-spacing:.03em;color:var(--ion);background:rgba(127,227,240,.08);border:1px solid rgba(127,227,240,.3)}

/* project viewer: only the clip; the close button sits above it (phones) or beside it (computers) */
.sheet.clip{align-items:center;padding:12px}
.sheet.clip .box{width:min(1180px,100%);max-height:none;overflow:visible;padding:56px 0 0;border:0;border-radius:0;background:none;box-shadow:none;transform:translateY(24px) scale(.97);opacity:0;transition:transform .5s var(--ease),opacity .4s}
.sheet.clip.open .box{transform:none;opacity:1}
.sheet.clip video{display:block;width:100%;height:auto;max-height:calc(100dvh - 80px);object-fit:contain;border-radius:20px;border:1px solid rgba(242,240,255,.14);background:#05060F;box-shadow:0 30px 90px rgba(0,0,0,.6)}
.sheet.clip.portrait .box{width:auto;max-width:100%}
.sheet.clip.portrait video{width:auto;height:calc(100dvh - 80px);max-width:100%}
.sheet.clip .x{z-index:2;top:0;right:0;background:rgba(5,6,15,.7);border:1px solid rgba(242,240,255,.22);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
@media (min-width:1000px){
  .sheet.clip .box{padding:0;width:min(1180px,calc(100% - 140px))}
  .sheet.clip video{max-height:calc(100dvh - 24px)}
  .sheet.clip.portrait video{height:calc(100dvh - 24px)}
  .sheet.clip .x{right:-58px}
}

/* booking */
.book-step{margin-top:20px}
.book-step h4{font-size:14px;font-weight:500;color:var(--mute);margin-bottom:10px}
.days{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:2px 18px 6px;scroll-snap-type:x proximity;scroll-padding-inline:18px}
.days::-webkit-scrollbar{display:none}
.days button{flex:0 0 64px;scroll-snap-align:start;min-height:74px;border-radius:18px;border:1px solid rgba(242,240,255,.16);display:grid;place-content:center;gap:2px;text-align:center;transition:background .25s,border-color .25s}
.days button b{font-family:var(--serif);font-size:26px;font-weight:400;line-height:1}
.days button small{font-size:12px;color:var(--mute)}
.days button[aria-pressed="true"]{background:rgba(127,227,240,.14);border-color:var(--ion)}
.times{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.times button{min-height:46px;border-radius:14px;border:1px solid rgba(242,240,255,.16);font-size:15px;transition:background .25s,border-color .25s}
.times button:disabled{opacity:.3;text-decoration:line-through;cursor:not-allowed}
.times button[aria-pressed="true"]{background:rgba(127,227,240,.14);border-color:var(--ion)}
.book-grid{display:grid;gap:12px}
.book .msg{min-height:20px;font-size:13.5px;color:#ffb3c1;margin-top:10px}
.book .btn.glow{width:100%;margin-top:6px}
.book.sent .book-form{display:none}.book .done{padding:40px 10px 20px}.book.sent .done{display:block}

/* gentle reveal as sections arrive */
.rv{opacity:0;transform:translateY(22px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.rv.in{opacity:1;transform:none}

@media (max-width:999px){
  .card>div{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(12,13,34,.86)}
  .pack>div{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(10,11,30,.84)}
  .panel{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(10,11,30,.8)}
}

/* ---------- tablet ---------- */
@media (min-width:640px){
  :root{--pad:36px}
  .hero .acts{display:flex;justify-content:center;max-width:none}
  .card{flex-basis:46%}
  .packs{grid-template-columns:1fr 1fr}
  .panel{padding:34px}
  form{grid-template-columns:1fr 1fr}
  .fld.w,.form-foot,.chips-fld{grid-column:1 / -1}
  .form-foot{display:flex;justify-content:space-between;align-items:center}
  .sheet{align-items:center}
  .sheet .box{width:min(880px,94vw);border-radius:28px;border-bottom:1px solid rgba(242,240,255,.12);transform:translateY(40px) scale(.98);opacity:0;transition:transform .5s var(--ease),opacity .4s;padding:26px 30px 30px}
  .sheet.open .box{transform:none;opacity:1}
  .sheet .handle{display:none}
  .book-box{width:min(620px,94vw)!important}
  .days{margin:0;padding:2px 0 6px}
  .times{grid-template-columns:repeat(4,1fr)}
  .book-grid{grid-template-columns:1fr 1fr}
}

/* ---------- desktop ---------- */
@media (min-width:1000px){
  :root{--pad:52px}
  body{font-size:17px}
  header{padding:24px var(--pad)}
  header.scrolled{padding:14px var(--pad)}
  .logo{font-size:26px;letter-spacing:.32em}.logo i{width:44px;height:44px;font-size:24px}
  header.scrolled .logo span{opacity:1;max-width:160px}
  .where{display:none}
  nav.main{display:flex;gap:34px;font-size:15px;color:rgba(242,240,255,.8)}
  nav.main a{position:relative;padding:6px 0}
  nav.main a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ion);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
  nav.main a:hover::after,nav.main a.on::after{transform:none}
  .hdr-right .lang,.hdr-right .btn{display:inline-flex}
  .burger,.menu,.bar{display:none}

  .rail{display:grid;position:fixed;left:var(--pad);top:50%;transform:translateY(-50%);z-index:5;gap:24px;padding-left:22px}
  .rail::before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:1px;background:linear-gradient(rgba(127,227,240,.8),rgba(139,111,240,.45),rgba(243,199,122,.35))}
  .st{position:relative;font-size:13px;color:var(--mute);line-height:1.3;text-align:left;transition:color .4s}
  .st::before{content:"";position:absolute;left:-22px;top:4px;width:9px;height:9px;border-radius:50%;border:1px solid rgba(242,240,255,.4);background:var(--space);transition:background .4s,box-shadow .4s,border-color .4s}
  .st small{display:block;font-size:12px;opacity:.7;transition:opacity .3s}
  .st b{display:block;font-weight:400;font-size:0;line-height:1;opacity:0;transition:font-size .45s var(--ease),opacity .45s,margin .45s}
  .st:hover{color:var(--star)}
  .st.on{color:var(--star)}
  .st.on::before{background:var(--ion);border-color:var(--ion);box-shadow:0 0 14px var(--ion)}
  .st.on small{display:none}
  .st.on b{font-size:22px;opacity:1;margin-top:6px;max-width:150px;line-height:1.12}

  .hero{align-items:center;padding:0 var(--pad) 0}
  .hero>div{padding-top:120px}
  .brand{gap:8px;margin-bottom:28px}
  .brand .mark{width:96px;height:96px}
  .brand .name{font-size:clamp(64px,6.2vw,96px)}
  .brand .kind{font-size:12.5px;margin-top:10px}
  .brand .kind::before,.brand .kind::after{width:44px}
  .hero h1{font-size:clamp(44px,4.3vw,66px)}
  .offer{margin-top:24px;gap:10px}
  .offer li{font-size:14.5px;padding:8px 16px;gap:8px}
  .hero .acts{margin-top:30px;gap:14px}
  .dive{display:grid;justify-items:center;gap:10px;margin-top:34px;font-size:14px;color:var(--mute);opacity:0;transition:opacity 1.2s 1.9s}
  .ready .dive{opacity:1}
  .dive span{width:24px;height:38px;border-radius:14px;border:1px solid rgba(242,240,255,.4);position:relative}
  .dive span::after{content:"";position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--ion);animation:dive 2.4s var(--ease) infinite}
  @keyframes dive{0%{transform:translateY(0);opacity:0}30%{opacity:1}80%{transform:translateY(12px);opacity:0}100%{opacity:0}}
  .lens{display:flex;position:absolute;right:var(--pad);bottom:90px;align-items:center;gap:12px;font-family:var(--serif);font-style:italic;font-size:19px;color:var(--mute)}
  .lens b{width:34px;height:34px;border-radius:50%;border:1px solid rgba(127,227,240,.5);display:grid;place-items:center}
  .lens b::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--ion);box-shadow:0 0 12px var(--ion)}

  section{padding:170px var(--pad) 150px 250px}
  .depth{font-size:15px;margin-bottom:16px}.depth b{font-size:24px}
  h2{font-size:clamp(50px,5.6vw,92px)}
  .intro{margin-top:22px}
  .whisper{display:block;position:absolute;right:420px;top:96px;font-family:var(--serif);font-style:italic;font-size:18px;color:rgba(242,240,255,.6)}

  .reel{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;overflow:visible;margin:70px 0 0;padding:0;align-items:start}
  .reel .col{display:grid;gap:34px}
  .reel .col:nth-child(2){margin-top:120px}.reel .col:nth-child(3){margin-top:50px}
  .card{flex:none;box-shadow:0 26px 70px rgba(0,0,0,.45)}
  .card .shot{aspect-ratio:4/3.1}
  .card.tall .shot{aspect-ratio:3/4}
  .card:hover{transform:translateY(-6px);box-shadow:0 36px 90px rgba(0,0,0,.55),0 0 60px rgba(139,111,240,.18)}
  .card:hover img{transform:scale(1.03)}
  .dots{display:none}

  .packs{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:60px}
  .pack>div{padding:30px 28px 28px}
  .unsure{text-align:left;margin-top:30px}

  .descent{margin-top:80px;padding-left:0}
  .descent::before{left:50%}
  .stop{display:grid;grid-template-columns:1fr 80px 1fr;align-items:center;margin-bottom:64px}
  .stop .o{position:relative;left:auto;top:auto;justify-self:center;grid-column:2;grid-row:1}
  .stop .t{max-width:22em}
  .stop:nth-child(odd) .t{grid-column:1;text-align:right;justify-self:end}
  .stop:nth-child(even) .t{grid-column:3}
  .stop h3{font-size:38px}

  .contact{text-align:center;padding-left:var(--pad)}
  .contact .depth{justify-content:center}
  .contact h2,.contact .intro{margin-left:auto;margin-right:auto}
  .panel{max-width:780px;margin:56px auto 0;text-align:left;padding:40px}

  footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:40px var(--pad) 50px}
  .sheet .box{padding:30px 36px 34px}
}

@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .rv,.hero h1 .w,.brand,.hero .offer,.hero .acts{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}
}
