/* ModelLocation 2026 — visual language inherited from ModelFood,
   reinterpreted through cartography, terrain and physical objects. */
:root{
  --header-height:76px;
  --ink:#171612;
  --ink-2:#1e1c17;
  --ink-3:#2a2720;
  --paper:#f1eee5;
  --cream:#e4ded0;
  --white:#fbf8f1;
  --accent:#66715a;       /* muted moss */
  --accent-lit:#98a187;
  --clay:#9a684e;         /* restrained terracotta */
  --clay-lit:#c79579;
  --on-accent:#fbf8f1;
  --mute:#aaa294;
  --mute-dark:#6d675e;
  --rule:rgba(241,238,229,.16);
  --rule-light:rgba(23,22,18,.15);
  --header-bg:rgba(23,22,18,.90);
}
html{background:var(--ink);scroll-padding-top:calc(var(--header-height) + 20px)}
body{color:var(--ink);background:var(--paper)}
::selection{background:var(--accent);color:var(--white)}
.skip{position:fixed;z-index:999;top:10px;left:10px;padding:10px 14px;background:var(--paper);color:var(--ink);transform:translateY(-180%);transition:transform .2s}
.skip:focus-visible{transform:none}
.hdr{color:var(--paper)}
.hdr::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(23,22,18,.55),transparent);opacity:1;transition:opacity .35s}
.hdr.is-solid::after{opacity:0}
.brand__mark i{background:var(--accent-lit)}
.brand__name span{color:var(--accent-lit)}
.nav a:hover{color:var(--accent-lit)}
.preview-flag{background:var(--clay);color:var(--white)}
.btn{background:var(--accent);color:var(--white)}
.btn:hover{background:var(--clay);color:var(--white)}
.eyebrow{color:var(--accent-lit)}
.eyebrow--dark{color:var(--clay)}
.tlink--dark{color:var(--clay)}
.s-dark{background:var(--ink);color:var(--paper)}
.s-paper{background:var(--paper);color:var(--ink)}
.s-cream{background:var(--cream);color:var(--ink)}
.idx--dark{color:var(--mute-dark)}

