/* Punto Due Studio v5 - Dual Field visual layer */
:root{
  --v5-bg:#f1f0eb;
  --v5-surface:#e8e9e2;
  --v5-ink:#111411;
  --v5-muted:#61675f;
  --v5-dark:#0d100e;
  --v5-dark-2:#151a16;
  --v5-accent:#9fb06b;
  --v5-accent-soft:#cbd4aa;
  --v5-line:rgba(17,20,17,.16);
  --v5-line-dark:rgba(255,255,255,.16);
  --v5-font:"Helvetica Neue","Arial Nova","Aptos",Arial,sans-serif;
  --v5-ease:cubic-bezier(.16,1,.3,1);
  --container:min(1440px,calc(100% - 72px));
  --section:clamp(92px,10vw,168px);
}
html{background:var(--v5-bg)}
body{background:var(--v5-bg);color:var(--v5-ink);font-family:var(--v5-font);letter-spacing:-.01em}
body::before{opacity:.045;mix-blend-mode:multiply}
::selection{background:var(--v5-accent);color:var(--v5-ink)}
:where(a,button,input):focus-visible{outline:2px solid var(--v5-accent);outline-offset:5px}

/* Navigation */
.site-header{position:fixed;top:0;left:0;right:0;background:transparent;border:0;transition:background .45s var(--v5-ease),border-color .45s var(--v5-ease);mix-blend-mode:normal}
.site-header.scrolled{background:color-mix(in srgb,var(--v5-bg) 88%,transparent);border-bottom:1px solid var(--v5-line);backdrop-filter:blur(18px) saturate(1.1)}
.nav-shell{min-height:74px;width:var(--container)}
.brand img{width:174px}
.site-nav{gap:28px;font-size:12px;font-weight:600;letter-spacing:.01em}
.site-nav a:not(.nav-cta)::after{bottom:7px}
.nav-cta{border-radius:0;border:1px solid var(--v5-ink);padding:10px 15px;background:var(--v5-ink);color:var(--v5-bg)}
.nav-cta:hover{background:var(--v5-accent);border-color:var(--v5-accent);color:var(--v5-ink);transform:translateY(-1px)}

/* Typography */
.eyebrow,.meta,.project-index,.page-index,.section-label{font-family:var(--v5-font);font-size:10px;font-weight:650;letter-spacing:.14em;text-transform:uppercase}
h1,h2,h3{font-family:var(--v5-font);font-weight:450;letter-spacing:-.065em}
h1{font-size:clamp(56px,7.8vw,132px);line-height:.88}
h2{font-size:clamp(44px,5.8vw,94px);line-height:.92}
h3{letter-spacing:-.045em}
em,.serif{font-family:inherit;font-style:normal;font-weight:450;color:inherit}
.lead{font-family:var(--v5-font);font-size:clamp(18px,1.6vw,25px);line-height:1.38;letter-spacing:-.03em;color:var(--v5-muted)}
.body-lg{font-size:clamp(17px,1.35vw,21px);line-height:1.55;color:var(--v5-muted)}
.button{min-height:50px;border-radius:0;padding:13px 18px;background:var(--v5-ink);border:1px solid var(--v5-ink);font-size:12px;font-weight:650;letter-spacing:.01em;transition:transform .3s var(--v5-ease),background .3s var(--v5-ease),color .3s var(--v5-ease)}
.button:hover{transform:translateY(-2px);background:var(--v5-accent);border-color:var(--v5-accent);color:var(--v5-ink)}
.button.ghost{background:transparent;color:var(--v5-ink);border-color:var(--v5-line)}
.text-link{font-size:12px;border-color:var(--v5-line)}
.text-link:hover{color:var(--v5-ink);border-color:var(--v5-ink)}

/* Homepage hero */
.home-hero{min-height:100dvh;padding:132px 0 62px;display:flex;align-items:center}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);gap:clamp(42px,6vw,96px);align-items:center}
.hero-copy{padding:0}
.hero-copy .eyebrow{margin-bottom:28px;display:block;color:var(--v5-muted)}
.hero-copy .eyebrow::before{display:none}
.hero-copy h1{max-width:860px;text-wrap:balance}
.hero-copy .lead{max-width:610px;margin-top:32px}
.hero-actions{margin-top:30px;gap:10px}
.hero-note{display:none}

