/* ===========================================================
   SYNORA ZENITH — synorazenith.com.np
   Palette and type follow synora_zenith_brand_guide.md.
   Depth is created with motion and layering only: flat fills,
   hairline borders, no gradients or drop shadows on the mark.
   =========================================================== */

:root{
  --ink:#14151A;
  --paper:#FAFAFA;
  --coral:#FF6A3D;
  --hair:#E4E4E7;
  --muted:#6B6B70;

  /* Lighter dark surface used by every dark section except the hero, which
     stays deep ink so the WebGL mark keeps its contrast. */
  --slate:#242732;
  --hair-rev:#3A3D4A;
  --muted-rev:#A8A9B4;
  --white:#fff;

  --sans:Arial,"Helvetica Neue",Helvetica,system-ui,-apple-system,"Segoe UI",sans-serif;
  --wrap:1180px;
  --pad:clamp(20px,5vw,64px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --head-h:68px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--head-h) + 20px)}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img,svg{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.022em;line-height:1.12}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
hr{border:0;border-top:1px solid var(--hair);margin:0}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--pad)}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:12px 18px;z-index:300}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:2px solid var(--coral);outline-offset:3px;border-radius:2px}

/* ===================== TOP PROGRESS BAND ===================== */
.progress{
  position:fixed;top:0;left:0;height:3px;width:100%;background:var(--coral);
  transform:scaleX(0);transform-origin:0 50%;z-index:200;will-change:transform;
}

/* ============================ HEADER ============================ */
.site-head{
  position:sticky;top:0;z-index:150;background:rgba(250,250,250,.94);
  -webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--hair);
}
.site-head__bar{
  max-width:var(--wrap);margin-inline:auto;padding:0 var(--pad);
  height:var(--head-h);display:flex;align-items:center;justify-content:space-between;gap:22px;
}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.brand__mark{width:31px;height:31px;border-radius:7px;flex-shrink:0}
.brand__word{font-size:13.5px;font-weight:600;letter-spacing:3.4px;white-space:nowrap}

.mainnav{display:flex;align-items:center;gap:6px}
.mainnav a{
  position:relative;font-size:15px;padding:9px 14px;border-radius:8px;
  color:var(--ink);transition:color .2s var(--ease),background .2s var(--ease);
}
.mainnav a::after{
  content:"";position:absolute;left:14px;right:14px;bottom:3px;height:1.5px;
  background:var(--coral);transform:scaleX(0);transform-origin:100% 50%;
  transition:transform .35s var(--ease);
}
.mainnav a:hover::after,.mainnav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:0 50%}
.mainnav a[aria-current="page"]{font-weight:600}

.head-cta{
  display:inline-flex;align-items:center;background:var(--ink);color:var(--paper);
  font-size:14.5px;font-weight:600;padding:11px 21px;border-radius:999px;
  transition:background .25s var(--ease),transform .25s var(--ease);white-space:nowrap;
}
.head-cta:hover{background:var(--coral);transform:translateY(-1px)}

.burger{
  display:none;width:42px;height:42px;border:1px solid var(--hair);border-radius:10px;
  background:var(--white);cursor:pointer;padding:0;place-items:center;
}
.burger span{display:block;width:17px;height:1.6px;background:var(--ink);transition:transform .3s var(--ease),opacity .2s}
.burger span+span{margin-top:4.5px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.1px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.1px) rotate(-45deg)}

.mobnav{display:none;border-top:1px solid var(--hair);background:var(--paper)}
.mobnav.open{display:block}
.mobnav a{
  display:block;padding:15px var(--pad);font-size:16px;
  border-bottom:1px solid var(--hair);max-width:var(--wrap);margin-inline:auto;
}
.mobnav a[aria-current="page"]{color:var(--coral);font-weight:600}

@media(max-width:900px){
  .mainnav,.head-cta{display:none}
  .burger{display:grid}
  .brand__word{display:none}
}