/* HERO — editorial ModelFood composition + cartographic motion */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:var(--paper);background:var(--ink);isolation:isolate;overflow:hidden}
.hero__media{position:absolute;inset:-6% 0;z-index:-5;will-change:transform;transform:scale(1.035)}
.hero__media picture,.hero__media img{width:100%;height:100%;object-fit:cover;object-position:54% 44%}
.hero__media img{filter:saturate(.72) contrast(1.04) brightness(.78)}
.hero__wash{position:absolute;inset:0;z-index:-4;background:linear-gradient(90deg,rgba(23,22,18,.93) 0%,rgba(23,22,18,.68) 41%,rgba(23,22,18,.25) 70%,rgba(23,22,18,.45) 100%),linear-gradient(0deg,var(--ink) 0%,transparent 28%,transparent 70%,rgba(23,22,18,.36) 100%)}
.hero__grain{position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.14;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.25'/%3E%3C/svg%3E")}
.hero__topo{position:absolute;z-index:-1;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;transform:translate3d(var(--mx,0),var(--my,0),0);transition:transform .8s var(--ease)}
.hero__contours path{fill:none;stroke:rgba(241,238,229,.24);stroke-width:1.1;stroke-dasharray:1;stroke-dashoffset:1;vector-effect:non-scaling-stroke}
.hero__contours path:nth-child(2n){stroke:rgba(199,149,121,.26)}
.hero.is-ready .hero__contours path{animation:contourDraw 1.7s var(--ease) forwards}
.hero.is-ready .hero__contours path:nth-child(2){animation-delay:.12s}.hero.is-ready .hero__contours path:nth-child(3){animation-delay:.22s}.hero.is-ready .hero__contours path:nth-child(4){animation-delay:.32s}.hero.is-ready .hero__contours path:nth-child(5){animation-delay:.42s}.hero.is-ready .hero__contours path:nth-child(6){animation-delay:.52s}.hero.is-ready .hero__contours path:nth-child(7){animation-delay:.62s}
.hero__survey{fill:none;stroke:rgba(241,238,229,.55);stroke-width:1;opacity:0;transform-origin:836px 288px}
.hero.is-ready .hero__survey{animation:surveyIn 1.2s var(--ease) .65s forwards}
@keyframes contourDraw{to{stroke-dashoffset:0}}
@keyframes surveyIn{from{opacity:0;transform:scale(.78) rotate(-8deg)}to{opacity:1;transform:none}}
.hero__in{padding-top:clamp(124px,18vh,190px);padding-bottom:clamp(46px,8vh,86px);flex:1;display:flex;align-items:flex-end}
.hero__copy{max-width:min(800px,72vw)}
.hero__title{font-size:var(--fs-dsp-xl);line-height:1.06;letter-spacing:-.052em;font-weight:700;text-wrap:balance}
.hero__title .ln--indent{font-size:.91em;margin-left:clamp(0px,5vw,76px);margin-top:.04em}
.hero__lead{margin-top:clamp(24px,3.4vh,38px);max-width:52ch;font-size:var(--fs-lead);line-height:1.55;color:rgba(241,238,229,.78)}
.hero__actions{margin-top:clamp(26px,3.8vh,44px);display:flex;align-items:center;gap:clamp(18px,3vw,36px);flex-wrap:wrap}
.hero__coord-card{position:absolute;right:var(--pad);top:clamp(116px,16vh,170px);display:grid;grid-template-columns:auto auto;gap:5px 24px;padding:14px 16px;border:1px solid rgba(241,238,229,.22);background:rgba(23,22,18,.42);backdrop-filter:blur(8px);color:rgba(241,238,229,.8);transform:translate3d(var(--fx,0),var(--fy,0),0);transition:transform 1s var(--ease);pointer-events:none}
.hero__coord-card i{grid-column:1/-1;height:1px;background:rgba(241,238,229,.18);margin:3px 0}
.hero__foot{position:relative;border-top:1px solid var(--rule);padding:16px 0;background:linear-gradient(0deg,rgba(23,22,18,.68),rgba(23,22,18,.12))}
.hero__foot-in{display:flex;align-items:center;gap:13px;color:rgba(241,238,229,.6);flex-wrap:wrap}
.hero__dot{opacity:.45}

/* INTRO */
.intro{padding:var(--sec) 0}
.intro__grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(320px,.84fr);gap:clamp(44px,7vw,110px);align-items:end}
.intro__aside .lead{color:var(--mute-dark)}
.intro__facts{margin-top:clamp(36px,4vw,56px);border-top:1px solid var(--rule-light)}
.intro__facts>div{display:grid;grid-template-columns:minmax(94px,.42fr) 1fr;gap:20px;padding:15px 0;border-bottom:1px solid var(--rule-light)}
.intro__facts dt{color:var(--clay)}
.intro__facts dd{color:var(--mute-dark)}

/* PROCESS */
.process{padding:var(--sec) 0}
.process .sec-head__note{color:var(--mute)}

/* Photographs keep their original framing; different viewpoints are not overlaid. */
.case{padding:var(--sec) 0}
.case .sec-head__note{color:var(--mute-dark)}
.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.comparison-card{min-width:0;background:var(--paper);border:1px solid var(--rule-light)}
.comparison-card a{display:block;background:#d4cfc3;overflow:hidden}
.comparison-card img{width:100%;height:clamp(290px,40vw,560px);object-fit:contain}
.comparison-card figcaption{display:grid;gap:6px;padding:22px}
.comparison-card .mono{color:var(--clay)}
.comparison-card figcaption>span:last-child{font-size:1.2rem;font-weight:600}

/* USES */
.uses{padding:var(--sec) 0}
.uses .sec-head__note{color:var(--mute-dark)}
.uses__grid{display:grid;grid-template-columns:1.25fr .75fr .75fr;grid-template-rows:auto auto;border-top:1px solid var(--rule-light);border-left:1px solid var(--rule-light)}
.uses__card{min-height:260px;padding:clamp(22px,2.8vw,38px);border-right:1px solid var(--rule-light);border-bottom:1px solid var(--rule-light);display:flex;flex-direction:column;justify-content:flex-end;transform-style:preserve-3d;transition:background .35s var(--ease),transform .25s ease-out}
.uses__card--wide{grid-row:1/3;min-height:540px;background:linear-gradient(180deg,transparent,rgba(102,113,90,.08))}
.uses__card:hover{background:rgba(102,113,90,.075)}
.uses__card .mono{color:var(--clay);margin-bottom:auto}
.uses__card h3{font-size:clamp(1.35rem,2.4vw,2.5rem);line-height:1.02;letter-spacing:-.04em;max-width:14ch}
.uses__card p{margin-top:14px;color:var(--mute-dark);max-width:34ch}

/* PROJECTS */
.projects{padding:var(--sec) 0}
.projects .sec-head__note{color:var(--mute)}
.projects__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.8vw,24px)}
.projects__item{transform-style:preserve-3d;transition:transform .25s ease-out}
.projects__item figure{aspect-ratio:4/3;overflow:hidden;background:var(--ink-3)}
.projects__item img{width:100%;height:100%;object-fit:cover;filter:saturate(.78);transition:transform 1.1s var(--ease),filter 1.1s var(--ease)}
.projects__item:hover img{transform:scale(1.04);filter:saturate(.95)}
.projects__item>div{padding-top:14px}
.projects__item .mono{color:var(--accent-lit)}
.projects__item h3{margin-top:4px;font-size:clamp(1.35rem,2vw,2rem);line-height:1.05;letter-spacing:-.035em}
.projects__note{margin-top:28px;padding-top:18px;border-top:1px solid var(--rule);color:var(--mute);max-width:72ch}

