/* gaman studio — sumi 70 · navy alt · crimson <5% (mai fill) · off-white per testo */
@font-face{font-family:Syne;src:url(fonts/syne.woff2) format("woff2");font-weight:400 800;font-display:swap}
@font-face{font-family:"Syne Mono";src:url(fonts/syne-mono.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url(fonts/inter.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:Shippori;src:url(fonts/jp-101.woff2) format("woff2");font-weight:500;unicode-range:U+6211}
@font-face{font-family:Shippori;src:url(fonts/jp-94.woff2) format("woff2");font-weight:500;unicode-range:U+6162}

:root{
  --sumi:#0A0B0A;--sumi2:#111412;--navy:#0E1B33;--crimson:#8B1A1A;--off:#EDEBE4;
  --muted:rgba(237,235,228,.6);--line:rgba(237,235,228,.14);--line2:rgba(237,235,228,.24);
  --ease-in:cubic-bezier(.16,1,.3,1);--ease-tr:cubic-bezier(.22,1,.36,1);
  --gut:clamp(22px,calc(-30px + 12vw),168px);--g:clamp(16px,2vw,32px);--max:1440px;--hd:76px;
  --sc:1.03;--rv:12px;--r-lg:28px;--r-sm:16px;--glow:rgba(40,66,120,.24);
  --g-text:linear-gradient(180deg,#FBFAF6 0%,#EDEBE4 42%,rgba(237,235,228,.56) 100%);
  --g-edge:linear-gradient(150deg,rgba(237,235,228,.34),rgba(237,235,228,.05) 42%,rgba(237,235,228,.16));
  --g-card:linear-gradient(160deg,rgba(237,235,228,.075),rgba(237,235,228,.02) 55%,rgba(237,235,228,.045));
  --f-d:"Syne",system-ui,sans-serif;--f-m:"Syne Mono",ui-monospace,monospace;--f-b:"Inter",system-ui,sans-serif;
  color-scheme:dark;
}
@media (max-width:820px){:root{--sc:1.015;--rv:8px;--hd:64px;--r-lg:22px;--r-sm:12px}}

*{box-sizing:border-box}
html{scroll-padding-top:calc(var(--hd) + 16px);-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--sumi);color:var(--off);font:400 clamp(16px,.25vw + 15px,18px)/1.6 var(--f-b);overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(70% 45% at 88% -8%,var(--glow),transparent 70%),radial-gradient(55% 40% at 4% 4%,rgba(237,235,228,.055),transparent 70%)}
img{display:block;max-width:100%}
h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
::selection{background:var(--off);color:var(--sumi)}
[hidden]{display:none!important}
:focus-visible{outline:1px solid var(--off);outline-offset:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--off);color:var(--sumi);padding:12px 16px}.skip:focus{left:8px}
.wrap{width:100%;max-width:calc(var(--max) + var(--gut)*2);margin-inline:auto;padding-inline:var(--gut)}
.sec{padding-block:clamp(72px,10vw,160px)}

/* type */
.label,.nl{font:400 clamp(11px,.6vw + 7px,12px)/1.4 var(--f-m);letter-spacing:clamp(.1em,.3vw + .05em,.14em);text-transform:uppercase;color:var(--muted)}
.label--on{color:var(--off)}
.ttl{font:800 clamp(40px,7.6vw,124px)/.95 var(--f-d);letter-spacing:-.035em;text-wrap:balance;background:var(--g-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.h2{font:800 clamp(28px,4.2vw,68px)/1.05 var(--f-d);letter-spacing:-.025em;text-wrap:balance;background:var(--g-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.h3{font:800 clamp(20px,2vw,28px)/1.15 var(--f-d);letter-spacing:-.01em}
.lead{font-size:clamp(17px,1.1vw + 11px,22px);color:var(--muted);max-width:34ch;text-wrap:balance}
.body{max-width:62ch}.muted{color:var(--muted)}

/* nav link: sottolineatura che si disegna da sinistra */
.nl{position:relative;display:inline-flex;align-items:center;min-height:44px;transition:color .4s var(--ease-tr)}
.nl::after{content:"";position:absolute;left:0;right:0;bottom:10px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-tr)}
.nl[aria-current]{color:var(--off)}.nl[aria-current]::after,.nl:focus-visible::after{transform:scaleX(1)}
@media (hover:hover){.nl:hover{color:var(--off);transition-duration:.25s}.nl:hover::after{transform:scaleX(1);transition-duration:.3s}}

/* HEADER: barra fissa con filetto e blur — mai confondibile col contenuto */
.hd{position:sticky;top:0;z-index:50;height:var(--hd);display:flex;align-items:center;justify-content:space-between;padding-inline:var(--gut);background:rgba(10,11,10,.94);border-bottom:1px solid var(--line);view-transition-name:hd}
@supports (backdrop-filter:blur(1px)){.hd{background:rgba(10,11,10,.72);backdrop-filter:blur(16px) saturate(1.2)}}
.hd__mark{display:flex;align-items:center;min-width:44px;min-height:44px}
.hd__mark span{display:block;height:38px;aspect-ratio:257/446;overflow:hidden}
.hd__mark img{width:100%;height:auto}
.hd__nav{display:flex;gap:2px;padding:0 6px;border:1px solid var(--line);border-radius:999px;background:rgba(237,235,228,.05)}.hd__nav .nl{padding-inline:12px;min-width:44px;justify-content:center}.hd__nav .nl::after{left:12px;right:12px}

/* FOOTER: superficie Navy */
.ft{margin:clamp(40px,6vw,96px) 12px 12px;border-radius:clamp(28px,4vw,44px);border:1px solid transparent;background:radial-gradient(60% 90% at 12% 0%,rgba(237,235,228,.08),transparent 70%) padding-box,linear-gradient(180deg,#161A18,#0D0F0E) padding-box,var(--g-edge) border-box}
.ft__in{padding-block:clamp(64px,8vw,120px) 24px;display:flex;flex-direction:column;gap:clamp(48px,6vw,88px)}
.ft__logo{display:block;width:min(100%,560px)}.ft__logo img{width:100%;height:auto}
.ft__cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px var(--g);border-top:1px solid rgba(237,235,228,.2);padding-top:32px}
.ft__cols>div{display:flex;flex-direction:column;align-items:flex-start}.ft__cols .label{margin-bottom:8px}
.ft__base{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0 24px;border-top:1px solid rgba(237,235,228,.2);padding-top:8px}
@media (max-width:820px){.ft__cols{grid-template-columns:1fr}}

/* home */
.hero{padding-block:clamp(40px,5vw,80px) clamp(24px,3vw,48px);display:flex;flex-direction:column;gap:clamp(32px,4vw,64px)}
.hero__logo{position:relative;width:min(100%,1120px);aspect-ratio:1342/547}
.hl{position:absolute;inset:0;width:100%;height:100%;clip-path:inset(0 0 30% 0)}.hl--b{clip-path:inset(88% 0 0 0)}
.hero__foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px 32px;border-top:1px solid var(--line);padding-top:clamp(20px,2.4vw,32px)}
.btns{display:flex;flex-wrap:wrap;gap:12px}
#work,.sec--flush{padding-top:clamp(40px,5vw,72px)}
.sec__hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(32px,4vw,64px);border-bottom:1px solid var(--line);padding-bottom:8px}
.pg-hd{display:flex;flex-direction:column;gap:clamp(24px,3vw,44px);padding-top:clamp(64px,9vw,140px);padding-bottom:clamp(40px,5vw,72px)}

/* placeholder / foto */
.ph{--ph-bg:#121614;position:relative;overflow:hidden;border-radius:var(--r-lg);border:1px solid transparent;background:linear-gradient(160deg,#181C1A,#0E1110) padding-box,var(--g-edge) border-box;aspect-ratio:var(--r);container-type:inline-size}
.ph--img{border:0;background:none}
.ph__in{position:absolute;inset:0;transition:transform .4s var(--ease-tr)}
.ph--img img{width:100%;height:100%;object-fit:cover}
.ph__m{position:absolute;inset:0;color:var(--line2)}.ph__m svg{width:100%;height:100%}
.ph__m svg *{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke}
.ph__m rect{fill:var(--ph-bg)}.ph__m .dot{fill:var(--ph-bg)}
.ph--plain .ph__in{background:linear-gradient(to top right,transparent calc(50% - .5px),var(--line) 50%,transparent calc(50% + .5px)),linear-gradient(to bottom right,transparent calc(50% - .5px),var(--line) 50%,transparent calc(50% + .5px))}
.ph__id,.ph__r,.ph__f,.ph__b{position:absolute}
.ph__id{top:14px;left:16px;color:var(--off)}.ph__r{top:14px;right:16px}
.ph__b{left:10px;bottom:36px;max-width:34ch;padding:4px 8px;border-radius:8px;background:var(--ph-bg);font-size:13px;line-height:1.45;color:var(--muted)}
.ph__f{left:16px;bottom:14px;text-transform:none;letter-spacing:.04em;opacity:.85}
@container (max-width:420px){.ph__b{font-size:12px;max-width:26ch}}
@container (max-width:260px){.ph__b,.ph__f{display:none}.ph__id{left:10px;top:10px}.ph__r{right:10px;top:10px}}
@media (max-width:820px){.ph{aspect-ratio:var(--rm)}}

/* blocchi progetto: quattro composizioni diverse */
.plist{display:flex;flex-direction:column;gap:clamp(88px,13vw,200px);transition:opacity .4s var(--ease-in)}.plist.out{opacity:0;transition-duration:.2s}
.blk__a{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:clamp(20px,2.4vw,36px);align-items:end}
.blk__media{grid-column:1/-1}
.blk__body{grid-column:1/-1;container-type:inline-size;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px}
.blk__t{display:inline-block;font:800 clamp(30px,min(8.6cqi,5.4vw),84px)/.95 var(--f-d);letter-spacing:-.035em;text-wrap:balance;margin-bottom:12px;background:var(--g-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.blk__t .rule{display:block;height:1px;margin-top:14px;background:linear-gradient(90deg,var(--crimson),rgba(139,26,26,0));transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-tr)}
.chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:460px}.chips li{padding:5px 12px;border:1px solid var(--line);border-radius:999px}
.blk--split .blk__media{grid-column:5/-1;grid-row:1}
.blk--split .blk__body{grid-column:1/5;grid-row:1}
.blk--splitl .blk__media{grid-column:1/9;grid-row:1}
.blk--splitl .blk__body{grid-column:9/-1;grid-row:1}
.blk--tall .blk__media{grid-column:1/7}.blk--tall .blk__body{grid-column:8/-1}
.blk--split .blk__body,.blk--splitl .blk__body,.blk--tall .blk__body{flex-direction:column;align-items:flex-start;justify-content:flex-end}
.blk--split .chips,.blk--splitl .chips,.blk--tall .chips{justify-content:flex-start;margin-top:20px}
.blk--band{margin-inline:calc(50% - 50vw + 12px)}
.blk--band .blk__a{display:flex;flex-direction:column;align-items:stretch}
.blk--band .blk__body{width:100%;max-width:calc(var(--max) + var(--gut)*2);margin-inline:auto;padding-inline:var(--gut)}
@media (hover:hover){
  .blk:hover .ph__in{transform:scale(1.02);transition-duration:.25s}
  .blk:hover .rule{transform:scaleX(1);transition:transform .4s var(--ease-tr) 40ms}
}
@media (hover:none){.blk__t .rule{transform:none;width:32px}}
@media (max-width:1024px){
  .blk__a{display:flex;flex-direction:column;align-items:stretch}
  .blk--split .blk__body,.blk--splitl .blk__body,.blk--tall .blk__body{flex-direction:row;flex-wrap:wrap;align-items:flex-end;justify-content:space-between}
  .blk--split .chips,.blk--splitl .chips,.blk--tall .chips{margin-top:0;justify-content:flex-end}
}
@media (max-width:640px){.chips,.blk--split .chips,.blk--splitl .chips,.blk--tall .chips{justify-content:flex-start;max-width:none}.blk__body{flex-direction:column;align-items:flex-start!important}}

/* servizi + cta */
.svc{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:40px}
.svc__intro{grid-column:1/6;display:flex;flex-direction:column;gap:24px}
.svc__list{grid-column:7/-1;border-top:1px solid var(--line)}
.svc__a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;min-height:44px;padding-block:20px;border-bottom:1px solid var(--line);transition:border-color .4s var(--ease-tr)}
@media (hover:hover){.svc__a:hover{border-color:var(--line2);transition-duration:.25s}.svc__a:hover .h3{color:var(--muted)}}
.svc__a .h3{transition:color .4s var(--ease-tr)}
.cta__card{padding:clamp(32px,5vw,72px);display:flex;flex-direction:column;align-items:flex-start;gap:clamp(20px,2.4vw,32px);background:radial-gradient(70% 120% at 100% 0%,rgba(237,235,228,.09),transparent 65%),var(--g-card)}
.cta__card .h2{max-width:18ch}
@media (max-width:820px){.svc__intro,.svc__list{grid-column:1/-1}}

/* work: filtri */

/* case study */
.cs-hd{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(20px,2.6vw,36px);padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(28px,3.6vw,56px)}
.cs-cover .ph{max-height:86dvh}
.cs-body{padding-block:clamp(16px,2vw,32px)}
.row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:16px;padding-block:clamp(28px,3.4vw,52px);border-top:1px solid var(--line)}
.row>.label{grid-column:1/4;padding-top:.6em}.row>.txt{grid-column:4/11}
.txt p+p{margin-top:1.1em}
.row--menu>.txt{grid-column:4/-1}
.menu li{display:flex;align-items:baseline;gap:14px;padding-block:14px}
.menu li>span:first-child{font:800 clamp(20px,2vw,28px)/1.15 var(--f-d);letter-spacing:-.01em}
.menu i{flex:1;min-width:24px;border-bottom:1px dotted var(--line2);transform:translateY(-5px)}
.menu .label{text-align:right}

/* DECISION: sempre dominante */
.dec{display:flex;flex-direction:column;gap:clamp(40px,5vw,72px);padding-block:clamp(96px,14vw,220px) clamp(64px,8vw,128px)}
.dec__rule{display:block;width:clamp(72px,8vw,120px);height:1px;background:linear-gradient(90deg,var(--crimson),rgba(139,26,26,0));transform-origin:left}
.row--dec{border-top:0;padding-block:0}.row--dec>.txt{grid-column:4/-1}
.dec__txt{font:450 clamp(26px,3.3vw,50px)/1.22 var(--f-b);letter-spacing:-.022em;text-wrap:pretty;max-width:26em}
.mod{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:16px}
.mod--cons>.label{grid-column:1/4;padding-top:.6em}
.mod--cons ul{grid-column:4/-1;border-top:1px solid var(--line)}.mod--cons li{padding-block:18px;border-bottom:1px solid var(--line)}
.mod__cap{grid-column:1/-1}
@media (max-width:820px){
  .row>.label,.row>.txt,.row--menu>.txt,.row--dec>.txt,.mod--cons>.label,.mod--cons ul{grid-column:1/-1}
  .mod--pair,.mod--swap{grid-template-columns:1fr}
}

/* gallery: colonne e sfalsamenti per progetto (dati in content.mjs) */
.gal{padding-top:clamp(40px,6vw,96px)}
.gal__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:clamp(40px,5vw,72px);margin-top:clamp(24px,3vw,44px);align-items:start}
.gi{grid-column:var(--st,1) / span var(--s);margin-top:var(--mt);display:flex;flex-direction:column;gap:14px}
@media (max-width:820px){.gi{grid-column:1/-1;margin-top:0}}
.next{padding-top:clamp(96px,12vw,180px)}.next>.label{margin-bottom:24px}
.next__a{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:clamp(28px,4vw,56px)}
.next__t{display:flex;flex-direction:column;gap:20px;min-width:0}
.arr{display:grid;place-items:center;flex:none;width:56px;height:56px;border:1px solid var(--line2);border-radius:50%;font-size:20px;transition:background .4s var(--ease-tr),color .4s var(--ease-tr)}
.next__a .ttl{transition:opacity .4s var(--ease-tr)}
@media (hover:hover){.next__a:hover .ttl{opacity:.72;transition-duration:.25s}.next__a:hover .arr{background:var(--off);color:var(--sumi);transition-duration:.25s}}

/* about + contact */
.ab-mean{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:48px;align-items:start;padding-bottom:clamp(96px,12vw,180px)}
.ab-kanji{grid-column:1/6;display:flex;flex-direction:column;gap:20px}
.kanji{font:500 clamp(120px,17vw,280px)/1 Shippori,"Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:-.02em;background:var(--g-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.ab-text{grid-column:7/-1;display:flex;flex-direction:column;gap:28px}
.ab-studio{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:48px}
.ab-studio__l{grid-column:1/7;display:flex;flex-direction:column;gap:28px}
.ab-studio__r{grid-column:8/-1;display:flex;flex-direction:column;align-items:flex-start;gap:24px}
@media (max-width:820px){.ab-kanji,.ab-text,.ab-studio__l,.ab-studio__r{grid-column:1/-1}}
.ct{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(28px,4vw,52px);min-height:calc(72dvh - var(--hd))}
.mail{position:relative;width:fit-content;max-width:100%;font:800 clamp(26px,4.2vw,80px)/1.02 var(--f-d);letter-spacing:-.035em;padding-bottom:.18em;background:var(--g-text);-webkit-background-clip:text;background-clip:text;color:transparent}
.mail::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--crimson);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease-tr)}
@media (hover:hover){.mail:hover::after{transform:scaleX(1)}}@media (hover:none){.mail::after{transform:scaleX(1)}}
.ct__soc{display:flex;flex-wrap:wrap;gap:12px}

