:root{
  --beige:#EBE0DA; --white:#FFFFFF; --ink:#000000; --grey:#929292; --line:rgba(0,0,0,.18); --oak:#CAA88E;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --serif:'Tiro Kannada','Cormorant Garamond',Georgia,serif;
  --roboto:'Roboto',-apple-system,'Segoe UI',Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:var(--beige);color:var(--ink);font-family:var(--sans);font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.2;letter-spacing:-.32px}
img{display:block;max-width:100%}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--ink)}
h1,h2,h3,h4,p{margin:0}
::selection{background:var(--ink);color:var(--beige)}
html.no-motion [data-reveal]{opacity:1 !important;transform:none !important}
[data-zoom]{overflow:hidden}
[data-zoom] .mdd-zoom{transition:transform 1.4s cubic-bezier(.19,1,.22,1)}
[data-zoom]:hover .mdd-zoom{transform:scale(1.04)}
.mdd-underline{position:relative;display:inline-block;padding-bottom:2px}
.mdd-underline::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:currentColor;transform:scaleX(1);transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1)}
.mdd-navlink{position:relative}
.mdd-navlink::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.19,1,.22,1)}
.mdd-navlink:hover::after{transform:scaleX(1)}
.mdd-social{transition:color .35s ease}
.mdd-social:hover{color:var(--oak)}
[data-field]{transition:border-color .4s ease}
[data-field]:focus{outline:none;border-color:#F3EDE4}
[data-field]::placeholder{color:rgba(243,237,228,.4)}
[data-menu]{transition:transform .8s cubic-bezier(.76,0,.24,1),opacity .5s ease}
[data-hamburger]{display:none}
@media(max-width:900px){
  [data-navlinks]{display:none !important}
  [data-hamburger]{display:inline-flex !important}
  [data-contactgrid]{grid-template-columns:1fr !important;gap:48px !important}
  [data-footcols]{grid-template-columns:1fr 1fr !important;gap:36px !important}
}
@media(max-width:560px){
  [data-footcols]{grid-template-columns:1fr !important}
  [data-namerow]{grid-template-columns:1fr !important}
  [data-inforow] > div{flex-direction:column !important;gap:6px !important}
  [data-inforow] span[data-lbl]{width:auto !important}
}

/* ---- Motion utilities ---- */
/* Progressive enhancement: the hidden state is JS-gated, so if JS never runs
   the class is never added and every [data-reveal] block stays visible. */
html.js-anim [data-reveal]{opacity:0}
/* Card hover lift (tactile, restrained) */
a[data-proj]{transition:transform .5s cubic-bezier(.19,1,.22,1)}
a[data-proj]:hover{transform:translateY(-6px)}
/* CTA micro-interactions: subtle lift, gentle press */
a[style*="9999px"]:not([aria-label="Chat on WhatsApp"]),button[style*="9999px"]{transition:background .4s ease,color .4s ease,box-shadow .4s ease,transform .35s cubic-bezier(.19,1,.22,1) !important}
a[style*="9999px"]:not([aria-label="Chat on WhatsApp"]):hover,button[style*="9999px"]:hover{transform:translateY(-2px)}
a[style*="9999px"]:not([aria-label="Chat on WhatsApp"]):active,button[style*="9999px"]:active{transform:translateY(0) scale(.985)}
@media(prefers-reduced-motion:reduce){
  html.js-anim [data-reveal]{opacity:1 !important;transform:none !important}
  a[data-proj]:hover,a[style*="9999px"]:hover,button[style*="9999px"]:hover{transform:none}
}
