/* ===========================================================
   Terrazze Monachile — shared brand foundation
   Brand colors: teal #4ca79d · warm grey #737179
   =========================================================== */
:root{
  --tm-teal: #4ca79d;
  --tm-teal-deep: #2f878f;
  --tm-petrol: #1d5b62;
  --tm-petrol-night: #0c2c32;
  --tm-grey: #737179;
  --tm-ink: #1b2426;
  --tm-cream: #f7f3ea;
  --tm-ivory: #fbf9f3;
  --tm-sand: #e7dccb;
  --tm-coral: #d97a63;
  --logo: url(../assets/logo-monachile.svg);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{ margin:0; font-synthesis:none; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; cursor:pointer; }

/* Logo as <img>, recolored per theme via filter (renders everywhere
   incl. html-to-image / PPTX export, unlike CSS mask). */
.logo-img{ display:block; height:44px; width:auto; transition:filter .4s ease; }
.logo-img--light{ filter: brightness(0) invert(1); }      /* white, for dark backgrounds */
.logo-img--teal{ filter: brightness(0) saturate(100%) invert(56%) sepia(18%) saturate(900%) hue-rotate(124deg) brightness(92%) contrast(88%); } /* approx brand teal */

/* ---- scroll reveal primitives (driven by js/anim.js) ---- */
.reveal{ opacity:0; transform: translateY(34px); transition: opacity 1.1s cubic-bezier(.16,1,.3,1), transform 1.1s cubic-bezier(.16,1,.3,1); will-change:opacity,transform; }
.reveal.in{ opacity:1; transform:none; }
.reveal-sm{ transform: translateY(18px); }
.reveal-scale{ transform: translateY(28px) scale(.985); }
.reveal-scale.in{ transform:none; }
.reveal[data-delay="1"]{ transition-delay:.10s; }
.reveal[data-delay="2"]{ transition-delay:.20s; }
.reveal[data-delay="3"]{ transition-delay:.30s; }
.reveal[data-delay="4"]{ transition-delay:.40s; }
.reveal[data-delay="5"]{ transition-delay:.50s; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; }
}

/* clip-reveal for lines of type */
.line-mask{ overflow:hidden; }
.line-mask > *{ display:block; transform: translateY(110%); transition: transform 1.05s cubic-bezier(.16,1,.3,1); }
.line-mask.in > *{ transform:none; }
@media (prefers-reduced-motion: reduce){ .line-mask > *{ transform:none !important; } }

/* i18n: hide nothing by default; JS swaps textContent */
[hidden]{ display:none !important; }

/* shared utility */
.tm-eyebrow{ text-transform:uppercase; letter-spacing:.28em; font-size:.72rem; }
.tm-noise::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/></filter><rect width='120' height='120' filter='url(%23n)'/></svg>");
  mix-blend-mode:overlay;
}