/* ---- MOTION: tutto sotto .motion (assente con prefers-reduced-motion: reduce) ---- */
.motion [data-rv],.motion [data-load]{opacity:0;transform:translateY(var(--rv));transition:opacity .4s var(--ease-in) var(--d,0s),transform .7s var(--ease-in) var(--d,0s)}
.motion [data-load]{transform:translateY(10px)}
.motion [data-rv].in,.motion [data-load].in{opacity:1;transform:none}
.motion .wc{will-change:transform,opacity}
.motion .dec__rule[data-rv]{opacity:1;transform:scaleX(0);transition:transform .4s var(--ease-in) .35s}
.motion .dec__rule[data-rv].in{transform:scaleX(1)}
.motion .reveal-title{clip-path:inset(0 0 100% 0);transform:translateY(4px);transition:clip-path .7s var(--ease-in),transform .7s var(--ease-in)}
.motion .reveal-title.in{clip-path:inset(-.1em -.1em -.3em -.1em);transform:none}
.motion .sc:not(.in) .ph__in{transform:scale(var(--sc))}
.motion .sc.in .ph__in{animation:sc-in .8s var(--ease-in) var(--d,0s) backwards}
@keyframes sc-in{from{transform:scale(var(--sc))}}
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  ::view-transition-old(root){animation:vt-out .25s var(--ease-tr) both;mix-blend-mode:normal}
  ::view-transition-new(root){animation:vt-in .4s var(--ease-in) .1s both;mix-blend-mode:normal}
  ::view-transition-group(*){animation-duration:.7s;animation-timing-function:var(--ease-tr)}
}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(8px)}}