/* ============================ BUTTONS ============================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:14px 30px;border-radius:999px;font-size:15.5px;font-weight:600;
  border:1px solid transparent;cursor:pointer;font-family:inherit;
  transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn--solid{background:var(--coral);color:#fff}
.btn--solid:hover{background:#ff7d55}
.btn--dark{background:var(--ink);color:var(--paper)}
.btn--dark:hover{background:#25262e}
.btn--ghost{border-color:currentColor}
.btn--ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn--line{border-color:var(--hair);background:var(--white);color:var(--ink)}
.btn--line:hover{border-color:var(--ink)}

/* ============================ HOME HERO — 3D SCENE ============================
   A real 3D space: .hero holds the perspective, .stage is the preserve-3d
   scene that rotates with the pointer, and everything inside sits at its own
   translateZ. All fills stay flat and all shapes stay geometric — the depth
   comes from actual Z position and motion, per brand guide section 6.
   ============================================================================ */
.hero{
  position:relative;background:var(--ink);color:var(--paper);
  display:flex;align-items:center;
  padding:clamp(64px,9vw,104px) 0 clamp(76px,10vw,116px);
  overflow:hidden;isolation:isolate;min-height:calc(100svh - var(--head-h));
  perspective:1100px;perspective-origin:50% 42%;
}

/* the scene that tilts toward the pointer */
.stage{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  transform-style:preserve-3d;will-change:transform;
  transform:rotateX(calc(var(--my,0) * -5deg)) rotateY(calc(var(--mx,0) * 7deg));
  transition:transform .5s var(--ease);
}

/* receding floor. The repeating gradients have hard stops, so they draw
   1px hairlines rather than blending colour; the mask fades the horizon. */
