@font-face{font-family:'Jost';font-style:normal;font-weight:300;
  font-display:swap;src:url('../fonts/jost-latin-300-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
  U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;
  font-display:swap;src:url('../fonts/jost-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
  U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;
  font-display:swap;src:url('../fonts/jost-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
  U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Jost';font-style:normal;font-weight:700;
  font-display:swap;src:url('../fonts/jost-latin-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
  U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;
  font-display:swap;src:url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
  U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;
  font-display:swap;src:url('../fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
  U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  --paper:#ffffff; --ink:#0b0b0b; --line:#3a3a3a; --soft:#8a8a8a;
  --display:"Jost",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --title:"futura-pt-bold","futura-pt","Futura PT","Jost","Futura",
    -apple-system,"Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --gut:clamp(20px,5vw,84px);
  --nav:58px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;
  background:#0b0b0b;color-scheme:dark;min-height:100%}
body{margin:0;background:#0b0b0b;color:var(--paper);font-family:var(--display);
  min-height:100%;
  font-size:clamp(15px,1.02vw,17px);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.03em;line-height:1}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
a{color:inherit}
img{display:block;width:100%;height:auto}
figure{margin:0}
.wrap{max-width:1320px;margin:0 auto;padding:0 var(--gut)}

/* language */
html[data-lang="it"] [lang="en"]{display:none !important}
html[data-lang="en"] [lang="it"]{display:none !important}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav);z-index:80;
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:#8f8f8f;
  transition:background .35s ease,color .35s ease,border-color .35s ease;
  border-bottom:1px solid transparent}
.navwrap{height:100%;display:flex;align-items:center;gap:clamp(12px,2vw,30px)}
.nav.solid{background:rgba(11,11,11,.90);backdrop-filter:blur(10px);
  border-bottom-color:var(--line);color:#8f8f8f}
.nav a{text-decoration:none;transition:color .2s}
.nav .mark{color:#fff;letter-spacing:.2em;margin-right:auto;font-weight:500}
.nav.solid .mark{color:#fff}
.nav a:not(.mark):hover{color:#fff}
.nav.solid a:not(.mark):hover{color:#fff}
.nav .menu{display:flex;gap:clamp(12px,1.9vw,28px);align-items:center}
.nav .sep{width:1px;height:13px;background:currentColor;opacity:.3}
.lang b{font-weight:400;cursor:pointer;padding:2px 1px}
.lang b[aria-pressed="true"]{color:#fff;border-bottom:1px solid currentColor}
.nav.solid .lang b[aria-pressed="true"]{color:#fff}
.navtoggle{display:none;background:none;border:0;color:inherit;font:inherit;
  cursor:pointer;letter-spacing:.16em;padding:6px 0}

/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;background:var(--ink);color:var(--paper);
  display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;
  padding-bottom:clamp(28px,4vw,54px)}
#field{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(11,11,11,.97) 0%,rgba(11,11,11,.90) 32%,
      rgba(11,11,11,.34) 51%,rgba(11,11,11,0) 66%),
    linear-gradient(180deg,rgba(11,11,11,.58) 0%,rgba(11,11,11,0) 17%,
      rgba(11,11,11,0) 80%,rgba(11,11,11,.62) 100%)}

.hero .wrap{position:relative;z-index:2;width:100%}
.hero-txt{width:100%}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.34em;text-transform:uppercase;
  color:#8f8f8f;margin-bottom:clamp(14px,2vw,22px)}
.payoff{font-family:var(--title);font-size:clamp(32px,6vw,92px);line-height:.94;
  letter-spacing:-.032em;max-width:17ch;text-wrap:balance}
.payoff em{font-style:normal;color:#7d7d7d}
.hero-foot{display:flex;flex-wrap:wrap;gap:12px 40px;align-items:baseline;
  margin-top:clamp(20px,2.8vw,36px);font-family:var(--mono);font-size:11.5px;
  letter-spacing:.13em;text-transform:uppercase;color:#8f8f8f}
.hero-foot b{color:#fff;font-weight:500}
.hud{display:flex;align-items:center;gap:13px;margin-top:clamp(18px,2.4vw,28px);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:#585858;
  white-space:nowrap;overflow:hidden;max-width:100%}
.hud .st{flex:none;color:#cfcfcf;border:1px solid #333;padding:3px 9px;letter-spacing:.24em;
  transition:color .3s,border-color .3s}
.hud .st.lock{color:#fff;border-color:#fff}
.hud .mode{flex:none;color:#b4b4b4;letter-spacing:.22em}
.hud code{font-family:inherit;letter-spacing:.26em;overflow:hidden;color:#4f4f4f}
.scroll-cue{position:absolute;right:var(--gut);bottom:clamp(28px,4vw,54px);z-index:2;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:#6e6e6e;
  writing-mode:vertical-rl}

/* ---------- sections ---------- */
section{padding:clamp(64px,9vw,150px) 0;border-top:1px solid var(--line)}
.tag{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:#7a7a7a;display:flex;align-items:baseline;gap:14px;
  margin-bottom:clamp(20px,2.6vw,36px)}
.tag::after{content:"";flex:1;height:1px;background:var(--line)}
.h2{font-family:var(--title);font-size:clamp(28px,4.4vw,64px);line-height:.98;
  letter-spacing:-.024em;max-width:18ch;margin-bottom:clamp(16px,2vw,26px);text-wrap:balance}
.note{font-family:var(--mono);font-size:12px;line-height:1.7;letter-spacing:.05em;
  color:#8a8a8a;max-width:70ch}
.note em{font-style:normal;color:#fff}

/* reveal */
.rv{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}

.subtitle{font-family:var(--display);font-weight:300;font-size:clamp(16px,1.5vw,21px);
  line-height:1.5;color:#b8b8b8;max-width:48ch;margin:0}
.spacefig{width:min(100%,420px);margin:clamp(34px,4.6vw,72px) auto 0}
.spacefig svg{width:100%;height:auto;display:block}

/* ---------- closing examples ---------- */
.ex{margin:clamp(26px,3.4vw,48px) 0 clamp(52px,7vw,104px)}
.ex img{width:100%;height:auto;display:block;background:#0b0b0b}
.ex .pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(14px,2.4vw,40px);
  align-items:center}
.ex .pair svg{width:100%;height:auto;display:block}
.ex figcaption{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;
  text-transform:uppercase;color:#7a7a7a;margin-top:14px}
.ex.wide{max-width:940px}
.ex.narrow{max-width:700px}
.shot{width:100%;margin:clamp(30px,4vw,60px) 0 0}
.shot img{width:100%;height:auto;display:block;background:#141414}

/* ---------- construction-rule panels ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:clamp(26px,3.4vw,46px)}
.pcard{background:var(--ink);padding:clamp(20px,2.1vw,30px) clamp(16px,1.7vw,24px);
  display:flex;flex-direction:column;align-items:center;text-align:center}
.pcard h3{font-family:var(--title);font-size:clamp(16px,1.35vw,20px);letter-spacing:.05em;
  line-height:1}
.pcard .sub{font-family:var(--title);font-weight:700;font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:#7a7a7a;margin:5px 0 0}
.pfig{width:100%;max-width:200px;aspect-ratio:1;margin-top:clamp(16px,1.8vw,24px)}
.pfig svg{width:100%;height:100%;display:block}
.pstrip{width:100%;max-width:200px;margin-top:9px}
.pstrip svg{width:100%;height:auto;display:block}
.pstat{font-family:var(--title);font-weight:700;font-size:clamp(11.5px,1vw,14px);
  line-height:1.28;letter-spacing:.02em;text-transform:uppercase;color:#fff;
  margin:clamp(12px,1.4vw,18px) 0 0;min-height:3.9em;max-width:19ch;
  display:flex;align-items:center;justify-content:center}
.pshapes{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:200px;
  margin-top:clamp(16px,1.8vw,24px)}
.pshapes figure{margin:0}
.pshapes .box{aspect-ratio:1;border:1px solid #1d1d1d;display:grid;place-items:center;padding:4px}
.pshapes .box svg{width:100%;height:auto;max-height:100%;display:block}
.pshapes figcaption{font-family:var(--mono);font-size:8px;letter-spacing:.18em;
  color:#5f5f5f;text-align:center;margin-top:6px}
.pcard .date{font-family:var(--mono);font-size:8.5px;letter-spacing:.24em;color:#4f4f4f;
  margin-top:auto;padding-top:clamp(14px,1.6vw,22px)}

/* ---------- statement ---------- */
.stat{font-family:var(--title);font-size:clamp(23px,3.4vw,50px);line-height:1.06;
  letter-spacing:-.02em;font-weight:400;max-width:24ch;
  margin:clamp(26px,3.4vw,50px) 0 0;text-wrap:balance}
.stat b{font-weight:700}
.byline{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:#6e6e6e;margin-top:clamp(16px,2.2vw,28px)}

/* ---------- contact ---------- */
.cta{display:inline-block;margin-top:clamp(20px,2.6vw,34px);font-family:var(--mono);
  font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;
  color:#fff;border:1px solid #444;padding:14px 24px;
  transition:background .25s,color .25s,border-color .25s}
.cta:hover{background:#fff;color:var(--ink);border-color:#fff}
.colo{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:clamp(18px,2.6vw,44px);margin-top:clamp(34px,4.4vw,64px);font-family:var(--mono);
  font-size:12px;line-height:1.85;color:#8a8a8a}
.colo b{display:block;color:#fff;font-weight:400;letter-spacing:.2em;
  text-transform:uppercase;font-size:10px;margin-bottom:10px}
.colo a{text-decoration:none;border-bottom:1px solid #3a3a3a;color:#cfcfcf}
.colo a:hover{border-color:#cfcfcf}
.sig{font-family:var(--title);font-size:clamp(40px,9.4vw,158px);line-height:.9;
  letter-spacing:-.036em;margin-top:clamp(46px,7vw,110px);color:#1e1e1e}

/* ---------- responsive ---------- */
@media (max-width:820px){
  .srow{grid-template-columns:1fr;gap:14px;align-items:start}
  .srow.head{display:none}
  .sfigs{max-width:300px}
}
@media (max-width:900px){
  .hero::after{background:linear-gradient(180deg,rgba(11,11,11,.55) 0%,
    rgba(11,11,11,0) 14%,rgba(11,11,11,.10) 44%,rgba(11,11,11,.88) 62%,
    rgba(11,11,11,.98) 76%,rgba(11,11,11,1) 100%)}
  .tri{grid-template-columns:1fr}
  .studio{grid-template-columns:1fr}
  .w-b,.w-c{grid-column:span 12}
  .scroll-cue{display:none}
  .nav .menu{position:fixed;top:var(--nav);left:0;right:0;background:rgba(11,11,11,.97);
    flex-direction:column;align-items:flex-start;gap:0;padding:8px var(--gut) 22px;
    display:none;border-bottom:1px solid #2a2a2a}
  .nav .menu.open{display:flex}
  .nav .menu a{padding:11px 0;color:#c9c9c9}
  .nav .sep{display:none}
  .navtoggle{display:block;margin-left:auto}
  .lang{padding-top:10px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
}
@media print{
  .nav,#field,.scroll-cue{display:none}
  .hero,section.dark{background:#fff;color:#000;min-height:auto}
  .payoff em,.eyebrow,.hero-foot{color:#555}
  .sig{display:none}
}

.page{padding-top:calc(var(--nav) + clamp(54px,9vw,132px));border-top:none}
.prose{font-family:var(--display);font-weight:300;font-size:clamp(16px,1.5vw,21px);
  line-height:1.55;color:#b8b8b8;max-width:52ch;margin:clamp(22px,3vw,38px) 0 0}
.prose p{margin:0 0 1.15em}
.prose p:last-child{margin-bottom:0}
.mailto{display:inline-block;font-family:var(--title);font-weight:700;
  font-size:clamp(24px,3.4vw,52px);letter-spacing:-.022em;color:#fff;
  text-decoration:none;border-bottom:2px solid #4a4a4a;padding-bottom:4px;
  margin-top:clamp(26px,3.4vw,48px);transition:border-color .25s}
.mailto:hover{border-color:#fff}