.logo-stage,.dual-field-stage{position:relative;min-height:clamp(500px,62vw,720px);max-height:760px;border-radius:0;overflow:hidden;background:linear-gradient(145deg,#daddd0 0%,#aeb998 45%,#6c7752 100%);box-shadow:none;border:1px solid rgba(17,20,17,.12);isolation:isolate}
.logo-stage::before,.dual-field-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 56% 38%,rgba(255,255,255,.55),transparent 35%),linear-gradient(115deg,rgba(255,255,255,.12),transparent 45%);z-index:0;pointer-events:none}
.logo-stage::after,.dual-field-stage::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:rgba(17,20,17,.22);z-index:4}
.logo-stage model-viewer,.dual-field-stage model-viewer{position:absolute;inset:0;width:100%;height:100%;z-index:2;--poster-color:transparent;background:transparent}
.stage-fallback{inset:24%;opacity:.25;filter:blur(.15px)}
.stage-fallback img{width:min(260px,60%);filter:none}
.dual-field-ready .stage-fallback{opacity:0;transition:opacity .4s ease}
.stage-top,.stage-bottom{left:20px;right:20px;z-index:5;font-size:9px;font-weight:650;letter-spacing:.13em;color:rgba(17,20,17,.78)}
.stage-top{top:18px}
.stage-bottom{bottom:18px}
.stage-bottom strong{font-family:var(--v5-font);font-size:18px;line-height:1.08;letter-spacing:-.035em;font-weight:550;font-style:normal;text-transform:none}

/* Manifesto */
.statement-band{background:var(--v5-dark);color:var(--v5-bg);padding:clamp(86px,10vw,154px) 0}
.statement-grid{grid-template-columns:.38fr 1.62fr;gap:clamp(36px,7vw,110px)}
.statement-grid .page-index{color:rgba(255,255,255,.48)}
.statement-grid h2{max-width:1080px;color:var(--v5-bg)}
.statement-grid h2 em{color:var(--v5-accent-soft)}
.statement-side{color:rgba(255,255,255,.62);font-size:14px;line-height:1.7}

/* Homepage work */
.selected-work{padding-top:clamp(100px,12vw,190px)}
.home-work-head{grid-template-columns:1.1fr .5fr;align-items:end;margin-bottom:48px}
.home-work-head .page-index{margin-bottom:18px;color:var(--v5-muted)}
.home-work-head p{font-size:14px;line-height:1.65}
.featured-grid{grid-template-columns:1.22fr .78fr;gap:10px}
.featured-card,.featured-card:nth-child(2){min-height:clamp(520px,58vw,760px);border-radius:0;border:0;background:var(--v5-dark)}
.featured-card:nth-child(2){min-height:clamp(520px,48vw,680px);margin-top:96px}
.featured-card img{filter:saturate(.88) contrast(1.03)}
.featured-card:hover img{transform:scale(1.018);filter:saturate(1)}
.featured-card::after{background:linear-gradient(to top,rgba(8,10,9,.78),transparent 50%)}
.featured-meta{left:20px;right:20px;bottom:18px}
.featured-meta h3{font-family:var(--v5-font);font-size:clamp(32px,4vw,60px);font-weight:480;letter-spacing:-.055em}
.mini-grid{grid-template-columns:repeat(3,1fr);gap:0;margin-top:84px;border-top:1px solid var(--v5-line);border-bottom:1px solid var(--v5-line)}
.mini-card{padding:26px 24px;min-height:240px;border:0;border-right:1px solid var(--v5-line)}
.mini-card:last-child{border-right:0}
.mini-media{height:104px;overflow:hidden;margin-bottom:24px;background:var(--v5-surface)}
.mini-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.12);transition:transform .6s var(--v5-ease)}
.mini-card:hover .mini-media img{transform:scale(1.04)}
.mini-card h3{font-family:var(--v5-font);font-size:27px;font-weight:500}

/* Capabilities */
.cap-strip{grid-template-columns:repeat(4,1fr);border-color:var(--v5-line)}
.cap-strip article{min-height:230px;border-color:var(--v5-line);padding:28px 22px}
.cap-strip span{color:var(--v5-muted)}
.cap-strip h3{font-family:var(--v5-font);font-size:29px;font-weight:500}
.cap-strip p{line-height:1.6}

/* Internal page heroes */
.page-hero{padding:154px 0 clamp(80px,9vw,138px)}
.page-hero-grid{grid-template-columns:.35fr 1.65fr;gap:clamp(40px,8vw,130px)}
.page-hero h1{max-width:1120px}
.page-hero .body-lg{max-width:670px}
.page-subnav{gap:8px}
.page-subnav a{border-radius:0;border-color:var(--v5-line);padding:8px 11px}