.floor{
  position:absolute;left:50%;top:66%;width:3200px;height:2000px;margin-left:-1600px;
  transform-origin:50% 0;transform:rotateX(77deg) translateZ(-40px);
  background-image:
    repeating-linear-gradient(90deg,rgba(250,250,250,.10) 0 1px,transparent 1px 92px),
    repeating-linear-gradient(0deg, rgba(250,250,250,.10) 0 1px,transparent 1px 92px);
  -webkit-mask-image:radial-gradient(ellipse 42% 46% at 50% 0%,#000 0%,transparent 76%);
  mask-image:radial-gradient(ellipse 42% 46% at 50% 0%,#000 0%,transparent 76%);
}
/* mirrored overhead plane closes the space in */
.floor--top{
  top:auto;bottom:64%;transform-origin:50% 100%;transform:rotateX(-77deg) translateZ(-40px);
  -webkit-mask-image:radial-gradient(ellipse 40% 44% at 50% 100%,#000 0%,transparent 74%);
  mask-image:radial-gradient(ellipse 40% 44% at 50% 100%,#000 0%,transparent 74%);
  opacity:.6;
}

/* flat planes suspended at different depths */
.plane{
  position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);
  border:1.5px solid rgba(250,250,250,.17);border-radius:12px;
  transform:translateZ(var(--z,0px)) translateY(calc(var(--sy,0) * var(--sp,0) * 1px));
}
.plane--fill{background:rgba(250,250,250,.05);border-color:transparent}
.plane--coral{border-color:rgba(255,106,61,.5)}
.plane--round{border-radius:50%}
.plane--bar{border:0;background:rgba(250,250,250,.12);border-radius:999px}

/* ---- WebGL canvas: the real 3D mark lives here ---- */
#hero-canvas{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  width:100%;height:100%;display:block;
  opacity:0;transition:opacity 1s var(--ease);
}
.hero.has3d #hero-canvas{opacity:1}

/* flat mark: mobile + the fallback when WebGL is unavailable */
.markwrap{
  position:absolute;right:7%;top:47%;width:clamp(210px,24vw,340px);
  transform:translateY(-50%) translateZ(90px);
  animation:float 8s ease-in-out infinite;
  transition:opacity .6s var(--ease);
}
.hero.has3d .markwrap{opacity:0}
@keyframes float{
  0%,100%{transform:translateY(-50%) translateZ(90px) rotateY(-5deg)}
  50%    {transform:translateY(-42%) translateZ(90px) rotateY(5deg)}
}
#drawmark{width:100%;height:auto;overflow:visible}
.dl{stroke-dasharray:100;stroke-dashoffset:100;animation:draw .9s var(--ease) forwards;animation-delay:var(--d)}
@keyframes draw{to{stroke-dashoffset:0}}

/* ---- copy sits outside the rotation so the type stays sharp ---- */
.hero__inner{
  position:relative;z-index:3;width:100%;max-width:var(--wrap);
  margin-inline:auto;padding-inline:var(--pad);
}
.hero__col{max-width:640px;transform:translate3d(calc(var(--mx,0) * 9px),calc(var(--my,0) * 7px),0);transition:transform .5s var(--ease)}

/* kinetic service cycler */
.kin{
  display:flex;align-items:center;gap:11px;margin-bottom:26px;
  font-size:11.5px;letter-spacing:3px;text-transform:uppercase;color:var(--muted-rev);
  opacity:0;animation:fade .8s var(--ease) .25s forwards;
}
.kin__slot{display:block;height:1.5em;overflow:hidden}
.kin__slot b{display:block;height:1.5em;line-height:1.5em;color:var(--coral);font-weight:600;animation:cycle 13s infinite}
@keyframes cycle{
  0%,17%   {transform:translateY(0)}
  22%,39%  {transform:translateY(-1.5em)}
  44%,61%  {transform:translateY(-3em)}
  66%,83%  {transform:translateY(-4.5em)}
  88%,100% {transform:translateY(-6em)}
}

.hero h1{font-size:clamp(2.5rem,7vw,4.9rem);letter-spacing:-.04em;line-height:1.02}
.hero h1 .em{color:var(--coral)}
.line{display:block;overflow:hidden;padding-bottom:.07em}
.line>span{display:block;transform:translateY(105%);animation:rise .95s var(--ease) forwards}
.line:nth-child(1)>span{animation-delay:.55s}
.line:nth-child(2)>span{animation-delay:.68s}
@keyframes rise{to{transform:translateY(0)}}

.hero__sub{
  max-width:520px;margin:26px 0 0;color:var(--muted-rev);
  font-size:clamp(1rem,1.4vw,1.14rem);opacity:0;animation:fade .9s var(--ease) 1.05s forwards;
}
.hero__actions{
  display:flex;gap:13px;flex-wrap:wrap;margin-top:38px;
  opacity:0;animation:fade .9s var(--ease) 1.25s forwards;
}
@keyframes fade{to{opacity:1}}

/* scroll cue */
.hero__cue{
  position:absolute;left:var(--pad);bottom:34px;z-index:3;
  display:flex;align-items:center;gap:11px;
  font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted-rev);
  opacity:0;animation:fade .9s var(--ease) 1.6s forwards;
}
.hero__cue s{display:block;width:44px;height:1px;background:var(--coral);transform-origin:0 50%;animation:cue 2s var(--ease) infinite}
@keyframes cue{0%{transform:scaleX(0)}55%{transform:scaleX(1)}100%{transform:scaleX(0);transform-origin:100% 50%}}

/* Phones do not load the WebGL scene at all — they get the flat mark as a
   quiet backdrop instead, which saves the whole three.js download. */
@media(max-width:900px){
  .hero{perspective:800px}
  .markwrap{
    right:auto;left:50%;top:44%;width:min(74vw,340px);opacity:.2;
    animation:none;transform:translate(-50%,-50%) translateZ(40px);
  }
  #hero-canvas{display:none}
  .hero__cue{display:none}
}

/* shared decorative shapes used on the inner pages */
.field,.depth{position:absolute;inset:-15% 0;pointer-events:none;z-index:0}
.shape{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);will-change:transform}
.shape--bar{background:var(--paper);opacity:.09;border-radius:999px}
.shape--square{border:1.5px solid var(--paper);opacity:.13;border-radius:10px}
.shape--ring{border:1.5px solid var(--coral);opacity:.28;border-radius:50%}

/* ============================ PAGE HERO (inner pages) ============================ */
.phero{background:var(--slate);color:var(--paper);padding:clamp(64px,9vw,104px) 0 clamp(56px,8vw,88px);position:relative;overflow:hidden;isolation:isolate}
.phero .wrap{position:relative;z-index:2}
.phero h1{font-size:clamp(2rem,5vw,3.5rem);max-width:15ch}
.phero__lead{max-width:620px;margin-top:22px;color:var(--muted-rev);font-size:clamp(1rem,1.35vw,1.12rem)}
.crumbs{font-size:13px;color:var(--muted-rev);margin-bottom:20px;letter-spacing:.3px}
.crumbs a:hover{color:var(--coral)}
.crumbs span{margin:0 7px;opacity:.5}

