/* ==========================================================
   EFFEDI — Packaging & Industry
   ========================================================== */
:root{
  --bg:#070707; --bg2:#0d0d0c; --bg3:#050505;
  --ink:#f2ede4; --mut:rgba(242,237,228,.62); --faint:rgba(242,237,228,.12);
  --gold:#c9a877; --cream:#e9e4da;
  --gut:clamp(20px,4.6vw,70px);
  --serif:'Cormorant Garamond','Times New Roman',serif;
  --sans:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
html.is-loading,html.is-loading body{overflow:hidden;height:100%}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
::selection{background:var(--gold);color:#000}
.wrap{max-width:1480px;margin:0 auto;padding:0 var(--gut)}

.eyebrow{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:26px}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--gold)}
.h1,.h2{font-family:var(--serif);font-weight:400;line-height:1.02;letter-spacing:-.01em}
.h1{font-size:clamp(2.3rem,5vw,5rem)}
.h2{font-size:clamp(1.9rem,3.5vw,3.4rem)}
.lead{font-size:clamp(14px,1.1vw,17px);color:var(--mut);max-width:540px;margin-top:20px}

/* ---------- reveal system ---------- */
.anim [data-reveal]{opacity:0;transform:translateY(30px);transition:opacity 1.1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.anim [data-reveal].in{opacity:1;transform:none}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.wi{display:inline-block;transition:transform 1.2s var(--ease) calc(var(--i,0)*50ms)}
.anim [data-split]:not(.in) .wi{transform:translateY(112%)}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:16px;padding:17px 28px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;overflow:hidden;isolation:isolate;transition:color .5s var(--ease),border-color .5s}
.btn-line{border:1px solid rgba(242,237,228,.55)}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);transform:translateY(101%);transition:transform .6s var(--ease);z-index:-1}
.btn:hover::before{transform:none}
.btn:hover{color:#070707;border-color:var(--ink)}
.btn-sm{padding:13px 22px;font-size:10px}
.btn .arr{transition:transform .5s var(--ease)}
.btn:hover .arr{transform:translateX(5px)}
.btn-solid{background:var(--ink);color:#070707;border:1px solid var(--ink)}
.btn-solid::before{background:var(--gold)}
.link-u{display:inline-flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;padding-bottom:6px;border-bottom:1px solid currentColor;transition:gap .5s var(--ease)}
a:hover .link-u,.link-u:hover{gap:20px}
.link-u.dark{color:#111}

/* ---------- grain + cursor ---------- */
.grain{position:fixed;inset:-50%;z-index:9000;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.cursor{position:fixed;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:10001;opacity:0;transition:width .45s var(--ease),height .45s var(--ease),margin .45s var(--ease),background .3s,opacity .3s;display:grid;place-items:center}
.cursor.is-on{opacity:1}
.cursor.is-link{width:52px;height:52px;margin:-26px 0 0 -26px}
.cursor.is-view{width:96px;height:96px;margin:-48px 0 0 -48px;background:var(--ink);mix-blend-mode:normal}
.cursor-label{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#070707;font-weight:600;opacity:0;transition:opacity .3s}
.cursor.is-view .cursor-label{opacity:1}
html.has-cursor,html.has-cursor *{cursor:none!important}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ==========================================================
   LOADER
   ========================================================== */
#loader{position:fixed;inset:0;z-index:9999;color:var(--ink);overflow:hidden}
.ld-panel{position:absolute;left:0;right:0;background:#050505;will-change:transform}
.ld-top{top:0;height:50.1%;background:radial-gradient(120% 140% at 50% 100%,#14110c 0%,#050505 60%)}
.ld-bot{bottom:0;height:50.1%;background:radial-gradient(120% 140% at 50% 0%,#14110c 0%,#050505 60%)}
.ld-seam{position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:linear-gradient(90deg,transparent,var(--gold) 20%,#fff 50%,var(--gold) 80%,transparent);transform:scaleX(0);z-index:4;box-shadow:0 0 30px 4px rgba(201,168,119,.5)}
.ld-glow{position:absolute;left:50%;top:50%;width:70vmax;height:70vmax;transform:translate(-50%,-50%) scale(.2);background:radial-gradient(circle,rgba(201,168,119,.35),transparent 60%);opacity:0;z-index:2;pointer-events:none}
.ld-center{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}
.ld-mark{position:relative;width:62px;height:52px;display:grid;place-items:center;font-family:var(--serif);font-size:24px;color:var(--gold);margin-bottom:10px}
.ld-mark::before,.ld-mark::after{content:"";position:absolute;inset:0;border:1px solid var(--gold);clip-path:inset(0 100% 0 0)}
.ld-mark::after{border-color:transparent}
.ld-mark i{position:absolute;inset:0;border:1px solid var(--gold);clip-path:inset(0 100% 0 0)}
.ld-mark span{opacity:0}
.ld-logo{display:flex;font-family:var(--serif);font-weight:400;font-size:clamp(3.4rem,11vw,10rem);line-height:1;letter-spacing:.04em;overflow:hidden;padding:.05em .1em}
.ld-logo span{display:inline-block;transform:translateY(115%)}
.ld-sub{font-size:clamp(9px,.9vw,12px);letter-spacing:.7em;color:var(--mut);opacity:0;padding-left:.7em}
.ld-words{position:absolute;z-index:3;top:clamp(90px,14vh,140px);left:0;right:0;display:flex;justify-content:center;align-items:center;gap:22px;font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--mut)}
.ld-words span{opacity:0;transform:translateY(10px)}
.ld-words b{width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:0}
.ld-foot{position:absolute;z-index:3;left:var(--gut);right:var(--gut);bottom:clamp(28px,6vh,56px);display:flex;align-items:center;gap:28px;font-size:11px;letter-spacing:.24em;color:var(--mut)}
.ld-bar{flex:1;height:1px;background:rgba(242,237,228,.14);position:relative;overflow:hidden}
.ld-bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--gold),#fff);transform:scaleX(0);transform-origin:left}
.ld-count{font-family:var(--serif);font-size:clamp(22px,2.4vw,34px);letter-spacing:.04em;color:var(--ink);min-width:3.4em;text-align:right;font-variant-numeric:tabular-nums}
.ld-count em{font-style:normal}
.ld-est{white-space:nowrap}
@media(max-width:640px){.ld-est{display:none}.ld-words{gap:12px;letter-spacing:.2em;font-size:10px}}

/* ==========================================================
   HEADER
   ========================================================== */
.hdr{position:fixed;z-index:900;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:22px var(--gut);transition:transform .7s var(--ease),background .5s,padding .5s var(--ease),backdrop-filter .5s}
.hdr.is-solid{background:rgba(7,7,7,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding-top:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.05)}
.hdr.is-hide{transform:translateY(-100%)}
.brand{display:flex;flex-direction:column;line-height:1;flex:none}
.brand-name{font-family:var(--serif);font-size:clamp(34px,3.2vw,46px);font-weight:500;letter-spacing:.01em;line-height:.9}
.brand-sub{font-size:8.5px;letter-spacing:.24em;margin-top:6px;color:var(--mut)}
.nav{display:flex;gap:clamp(22px,3.2vw,52px)}
.nav a{position:relative;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;padding:6px 0}
.nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.hdr-right{display:flex;align-items:center;gap:clamp(16px,2vw,34px)}
.lang{position:relative}
.lang-btn{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.16em;font-weight:500;padding:8px 2px}
.lang-list{position:absolute;right:-12px;top:calc(100% + 10px);min-width:170px;background:rgba(10,10,10,.96);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.1);padding:8px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .4s var(--ease)}
.lang.open .lang-list{opacity:1;visibility:visible;transform:none}
.lang-list a{display:flex;justify-content:space-between;width:100%;text-align:left;padding:11px 14px;font-size:13px;color:var(--mut);transition:color .3s,background .3s}
.lang-list a em{font-style:normal;font-size:10px;letter-spacing:.16em;opacity:.6}
.lang-list a:hover,.lang-list a.on{color:var(--ink);background:rgba(255,255,255,.05)}
.lang-list a.on em{color:var(--gold);opacity:1}
.burger{display:none;width:42px;height:42px;position:relative}
.burger i{position:absolute;left:9px;right:9px;height:1px;background:var(--ink);transition:transform .5s var(--ease),top .5s var(--ease)}
.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:25px}
.menu-open .burger i:nth-child(1){top:20px;transform:rotate(45deg)}
.menu-open .burger i:nth-child(2){top:20px;transform:rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:800;background:var(--bg);display:flex;flex-direction:column;justify-content:center;padding:100px var(--gut) 40px;clip-path:inset(0 0 100% 0);transition:clip-path .9s var(--ease);visibility:hidden}
.menu-open .mobile-menu{clip-path:inset(0);visibility:visible}
.mobile-menu nav{display:flex;flex-direction:column;gap:6px}
.mobile-menu nav a{font-family:var(--serif);font-size:clamp(38px,11vw,64px);line-height:1.15;transform:translateY(30px);opacity:0;transition:transform .9s var(--ease),opacity .9s}
.menu-open .mobile-menu nav a{transform:none;opacity:1}
.menu-open .mobile-menu nav a:nth-child(2){transition-delay:.06s}.menu-open .mobile-menu nav a:nth-child(3){transition-delay:.12s}.menu-open .mobile-menu nav a:nth-child(4){transition-delay:.18s}.menu-open .mobile-menu nav a:nth-child(5){transition-delay:.24s}
.mm-langs{display:flex;gap:18px;flex-wrap:wrap;margin-top:44px}
.mm-langs a{font-size:12px;letter-spacing:.2em;color:var(--mut);padding:6px 0;border-bottom:1px solid transparent}
.mm-langs a.on{color:var(--gold);border-color:var(--gold)}
@media(max-width:1040px){.nav{display:none}.burger{display:block}}
@media(max-width:720px){.hdr-right .btn{display:none}}

/* ==========================================================
   HERO
   ========================================================== */
.hero{position:relative;min-height:100svh;min-height:max(100svh,640px);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(110px,16vh,150px) var(--gut) clamp(36px,7vh,72px);overflow:hidden;background:#050505}
.hero-slides{position:absolute;inset:0}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;will-change:opacity}
.hero-slide.is-on{opacity:1}
.hero-slide img{width:100%;height:100%;object-fit:cover;object-position:68% 50%;transform:scale(1.12);transition:transform 6s cubic-bezier(.2,.6,.2,1)}
.hero-slide.is-on img{transform:scale(1)}
.hero-shade{position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(5,5,5,.94) 0%,rgba(5,5,5,.72) 30%,rgba(5,5,5,.15) 62%,rgba(5,5,5,.35) 100%),
  linear-gradient(180deg,rgba(5,5,5,.75) 0%,transparent 22%,transparent 70%,rgba(5,5,5,.9) 100%)}
.hero-eyebrow{align-self:flex-start;position:relative;z-index:2;margin-bottom:clamp(14px,2.4vh,26px);display:flex;flex-direction:column;font-size:10px;letter-spacing:.34em;text-transform:uppercase;line-height:1.75;color:var(--ink);opacity:.9}
.hero-copy{position:relative;z-index:2;max-width:760px}
.hero-title{font-family:var(--serif);font-weight:500;font-size:clamp(3rem,min(7vw,13.5vh),7.4rem);line-height:.92;letter-spacing:-.025em;margin-bottom:clamp(16px,2.6vh,30px)}
.hero-title .ln{display:block;overflow:hidden;padding:.02em 0 .14em;margin-bottom:-.12em}
.hero-title .ln>span{display:block}
.hero-lead{max-width:440px;font-size:clamp(14px,1.1vw,16px);line-height:1.65;color:rgba(242,237,228,.86);margin-bottom:clamp(18px,3vh,32px)}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:22px 34px}
.play{display:flex;align-items:center;gap:16px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--mut);transition:color .4s}
.play:hover{color:var(--ink)}
.play-ic{width:52px;height:52px;border-radius:50%;border:1px solid rgba(242,237,228,.5);display:grid;place-items:center;transition:transform .6s var(--ease),background .4s,color .4s}
.play-ic svg{margin-left:3px}
.play:hover .play-ic{transform:scale(1.1);background:var(--ink);color:#070707}
.hero-rail{position:absolute;z-index:2;right:var(--gut);top:max(140px,20vh);width:112px}
.hero-rail p{font-size:10px;letter-spacing:.3em;text-transform:uppercase;line-height:1.75}
.rail-line{position:absolute;left:-38px;top:-24px;bottom:-30px;width:1px;background:rgba(242,237,228,.2)}
.rail-line i{display:block;width:100%;height:var(--p,0%);background:var(--gold)}
.rail-idx{margin-top:clamp(80px,17vh,190px);display:flex;flex-direction:column;gap:14px}
.rail-idx button{font-size:12px;letter-spacing:.2em;color:var(--mut);position:relative;transition:color .4s,font-size .5s var(--ease);font-family:var(--sans)}
.rail-idx button.is-on{color:var(--ink);font-family:var(--serif);font-size:24px;letter-spacing:.06em}
.rail-idx button.is-on::after{content:"";position:absolute;left:0;bottom:-8px;width:40px;height:1px;background:var(--ink)}
.rail-idx li:has(.is-on){margin-bottom:8px}

@media(max-width:1100px){.hero-rail{display:none}}
@media(max-width:900px){
  .hero-rail{display:none}
  .hero-shade{background:linear-gradient(180deg,rgba(5,5,5,.7) 0%,rgba(5,5,5,.25) 30%,rgba(5,5,5,.7) 60%,rgba(5,5,5,.96) 100%)}
  .hero-slide img{object-position:65% 50%}
}

/* ---------- clients ---------- */
.clients{display:flex;align-items:stretch;background:var(--bg3);border-top:1px solid var(--faint);border-bottom:1px solid var(--faint);height:96px;position:relative;z-index:2}
.marquee{flex:1;overflow:hidden;display:flex;align-items:center;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.mq-track{display:flex;width:max-content;animation:mq 42s linear infinite;will-change:transform}
.marquee:hover .mq-track{animation-play-state:paused}
.mq-set{display:flex;align-items:center;flex:none}
.mq-set img{height:34px;width:auto;margin:0 clamp(34px,4.6vw,72px);opacity:.82;transition:opacity .4s}
.mq-set img:hover{opacity:1}
.mq-set img[alt="Maison Margiela"]{height:56px}
.mq-set img[alt="Chiara Ferragni"]{height:54px}
.mq-set img[alt="4Giveness"]{height:58px}
.mq-set img[alt="2Star"]{height:50px}
.mq-set img[alt="Laneus"]{height:32px}
.mq-set img[alt="Barrow"]{height:30px}
.wm{margin:0 clamp(34px,4.6vw,72px);font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:.1em;white-space:nowrap;opacity:.85}
@keyframes mq{to{transform:translateX(-50%)}}
.clients-more{flex:none;width:clamp(110px,12vw,170px);display:flex;align-items:center;padding-left:26px;border-left:1px solid var(--faint);font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--mut);line-height:1.6;margin-right:var(--gut)}
@media(max-width:700px){.clients{height:80px}.clients-more{display:none}.mq-set img{height:26px}}

/* ---------- category tiles ---------- */
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--faint)}
.cat{position:relative;display:block;height:clamp(240px,19.8vw,360px);overflow:hidden;background:#000}
.cat img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease),filter .8s;filter:brightness(.82)}
.cat::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.88))}
.cat:hover img{transform:scale(1.08);filter:brightness(1)}
.cat-body{position:absolute;z-index:2;left:clamp(20px,1.9vw,30px);bottom:clamp(22px,2vw,32px);right:64px}
.cat h3{font-size:clamp(12px,.95vw,14px);letter-spacing:.14em;text-transform:uppercase;font-weight:400;margin-bottom:10px}
.cat p{font-size:clamp(12px,.9vw,13px);color:var(--mut);line-height:1.5;max-width:220px}
.cat-arr{position:absolute;z-index:2;right:clamp(20px,1.9vw,30px);bottom:clamp(26px,2.2vw,36px);transition:transform .6s var(--ease)}
.cat:hover .cat-arr{transform:translateX(8px)}
@media(max-width:1000px){.cats{grid-template-columns:repeat(2,1fr)}.cat{height:clamp(220px,42vw,340px)}}
@media(max-width:520px){.cats{grid-template-columns:1fr}.cat{height:240px}}