/* CONTACT */
.contact{padding:var(--sec) 0}
.contact__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(44px,7vw,110px);align-items:end}
.contact__aside .lead{color:var(--mute-dark)}
.contact__actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:32px}
.contact__hint{margin-top:26px;padding-top:18px;border-top:1px solid var(--rule-light);color:var(--mute-dark)}

.eco{border-top:1px solid var(--rule-light)}
.eco__links{border-top:1px solid var(--rule-light)}
.eco__link{border-bottom-color:var(--rule-light)}
.eco__link:first-child{border-right-color:var(--rule-light)}
.eco__text{color:var(--mute-dark)}
.ftr{border-top-color:var(--rule-light);color:var(--mute-dark)}

@media (min-width:1001px){
  [data-tilt]:hover{will-change:transform}
}
@media (max-width:1100px){
  .process__grid{grid-template-columns:1fr 1fr}
  .hero__coord-card{display:none}
}
@media (max-width:1000px){
  .hero__copy{max-width:760px}
  .intro__grid,.contact__grid{grid-template-columns:1fr;align-items:start}
  .projects__grid{grid-template-columns:1fr 1fr}
  .uses__grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .uses__card--wide{grid-row:auto;grid-column:1/-1;min-height:320px}
}
@media (max-width:640px){
  :root{--fs-dsp-xl:clamp(2.7rem,13.4vw,4.2rem);--fs-dsp:clamp(2.05rem,9.4vw,3rem);--sec:clamp(68px,14vw,96px)}
  .hero{min-height:100svh}
  .hero__media{inset:0 0 auto;height:58svh;transform:none!important}
  .hero__media img{object-position:52% 42%}
  .hero__wash{background:linear-gradient(180deg,rgba(23,22,18,.22) 0%,rgba(23,22,18,.22) 18%,rgba(23,22,18,.58) 37%,rgba(23,22,18,.92) 54%,var(--ink) 69%)}
  .hero__topo{height:60svh;opacity:.72}
  .hero__in{padding-top:0;padding-bottom:34px;align-items:flex-end}
  .hero__copy{max-width:none}
  .hero__title .ln--indent{margin-left:0}
  .hero__lead{font-size:1.02rem;max-width:34ch}
  .hero__actions{align-items:stretch;flex-direction:column;gap:16px}
  .hero__actions .btn{width:100%;justify-content:space-between}
  .hero__actions .tlink{align-self:flex-start}
  .hero__foot-in{gap:7px 9px}
  .process__grid{grid-template-columns:1fr}
  .process__card{display:grid;grid-template-columns:1fr;}
  .process__card figure{aspect-ratio:16/10}
  .projects__grid{grid-template-columns:1fr}
  .uses__grid{grid-template-columns:1fr}
  .uses__card--wide{grid-column:auto;min-height:300px}
  .uses__card{min-height:240px}
  .contact__actions{align-items:stretch;flex-direction:column;gap:16px}
  .contact__actions .btn{width:100%;justify-content:space-between}
  .contact__actions .tlink{align-self:flex-start}
  .preview-flag{display:none}
}
@media (prefers-reduced-motion:reduce){
  .hero__contours path{stroke-dashoffset:0!important}
  .hero__survey{opacity:1!important;transform:none!important}
  .hero__media,.hero__topo,.hero__coord-card,[data-tilt]{transform:none!important}
}
