@font-face{font-family:"Tenor Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/TenorSans-Regular.woff2") format("woff2"),url("../fonts/TenorSans-Regular.woff") format("woff")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url("../fonts/Manrope-Variable.woff2") format("woff2"),url("../fonts/Manrope-Variable.woff") format("woff")}
/* Shared chrome: global resets, header, mobile menu, enquiry modal, footer, cursor/preloader effects, cookie banner.
   Identical copy on every page of the Krishvi Group site so header/footer stay consistent. */
:root{
  --ground:#0C1C13;
  --deep:#08130D;
  --forest:#04351A;
  --pearl:#F7EFE7;
  --pearl-2:#EFE5DA;
  --stone:#D9D2C7;
  --ink:#1B241E;
  --sand:#E0995F;
  --mute:rgba(247,239,231,.58);
  --mute-ink:rgba(27,36,30,.58);
  --rule:rgba(247,239,231,.14);
  --rule-ink:rgba(4,53,26,.18);
  --display:"Tenor Sans","Helvetica Neue",Arial,sans-serif;
  --sans:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --gx:clamp(16px,3.2vw,48px);
  --ease:cubic-bezier(.22,.61,.36,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--ground);color:var(--pearl);font:400 14px/1.5 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
:focus-visible{outline:2px solid var(--sand);outline-offset:3px}
h1,h2,h3,p,ol,ul,figure,blockquote{margin:0;padding:0}
ol,ul{list-style:none}
.wrap{padding-left:max(var(--gx),env(safe-area-inset-left,0px));padding-right:max(var(--gx),env(safe-area-inset-right,0px))}
.lab{font:500 10.5px/1.45 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.lab.dim{color:var(--mute)}
.pg-light .lab.dim{color:var(--mute-ink)}
.disp{font-family:var(--display);font-weight:400;letter-spacing:-.03em;line-height:1.12;text-wrap:balance}
.ln{text-wrap:wrap;white-space:normal}
.par{position:relative;overflow:hidden}
.par>img,.par>video{position:absolute;left:0;top:-8%;width:100%;height:116%;object-fit:cover}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* link: label, hairline, dot or arrow */
.lk{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-width:168px;font:500 10.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding-bottom:10px;border-bottom:1px solid currentColor;position:relative}
.lk i{width:6px;height:6px;border-radius:50%;background:currentColor;transition:transform .5s var(--ease)}
.lk svg{width:9px;height:9px;stroke:currentColor;fill:none;stroke-width:1.4;transition:transform .5s var(--ease)}
.lk:hover i{transform:scale(1.6)}
.lk:hover svg{transform:translate(2px,-2px)}

/* text swap on hover: two stacked copies */
.sw{display:inline-block;overflow:hidden;line-height:1;vertical-align:top}
.sw b{display:block;font-weight:inherit;transition:transform .55s var(--ease)}
.sw b+b{position:absolute;left:0;top:100%}
.sw{position:relative}
a:hover>.sw b,button:hover>.sw b{transform:translateY(-100%)}

/* drafting lines + leaf light */
.lined{position:relative}
.leaf,.dusk{overflow:clip}
.lined>.lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.lined>.lines path{fill:none;stroke:currentColor;stroke-width:1;opacity:.12;vector-effect:non-scaling-stroke}
.pg-dark .lined>.lines{color:var(--pearl)}
.pg-light .lined>.lines{color:var(--forest)}
.lined>*:not(.lines){position:relative;z-index:1}
.lined>.leafshadow{position:absolute;z-index:0}
.leafshadow{position:absolute;top:-4%;right:-3%;width:min(34%,520px);height:62%;pointer-events:none;z-index:0;color:#2a2f28;opacity:.15;filter:blur(11px)}
.leafshadow svg{width:100%;height:100%;display:block}
.leafshadow g.an{transform-box:fill-box;transform-origin:50% 50%;animation:sway var(--d,20s) ease-in-out infinite alternate;animation-delay:var(--dl,0s)}
@keyframes sway{0%{transform:translate(-2%,-1%) rotate(-2.5deg)}100%{transform:translate(2.5%,1.5%) rotate(2.5deg)}}
.leaf::before{content:"";position:absolute;inset:-10%;pointer-events:none;z-index:0;background:
  linear-gradient(112deg,transparent 0 28%,rgba(4,53,26,.075) 33% 41%,transparent 46% 52%,rgba(4,53,26,.06) 58% 66%,transparent 72%),
  linear-gradient(118deg,transparent 0 60%,rgba(4,53,26,.05) 66% 74%,transparent 80%);filter:blur(28px)}
.dusk::before{content:"";position:absolute;inset:-10%;pointer-events:none;z-index:0;background:radial-gradient(60% 40% at 30% 70%,rgba(0,0,0,.35),transparent 70%),radial-gradient(50% 30% at 75% 40%,rgba(0,0,0,.28),transparent 70%)}

/* preloader */
.pre{position:fixed;inset:0;z-index:200;background:var(--deep);color:var(--pearl);display:grid;grid-template-rows:1fr auto;padding:calc(28px + env(safe-area-inset-top,0px)) max(var(--gx),env(safe-area-inset-left,0px)) calc(24px + env(safe-area-inset-bottom,0px))}
.pre__words{display:grid;align-content:center;font:400 clamp(44px,8.6vw,130px)/1 var(--display);letter-spacing:-.035em}
.pre__words span{display:block;overflow:hidden}
.pre__words span b{display:block;font-weight:400;transform:translateY(110%)}
.pre__words em{color:var(--sand)}
.pre__chip{position:absolute;left:50%;top:50%;width:min(28vw,250px);aspect-ratio:4/5;transform:translate(-50%,-50%);overflow:hidden;opacity:0}
.pre__chip img{width:100%;height:100%;object-fit:cover}
.pre__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.pre__foot .lab{color:var(--mute)}
.pre__logo{height:clamp(56px,9vw,96px);width:auto}
.pre__foot b{display:block;font:400 13px/1.4 var(--sans);letter-spacing:.02em;color:var(--pearl)}
.pre__n{font:400 11px/1 var(--sans);letter-spacing:.14em;font-variant-numeric:tabular-nums;text-align:right}
.pre__n small{display:block;font-size:10.5px;letter-spacing:.06em;color:var(--mute);margin-bottom:8px}

/* header */
.hdr{position:fixed;left:0;right:0;top:0;z-index:90;padding-top:calc(14px + env(safe-area-inset-top,0px));padding-bottom:14px;color:var(--pearl);background:rgba(12,28,19,.96);backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(224,153,95,.22);display:grid;grid-template-columns:auto 1fr;align-items:center;pointer-events:none;transition:color .4s,background-color .4s}
.hdr.ink{color:var(--pearl);background:rgba(12,28,19,.96)}
.hdr>*{pointer-events:auto}
.hdr .lab{color:inherit;font-weight:600;font-size:11.5px;letter-spacing:.08em}
.hdr nav{display:flex;gap:34px}
.hdr nav a{position:relative}
.brand{display:flex;align-items:center;gap:10px;justify-self:center;padding:2px 0}
.brand img.m{height:26px;width:auto}
.brand img.w{height:24px;width:auto}
.brand img.brand-logo{width:56px;height:56px;object-fit:contain;padding:1px}
.brand .wd-ink{display:none}
.hdr.ink .wd-pearl{display:none}
.hdr.ink .wd-ink{display:block}
.hdr__l{display:flex;align-items:center;gap:22px}
.hdr__r{justify-self:end;display:flex;align-items:center;gap:30px}
.dotbtn{display:inline-flex;align-items:center;gap:8px;position:relative}
.dotbtn i{width:6px;height:6px;border-radius:50%;background:#3FA866;display:block}
.talkwrap{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.menu-btn{display:none;position:relative}
.menu{position:fixed;inset:0;z-index:95;background:var(--ground);color:var(--pearl);padding-top:calc(84px + env(safe-area-inset-top,0px));padding-bottom:calc(34px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;justify-content:space-between}
.menu ul{display:grid;gap:4px}
.menu ul a,.menu ul button{font-family:var(--display);font-size:clamp(40px,12vw,64px);letter-spacing:-.03em;line-height:1.1;text-align:left}

.pg-light{background:var(--pearl);color:var(--ink)}
.pg-dark{background:var(--ground);color:var(--pearl)}

/* small reusable pieces used across pages */
.chip{display:inline-flex;align-items:center;gap:14px;padding:8px 14px 8px 8px;background:rgba(8,19,13,.52);backdrop-filter:blur(8px);border:1px solid var(--rule)}
.chip img{width:56px;height:44px;object-fit:cover}
.chip small{display:block;font:500 9.5px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:3px}
.chip b{display:block;font:500 12.5px/1.2 var(--sans)}
.chip .n{font:400 12px/1 var(--display);color:var(--mute);margin-right:4px}

/* footer */
.ftr{background:var(--deep);color:var(--pearl);position:relative;overflow:hidden}
.ftr__band{height:clamp(200px,32vw,440px);position:relative}
.ftr__band .par{position:absolute;inset:0}
.ftr__mark{display:flex;justify-content:space-between;padding-block:clamp(6px,2vw,24px) 0;font:400 clamp(70px,19.4vw,300px)/.9 var(--display);letter-spacing:-.02em;color:rgba(247,239,231,.06);user-select:none;overflow:hidden}
.ftr__mark span{display:block}
.ftr__cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gx);padding-block:clamp(36px,5vw,80px)}
.ftr__ex{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--gx)}
.ftr__links{display:grid;gap:0}
.ftr__links a,.ftr__links button{font:400 clamp(30px,3.4vw,50px)/1.1 var(--display);letter-spacing:-.03em;text-align:left;transition:opacity .35s}
.ftr__links:hover>*{opacity:.35}
.ftr__links>*:hover{opacity:1!important}
.ftr__links .cur{opacity:.35}
.ftr__c{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gx)}
.ftr dl{display:grid;grid-template-columns:22px 1fr;gap:10px 12px;margin:16px 0 0;align-items:baseline}
.ftr dt{font:400 13px/1 var(--display);color:var(--mute)}
.ftr dd{margin:0;font-size:13px}
.ftr dd a{border-bottom:1px solid var(--rule)}
.ftr dd a:hover{border-color:var(--pearl)}
.ftr__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px var(--gx);padding-block:16px calc(22px + env(safe-area-inset-bottom,0px));color:var(--mute);font:500 10px/1.5 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.ftr__legal p{max-width:80ch}
.soc{display:flex;gap:16px}

/* contact / enquiry panel */
.modal{position:fixed;inset:0;z-index:120;display:block}
.modal[hidden]{display:none}
.modal__bg{position:absolute;inset:0;background:rgba(8,19,13,.55)}
.modal__card{position:absolute;right:0;top:0;bottom:0;width:min(100%,960px);background:var(--pearl);color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:auto;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);transform:translateX(100%)}
.modal__l{padding:calc(48px + env(safe-area-inset-top,0px)) clamp(20px,3vw,40px) 40px;display:grid;grid-template-rows:auto 1fr auto;gap:30px;border-right:1px solid var(--rule-ink)}
.modal .lab.dim{color:var(--mute-ink)}
.modal__l h2{font:400 clamp(32px,3.6vw,52px)/1 var(--display);letter-spacing:-.03em;margin-top:12px}
.modal__l .body{max-width:34ch;color:var(--ink);opacity:.85;display:grid;gap:14px}
.modal__l .tel{font:400 20px/1.2 var(--display);display:block;margin-top:4px}
.modal__r{padding:calc(48px + env(safe-area-inset-top,0px)) clamp(20px,3vw,40px) 40px max(var(--gx),env(safe-area-inset-left,0px));display:grid;align-content:end}
.modal__x{position:absolute;right:max(16px,env(safe-area-inset-right,0px));top:calc(12px + env(safe-area-inset-top,0px));width:64px;height:64px;border-radius:50%;border:1px solid var(--rule-ink);display:grid;place-items:center;color:var(--ink);font-size:18px;z-index:2;transition:background .3s}
.modal__x:hover{background:rgba(4,53,26,.06)}
.fld{display:grid;gap:4px;padding:18px 0;border-top:1px solid var(--rule-ink)}
.fld:last-of-type{border-bottom:1px solid var(--rule-ink)}
.fld label{font:500 10.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--mute-ink)}
.fld input,.fld select,.fld textarea{font:400 15px/1.4 var(--sans);color:var(--ink);background:transparent;border:0;padding:4px 0;border-radius:0;width:100%}
.fld textarea{resize:vertical;min-height:60px}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:0}
.chk{display:flex;gap:10px;align-items:center;padding:16px 0;color:var(--mute-ink);font:500 10px/1.4 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.chk input{width:12px;height:12px;margin:0;accent-color:var(--forest)}
.err{color:#8e2f1b;font-size:12.5px;min-height:1.2em;margin-bottom:6px}
.sent h3{font:400 clamp(28px,3vw,40px)/1.05 var(--display);letter-spacing:-.03em;margin-bottom:12px}
.sent p{color:var(--mute-ink);margin-bottom:22px;max-width:44ch}
.sent .lk{color:var(--ink)}

/* floating tip */
.tip{position:fixed;left:0;top:0;pointer-events:none;z-index:110}
.tip__in{width:200px;height:200px;margin:-100px 0 0 -100px;border-radius:50%;border:1px solid rgba(247,239,231,.6);display:grid;place-items:center;opacity:0;transform:scale(.6);font:500 10.5px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--pearl);text-shadow:0 1px 8px rgba(0,0,0,.4)}

/* fluid trail */
.fluid{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:150;mix-blend-mode:screen;opacity:.32}
/* cursor: ring + dot, with a trail of fading dots */
.trail{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:150;mix-blend-mode:difference}
.ptr{position:fixed;left:0;top:0;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;border:2px solid #fff;pointer-events:none;z-index:151;mix-blend-mode:difference;display:grid;place-items:center;opacity:0;transition:width .3s,height .3s,margin .3s,opacity .3s}
.ptr i{width:8px;height:8px;border-radius:50%;background:#fff;display:block;transition:transform .3s}
.ptr.big{width:46px;height:46px;margin:-23px 0 0 -23px;border-width:1px}
.ptr.big i{transform:scale(.6)}
.ptr.hide{opacity:0!important}
@media (pointer:fine){body,a,button,label,select,.panel,.proj{cursor:none}}
/* image notes */
.imgnote{position:absolute;right:max(var(--gx),env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:3;pointer-events:none;font:500 9.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:rgba(247,239,231,.8);text-shadow:0 1px 6px rgba(0,0,0,.45)}
.par>.imgnote,.imgw>.imgnote{right:12px;bottom:10px}
.imgw{position:relative;display:block}
.svc__media .imgnote{z-index:20}

/* cookie */
.ck{position:fixed;left:max(8px,env(safe-area-inset-left,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:100;width:min(560px,calc(100vw - 16px));background:rgba(12,28,19,.86);backdrop-filter:blur(8px);color:var(--pearl);padding:12px 14px 12px;display:grid;gap:14px;transform:translateY(120%);opacity:0}
.ck b{display:block;font:400 13px/1.2 var(--display);margin-bottom:4px}
.ck p{font:400 12.5px/1.4 var(--display);max-width:62ch}
.ck__btns{display:flex;gap:18px}
.ck__btns button{font:500 10px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase}
.ck__ring{position:absolute;right:12px;top:12px;width:14px;height:14px;border-radius:50%;border:1px solid var(--pearl);background:conic-gradient(var(--pearl) var(--p,0%),transparent 0)}

/* landscape cover */
.land{display:none;position:fixed;inset:0;z-index:300;background:var(--deep);color:var(--pearl);place-items:center;text-align:center;padding:24px;font:400 16px/1.4 var(--display)}
@media (max-height:480px) and (orientation:landscape) and (pointer:coarse){.land{display:grid}}

@media (max-width:899px){
  .ftr__cols,.ftr__ex,.ftr__c,.modal__card{grid-template-columns:minmax(0,1fr)}
  .modal__l{border-right:0;border-bottom:1px solid var(--rule-ink);padding-bottom:24px;grid-template-rows:auto auto auto}
  .modal__r{padding-top:24px}
  .hdr nav,.hdr__r .talkwrap{display:none}
  .hdr{grid-template-columns:auto 1fr}
  .brand{justify-self:start}
  .menu-btn{display:inline-flex}
  .ftr__mark{font-size:clamp(60px,18vw,120px)}
  .tip{display:none}
  .trail,.fluid{display:none}
}
@media (max-width:520px){
  .pre__chip{width:40vw}
}
@media (prefers-reduced-motion:reduce){
  .pre,.trail,.fluid,.tip{display:none}
  .leafshadow g.an{animation:none}
  .pre__words span b{transform:none}
  .ck{transform:none;opacity:1}
}