/* ---------- trio ---------- */
.trio{display:grid;grid-template-columns:1.15fr 1fr .5fr;min-height:clamp(200px,17vw,270px);border-top:1px solid var(--faint)}
.trio-vision{position:relative;overflow:hidden;display:flex;align-items:center;padding:0 clamp(24px,4.5vw,64px);min-height:220px}
.trio-vision img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.55) brightness(.5) hue-rotate(35deg);transition:transform 1.6s var(--ease)}
.trio-vision:hover img{transform:scale(1.06)}
.trio-vision::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,28,18,.92),rgba(6,28,18,.55))}
.trio-vision-in{position:relative;z-index:2}
.trio-vision h2{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,2.6vw,2.7rem);line-height:1.12;max-width:380px;margin-bottom:26px}
.trio-stats{display:grid;grid-template-columns:repeat(3,1fr);background:var(--bg3)}
.stat{display:flex;flex-direction:column;justify-content:center;padding:28px clamp(16px,2.6vw,40px);border-left:1px solid var(--faint)}
.stat:first-child{border-left:0}
.stat .num{font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,2.7vw,2.9rem);line-height:1;margin-bottom:12px;white-space:nowrap;font-variant-numeric:lining-nums}
.stat span{font-size:clamp(11px,.85vw,13px);color:var(--mut)}
.trio-cta{background:var(--cream);color:#111;padding:clamp(24px,2.6vw,42px);display:flex;flex-direction:column;justify-content:space-between;gap:26px}
.trio-cta p{font-size:10px;letter-spacing:.28em;text-transform:uppercase;line-height:1.9;max-width:190px}
@media(max-width:1000px){.trio{grid-template-columns:1fr 1fr}.trio-vision{grid-column:1/-1}.trio-stats{grid-column:1/2}.trio-cta{grid-column:2/3}}
@media(max-width:620px){.trio{grid-template-columns:1fr}.trio-stats,.trio-cta{grid-column:auto}.trio-stats{padding:10px 0}}

/* ==========================================================
   PROJECTS — horizontal scroll
   ========================================================== */
.projects{position:relative;background:var(--bg);border-top:1px solid var(--faint)}
.proj-sticky{position:sticky;top:0;height:100vh;height:100svh;min-height:620px;display:flex;flex-direction:column;overflow:hidden;padding-top:clamp(84px,12vh,120px)}
.proj-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding:0 var(--gut);margin-bottom:clamp(14px,3vh,34px)}
.proj-head .eyebrow{margin-bottom:16px}
.proj-lead{max-width:360px;font-size:14px;color:var(--mut)}
.proj-viewport{flex:1;min-height:0;position:relative}
.proj-track{position:absolute;left:0;top:0;bottom:0;display:flex;align-items:center;gap:clamp(18px,2vw,32px);padding:0 var(--gut);will-change:transform}
.pcard{flex:none;width:clamp(240px,23vw,380px);cursor:pointer}
.pcard.wide{width:clamp(300px,32vw,520px)}
.pcard.tall{width:clamp(220px,20vw,330px)}
.pimg{height:clamp(260px,50vh,540px);overflow:hidden;position:relative;background:#111}
.pimg img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.pcard:hover .pimg img{transform:scale(1.07)}
.pimg::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.pmeta{display:flex;align-items:baseline;gap:14px;margin-top:16px}
.pn{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:18px}
.pmeta h3{font-family:var(--serif);font-weight:500;font-size:clamp(20px,1.8vw,28px);line-height:1.1}
.pt{margin-left:auto;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);text-align:right}
.proj-foot{display:flex;align-items:center;gap:24px;padding:14px var(--gut) clamp(22px,4vh,40px);font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--mut)}
.proj-progress{flex:1;height:1px;background:var(--faint);position:relative}
.proj-progress i{position:absolute;inset:0;background:var(--gold);transform:scaleX(var(--pp,0));transform-origin:left}
@media(max-width:900px){
  .proj-sticky{position:relative;height:auto;min-height:0;padding-top:90px;padding-bottom:20px}
  .proj-head{flex-direction:column;align-items:flex-start;gap:14px}
  .proj-viewport{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .proj-viewport::-webkit-scrollbar{display:none}
  .proj-track{position:relative;transform:none!important;padding-bottom:10px}
  .pcard{scroll-snap-align:start;width:72vw!important}
  .pimg{height:min(92vw,420px)}
  .proj-foot{display:none}
}

/* ---------- big type band ---------- */
.band{overflow:hidden;padding:clamp(24px,3.5vw,54px) 0;border-top:1px solid var(--faint);border-bottom:1px solid var(--faint);background:var(--bg3)}
.band-track{display:flex;width:max-content;animation:mq2 60s linear infinite;font-family:var(--serif);font-style:italic;font-size:clamp(3rem,8vw,7.5rem);line-height:1;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(242,237,228,.28)}
@keyframes mq2{to{transform:translateX(-33.3333%)}}

/* ==========================================================
   SERVICES
   ========================================================== */
.services{padding:clamp(56px,7vw,110px) 0;background:var(--bg)}
.svc-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,8vw,140px);align-items:start}
.svc-list{margin-top:clamp(36px,5vw,64px);border-top:1px solid var(--faint)}
.svc-list li{border-bottom:1px solid var(--faint)}
.svc-list button{display:flex;align-items:center;gap:clamp(16px,2vw,30px);width:100%;text-align:left;padding:clamp(20px,2vw,28px) 0}
.sn{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:18px;width:28px;flex:none}
.st{font-family:var(--serif);font-size:clamp(1.4rem,2.1vw,2.1rem);line-height:1.1;flex:1;color:var(--mut);transition:color .5s,transform .6s var(--ease)}
.plus{position:relative;width:16px;height:16px;flex:none}
.plus::before,.plus::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:var(--ink);transition:transform .5s var(--ease)}
.plus::after{transform:rotate(90deg)}
.svc-list p{max-height:0;overflow:hidden;opacity:0;padding-left:calc(28px + clamp(16px,2vw,30px));color:var(--mut);font-size:15px;max-width:520px;transition:max-height .8s var(--ease),opacity .6s,padding .8s var(--ease)}
.svc-list li.is-on .st{color:var(--ink);transform:translateX(6px)}
.svc-list li.is-on .plus::after{transform:rotate(0)}
.svc-list li.is-on p{max-height:140px;opacity:1;padding-bottom:26px}
.svc-right{position:sticky;top:110px}
.svc-stage{position:relative;aspect-ratio:1/1;overflow:hidden;background:#111}
.svc-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.12);transition:opacity .5s var(--ease),transform .9s var(--ease)}
.svc-stage img.is-on{opacity:1;transform:scale(1)}
.svc-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.6));pointer-events:none}
.svc-badge{position:absolute;z-index:2;left:22px;bottom:22px;background:rgba(7,7,7,.72);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);padding:16px 24px;display:flex;flex-direction:column}
.svc-badge b{font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.4vw,50px);line-height:1;color:var(--gold)}
.svc-badge span{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--mut);margin-top:6px}
@media(max-width:900px){.svc-grid{grid-template-columns:1fr}.svc-right{position:relative;top:0;order:-1}.svc-stage{aspect-ratio:4/3}}