/* bottoni a pillola + vetro */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:fit-content;min-height:48px;padding:0 26px;border:1px solid transparent;border-radius:999px;background:var(--off);color:var(--sumi);font:400 clamp(11px,.6vw + 7px,12px)/1 var(--f-m);letter-spacing:.14em;text-transform:uppercase;transition:background .4s var(--ease-tr),transform .4s var(--ease-tr)}
.btn:active{transform:scale(.98);transition-duration:.15s}
.btn--ghost{background:rgba(237,235,228,.06);border-color:var(--line2);color:var(--off)}
.btn--sm{min-height:40px;padding:0 18px}
@media (hover:hover){.btn:hover{background:#fff;transition-duration:.25s}.btn--ghost:hover{background:rgba(237,235,228,.13)}}
.glass{position:relative;border-radius:var(--r-lg);background:var(--g-card)}
.glass::before{content:"";position:absolute;inset:0;padding:1px;border-radius:inherit;background:var(--g-edge);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}

/* decisione: frase-tesi grande, poi il ragionamento a corpo maggiorato */
.dec__body{max-width:34em}
.dec__body p:first-child{font:450 clamp(26px,3.3vw,50px)/1.22 var(--f-b);letter-spacing:-.022em;text-wrap:pretty;max-width:26em}
.dec__body p+p{font:400 clamp(18px,1.4vw,21px)/1.65 var(--f-b);margin-top:1.3em;color:rgba(237,235,228,.86)}
/* moduli per progetto */
.mod--pair{grid-template-columns:1fr 1fr;gap:var(--g)}
.pair{display:flex;flex-direction:column;justify-content:center;gap:16px;padding:clamp(28px,4vw,56px);min-height:clamp(160px,18vw,260px)}
.mod--levels{display:flex;flex-direction:column;gap:0;max-width:820px}
.lv{display:flex;flex-direction:column;gap:12px;padding:clamp(24px,3vw,40px)}
.lv__t{font:800 clamp(24px,3vw,44px)/1.05 var(--f-d);letter-spacing:-.02em}
.lv__link{display:flex;align-items:center;gap:14px;padding:14px 0 14px clamp(24px,3vw,40px)}
.lv__link i{width:1px;height:36px;background:var(--line2)}
.mod--swap{grid-template-columns:1fr 1fr;gap:var(--g)}
.swap{display:flex;flex-direction:column;gap:14px}
.swap__t{font:800 clamp(22px,2.9vw,44px)/1.05 var(--f-d);letter-spacing:-.03em}
.swap__t--x{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--crimson);text-decoration-thickness:2px}
.phr{grid-column:1/-1;display:flex;flex-direction:column;gap:16px;margin-top:clamp(16px,2vw,32px);padding-top:20px;border-top:1px solid var(--line)}
.phr ul{display:flex;flex-wrap:wrap;gap:8px 40px}
.steps{margin-top:28px;border-top:1px solid var(--line)}
.steps li{display:flex;align-items:baseline;gap:20px;padding-block:14px;border-bottom:1px solid var(--line)}
.chips--start{justify-content:flex-start;max-width:none;margin-top:28px}
.txt .menu{margin-top:28px}

/* header a quattro voci su telefono */
@media (max-width:480px){.hd__mark{min-width:36px}.hd__nav{padding:0 3px}.hd__nav .nl{padding-inline:5px;min-width:0;letter-spacing:.06em}.hd__nav .nl::after{left:5px;right:5px}}
/* filtro competenze */
.filters{display:flex;flex-wrap:wrap;gap:10px}
.tab{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;transition:color .4s var(--ease-tr),background .4s var(--ease-tr),border-color .4s var(--ease-tr);font:400 clamp(11px,.6vw + 7px,12px)/1.4 var(--f-m);letter-spacing:clamp(.1em,.3vw + .05em,.14em);text-transform:uppercase;color:var(--muted)}
.tab span{opacity:.55}.tab[aria-pressed=true]{background:var(--off);border-color:var(--off);color:var(--sumi)}
.tab:focus-visible{outline:1px solid var(--off);outline-offset:2px}
@media (hover:hover){.tab:not([aria-pressed=true]):hover{color:var(--off);border-color:var(--line2);transition-duration:.25s}}
@media (max-width:820px){.filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(var(--gut)*-1);padding-inline:var(--gut);scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.tab{flex:none}}
[data-swap]{transition:opacity .4s var(--ease-in)}[data-swap].out{opacity:0;transition-duration:.2s}
/* competenze: una lista che si legge come un documento */
.comp{display:flex;flex-direction:column;gap:clamp(72px,9vw,140px)}
.comp__area{display:flex;flex-direction:column;gap:clamp(28px,3vw,48px);border-top:1px solid var(--line);padding-top:clamp(28px,3vw,44px)}
.comp__list{display:flex;flex-direction:column;gap:clamp(36px,4vw,56px);max-width:760px}
.comp__list li{display:flex;flex-direction:column;gap:10px}
.comp__d{max-width:58ch}
.ref a{display:inline-block;padding:6px 0;text-decoration:underline;text-decoration-color:var(--line2);text-decoration-thickness:1px;text-underline-offset:4px;transition:color .4s var(--ease-tr),text-decoration-color .4s var(--ease-tr)}
@media (hover:hover){.ref a:hover{color:var(--off);text-decoration-color:var(--off);transition-duration:.25s}}
.jp{font-family:Shippori,"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500}
/* gallerie: griglia a 12 colonne, variazioni sulla stessa base */
.gi--bleed{grid-column:1/-1;margin-inline:calc(50% - 50vw + 12px)}
.gi--bleed figcaption{padding-inline:max(calc(var(--gut) - 12px),calc((100vw - var(--max))/2 + var(--gut) - 12px))}
.gi--ctl .ph{max-height:86dvh}
.gi--beside{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:end}
.gi--beside .ph{grid-column:1/9}
.gi--beside figcaption.label{grid-column:9/-1;font:800 clamp(22px,2.4vw,34px)/1.15 var(--f-d);letter-spacing:-.02em;text-transform:none;color:var(--off)}
.grp{display:grid;grid-template-columns:repeat(var(--c),minmax(0,1fr));gap:var(--g)}
.grp .ph{border-radius:var(--r-sm)}
@media (max-width:820px){
  .gi--beside{display:flex}
  .grp{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grp[data-n="2"],.grp[data-n="3"]{grid-template-columns:1fr}
}
.next__a .ttl{font-size:clamp(28px,5.4vw,84px)}
@media (max-width:640px){.next__a{flex-direction:column;align-items:flex-start}}
