:root{
  --bg:#02050b; --bg2:#060c18; --ink:#e9fbff; --mute:#8fa6b4;
  --cy:#4de1ff; --vi:#7c5cff; --gold:#ffb347;
  --line:rgba(120,220,255,.16); --glass:rgba(8,16,30,.55);
  --f-d:"Space Grotesk",system-ui,sans-serif; --f-b:"Manrope",system-ui,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1); --pad:clamp(1.2rem,6vw,5rem);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--ink);font-family:var(--f-b);line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}
body.is-loading{overflow:hidden}
img,video,canvas{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
h1,h2,h3{font-family:var(--f-d);font-weight:600;line-height:1.02;letter-spacing:-.02em}
::selection{background:var(--cy);color:#001018}

/* ---------- loader ---------- */
#gate{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;transition:opacity .9s var(--ease),visibility .9s}
#gate.done{opacity:0;visibility:hidden}
.gate-mark{width:clamp(90px,14vw,140px);height:auto;filter:drop-shadow(0 0 22px rgba(77,225,255,.55));animation:pulse 2.4s ease-in-out infinite}
.gate-load{font:500 .8rem var(--f-d);letter-spacing:.3em;color:var(--mute)}
@keyframes pulse{50%{filter:drop-shadow(0 0 38px rgba(255,179,71,.6))}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.6rem;border-radius:999px;font:600 .95rem var(--f-d);letter-spacing:.01em;transition:transform .4s var(--ease),box-shadow .4s,background .4s,border-color .4s;will-change:transform}
.btn-glow{background:linear-gradient(120deg,var(--cy),#9be9ff);color:#00121b;box-shadow:0 0 0 1px rgba(77,225,255,.5),0 8px 40px -8px rgba(77,225,255,.65)}
.btn-glow:hover{box-shadow:0 0 0 1px #fff,0 10px 56px -6px rgba(77,225,255,.95)}
.btn-ghost{border:1px solid var(--line);background:rgba(255,255,255,.04);backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:var(--cy);background:rgba(77,225,255,.1)}

/* ---------- cursor ---------- */
.cursor{position:fixed;left:0;top:0;width:340px;height:340px;margin:-170px 0 0 -170px;border-radius:50%;pointer-events:none;z-index:5;background:radial-gradient(circle,rgba(77,225,255,.12),transparent 65%);mix-blend-mode:screen;opacity:0;transition:opacity .6s}
.cursor.on{opacity:1}
@media (hover:none){.cursor{display:none}}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;gap:1.4rem;padding:1.1rem clamp(1rem,4vw,3rem);transition:transform .6s var(--ease),background .4s,backdrop-filter .4s}
.nav.solid{background:rgba(2,5,11,.62);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav.hide{transform:translateY(-110%)}
.progress{position:absolute;left:0;right:0;bottom:-1px;height:2px;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,var(--gold),var(--cy));box-shadow:0 0 12px var(--cy)}
.brand{margin-right:auto}
.brand img{height:26px;width:auto}
.nav-links{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.2rem);font:500 .92rem var(--f-d)}
.nav-links a{color:var(--mute);transition:color .3s}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--ink)}
.nav-cta{color:var(--ink)!important;border:1px solid var(--line);padding:.55rem 1.1rem;border-radius:999px}
.nav-cta:hover{border-color:var(--cy)}
.burger{display:none;width:34px;height:34px;position:relative}
.burger span{position:absolute;left:6px;right:6px;height:2px;background:var(--ink);transition:transform .3s}
.burger span:first-child{top:12px}.burger span:last-child{top:20px}
.burger[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}

/* ---------- shared ---------- */
.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.eyebrow{font:500 .78rem var(--f-d);letter-spacing:.32em;text-transform:uppercase;color:var(--cy)}
.lede{color:#b8cbd6;font-size:clamp(1rem,1.5vw,1.2rem);max-width:34rem}
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.split .w>span{display:inline-block;will-change:transform}
.sec-head{display:grid;gap:1rem}
.sec-head h2{font-size:clamp(2.1rem,4.6vw,4rem);text-wrap:balance}
.tags{display:flex;gap:.4rem;flex-wrap:wrap}
.tags li{font:500 .72rem var(--f-d);letter-spacing:.08em;padding:.3rem .7rem;border:1px solid var(--line);border-radius:999px;color:var(--cy)}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.hero-shade{position:absolute;inset:0;background:
  radial-gradient(ellipse 34% 40% at 50% 46%,rgba(2,5,11,.9),rgba(2,5,11,.55) 60%,transparent 100%),
  linear-gradient(to top,var(--bg) 2%,rgba(2,5,11,.78) 32%,transparent 62%),
  linear-gradient(to bottom,rgba(2,5,11,.7),transparent 22%)}
#logoFx{position:absolute;inset:0;width:100%;height:100%}
.hero-copy{position:absolute;left:0;right:0;bottom:clamp(2.6rem,9vh,6rem);padding:0 var(--pad);display:grid;gap:1.2rem;justify-items:center;text-align:center}
.hero h1{font-size:clamp(2.3rem,6.4vw,5.8rem);max-width:15ch;text-wrap:balance}
.hero .lede{margin:0 auto}
.hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;justify-content:center;margin-top:.4rem}
.scroll-cue{position:absolute;right:clamp(1rem,3vw,2.4rem);bottom:2.2rem;display:grid;gap:.6rem;justify-items:center;font:500 .66rem var(--f-d);letter-spacing:.3em;text-transform:uppercase;color:var(--mute);writing-mode:vertical-rl}
.scroll-cue i{width:1px;height:54px;background:linear-gradient(var(--cy),transparent);animation:cue 2s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- process: scrolling steps + sticky orbit ---------- */
.process{position:relative;background:
  radial-gradient(ellipse 60% 40% at 80% 20%,rgba(77,225,255,.07),transparent 70%),
  repeating-linear-gradient(90deg,rgba(120,220,255,.03) 0 1px,transparent 1px 90px),
  repeating-linear-gradient(0deg,rgba(120,220,255,.03) 0 1px,transparent 1px 90px),var(--bg)}
.proc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(1rem,3vw,3rem);padding:0 var(--pad)}
.proc-copy{padding:clamp(5rem,12vh,8rem) 0 14vh}
.proc-steps{margin-top:clamp(2rem,6vh,4rem)}
.proc-step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;gap:.5rem;padding-left:1.6rem;border-left:1px solid var(--line);opacity:.25;transition:opacity .7s var(--ease),border-color .7s}
.proc-step.on{opacity:1;border-color:var(--cy);box-shadow:-1px 0 0 var(--cy),-12px 0 40px -24px var(--cy)}
.proc-step .ic{width:46px;height:46px;fill:none;stroke:var(--cy);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-bottom:.8rem;filter:drop-shadow(0 0 8px rgba(77,225,255,.5));transition:transform .7s var(--ease)}
.proc-step.on .ic{transform:scale(1.15) translateX(4px)}
.proc-step .n{font:500 .76rem var(--f-d);letter-spacing:.3em;color:var(--gold)}
.proc-step h3{font-size:clamp(2.2rem,4.4vw,3.8rem)}
.proc-step p{color:#b8cbd6;max-width:30rem}
.proc-visual{position:sticky;top:0;height:100vh;height:100svh}
.proc-visual canvas{width:100%;height:100%}

/* ---------- work: normal scrolling rows ---------- */
.work{padding:clamp(4rem,10vh,7rem) var(--pad) clamp(3rem,8vh,6rem);background:radial-gradient(ellipse 50% 30% at 15% 20%,rgba(124,92,255,.09),transparent 70%),var(--bg)}
.wk-head{margin-bottom:clamp(2.5rem,7vh,5rem)}
.proj{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(1.4rem,4vw,4.5rem);align-items:center;margin-bottom:clamp(4rem,12vh,8rem)}
.proj.flip{grid-template-columns:1fr 1.35fr}
.proj.flip .proj-media{order:2}
.proj-media{position:relative;aspect-ratio:16/10;border-radius:22px;border:1px solid rgba(120,220,255,.3);box-shadow:0 0 0 6px rgba(4,10,20,.8),0 40px 100px -30px rgba(77,225,255,.35);overflow:hidden;background:#000;will-change:transform}
.proj-media img,.proj-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.proj-info{display:grid;gap:.9rem;justify-items:start}
.proj-info .n{font:500 .76rem var(--f-d);letter-spacing:.3em;color:var(--gold)}
.proj-info h3{font-size:clamp(1.9rem,3.6vw,3.2rem)}
.proj-info p{color:#b8cbd6;max-width:26rem}

/* ---------- cta ---------- */
.cta{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
.cta-bg{object-position:70% 50%}
.cta-shade{position:absolute;inset:0;background:linear-gradient(to right,rgba(2,5,11,.9) 10%,rgba(2,5,11,.35) 60%,transparent),linear-gradient(to top,var(--bg),transparent 25%),linear-gradient(to bottom,var(--bg),transparent 18%)}
.cta-inner{position:relative;padding:8rem var(--pad);display:grid;gap:1.4rem;max-width:46rem}
.cta h2{font-size:clamp(2.2rem,5.6vw,5rem);text-wrap:balance}
.cta-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.6rem}
.contact-list{display:flex;gap:1.6rem;flex-wrap:wrap;font:500 1.05rem var(--f-d)}
.contact-list a{border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color .3s,color .3s}
.contact-list a:hover{border-color:var(--cy);color:var(--cy)}
.foot{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;justify-content:space-between;padding:1.6rem var(--pad);border-top:1px solid var(--line);color:var(--mute);font-size:.85rem}
.foot img{height:22px;width:auto}
.foot a:hover{color:var(--cy)}

/* ---------- services page ---------- */
.sv-hero{position:relative;min-height:78vh;display:flex;align-items:flex-end;overflow:hidden}
.sv-shade{position:absolute;inset:0;background:linear-gradient(to top,var(--bg) 4%,rgba(2,5,11,.5) 50%,rgba(2,5,11,.7))}
.sv-hero-inner{position:relative;padding:9rem var(--pad) 4rem;display:grid;gap:1.1rem}
.sv-hero h1{font-size:clamp(2.6rem,7vw,6rem)}
.sv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1.1rem;padding:2rem var(--pad) 4rem}
.sv-card{padding:1.8rem;border:1px solid var(--line);border-radius:22px;background:linear-gradient(160deg,rgba(77,225,255,.07),rgba(8,16,30,.6));backdrop-filter:blur(10px);display:grid;gap:.8rem;align-content:start;transition:border-color .4s,box-shadow .4s}
.sv-card:hover{border-color:rgba(77,225,255,.6);box-shadow:0 30px 80px -30px rgba(77,225,255,.45)}
.sv-card span{font:500 .75rem var(--f-d);letter-spacing:.3em;color:var(--cy)}
.sv-card h2{font-size:1.7rem}
.sv-card p{color:#b8cbd6}
.sv-pack{padding:3rem var(--pad) 5rem;background:radial-gradient(ellipse at 50% 0,rgba(124,92,255,.14),transparent 60%)}
.sv-pack-head{display:grid;gap:.8rem;margin-bottom:2rem}
.sv-pack h2{font-size:clamp(2rem,4.6vw,3.8rem);max-width:16ch}
.packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.1rem}
.pack{position:relative;padding:2rem;border:1px solid var(--line);border-radius:22px;background:var(--glass);backdrop-filter:blur(10px)}
.pack.hot{border-color:rgba(77,225,255,.65);box-shadow:0 0 70px -20px rgba(77,225,255,.5)}
.pack h3{font-size:2rem}
.pk-for{color:var(--cy);font:500 .8rem var(--f-d);letter-spacing:.2em;text-transform:uppercase;margin:.3rem 0 1.2rem}
.pack li{padding:.55rem 0;border-top:1px solid var(--line);color:#c4d6df}
.badge{position:absolute;top:-.7rem;right:1.4rem;background:var(--cy);color:#00121b;font:700 .7rem var(--f-d);letter-spacing:.12em;text-transform:uppercase;padding:.3rem .8rem;border-radius:999px}
.sv-cta{padding:6rem var(--pad) 7rem;display:grid;gap:1.3rem;justify-items:start}
.sv-cta h2{font-size:clamp(2.2rem,5vw,4.4rem);max-width:16ch}
body.sub .nav{position:fixed}

/* ---------- tablet / phone ---------- */
@media (max-width:1000px){
  .proj,.proj.flip{grid-template-columns:1fr}
  .proj.flip .proj-media{order:0}
}
@media (max-width:860px){
  .nav-links{position:fixed;inset:0;flex-direction:column;justify-content:center;gap:1.6rem;background:rgba(2,5,11,.96);backdrop-filter:blur(14px);font-size:1.6rem;opacity:0;visibility:hidden;transition:.4s}
  .nav-links.open{opacity:1;visibility:visible}
  .burger{display:block;z-index:2}
  .hero h1{font-size:clamp(2.1rem,10vw,3.2rem)}
  .scroll-cue{display:none}
  /* process: orbit sticks to the top, steps scroll beneath it */
  .proc-grid{grid-template-columns:1fr;gap:0}
  .proc-visual{order:-1;position:sticky;top:3.6rem;height:40svh;z-index:2;margin:0 calc(var(--pad) * -1);background:linear-gradient(var(--bg) 78%,transparent)}
  .proc-copy{padding-top:1rem}
  .proc-step{min-height:44vh;padding-left:1.1rem}
  .proc-step h3{font-size:2.1rem}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
}

/* ---------- home: services overview, why, packages, faq ---------- */
.svc,.why,.hp,.faq{padding:clamp(4rem,10vh,7rem) var(--pad)}
.svc{background:radial-gradient(ellipse 50% 40% at 85% 0,rgba(77,225,255,.07),transparent 70%),var(--bg)}
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem;margin-top:clamp(2rem,5vh,3.4rem)}
.svc-card{position:relative;display:grid;gap:.6rem;align-content:start;padding:1.6rem 1.4rem;border:1px solid var(--line);border-radius:20px;background:linear-gradient(165deg,rgba(77,225,255,.06),rgba(8,16,30,.65));backdrop-filter:blur(8px);transition:border-color .4s,box-shadow .4s,transform .5s var(--ease)}
.svc-card:hover{border-color:rgba(77,225,255,.6);box-shadow:0 30px 80px -34px rgba(77,225,255,.5);transform:translateY(-4px)}
.svc-card .ic{width:40px;height:40px;fill:none;stroke:var(--cy);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px rgba(77,225,255,.45));margin-bottom:.4rem}
.svc-card .n{font:500 .72rem var(--f-d);letter-spacing:.3em;color:var(--gold)}
.svc-card h3{font-size:1.45rem}
.svc-card p{color:#aebfca;font-size:.92rem;line-height:1.55}
.svc-card .more{margin-top:.4rem;font:600 .8rem var(--f-d);letter-spacing:.06em;color:var(--cy);opacity:.75;transition:opacity .3s,letter-spacing .3s}
.svc-card:hover .more{opacity:1;letter-spacing:.12em}
.why{background:linear-gradient(var(--bg),#04101c 60%,var(--bg))}
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1.2rem;margin-top:clamp(2rem,5vh,3.4rem)}
.why-item{padding:1.6rem 0 0;border-top:1px solid var(--line);position:relative}
.why-item::before{content:"";position:absolute;top:-1px;left:0;width:48px;height:2px;background:linear-gradient(90deg,var(--gold),var(--cy));box-shadow:0 0 12px var(--cy)}
.why-item .n{font:500 .72rem var(--f-d);letter-spacing:.3em;color:var(--gold)}
.why-item h3{font-size:1.5rem;margin:.5rem 0 .6rem}
.why-item p{color:#aebfca;font-size:.95rem}
.hp{background:radial-gradient(ellipse at 50% 0,rgba(124,92,255,.12),transparent 60%),var(--bg)}
.hp .packs{margin-top:clamp(2rem,5vh,3.4rem)}
.hp-more{margin-top:2rem}
.faq-list{margin-top:clamp(2rem,5vh,3.4rem);max-width:56rem;display:grid;gap:.7rem}
.faq details{border:1px solid var(--line);border-radius:16px;background:var(--glass);transition:border-color .3s,background .3s}
.faq details[open]{border-color:rgba(77,225,255,.5);background:rgba(8,20,36,.7)}
.faq summary{cursor:pointer;list-style:none;padding:1.15rem 3.2rem 1.15rem 1.4rem;font:600 1.05rem var(--f-d);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:1.4rem;top:50%;width:10px;height:10px;border-right:2px solid var(--cy);border-bottom:2px solid var(--cy);transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease)}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq details p{padding:0 1.4rem 1.3rem;color:#b8cbd6;max-width:46rem}

/* ---------- contact page ---------- */
.ct-hero{position:relative;min-height:64vh;display:flex;align-items:flex-end;overflow:hidden}
.ct-hero .bg{object-position:70% 50%}
.ct-shade{position:absolute;inset:0;background:linear-gradient(to right,rgba(2,5,11,.92) 12%,rgba(2,5,11,.4) 62%,transparent),linear-gradient(to top,var(--bg) 2%,transparent 40%)}
.ct-hero-inner{position:relative;padding:9rem var(--pad) 3.4rem;display:grid;gap:1.1rem}
.ct-hero h1{font-size:clamp(2.6rem,6.6vw,5.6rem)}
.ct-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1rem;padding:0 var(--pad) clamp(3rem,8vh,5rem)}
.ct-card{display:grid;gap:.5rem;padding:1.5rem 1.4rem;border:1px solid var(--line);border-radius:20px;background:linear-gradient(165deg,rgba(77,225,255,.07),rgba(8,16,30,.7));backdrop-filter:blur(10px);transition:border-color .4s,box-shadow .4s,transform .5s var(--ease)}
.ct-card:hover{border-color:rgba(77,225,255,.65);box-shadow:0 30px 80px -34px rgba(77,225,255,.55);transform:translateY(-4px)}
.ct-card .k{font:500 .72rem var(--f-d);letter-spacing:.2em;text-transform:uppercase;color:var(--cy)}
.ct-card strong{font:600 clamp(1.15rem,1.7vw,1.5rem) var(--f-d);overflow-wrap:anywhere}
.ct-card .go{font:600 .8rem var(--f-d);color:var(--gold);letter-spacing:.06em}
.ct-main{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1.6rem,5vw,5rem);padding:clamp(2rem,6vh,4rem) var(--pad) clamp(4rem,10vh,7rem);background:radial-gradient(ellipse 50% 40% at 90% 0,rgba(77,225,255,.07),transparent 70%),var(--bg)}
.ct-next h2{font-size:clamp(2rem,4vw,3.2rem);margin:.8rem 0 2rem}
.ct-steps{display:grid;gap:1.6rem}
.ct-steps li{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;align-items:start;padding-top:1.4rem;border-top:1px solid var(--line)}
.ct-steps .n{font:500 .78rem var(--f-d);letter-spacing:.3em;color:var(--gold);padding-top:.4rem}
.ct-steps h3{font-size:1.4rem;margin-bottom:.3rem}
.ct-steps p{color:#aebfca}
.ct-form{display:grid;gap:1.1rem;padding:clamp(1.4rem,3vw,2.2rem);border:1px solid rgba(77,225,255,.35);border-radius:24px;background:linear-gradient(165deg,rgba(77,225,255,.07),rgba(8,16,30,.78));backdrop-filter:blur(12px);box-shadow:0 40px 100px -40px rgba(77,225,255,.35)}
.ct-form h2{font-size:1.8rem}
.ct-form label{display:grid;gap:.4rem;font:500 .85rem var(--f-d);color:var(--mute)}
.ct-form input[type=text],.ct-form textarea{width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--line);background:rgba(2,5,11,.6);color:var(--ink);font:400 1rem var(--f-b);transition:border-color .3s,box-shadow .3s}
.ct-form input[type=text]:focus,.ct-form textarea:focus{outline:0;border-color:var(--cy);box-shadow:0 0 0 3px rgba(77,225,255,.18)}
.ct-form fieldset{border:0;display:grid;gap:.6rem}
.ct-form legend{font:500 .85rem var(--f-d);color:var(--mute);margin-bottom:.5rem}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chips label{display:block;cursor:pointer}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;padding:.55rem 1rem;border:1px solid var(--line);border-radius:999px;font:500 .85rem var(--f-d);color:#c4d6df;transition:.3s}
.chips label:hover span{border-color:var(--cy)}
.chips input:checked+span{background:rgba(77,225,255,.16);border-color:var(--cy);color:var(--ink);box-shadow:0 0 18px -6px var(--cy)}
.chips input:focus-visible+span{outline:2px solid var(--cy);outline-offset:2px}
.hint{min-height:1.2em;color:var(--gold);font-size:.88rem}
.ct-send{display:flex;flex-wrap:wrap;gap:.7rem}
.fine{color:var(--mute);font-size:.8rem}

@media (max-width:900px){
  .ct-main{grid-template-columns:1fr}
}

/* ---------- contact form (full enquiry) ---------- */
.ct-form{position:relative;overflow:hidden;scroll-margin-top:5.5rem}
.ct-sub{color:#aebfca;font-size:.95rem;margin-top:-.4rem}
.ct-form label b{color:var(--gold)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.ct-form input[type=email],.ct-form input[type=tel],.ct-form select{width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--line);background:rgba(2,5,11,.6);color:var(--ink);font:400 1rem var(--f-b);transition:border-color .3s,box-shadow .3s}
.ct-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--cy) 50%),linear-gradient(135deg,var(--cy) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.4rem;cursor:pointer}
.ct-form select option{background:#06101c;color:var(--ink)}
.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{outline:0;border-color:var(--cy);box-shadow:0 0 0 3px rgba(77,225,255,.18)}
.ct-form .bad{border-color:#ff7a7a!important;box-shadow:0 0 0 3px rgba(255,122,122,.15)!important}
.note-req{color:var(--mute);font-size:.8rem;margin-top:-.5rem}
.ct-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ct-submit{justify-content:center;width:100%;padding:1.05rem 1.6rem;font-size:1.02rem}
.ct-submit:disabled{opacity:.7;cursor:progress}
.ct-submit.loading span::after{content:"";display:inline-block;width:.9em;height:.9em;margin-left:.6rem;border:2px solid #00121b;border-right-color:transparent;border-radius:50%;vertical-align:-.1em;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ct-alt{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;padding-top:.4rem;border-top:1px solid var(--line);color:var(--mute);font-size:.88rem}
.ct-alt .btn{padding:.6rem 1.1rem;font-size:.85rem}
.ct-done{position:absolute;inset:0;display:grid;place-content:start center;justify-items:center;gap:1rem;padding:clamp(3rem,12vh,6rem) 2rem 2rem;text-align:center;background:linear-gradient(165deg,#06202c,#04101c);animation:fadeUp .7s var(--ease)}
.ct-done[hidden]{display:none}
.ct-done h3{font-size:2rem}
.ct-done p{color:#b8cbd6;max-width:26rem}
.ct-done svg{width:78px;height:78px;fill:none;stroke:var(--cy);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 14px rgba(77,225,255,.6))}
.ct-done svg circle{stroke-dasharray:176;stroke-dashoffset:176;animation:draw .9s .1s var(--ease) forwards}
.ct-done svg path{stroke-dasharray:60;stroke-dashoffset:60;animation:draw .6s .7s var(--ease) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (max-width:560px){.row2{grid-template-columns:1fr}}

.ct-form .req::after{content:" *";color:var(--gold)}

/* ---------- contact as the last home section ---------- */
.contact .cta{min-height:78vh}
.contact .cta-inner{padding-bottom:5rem}
.contact .ct-methods{position:relative;margin-top:-3rem;z-index:1}