/* ============================ CORAL BAND ============================ */
.band{background:var(--coral);color:#fff;overflow:hidden;padding:14px 0}
.band__track{display:flex;align-items:center;gap:26px;width:max-content;animation:slide 36s linear infinite}
.band__track b{font-size:12.5px;font-weight:600;letter-spacing:3px;white-space:nowrap}
.band__track i{width:5px;height:5px;background:#fff;border-radius:50%;flex-shrink:0}
@keyframes slide{to{transform:translateX(-50%)}}

/* ============================ SECTIONS ============================ */
.sec{padding:clamp(76px,10vw,132px) 0;position:relative}
.sec--dark{background:var(--slate);color:var(--paper);overflow:hidden;isolation:isolate}
.sec--dark .wrap{position:relative;z-index:2}
.sec--white{background:var(--white);border-block:1px solid var(--hair)}
.sec--tight{padding-block:clamp(56px,7vw,84px)}

.eyebrow{font-size:11.5px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:20px}
.eyebrow--rev{color:var(--coral)}
.sec__title{font-size:clamp(1.9rem,4.4vw,3.1rem);margin-bottom:24px}
.sec__lead{max-width:640px;color:var(--muted);font-size:clamp(1rem,1.3vw,1.09rem)}
.sec__lead--rev{color:var(--muted-rev)}
.sec__lead+.sec__lead{margin-top:17px}
.sec__lead em{font-style:italic;color:var(--ink)}
.sec__lead--rev em{color:var(--paper)}

.sec__head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:52px}
.sec__head .sec__title{margin-bottom:0}
.link-more{font-size:15px;font-weight:600;color:var(--coral);white-space:nowrap}
.link-more:hover{text-decoration:underline;text-underline-offset:4px}

/* ============================ CARD GRID ============================ */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;perspective:1400px}
.cards--mt{margin-top:58px}
.card{
  background:var(--paper);border:1px solid var(--hair);border-radius:16px;
  padding:32px 28px 28px;position:relative;
  transition:border-color .35s var(--ease),transform .35s var(--ease);
}
.sec--white .card{background:var(--paper)}
.card::before{
  content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--coral);
  border-radius:16px 16px 0 0;transform:scaleX(0);transform-origin:0 50%;
  transition:transform .45s var(--ease);
}
.card:hover{border-color:#C9C9CF;transform:translateY(-5px)}
.card:hover::before{transform:scaleX(1)}
.card__num{font-size:11.5px;letter-spacing:2.5px;color:var(--coral);font-weight:600;display:block;margin-bottom:13px}
.card h3{font-size:1.28rem;margin-bottom:12px}
.card p{color:var(--muted);font-size:15.1px;margin-bottom:18px}
.card ul{border-top:1px solid var(--hair);padding-top:16px}
.card li{font-size:14.5px;padding:6px 0 6px 19px;position:relative}
.card li::before{content:"";position:absolute;left:0;top:16px;width:7px;height:1.5px;background:var(--coral)}

/* ============================ SERVICE DETAIL BLOCKS ============================ */
.svc{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(30px,5vw,66px);padding:clamp(48px,6vw,72px) 0;border-top:1px solid var(--hair);
}
.svc:first-of-type{border-top:0;padding-top:0}
.svc__k{font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--coral);margin-bottom:16px}
.svc h2{font-size:clamp(1.5rem,3vw,2.05rem);margin-bottom:16px}
.svc__body p{color:var(--muted);font-size:15.8px}
.svc__body p+p{margin-top:15px}
.svc__list{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;margin-top:26px}
.svc__list li{font-size:14.8px;padding:9px 0 9px 19px;position:relative;border-top:1px solid var(--hair)}
.svc__list li::before{content:"";position:absolute;left:0;top:19px;width:7px;height:1.5px;background:var(--coral)}
@media(max-width:820px){.svc{grid-template-columns:1fr;gap:22px}.svc__list{grid-template-columns:1fr}}

/* ============================ STEPS ============================ */
.steps{margin-top:58px}
.step{padding:36px 0;border-top:1px solid var(--hair-rev);display:grid;grid-template-columns:180px 1fr;gap:32px;align-items:start}
.step:last-child{border-bottom:1px solid var(--hair-rev)}
.step__k{font-size:11.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--coral);padding-top:6px}
.step h3{font-size:1.35rem;margin-bottom:11px}
.step p{color:var(--muted-rev);font-size:15.4px;max-width:640px}
@media(max-width:760px){.step{grid-template-columns:1fr;gap:13px}}