/* Projects */
.projects-page{background:var(--v5-dark);color:var(--v5-bg)}
.projects-page .section-intro{grid-template-columns:1fr .5fr}
.project-list{gap:clamp(96px,11vw,168px)}
.project-row{grid-template-columns:minmax(220px,.44fr) minmax(0,1.56fr)}
.project-row:nth-child(even){grid-template-columns:minmax(0,1.56fr) minmax(220px,.44fr)}
.project-copy h2{font-family:var(--v5-font);font-weight:480;letter-spacing:-.055em}
.project-tags span{border-radius:0;border-color:rgba(255,255,255,.18)}
.project-media{border-radius:0;box-shadow:none;border-color:rgba(255,255,255,.12)}
.project-media::after{content:"↗";border-radius:0;width:42px;height:42px;font-size:16px;background:var(--v5-bg)}
.project-copy .text-link{color:var(--v5-bg)}

/* Studio / method / contact */
.story-grid{grid-template-columns:.42fr 1.58fr}
.principles{gap:0;border-top:1px solid var(--v5-line)}
.principle{border-top:0;border-right:1px solid var(--v5-line);padding:24px 22px 0 0;margin-right:22px}
.principle:last-child{border-right:0}
.founders-grid-v4{gap:10px}
.founder-v4{border-radius:0;background:var(--v5-surface);border-color:var(--v5-line);min-height:460px}
.founder-v4:nth-child(2){background:#d8dec6}
.identity-demo{background:var(--v5-dark);color:var(--v5-bg);padding:clamp(34px,4vw,54px);display:grid;grid-template-columns:.55fr 1fr;gap:clamp(36px,5vw,72px);align-items:center}
.identity-demo .body-lg{color:rgba(255,255,255,.62)}
.identity-demo .logo-stage{min-height:560px}
.motion-study{display:none}
.method-grid{gap:0;border-top:1px solid var(--v5-line);border-bottom:1px solid var(--v5-line)}
.method-step{border-radius:0;border:0;border-right:1px solid var(--v5-line);background:transparent;padding:26px 22px;min-height:320px}
.method-step:last-child{border-right:0}
.method-step h3{font-family:var(--v5-font);font-size:28px;font-weight:500}
.method-detail{border-color:var(--v5-line)}
.check-grid span{border-radius:0;background:transparent;border:1px solid var(--v5-line)}
.contact-grid{grid-template-columns:1.05fr .95fr;gap:10px;padding-bottom:var(--section)}
.contact-main,.brief-panel-v4{border-radius:0;border-color:var(--v5-line)}
.contact-main{background:var(--v5-dark);color:var(--v5-bg)}
.contact-main .lead{color:rgba(255,255,255,.65)}
.contact-card{border-radius:0;border-color:rgba(255,255,255,.16)}
.contact-card:hover{background:rgba(255,255,255,.07)}
.brief-panel-v4{background:var(--v5-surface)}
.brief-options label span{border-radius:0}

/* CTA and footer */
.site-cta{background:var(--v5-accent-soft);color:var(--v5-ink);padding:clamp(84px,10vw,150px) 0}
.cta-grid{grid-template-columns:1.12fr .48fr;align-items:end}
.cta-side p{color:rgba(17,20,17,.65)}
.site-footer{background:var(--v5-dark);color:var(--v5-bg);padding:70px 36px 28px}
.footer-grid-v4{max-width:1440px;margin:auto;border-top:1px solid var(--v5-line-dark);padding-top:28px}
.footer-col a,.footer-col button,.footer-note{color:rgba(255,255,255,.58)}
.footer-bottom-v4{max-width:1440px;margin:70px auto 0;border-top:1px solid var(--v5-line-dark);color:rgba(255,255,255,.45)}

/* Cookie UI */
.cookie-fab{border-radius:0;background:var(--v5-dark);color:var(--v5-bg);border:1px solid rgba(255,255,255,.14);box-shadow:none}
.cookie-mark{background:var(--v5-accent)}
.cookie-panel{border-radius:0;background:var(--v5-bg);border:1px solid var(--v5-line);box-shadow:0 30px 100px rgba(0,0,0,.18)}
.cookie-category{border-radius:0;background:var(--v5-surface)}

/* Legacy policy and 404 surfaces */
.policy-page,.not-found-page{background:var(--v5-bg);font-family:var(--v5-font);color:var(--v5-ink)}
.policy-page .header,.not-found-page .header{background:transparent;border-bottom:1px solid var(--v5-line)}
.policy-main,.not-found{padding-top:150px}
.policy-hero h1,.not-found h1{font-family:var(--v5-font);font-weight:450;letter-spacing:-.065em}
.policy-hero h1 em,.not-found h1 em{font-family:inherit;font-style:normal;color:var(--v5-accent)}
.policy-section{border-color:var(--v5-line)}
.policy-note{border-radius:0;background:var(--v5-surface)}
.not-found-code{letter-spacing:.14em}

/* Reveal behavior */
.reveal{opacity:1;transform:translateY(22px);filter:blur(7px);transition:transform .8s var(--v5-ease),filter .8s var(--v5-ease),opacity .8s var(--v5-ease)}
.reveal.in{opacity:1;transform:none;filter:none}
.scroll-sentinel{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none}

@media(max-width:980px){
  :root{--container:min(100% - 38px,900px)}
  .hero-grid{grid-template-columns:1fr;gap:38px}.home-hero{padding-top:116px}.logo-stage,.dual-field-stage{min-height:600px}
  .statement-grid,.home-work-head,.page-hero-grid,.projects-page .section-intro,.story-grid,.identity-demo,.cta-grid,.contact-grid{grid-template-columns:1fr}
  .statement-side{margin:24px 0 0}.featured-grid{grid-template-columns:1fr}.featured-card:nth-child(2){margin-top:0}
  .cap-strip{grid-template-columns:repeat(2,1fr)}.cap-strip article:nth-child(2){border-right:0}.cap-strip article:nth-child(-n+2){border-bottom:1px solid var(--v5-line)}
  .method-grid{grid-template-columns:repeat(2,1fr)}.method-step:nth-child(2){border-right:0}.method-step:nth-child(-n+2){border-bottom:1px solid var(--v5-line)}
  .identity-demo .logo-stage{min-height:520px}
}

@media(max-width:760px){
  :root{--container:calc(100% - 28px);--section:84px}
  .site-header{background:color-mix(in srgb,var(--v5-bg) 94%,transparent);border-bottom:1px solid var(--v5-line)}
  .nav-shell{min-height:66px}.brand img{width:154px}.menu-toggle{display:flex}
  .site-nav{background:var(--v5-dark);color:var(--v5-bg);padding:90px 20px 28px;gap:0}.site-nav a{border-color:rgba(255,255,255,.16)}.site-nav .nav-cta{background:var(--v5-accent);color:var(--v5-ink);margin-top:16px}
  h1{font-size:clamp(50px,16vw,76px);line-height:.9}h2{font-size:clamp(40px,12.5vw,60px)}
  .home-hero{min-height:auto;padding:110px 0 52px}.hero-copy .eyebrow{margin-bottom:20px}.hero-copy .lead{margin-top:24px}.hero-actions{margin-top:24px;display:grid;grid-template-columns:1fr}.button{width:100%}
  .logo-stage,.dual-field-stage{min-height:520px}.stage-bottom strong{font-size:16px}
  .statement-band{padding:80px 0}.statement-grid{gap:38px}
  .home-work-head{gap:20px;margin-bottom:34px}.featured-grid{gap:10px}.featured-card,.featured-card:nth-child(2){min-height:440px}
  .mini-grid{grid-template-columns:1fr;margin-top:52px}.mini-card{border-right:0;border-bottom:1px solid var(--v5-line);min-height:180px}.mini-card:last-child{border-bottom:0}.mini-media{height:120px}
  .cap-strip,.method-grid{grid-template-columns:1fr}.cap-strip article,.method-step{border-right:0;border-bottom:1px solid var(--v5-line)}.cap-strip article:last-child,.method-step:last-child{border-bottom:0}
  .page-hero{padding:118px 0 78px}.page-hero-grid{gap:24px}.page-subnav{display:grid;grid-template-columns:1fr 1fr}.page-subnav a{text-align:center}
  .project-row,.project-row:nth-child(even),.project-row:nth-child(3){grid-template-columns:1fr;gap:24px}.project-row:nth-child(even) .project-copy,.project-row:nth-child(even) .project-media{order:initial}.project-row:nth-child(3) .project-copy{display:flex}.project-copy{min-height:auto}.project-media,.project-row:nth-child(n) .project-media{aspect-ratio:4/3;max-width:none}
  .principles,.founders-grid-v4{grid-template-columns:1fr}.principle{border-right:0;margin-right:0;padding-right:0}.founders-grid-v4{gap:10px}.founder-v4{min-height:360px}
  .identity-demo{padding:24px 14px}.identity-demo .logo-stage{min-height:480px}
  .site-cta{padding:76px 0}.cta-grid{gap:36px}
  .site-footer{padding:52px 20px 24px}.footer-grid-v4{grid-template-columns:1fr;gap:38px}.footer-bottom-v4{margin-top:48px;display:grid;gap:8px}
  .cookie-fab{right:12px;bottom:12px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .reveal{transform:none;filter:none}
}