/* ==========================================================
   COMPANY
   ========================================================== */
.company{padding:clamp(56px,6.5vw,100px) 0 clamp(48px,5.5vw,84px);background:var(--bg2);border-top:1px solid var(--faint)}
.co-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,130px);align-items:center}
.co-media{position:relative;padding-bottom:12%}
.co-img{overflow:hidden;background:#111}
.co-img img{width:100%;height:118%;object-fit:cover;will-change:transform}
.co-img.big{width:82%;aspect-ratio:4/5}
.co-img.small{position:absolute;right:0;bottom:0;width:52%;aspect-ratio:4/3;border:10px solid var(--bg2)}
.co-since{position:absolute;left:-1px;top:32px;background:var(--bg2);padding:18px 26px 18px 0;display:flex;flex-direction:column}
.co-since b{font-family:var(--serif);font-weight:400;font-size:clamp(36px,4vw,60px);line-height:1;color:var(--gold)}
.co-since span{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--mut);margin-top:6px}
.co-copy p:not(.eyebrow){color:var(--mut);margin-top:24px;max-width:540px;font-size:clamp(15px,1.1vw,17px)}
.co-copy .h2{margin-bottom:12px}
.values{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(40px,5vw,72px);border-top:1px solid var(--faint)}
.val{padding:34px 28px 34px 0}
.val span{font-family:var(--serif);font-style:italic;color:var(--gold);font-size:18px}
.val h4{font-family:var(--serif);font-weight:500;font-size:clamp(22px,2vw,30px);margin:14px 0 10px}
.val p{color:var(--mut);font-size:14px;max-width:250px}
.strengths{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:20px;border-top:1px solid var(--faint);border-bottom:1px solid var(--faint)}
.strengths div{padding:26px 24px 26px 0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;line-height:1.7;display:flex;gap:14px;align-items:flex-start}
.strengths div::before{content:"";flex:none;width:6px;height:6px;margin-top:8px;background:var(--gold);transform:rotate(45deg)}
@media(max-width:900px){.co-grid{grid-template-columns:1fr}.values,.strengths{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.values,.strengths{grid-template-columns:1fr}}

/* ==========================================================
   SUSTAINABILITY
   ========================================================== */
.sustain{position:relative;min-height:0;display:flex;align-items:center;overflow:hidden;padding:clamp(64px,8vw,120px) 0}
.sus-bg{position:absolute;inset:0}
.sus-bg img{width:100%;height:120%;object-fit:cover;filter:saturate(.5) brightness(.55) hue-rotate(30deg)}
.sus-veil{position:absolute;inset:0;background:linear-gradient(180deg,var(--bg2) 0%,rgba(6,28,18,.72) 26%,rgba(6,28,18,.82) 74%,var(--bg) 100%)}
.sus-in{position:relative;z-index:2;width:100%}
.sus-in .h1{max-width:960px}
.sus-in .lead{max-width:600px;color:rgba(242,237,228,.78)}
.sus-pts{display:flex;flex-wrap:wrap;gap:16px 44px;margin-top:clamp(36px,5vw,64px)}
.sus-pts li{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.sus-pts i{width:34px;height:1px;background:var(--gold)}

/* ==========================================================
   CONTACT
   ========================================================== */
.contact{padding:clamp(60px,7vw,110px) 0;background:var(--bg)}
.ct-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,140px)}
.ct-list{margin-top:clamp(36px,5vw,60px);border-top:1px solid var(--faint)}
.ct-list>div{display:grid;grid-template-columns:120px 1fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--faint)}
.ct-list dt{font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--mut);padding-top:4px}
.ct-list dd{font-size:clamp(15px,1.2vw,18px);line-height:1.5}
.ct-list a{transition:color .3s}
.ct-list a:hover{color:var(--gold)}
.ct-form{display:flex;flex-direction:column;gap:6px;padding-top:clamp(0px,3vw,50px)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.fld{position:relative;display:block}
.fld input,.fld textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(242,237,228,.25);color:var(--ink);font:inherit;font-size:16px;padding:28px 0 10px;outline:0;resize:none;transition:border-color .4s;border-radius:0}
.fld span{position:absolute;left:0;top:26px;font-size:15px;color:var(--mut);pointer-events:none;transition:all .4s var(--ease);transform-origin:left}
.fld input:focus,.fld textarea:focus{border-color:var(--gold)}
.fld input:focus+span,.fld input:not(:placeholder-shown)+span,.fld textarea:focus+span,.fld textarea:not(:placeholder-shown)+span{top:4px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.fld.err input,.fld.err textarea{border-color:#c46a5a}
.chk{display:flex;align-items:center;gap:14px;margin:22px 0 28px;font-size:13px;color:var(--mut);cursor:pointer}
.chk input{position:absolute;opacity:0}
.chk i{width:18px;height:18px;border:1px solid rgba(242,237,228,.4);flex:none;position:relative;transition:all .3s}
.chk input:checked+i{background:var(--gold);border-color:var(--gold)}
.chk input:checked+i::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #000;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.chk.err i{border-color:#c46a5a}
.ct-form .btn{align-self:flex-start}
.form-note{font-size:13px;color:var(--gold);min-height:22px;margin-top:14px}
@media(max-width:900px){.ct-grid{grid-template-columns:1fr}.row2{grid-template-columns:1fr;gap:6px}.ct-list>div{grid-template-columns:96px 1fr}}

/* ==========================================================
   FOOTER
   ========================================================== */
.ftr{background:var(--bg3);border-top:1px solid var(--faint);overflow:hidden;position:relative}
.ftr-mark{font-family:var(--serif);font-size:clamp(5rem,20vw,20rem);line-height:.8;text-align:center;letter-spacing:.02em;padding-top:clamp(30px,5vw,80px);background:linear-gradient(180deg,rgba(242,237,228,.16),rgba(242,237,228,0) 80%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;user-select:none}
.ftr-in{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-top:clamp(30px,4vw,60px);padding-bottom:50px}
.ftr-col{display:flex;flex-direction:column;gap:12px;font-size:13px;color:var(--mut)}
.ftr-col a{transition:color .3s;width:fit-content}
.ftr-col a:hover{color:var(--gold)}
.ftr-tag{font-family:var(--serif);font-size:clamp(24px,2.4vw,34px);color:var(--ink);line-height:1.15}
.ftr-small{font-size:12px;line-height:1.8;margin-top:6px}
.ftr-bot{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:22px;padding-bottom:26px;border-top:1px solid var(--faint);font-size:11px;letter-spacing:.06em;color:var(--mut)}
.totop{width:42px;height:42px;border:1px solid var(--faint);border-radius:50%;transition:all .4s}
.totop:hover{background:var(--ink);color:#000}
@media(max-width:800px){.ftr-in{grid-template-columns:1fr}.ftr-bot{flex-direction:column-reverse;align-items:flex-start}}

/* ==========================================================
   LIGHTBOX
   ========================================================== */
.lb{position:fixed;inset:0;z-index:9500;background:rgba(5,5,5,.95);backdrop-filter:blur(10px);display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .6s var(--ease),visibility .6s}
.lb.open{opacity:1;visibility:visible}
.lb figure{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:90vw}
.lb img{max-height:78vh;max-width:88vw;object-fit:contain;transform:scale(.94);opacity:0;transition:transform .9s var(--ease),opacity .6s}
.lb.open img{transform:none;opacity:1}
.lb img.swap{opacity:0;transform:scale(.97)}
.lb figcaption{display:flex;gap:20px;align-items:baseline}
.lb figcaption b{font-family:var(--serif);font-weight:500;font-size:clamp(24px,2.4vw,36px)}
.lb figcaption span{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.lb-x,.lb-nav{position:absolute;width:54px;height:54px;border:1px solid var(--faint);border-radius:50%;font-size:18px;transition:all .4s;display:grid;place-items:center}
.lb-x:hover,.lb-nav:hover{background:var(--ink);color:#000}
.lb-x{top:24px;right:var(--gut)}
.lb-nav{top:50%;margin-top:-27px}
.lb-nav.prev{left:var(--gut)}.lb-nav.next{right:var(--gut)}
@media(max-width:700px){.lb-nav{top:auto;bottom:24px;margin:0}.lb-nav.prev{left:calc(50% - 64px)}.lb-nav.next{right:calc(50% - 64px)}}

/* ---------- misc ---------- */
.lang-swap{transition:opacity .28s}
main.swapping,footer.swapping{opacity:0}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .band-track,.mq-track{animation:none!important}
}

/* intro states */
.hero-slide.is-pre{opacity:1;transition:none}
.hero-slide.is-pre img{transform:scale(1.28);transition:none}
.co-img img{position:relative;top:-9%}
.sus-bg img{position:relative;top:-10%}

/* logo reale */
.brand-logo{height:clamp(46px,4.4vw,64px);width:auto;display:block}
.hdr.is-solid .brand-logo{height:44px}
.brand-logo{transition:height .5s var(--ease)}
.ld-center{gap:0}
.ld-logoimg{position:relative;width:clamp(200px,26vw,340px);clip-path:inset(100% 0 0 0);overflow:hidden}
.ld-logoimg img{width:100%;height:auto;display:block}
.ld-logoimg i{position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);animation:shine 2.6s 1.1s ease-in-out infinite}
@keyframes shine{to{left:130%}}
.ftr-logo{height:78px;width:auto;margin-bottom:20px}
.prod-img.photo img,.dstage.photo img{mix-blend-mode:normal}
.ld-logoimg i{display:none}
.ld-logoimg img{animation:glowpulse 3s ease-in-out infinite}
@keyframes glowpulse{50%{filter:drop-shadow(0 0 22px rgba(201,168,119,.45)) brightness(1.08)}}

.cursor{display:none!important}
html.has-cursor,html.has-cursor *{cursor:auto!important}
a,button,[data-lb],.pcard,.svc-list li{cursor:pointer}

.ld-url{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:18px;pointer-events:none}
.ld-url span{display:flex;font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,6.2vw,5.6rem);letter-spacing:.02em;line-height:1.15;overflow:hidden;padding:.05em .1em .12em;opacity:0}
.ld-url span i{font-style:normal;display:inline-block}
.ld-url b{display:block;height:1px;width:min(60vw,520px);background:linear-gradient(90deg,transparent,var(--gold),transparent);transform:scaleX(0)}
#loader.is-lite .ld-url{display:none}

.ld-url{display:none!important}

.nav-in .ld-logoimg{clip-path:inset(0% 0 0 0)}

.ftr-col .ftr-logo{align-self:flex-start;width:auto;height:96px;max-width:none;object-fit:contain;margin-bottom:22px}

.powered{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);transition:color .3s}
.powered b{font-weight:500;color:var(--ink);border-bottom:1px solid var(--gold)}
.powered:hover{color:var(--gold)}