/* ============================ SPLIT / STATS ============================ */
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(38px,6vw,80px);align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr}}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:15px;perspective:1400px}
.stat{border:1px solid var(--hair);border-radius:14px;padding:24px 21px;background:var(--paper)}
.stat b{display:block;font-size:2.35rem;font-weight:600;letter-spacing:-.03em;line-height:1}
.stat span{display:block;margin-top:8px;font-size:13.4px;color:var(--muted);line-height:1.45}
.stat--coral b{color:var(--coral)}

/* ============================ RESEARCH ============================ */
.rlist{display:grid;gap:18px;perspective:1400px}
.ritem{
  border:1px solid var(--hair);border-radius:16px;padding:30px 28px;background:var(--paper);
  display:grid;grid-template-columns:1fr auto;gap:20px 30px;align-items:start;
  transition:border-color .3s var(--ease),transform .3s var(--ease);
}
.ritem:hover{border-color:#C9C9CF;transform:translateY(-3px)}
.ritem h3{font-size:1.28rem;margin-bottom:11px}
.ritem p{color:var(--muted);font-size:15.2px;max-width:70ch}
.ritem__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.tag{
  font-size:11.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:600;
  padding:5px 11px;border-radius:999px;border:1px solid var(--hair);color:var(--muted);
}
.tag--live{border-color:var(--coral);color:var(--coral)}
.status{
  font-size:11.5px;letter-spacing:2px;text-transform:uppercase;font-weight:600;
  padding:7px 14px;border-radius:999px;white-space:nowrap;
  border:1px solid var(--hair);color:var(--muted);
}
.status--active{background:var(--coral);border-color:var(--coral);color:#fff}
.status--early{border-color:var(--ink);color:var(--ink)}
@media(max-width:700px){.ritem{grid-template-columns:1fr}}

/* ============================ BLOG ============================ */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;perspective:1400px}
.post{
  border:1px solid var(--hair);border-radius:16px;background:var(--paper);
  padding:30px 28px 28px;display:flex;flex-direction:column;
  transition:border-color .3s var(--ease),transform .3s var(--ease);
}
.post:hover{border-color:#C9C9CF;transform:translateY(-5px)}
.post__cat{font-size:11.5px;letter-spacing:2.2px;text-transform:uppercase;color:var(--coral);font-weight:600;margin-bottom:14px}
.post h3{font-size:1.24rem;margin-bottom:12px;letter-spacing:-.015em}
.post p{color:var(--muted);font-size:15px;flex:1}
.post__meta{
  margin-top:22px;padding-top:16px;border-top:1px solid var(--hair);
  font-size:13.2px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center;
}
.post__meta i{width:3px;height:3px;background:var(--muted);border-radius:50%;font-style:normal;opacity:.6}
.post--feature{grid-column:1/-1;display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:center}
@media(max-width:820px){.post--feature{grid-template-columns:1fr}}
.post--feature h3{font-size:clamp(1.5rem,3.2vw,2.1rem)}

/* ============================ ARTICLE ============================ */
.article{max-width:720px;margin-inline:auto;padding:clamp(52px,7vw,84px) 0}
.article__meta{font-size:13.6px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:34px;padding-bottom:26px;border-bottom:1px solid var(--hair)}
.article__meta i{width:3px;height:3px;background:var(--muted);border-radius:50%;font-style:normal;opacity:.6}
.article h2{font-size:1.55rem;margin:46px 0 16px}
.article h3{font-size:1.2rem;margin:32px 0 12px}
.article p{font-size:17.2px;line-height:1.78;color:#2A2B32}
.article p+p{margin-top:19px}
.article ul{margin:20px 0}
.article ul li{position:relative;padding:7px 0 7px 22px;font-size:16.6px;line-height:1.7;color:#2A2B32}
.article ul li::before{content:"";position:absolute;left:0;top:19px;width:8px;height:1.5px;background:var(--coral)}
.article blockquote{
  margin:30px 0;padding:6px 0 6px 26px;border-left:3px solid var(--coral);
  font-size:18px;line-height:1.66;
}
.article code{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:14.6px;background:#EFEFF2;padding:2px 6px;border-radius:5px}
.article pre{background:var(--slate);color:var(--paper);padding:20px 22px;border-radius:12px;overflow-x:auto;margin:24px 0}
.article pre code{background:none;color:inherit;padding:0;font-size:13.8px;line-height:1.6}
.article__foot{margin-top:52px;padding-top:28px;border-top:1px solid var(--hair);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}

.notice{
  border:1px solid var(--hair);border-left:3px solid var(--coral);border-radius:10px;
  padding:18px 22px;background:var(--white);font-size:14.6px;color:var(--muted);margin:30px 0;
}

/* ============================ CONTACT ============================ */
.cgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;perspective:1400px}
.ccard{
  border:1px solid var(--hair-rev);border-radius:14px;padding:28px 24px;
  transition:border-color .3s var(--ease),transform .3s var(--ease);
}
a.ccard:hover{border-color:var(--coral);transform:translateY(-4px)}
.ccard span{display:block;font-size:11.5px;letter-spacing:2.4px;text-transform:uppercase;color:var(--coral);margin-bottom:10px}
.ccard b{font-size:1.02rem;font-weight:600;word-break:break-word}

.form{display:grid;gap:16px;max-width:620px}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.form__row{grid-template-columns:1fr}}
.field label{display:block;font-size:13.4px;font-weight:600;margin-bottom:7px;letter-spacing:.2px}
.field input,.field textarea,.field select{
  width:100%;font-family:inherit;font-size:15.6px;color:var(--ink);background:var(--white);
  border:1px solid var(--hair);border-radius:10px;padding:13px 15px;
  transition:border-color .2s var(--ease);
}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--ink);outline:none}
.form__note{font-size:13.4px;color:var(--muted)}

/* ============================ FOOTER ============================ */
.site-foot{background:var(--slate);color:var(--paper);padding:clamp(56px,7vw,84px) 0 0;border-top:1px solid var(--hair-rev)}
.foot__top{
  display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:clamp(28px,4vw,52px);
  padding-bottom:52px;
}
@media(max-width:900px){.foot__top{grid-template-columns:1fr 1fr;gap:38px}}
@media(max-width:560px){.foot__top{grid-template-columns:1fr}}
.foot__brand .brand{margin-bottom:18px}
.foot__brand .brand__word{color:var(--paper)}
.foot__about{font-size:14.6px;color:var(--muted-rev);max-width:34ch}
.foot__addr{font-size:14.2px;color:var(--muted-rev);margin-top:18px;font-style:normal;line-height:1.7}
.foot h4{font-size:11.5px;letter-spacing:2.6px;text-transform:uppercase;color:var(--coral);margin-bottom:18px}
.foot__links li{margin-bottom:11px}
.foot__links a{font-size:14.8px;color:var(--muted-rev);transition:color .2s var(--ease)}
.foot__links a:hover{color:var(--paper)}
.foot__contact a{color:var(--paper);font-size:15px;font-weight:600}
.foot__contact a:hover{color:var(--coral)}
.foot__contact p{font-size:13.4px;color:var(--muted-rev);margin-top:4px}
.foot__contact li+li{margin-top:18px}
.foot__bar{
  border-top:1px solid var(--hair-rev);padding:24px 0 30px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:13.2px;color:var(--muted-rev);
}
.foot__bar a{color:var(--paper);transition:color .2s var(--ease)}
.foot__bar a:hover{color:var(--coral)}

/* ============================ SCROLL REVEALS ============================ */
.reveal,.reveal-3d{opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--rd,0ms)}
.reveal{transform:translateY(28px)}
.reveal-3d{transform:translateY(44px) rotateX(11deg) scale(.972);transform-origin:50% 100%}
.reveal.in,.reveal-3d.in{opacity:1;transform:none}

/* ============================ REDUCED MOTION ============================ */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .dl{stroke-dashoffset:0}
  .line>span{transform:none}
  .hero__sub,.hero__actions,.kin,.hero__cue{opacity:1}
  .reveal,.reveal-3d{opacity:1;transform:none}
  .shape{transform:none!important}
  /* keep the 3D composition, drop the movement */
  .stage{transform:none}
  .markwrap{animation:none;transform:translateY(-50%) translateZ(90px)}
  .hero__col{transform:none}
  .kin__slot b{animation:none}
}
