/* ==========================================================================
   TRADEZONE — DESIGN SYSTEM
   Istituzionale · Protocollo · Rete. Palette navy/oro/electric, tagli netti,
   tipografia editoriale. Fluida su ogni breakpoint, dal telefono al 8K.
   ========================================================================== */

/* ---- Tokens -------------------------------------------------------------- */
:root{
  --night:#03060d;
  --night-2:#070d1a;
  --night-3:#0b1526;
  --panel:rgba(13,20,36,.64);
  --panel-strong:rgba(8,13,25,.88);
  --paper:#f4f1e9;
  --paper-ink:#172033;

  --blue:#38bdf8;
  --blue-dim:#0ea5e9;
  --gold:#d6a84f;
  --gold-2:#f2c66d;
  --gold-3:#fbe6b0;

  --white:#f8fafc;
  --ink:#e2e8f0;
  --muted:#8b96ab;
  --faint:#5b6780;

  --line:rgba(56,189,248,.16);
  --line-strong:rgba(56,189,248,.32);
  --gold-line:rgba(214,168,79,.4);
  --danger:#fb7185;
  --success:#34d399;
  --warning:#fbbf24;

  --max:1280px;
  --max-wide:1440px;
  --gutter:clamp(1.1rem,4vw,2rem);

  --font-body:"DM Sans",-apple-system,"Segoe UI",sans-serif;
  --font-display:"Manrope",-apple-system,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;

  --ease:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.22,.61,.36,1);
  --dur-fast:.22s;
  --dur:.45s;
  --dur-slow:.8s;

  color-scheme:dark;
}

/* ---- Reset ---------------------------------------------------------------- */
*,*:before,*:after{box-sizing:border-box}
*{margin:0}
html{background:var(--night);color:var(--white);-webkit-text-size-adjust:100%}
html.scroll-smooth{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  background:
    radial-gradient(ellipse 60% 40% at 78% 0%,rgba(56,189,248,.14),transparent 55%),
    radial-gradient(ellipse 50% 35% at 8% 100%,rgba(214,168,79,.08),transparent 55%),
    var(--night);
  color:var(--white);
  line-height:1.65;
  min-height:100vh;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-size:1rem;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  opacity:.2;
  background-image:linear-gradient(rgba(56,189,248,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.05) 1px,transparent 1px);
  background-size:54px 54px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,#000 40%,transparent 92%);
}
body:after{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  opacity:.35;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
img,svg{display:block;max-width:100%}
ul,ol{padding:0;margin:0;list-style:none}
:where(h1,h2,h3,h4,h5,h6,p,li,a,span,strong){overflow-wrap:break-word}
:where(h1,h2,h3,h4,h5,h6){hyphens:none;text-wrap:balance}
:where(p,li){text-wrap:pretty}
:where(.hero-grid,.section-head,.ecosystem-grid,.communication-intro,.communication-data,.nonna-opening,.nonna-journeys,.about-convergence,.about-statement,.ai-evidence)>*{min-width:0}
[id]{scroll-margin-top:6rem}
::selection{background:var(--gold);color:#111827}
:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Themed scrollbar */
html{scrollbar-color:var(--gold-line) transparent;scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:var(--night-2)}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--gold),#8b691f);border:2px solid var(--night-2)}
::-webkit-scrollbar-thumb:hover{background:var(--gold-2)}

/* ---- Utility --------------------------------------------------------------*/
.eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;
  color:var(--gold-2);font-family:var(--font-mono);font-size:.68rem;
  letter-spacing:.24em;font-weight:600;text-transform:uppercase;
}
.eyebrow:before{content:"";width:18px;height:1px;background:linear-gradient(90deg,var(--gold),transparent);flex:none}
.gold-copy{
  background:linear-gradient(100deg,var(--gold-3),var(--gold-2) 45%,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;
  padding-inline:.08em .14em;
  margin-inline:-.08em -.14em;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:200;background:var(--gold);color:#111827;padding:.7rem 1.1rem;font:600 .8rem var(--font-mono);transition:top var(--dur-fast) var(--ease)}
.skip-link:focus{top:1rem}

/* ---- Scroll progress + back to top ---------------------------------------*/
.scroll-progress{position:fixed;z-index:120;top:0;left:0;height:2px;width:0%;background:linear-gradient(90deg,var(--blue),var(--gold-2));box-shadow:0 0 12px rgba(56,189,248,.6);transition:width .1s linear}
.to-top{
  position:fixed;z-index:60;right:1.4rem;bottom:1.4rem;
  right:max(1.4rem,env(safe-area-inset-right));bottom:max(1.4rem,env(safe-area-inset-bottom));
  width:46px;height:46px;border-radius:50%;
  background:var(--panel-strong);border:1px solid var(--gold-line);color:var(--gold-2);
  font-size:1.1rem;cursor:pointer;
  display:grid;place-items:center;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur-fast),background var(--dur-fast);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.to-top.visible{opacity:1;visibility:visible;transform:none}
.to-top:hover{border-color:var(--gold);background:rgba(214,168,79,.14)}

/* ---- Header ---------------------------------------------------------------*/
.site-header{
  position:fixed;z-index:80;top:0;left:0;right:0;
  display:flex;align-items:center;justify-content:space-between;
  padding:1.15rem max(var(--gutter),calc((100vw - var(--max))/2));
  padding-top:max(1.15rem,env(safe-area-inset-top));
  border-bottom:1px solid transparent;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),padding var(--dur) var(--ease);
}
.site-header.scrolled{background:rgba(3,6,13,.86);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);border-color:rgba(148,163,184,.14);padding-top:.75rem;padding-bottom:.75rem}
.site-header.menu-open{background:#03060d;backdrop-filter:none;-webkit-backdrop-filter:none}
.brand{display:inline-flex;align-items:center;gap:.8rem;font:700 .78rem/1 var(--font-display);letter-spacing:.18em;z-index:52}
.brand-image-link{width:190px;padding:0;background:transparent;border:0;box-shadow:none;transition:filter var(--dur-fast),transform var(--dur-fast)}
.brand-image-link:hover,.brand-image-link:focus-visible{filter:drop-shadow(0 0 7px rgba(214,168,79,.22));transform:translateY(-1px)}
.brand-logo{display:block;width:100%;height:auto;filter:drop-shadow(0 0 .45px rgba(255,255,255,.85))}
.brand-symbol{width:38px;height:38px;object-fit:contain}
.brand-mark{
  display:grid;place-items:center;width:37px;height:37px;flex:none;
  border:1px solid var(--gold);color:var(--gold);font-family:var(--font-mono);font-size:.72rem;
  box-shadow:inset 0 0 15px rgba(214,168,79,.12);transition:box-shadow var(--dur);
}
.brand:hover .brand-mark{box-shadow:inset 0 0 20px rgba(214,168,79,.3),0 0 16px rgba(214,168,79,.25)}
.main-nav{display:flex;align-items:center;gap:1.35rem}
.main-nav>a{position:relative;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;color:#cbd5e1;padding:.3rem 0;transition:color var(--dur-fast)}
.main-nav>a span{position:relative}
.main-nav>a:not(.nav-cta):after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--gold-2);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-fast) var(--ease)}
.main-nav>a:hover,.main-nav>a:focus-visible,.main-nav>a[aria-current="page"]{color:var(--gold-2)}
.main-nav>a:hover:after,.main-nav>a:focus-visible:after,.main-nav>a[aria-current="page"]:after{transform:scaleX(1)}
.main-nav .nav-cta{border:1px solid var(--gold);padding:.7rem .9rem;color:var(--gold-2);overflow:hidden;position:relative}
.main-nav .nav-cta:before{content:"";position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform var(--dur) var(--ease);z-index:-1}
.main-nav .nav-cta:hover,.main-nav .nav-cta:focus-visible{color:#111827}
.main-nav .nav-cta:hover:before,.main-nav .nav-cta:focus-visible:before{transform:translateX(0)}
.account-link{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid transparent;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}
.account-link svg{width:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.account-link:hover,.account-link:focus-visible{border-color:var(--gold-line);box-shadow:0 0 14px rgba(214,168,79,.25);color:var(--gold-2)}
.language-switch{display:flex;align-items:center;gap:.28rem;color:var(--faint);font:600 .62rem var(--font-mono);letter-spacing:.08em}
.language-switch form{display:flex}
.language-switch button{border:0;background:transparent;padding:.35rem .2rem;cursor:pointer;color:var(--faint);transition:color var(--dur-fast),transform var(--dur-fast)}
.language-switch button:hover,.language-switch button:focus-visible{color:var(--gold-2);transform:translateY(-1px)}
.language-switch button[aria-current="true"]{color:var(--gold-2);text-decoration:underline;text-underline-offset:.3rem}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;z-index:52;padding:.4rem}
.menu-toggle span:not(.sr-only){display:block;width:24px;height:1px;background:#fff;margin:5px;transition:transform var(--dur-fast) var(--ease),opacity var(--dur-fast)}
.nav-scrim{position:fixed;inset:0;z-index:45;background:rgba(2,4,9,.6);backdrop-filter:blur(2px);opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease);}
.nav-scrim.open{opacity:1;visibility:visible}

.messages{position:fixed;z-index:110;top:5.5rem;right:1.5rem;width:min(420px,calc(100% - 3rem));display:flex;flex-direction:column;gap:.6rem}
.message{padding:1rem 1.2rem;background:#0f172a;border:1px solid var(--line);box-shadow:0 20px 60px #0008;font-size:.85rem;animation:msg-in .4s var(--ease)}
.message-success{border-color:var(--success)}
.message-error{border-color:var(--danger)}
@keyframes msg-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ---- Buttons ---------------------------------------------------------------*/
.button{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;
  padding:.8rem 1.4rem;border:1px solid transparent;font-family:var(--font-mono);font-size:.7rem;
  letter-spacing:.12em;font-weight:600;cursor:pointer;position:relative;overflow:hidden;
  transition:transform var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast);
}
.button-gold{background:linear-gradient(100deg,var(--gold),var(--gold-2));color:#101827}
.button-gold:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%);transform:translateX(-120%);transition:transform var(--dur-slow) var(--ease)}
.button-gold:hover,.button-gold:focus-visible{transform:translateY(-2px);box-shadow:0 14px 32px rgba(214,168,79,.24)}
.button-gold:hover:before,.button-gold:focus-visible:before{transform:translateX(120%)}
.button-ghost{border-color:rgba(148,163,184,.35);color:#e2e8f0;background:rgba(255,255,255,.02)}
.button-ghost:hover,.button-ghost:focus-visible{border-color:var(--blue);color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset,0 10px 26px rgba(56,189,248,.14);transform:translateY(-2px)}
@media(hover:none){.button-gold:hover,.button-ghost:hover{transform:none;box-shadow:none}}

/* ---- Hero -------------------------------------------------------------------*/
.hero{position:relative;min-height:100svh;height:auto;overflow:visible;display:grid;align-items:end}
.hero:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--night) 0%,rgba(3,6,13,.76) 42%,rgba(3,6,13,.12) 72%),linear-gradient(0deg,var(--night) 0%,transparent 48%);pointer-events:none}
.hero-glow{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(480px circle at var(--mx,68%) var(--my,30%),rgba(56,189,248,.18),transparent 62%)}
.hero-visual{position:absolute;inset:0 0 0 24%;display:grid;place-items:center}
.hero-visual img{width:100%;height:100%;object-fit:cover;opacity:.8;filter:saturate(.85) contrast(1.08) brightness(.92)}
.hero-visual:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,transparent 12%,rgba(3,6,13,.25) 48%,var(--night) 104%)}
.hero-network{position:absolute;inset:0;width:100%;height:100%;opacity:.75;mix-blend-mode:screen}
.hero-network circle{fill:var(--gold-2)}
.hero-network .n-core{fill:var(--blue)}
.hero-network line{stroke:rgba(56,189,248,.4);stroke-width:.6}
.hero-network .pulse{animation:node-pulse 3.6s ease-in-out infinite}
.hero-network .draw{stroke-dasharray:240;stroke-dashoffset:240;animation:draw-line 2.4s var(--ease-soft) forwards}
@keyframes node-pulse{0%,100%{opacity:.55;r:2.4}50%{opacity:1;r:3.4}}
@keyframes draw-line{to{stroke-dashoffset:0}}
.orbit{position:absolute;border:1px solid rgba(56,189,248,.28);border-radius:50%;width:56vw;height:20vw;transform:rotate(-18deg);box-shadow:0 0 20px rgba(56,189,248,.1);animation:orbit-spin 140s linear infinite}
.orbit-two{width:65vw;transform:rotate(12deg);border-color:rgba(214,168,79,.2);animation-duration:190s;animation-direction:reverse}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
.hero-grid{position:relative;z-index:2;width:min(var(--max),calc(100% - 2 * var(--gutter)));margin:0 auto;padding:clamp(6.5rem,12vh,9rem) 0 clamp(3rem,7vh,4rem);display:grid;grid-template-columns:minmax(0,760px) 1fr;gap:clamp(2rem,5vw,4rem);align-items:end}
.hero-copy h1{font:600 clamp(2.2rem,3vw + .5rem,4.55rem)/1.04 var(--font-display);letter-spacing:-.038em;margin:1.1rem 0 1.35rem;max-width:780px;text-wrap:balance}
.inner-hero h1,.error-page h1{font:600 clamp(2.35rem,4.1vw + .45rem,5.35rem)/1.02 var(--font-display);letter-spacing:-.04em;margin:1.15rem 0 1.45rem;max-width:860px;text-wrap:balance}
.hero-copy p{font-size:clamp(1rem,.93rem + .35vw,1.18rem);line-height:1.7;color:#cbd5e1;max-width:620px;text-wrap:pretty}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.3rem}
.hero-index{justify-self:end;display:flex;flex-direction:column;gap:.55rem;color:var(--faint);font-family:var(--font-mono);font-size:.63rem;letter-spacing:.15em;text-align:right}
.live-dot{color:#7dd3fc;margin-top:1rem;display:inline-flex;align-items:center;justify-content:flex-end;gap:.6rem}
.live-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:#38bdf8;box-shadow:0 0 12px #38bdf8;animation:live-blink 2s ease-in-out infinite}
@keyframes live-blink{0%,100%{opacity:1}50%{opacity:.35}}
.scroll-cue{position:absolute;left:50%;bottom:clamp(1.2rem,4vh,2.4rem);z-index:2;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--faint);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.2em}
.scroll-cue:after{content:"";width:1px;height:34px;background:linear-gradient(var(--gold-2),transparent);animation:cue-run 2.2s ease-in-out infinite}
@keyframes cue-run{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---- Sections ----------------------------------------------------------------*/
.section{max-width:var(--max);margin:auto;padding:clamp(4rem,8vw,7rem) var(--gutter)}
.section-head{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,6vw,5rem);align-items:end;margin-bottom:clamp(2.4rem,6vw,4rem)}
.section h2,.manifesto h2,.contact-section h2,.cta-block h2{font:600 clamp(1.8rem,2.35vw + .55rem,3.45rem)/1.12 var(--font-display);letter-spacing:-.03em;margin:.9rem 0;text-wrap:balance}
.section-head>p,.manifesto-copy>p,.contact-intro>p{color:#a7b1c2;max-width:60ch;line-height:1.75;text-wrap:pretty}

/* ---- TradeZone ecosystem -------------------------------------------------- */
.ecosystem-section{position:relative}
.ecosystem-section:before{content:"";position:absolute;left:var(--gutter);right:var(--gutter);top:0;height:1px;background:linear-gradient(90deg,var(--gold),var(--line) 18%,var(--line) 82%,var(--gold))}
.ecosystem-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);gap:clamp(3rem,7vw,7rem);align-items:center}
.ecosystem-copy{max-width:640px}
.ecosystem-copy h2{font-size:clamp(2rem,2.5vw + .5rem,3.6rem);margin:1rem 0 1.6rem}
.ecosystem-manifesto{color:#b4becd;font-size:clamp(1rem,.95rem + .18vw,1.1rem);line-height:1.82;max-width:62ch;text-wrap:pretty}
.ecosystem-manifesto:first-letter{color:var(--gold-2);font:600 3.25em/.8 var(--font-display);float:left;margin:.12em .14em 0 0}
.ecosystem-visual{display:grid;place-items:center;min-width:0}
.ecosystem-radar{position:relative;width:min(100%,620px);aspect-ratio:1;border:1px solid rgba(56,189,248,.15);background:radial-gradient(circle,rgba(56,189,248,.09),transparent 18%,transparent 42%,rgba(56,189,248,.035) 42.2%,transparent 42.6%),linear-gradient(rgba(56,189,248,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.025) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px;overflow:hidden;isolation:isolate}
.ecosystem-radar:before,.ecosystem-radar:after{content:"";position:absolute;width:15px;height:15px;border-color:var(--gold);border-style:solid;opacity:.7}
.ecosystem-radar:before{left:12px;top:12px;border-width:1px 0 0 1px}.ecosystem-radar:after{right:12px;bottom:12px;border-width:0 1px 1px 0}
.ecosystem-axis{position:absolute;left:50%;top:50%;background:linear-gradient(90deg,transparent,rgba(56,189,248,.2),transparent);transform:translate(-50%,-50%)}
.axis-x{width:88%;height:1px}.axis-y{width:1px;height:88%;background:linear-gradient(transparent,rgba(56,189,248,.2),transparent)}
.ecosystem-orbit{position:absolute;left:50%;top:50%;border:1px solid rgba(56,189,248,.22);border-radius:50%;transform:translate(-50%,-50%);animation:ecosystem-breathe 9s ease-in-out infinite}
.orbit-alpha{width:66%;height:66%}.orbit-beta{width:88%;height:42%;border-color:rgba(214,168,79,.2);transform:translate(-50%,-50%) rotate(-24deg);animation-delay:-4.5s}
.ecosystem-scan{position:absolute;left:50%;top:50%;width:42%;height:1px;transform-origin:left;background:linear-gradient(90deg,rgba(56,189,248,.45),transparent);animation:ecosystem-scan 28s linear infinite;opacity:.45}
.ecosystem-core{position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-50%);width:152px;height:152px;border:1px solid var(--gold-line);border-radius:50%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,rgba(214,168,79,.16),rgba(3,6,13,.96) 68%);box-shadow:0 0 45px rgba(214,168,79,.09),inset 0 0 28px rgba(214,168,79,.07)}
.ecosystem-core:before{content:"";position:absolute;inset:9px;border:1px dashed rgba(214,168,79,.25);border-radius:50%;animation:ecosystem-rotate 40s linear infinite}
.ecosystem-core strong{font:700 .78rem var(--font-display);letter-spacing:.16em}.ecosystem-core span{margin-top:.35rem;color:var(--gold-2);font:600 .57rem var(--font-mono);letter-spacing:.14em}
.ecosystem-node{position:absolute;z-index:4;display:flex;align-items:center;gap:.5rem;padding:.65rem .8rem;background:rgba(5,11,22,.92);border:1px solid var(--line-strong);box-shadow:0 8px 28px #0008;animation:ecosystem-float 7s ease-in-out infinite}
.ecosystem-node:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--blue);box-shadow:0 0 10px var(--blue)}
.ecosystem-node span{color:var(--faint);font:500 .52rem var(--font-mono)}.ecosystem-node strong{font:600 .62rem var(--font-mono);letter-spacing:.1em}
.node-ai{left:13%;top:20%}.node-blockchain{right:7%;top:30%;animation-delay:-2s}.node-comms{left:8%;bottom:21%;animation-delay:-4s}.node-institutions{right:10%;bottom:13%;animation-delay:-6s}
.ecosystem-proofs{display:grid;grid-template-columns:repeat(3,1fr);margin-top:clamp(3rem,6vw,5rem);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ecosystem-proofs p{display:flex;align-items:flex-start;gap:.7rem;padding:1.25rem clamp(.8rem,2vw,1.5rem);color:#b8c2d0;font-size:.83rem;border-right:1px solid var(--line)}
.ecosystem-proofs p:last-child{border-right:0}.ecosystem-proofs span{color:var(--gold);font-size:.55rem;margin-top:.34rem}
@keyframes ecosystem-scan{to{transform:rotate(360deg)}}
@keyframes ecosystem-rotate{to{transform:rotate(360deg)}}
@keyframes ecosystem-breathe{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes ecosystem-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}

.seal-list{border-left:1px solid var(--gold);padding-left:2rem;color:#cbd5e1}
.seal-list p{margin:0 0 1rem;transition:transform var(--dur-fast) var(--ease),color var(--dur-fast)}
.seal-list p:hover{transform:translateX(4px);color:var(--white)}

.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.card-grid-flex{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.service-card{
  position:relative;min-height:330px;padding:2.2rem 2rem;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  background:linear-gradient(145deg,rgba(15,23,42,.55),rgba(3,6,13,.08));
  transition:background var(--dur) var(--ease),transform var(--dur) var(--ease);
  isolation:isolate;
}
.service-card:before,.service-card:after{content:"";position:absolute;width:16px;height:16px;border-color:var(--gold);border-style:solid;opacity:0;transition:opacity var(--dur-fast) var(--ease)}
.service-card:before{top:10px;left:10px;border-width:1px 0 0 1px}
.service-card:after{bottom:10px;right:10px;border-width:0 1px 1px 0}
.service-card:hover{background:rgba(15,32,52,.78);transform:translateY(-6px)}
.service-card:hover:before,.service-card:hover:after{opacity:1}
.card-number{font-family:var(--font-mono);font-size:.62rem;color:var(--faint);letter-spacing:.16em}
.card-icon{margin:2.6rem 0 1.4rem;font-size:1.3rem;color:var(--blue);transition:transform var(--dur) var(--ease)}
.service-card:hover .card-icon{transform:translate(3px,-3px) rotate(8deg)}
.service-card h3{font:600 1.35rem var(--font-display);margin:0 0 .9rem}
.service-card p{font-size:.94rem;line-height:1.7;color:#9da8ba;text-wrap:pretty}
.card-link{display:inline-block;margin-top:1.1rem;color:var(--gold-2);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;position:relative}
.card-link:after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:var(--gold-2);transform:scaleX(0);transform-origin:left;transition:transform var(--dur-fast) var(--ease)}
.card-link:hover:after,.card-link:focus-visible:after{transform:scaleX(1)}

.manifesto{max-width:var(--max);margin:auto;padding:4rem var(--gutter) clamp(5rem,10vw,9rem);display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2.5rem,7vw,7rem);align-items:center}
.manifesto-map{position:relative;min-height:420px;height:clamp(380px,42vw,520px);border:1px solid var(--line);background:radial-gradient(circle at 45% 50%,rgba(14,165,233,.17),transparent 34%),linear-gradient(135deg,rgba(15,23,42,.7),rgba(3,6,13,.4));overflow:hidden}
.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(56,189,248,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.07) 1px,transparent 1px);background-size:40px 40px;transform:perspective(500px) rotateX(48deg) scale(1.6)}
.manifesto-map:before{content:"";position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--blue),transparent);box-shadow:0 0 14px var(--blue);animation:scan-sweep 5s linear infinite}
@keyframes scan-sweep{0%{top:-5%}100%{top:105%}}
.node{position:absolute;width:9px;height:9px;background:var(--gold);border-radius:50%;box-shadow:0 0 0 10px rgba(214,168,79,.08),0 0 25px var(--gold);animation:node-pulse 3.2s ease-in-out infinite}
.n1{top:35%;left:26%}
.n2{top:52%;left:61%;animation-delay:.6s}
.n3{top:28%;left:74%;animation-delay:1.1s}
.manifesto-copy{max-width:550px}

.metrics,.metrics-wide{display:grid;margin-top:3rem;border-top:1px solid var(--line)}
.metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.metrics div{padding:1.5rem 1rem 0 0;display:flex;flex-direction:column}
.metrics strong{font:600 2rem var(--font-display);color:var(--gold-2)}
.metrics span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.13em;color:var(--faint)}
.metrics-wide{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.metrics-wide div{background:var(--night-2);padding:1.6rem}
.metrics-wide strong{font:600 2rem var(--font-display);color:var(--gold-2);display:block}
.metrics-wide span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.13em;color:var(--faint)}

.cta-block{
  position:relative;max-width:calc(var(--max) - 2 * var(--gutter));margin:0 auto clamp(5rem,10vw,9rem);
  padding:clamp(2.2rem,5vw,3.5rem) clamp(1.6rem,5vw,4rem);
  border:1px solid var(--gold-line);
  background:linear-gradient(110deg,rgba(214,168,79,.1),rgba(15,23,42,.6));
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2rem;overflow:hidden;
}
.cta-block:before{content:"";position:absolute;inset:-40%;background:radial-gradient(circle,rgba(214,168,79,.16),transparent 60%);animation:cta-drift 12s ease-in-out infinite}
@keyframes cta-drift{0%,100%{transform:translate(-4%,-2%)}50%{transform:translate(4%,3%)}}
.cta-block>div{max-width:850px;position:relative}
.cta-block h2{font-size:clamp(1.7rem,3vw,3.2rem);margin-bottom:0}
.cta-block p{color:var(--muted);max-width:760px}
.cta-block>a{position:relative;flex:none}

/* ---- Inner hero / editorial ----------------------------------------------- */
.inner-hero{position:relative;min-height:58vh;padding:clamp(7rem,15vh,10rem) max(var(--gutter),calc((100vw - var(--max))/2)) clamp(4rem,8vh,5.5rem);padding-top:calc(clamp(7rem,15vh,10rem) + env(safe-area-inset-top));display:flex;align-items:end;overflow:hidden;border-bottom:1px solid var(--line)}
.inner-hero:before{content:"";position:absolute;width:60vw;height:60vw;border-radius:50%;right:-15vw;top:-20vw;border:1px solid rgba(56,189,248,.2);box-shadow:0 0 100px rgba(14,165,233,.08),inset 0 0 100px rgba(14,165,233,.05);animation:orbit-spin 200s linear infinite}
.inner-hero>div:not(.inner-orbit){position:relative;z-index:2;max-width:940px}
.inner-hero h1{font-size:clamp(2.3rem,3.5vw + .45rem,4.9rem)}
.inner-hero p{font-size:clamp(1rem,.94rem + .3vw,1.16rem);line-height:1.72;max-width:68ch;color:#cbd5e1;text-wrap:pretty}
.content-section+.content-section{padding-top:3rem}

.editorial{display:grid;grid-template-columns:.3fr 1fr;gap:clamp(2.5rem,6vw,6rem)}
.editorial-index{color:var(--gold);position:sticky;top:8rem;align-self:start}
.editorial-index span{font:600 clamp(3rem,6vw,5rem) var(--font-display);opacity:.35;display:block}
.editorial-index p{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em}
.editorial-copy{max-width:850px}
.editorial-copy>p{font-size:1.15rem;color:var(--muted)}
.editorial-copy>p+p{margin-top:1.1rem}

.gold-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem;margin:2rem 0}
.gold-list li{transition:transform var(--dur-fast) var(--ease)}
.gold-list li:hover{transform:translateX(4px)}
.gold-list li:before{content:"◆";color:var(--gold);font-size:.55rem;margin-right:.7rem}

/* ---- Institutional communication ----------------------------------------- */
.communication-hero{position:relative;min-height:88svh;display:flex;align-items:end;overflow:hidden;border-bottom:1px solid var(--line)}
.communication-photo{position:absolute;inset:0 0 0 28%}.communication-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.04) brightness(.76)}
.communication-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--night),transparent 55%),linear-gradient(0deg,var(--night) 0%,transparent 52%)}
.communication-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--night) 0%,rgba(3,6,13,.92) 36%,rgba(3,6,13,.15) 74%),linear-gradient(0deg,var(--night) 0%,transparent 48%)}
.communication-hero-copy{position:relative;z-index:2;width:min(var(--max),calc(100% - 2 * var(--gutter)));margin:0 auto;padding:clamp(7rem,17vh,11rem) 0 clamp(3.5rem,8vh,5rem)}
.communication-hero h1{font:600 clamp(2.4rem,3.7vw + .35rem,5.1rem)/1.03 var(--font-display);letter-spacing:-.04em;text-wrap:balance;max-width:850px;margin:1.1rem 0 1.4rem}
.communication-hero-copy>p{font-size:clamp(1rem,.92rem + .35vw,1.18rem);line-height:1.72;color:#d0d7e2;max-width:67ch;text-wrap:pretty}
.communication-intro{display:grid;grid-template-columns:minmax(0,.82fr) minmax(460px,1.18fr);gap:clamp(3rem,7vw,7rem);align-items:center}
.communication-intro-copy>p{font-size:clamp(1.15rem,1rem + .55vw,1.48rem);line-height:1.75;color:#c3ccd9;max-width:52ch;margin-top:1.3rem;text-wrap:pretty}
.communication-flow{position:relative;display:grid;gap:0;padding-left:2rem}
.flow-line{position:absolute;left:4.55rem;top:12%;bottom:12%;width:1px;background:rgba(56,189,248,.22);overflow:hidden}.flow-line span{position:absolute;left:0;top:-25%;width:100%;height:28%;background:linear-gradient(transparent,var(--blue),transparent);animation:comm-flow 5.5s ease-in-out infinite}
.communication-flow article{position:relative;min-height:102px;display:grid;grid-template-columns:74px 1fr auto;align-items:center;padding:1rem 1.2rem;border-top:1px solid var(--line);background:linear-gradient(90deg,rgba(15,23,42,.52),transparent);transition:background var(--dur),transform var(--dur)}
.communication-flow article:last-child{border-bottom:1px solid var(--line)}.communication-flow article:hover{background:rgba(15,32,52,.65);transform:translateX(4px)}
.communication-flow article:before{content:"";position:absolute;left:2.32rem;width:9px;height:9px;border-radius:50%;background:var(--night);border:2px solid var(--blue);box-shadow:0 0 15px rgba(56,189,248,.55)}
.communication-flow article>span{color:var(--faint);font:500 .58rem var(--font-mono)}.communication-flow strong{font:600 clamp(1.1rem,2vw,1.5rem) var(--font-display);letter-spacing:.06em}.communication-flow small{color:var(--gold-2);font:500 .55rem var(--font-mono);letter-spacing:.16em}
.communication-services{padding-top:clamp(3rem,6vw,5rem)}
.communication-card-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.communication-card{grid-column:span 4;position:relative;min-height:330px;padding:clamp(1.5rem,3vw,2.2rem);background:linear-gradient(145deg,rgba(13,22,39,.98),rgba(5,9,18,.98));overflow:hidden;transition:background var(--dur),transform var(--dur)}
.communication-card:hover{background:#101d31;transform:translateY(-3px);z-index:2}.communication-card:after{content:"";position:absolute;right:-25%;bottom:-55%;width:210px;height:210px;border:1px solid rgba(56,189,248,.1);border-radius:50%;transition:transform .8s var(--ease)}.communication-card:hover:after{transform:scale(1.14)}
.communication-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:clamp(3rem,6vw,5rem);color:var(--gold-2);font:600 .6rem var(--font-mono);letter-spacing:.15em}.communication-card header i{width:7px;height:7px;border:1px solid var(--blue);border-radius:50%;box-shadow:0 0 12px rgba(56,189,248,.55)}
.communication-card h3{font:600 1.32rem/1.2 var(--font-display);margin-bottom:1rem}.communication-card p{font-size:.9rem;line-height:1.72;color:#9eabba;text-wrap:pretty}
.communication-data{display:grid;grid-template-columns:minmax(0,.9fr) minmax(480px,1.1fr);gap:clamp(3rem,7vw,7rem);align-items:center}
.communication-data-copy h2{font-size:clamp(2rem,2.5vw + .5rem,3.5rem);margin:1rem 0 1.3rem}.communication-data-copy>p{color:#aeb8c8;line-height:1.78;max-width:57ch;text-wrap:pretty}
.communication-dashboard{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);background:var(--line);gap:1px}.communication-dashboard article{position:relative;min-height:190px;padding:1.4rem;background:var(--night-2);overflow:hidden}.communication-dashboard article>span{color:var(--faint);font:500 .52rem var(--font-mono);letter-spacing:.13em}.communication-dashboard strong{display:block;color:var(--gold-2);font:600 clamp(1.7rem,3vw,2.4rem) var(--font-display);margin:1.3rem 0 .3rem}.communication-dashboard p{color:#a7b1c0;font-size:.77rem;line-height:1.5}.communication-dashboard i{position:absolute;left:1.4rem;right:1.4rem;bottom:1rem;height:1px;background:linear-gradient(90deg,var(--blue) 0 62%,rgba(56,189,248,.1) 62%);transform-origin:left;animation:comm-meter 6s ease-in-out infinite}
@keyframes comm-flow{0%{transform:translateY(0);opacity:0}20%,80%{opacity:1}100%{transform:translateY(440%);opacity:0}}
@keyframes comm-meter{0%,100%{transform:scaleX(.72);opacity:.55}50%{transform:scaleX(1);opacity:1}}

/* ---- Casa della Nonna ----------------------------------------------------- */
.nonna-page{--earth:#b78652;--earth-light:#e8c394;--olive:#88936b;--stone:#c8bba8;--hearth:#8f4d32;background:linear-gradient(180deg,var(--night),#090b0a 35%,#0d0d0b)}
.nonna-hero{position:relative;min-height:94svh;display:flex;align-items:end;overflow:hidden;border-bottom:1px solid rgba(232,195,148,.25)}
.nonna-photo{position:absolute;inset:0 0 0 22%}.nonna-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.02) brightness(.84)}
.nonna-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#050706 0%,rgba(5,7,6,.94) 34%,rgba(5,7,6,.2) 74%),linear-gradient(0deg,#090b0a 0%,transparent 45%)}
.nonna-hero-copy{position:relative;z-index:2;width:min(var(--max),calc(100% - 2 * var(--gutter)));margin:0 auto;padding:clamp(7rem,17vh,11rem) 0 clamp(3.5rem,8vh,5rem)}
.nonna-page .eyebrow{color:var(--earth-light)}.nonna-page .eyebrow:before{background:linear-gradient(90deg,var(--earth-light),transparent)}
.nonna-hero h1{font:600 clamp(2.4rem,3.55vw + .35rem,4.9rem)/1.04 var(--font-display);letter-spacing:-.04em;text-wrap:balance;max-width:880px;margin:1.1rem 0 1.4rem}
.nonna-hero-copy>p{font-size:clamp(1rem,.92rem + .35vw,1.18rem);line-height:1.74;color:#e0d8cd;max-width:69ch;text-wrap:pretty}
.nonna-opening{display:grid;grid-template-columns:.55fr 1.45fr;gap:clamp(3rem,8vw,8rem);align-items:center}
.nonna-house-mark{min-height:330px;border:1px solid rgba(232,195,148,.22);display:grid;place-content:center;text-align:center;background:radial-gradient(circle,rgba(183,134,82,.15),transparent 55%),linear-gradient(135deg,rgba(255,255,255,.025),transparent)}
.nonna-house-mark span{font:400 clamp(5rem,10vw,8rem)/1 var(--font-display);color:var(--earth-light);text-shadow:0 0 38px rgba(183,134,82,.23)}.nonna-house-mark small{margin-top:1.5rem;color:#a99882;font:500 .56rem var(--font-mono);letter-spacing:.18em}
.nonna-opening-copy>p{font-size:clamp(1.2rem,1.05rem + .55vw,1.55rem);line-height:1.78;color:#d5cec4;max-width:58ch;text-wrap:pretty;margin-top:1.2rem}
.nonna-section-head{max-width:900px;margin-bottom:clamp(2.5rem,6vw,4.5rem)}.nonna-section-head h2{font-size:clamp(2rem,2.5vw + .5rem,3.55rem);margin:1rem 0;max-width:850px}.nonna-section-head>p{color:#b7aea1;line-height:1.78;max-width:65ch;text-wrap:pretty}
.nonna-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.nonna-card{position:relative;min-height:340px;padding:clamp(1.5rem,3vw,2.2rem);border:1px solid rgba(200,187,168,.16);background:linear-gradient(150deg,rgba(43,37,29,.7),rgba(10,11,10,.82));overflow:hidden;transition:transform var(--dur),border-color var(--dur),background var(--dur)}
.nonna-card:after{content:"";position:absolute;right:-45px;bottom:-45px;width:120px;height:120px;border:1px solid rgba(232,195,148,.12);transform:rotate(45deg)}.nonna-card:hover{transform:translateY(-5px);border-color:rgba(232,195,148,.42);background:rgba(48,40,30,.76)}
.nonna-card>span{display:block;color:var(--earth-light);font:600 .6rem var(--font-mono);letter-spacing:.15em;margin-bottom:clamp(3rem,6vw,5rem)}.nonna-card h3{font:600 1.3rem/1.22 var(--font-display);margin-bottom:1rem}.nonna-card p{color:#aaa196;font-size:.9rem;line-height:1.72;text-wrap:pretty}
.nonna-journeys{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(3rem,7vw,7rem);align-items:start;border-top:1px solid rgba(232,195,148,.16)}
.nonna-journeys .nonna-section-head{position:sticky;top:8rem}
.nonna-journey-grid{display:grid}.nonna-journey-grid article{display:grid;grid-template-columns:82px 1fr;gap:1.4rem;padding:2rem 0;border-top:1px solid rgba(200,187,168,.17)}.nonna-journey-grid article:last-child{border-bottom:1px solid rgba(200,187,168,.17)}.nonna-journey-grid article>span{color:var(--earth-light);font:500 .7rem var(--font-mono)}.nonna-journey-grid h3{font:600 1.4rem var(--font-display);margin-bottom:.6rem}.nonna-journey-grid p{color:#aaa196;line-height:1.75;text-wrap:pretty}
.nonna-roadmap{border-top:1px solid rgba(232,195,148,.16)}
.nonna-steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr)}.nonna-steps:before{content:"";position:absolute;left:8%;right:8%;top:28px;height:1px;background:linear-gradient(90deg,var(--earth),var(--olive))}
.nonna-steps article{position:relative;padding:0 clamp(.8rem,2vw,1.5rem);text-align:center}.nonna-steps article>span{position:relative;z-index:2;display:grid;place-items:center;width:56px;height:56px;margin:0 auto 1.6rem;border:1px solid var(--earth);border-radius:50%;background:#0d0d0b;color:var(--earth-light);font:600 .7rem var(--font-mono);box-shadow:0 0 0 8px #0d0d0b}.nonna-steps h3{font:600 1.15rem var(--font-display);margin-bottom:.7rem}.nonna-steps p{color:#a69d91;font-size:.86rem;line-height:1.68;text-wrap:pretty}
.nonna-page .cta-block{border-color:rgba(232,195,148,.34);background:linear-gradient(110deg,rgba(143,77,50,.15),rgba(44,38,29,.7))}

/* ---- About / one team ----------------------------------------------------- */
.about-hero{position:relative;min-height:92svh;display:flex;align-items:end;overflow:hidden;border-bottom:1px solid var(--line)}
.about-photo{position:absolute;inset:0 0 0 23%}.about-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.06) brightness(.76)}
.about-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--night) 0%,rgba(3,6,13,.94) 36%,rgba(3,6,13,.12) 74%),linear-gradient(0deg,var(--night) 0%,transparent 48%)}
.about-hero-copy{position:relative;z-index:2;width:min(var(--max),calc(100% - 2 * var(--gutter)));margin:0 auto;padding:clamp(7rem,17vh,11rem) 0 clamp(3.5rem,8vh,5rem)}
.about-hero h1{font:600 clamp(2.4rem,3.6vw + .35rem,5rem)/1.03 var(--font-display);letter-spacing:-.04em;text-wrap:balance;max-width:880px;margin:1.1rem 0 1.4rem}.about-hero-copy>p{font-size:clamp(1rem,.92rem + .35vw,1.18rem);line-height:1.73;color:#d0d7e2;max-width:68ch;text-wrap:pretty}
.about-convergence{display:grid;grid-template-columns:1fr 220px 1fr;align-items:stretch;gap:1px}
.about-culture{min-height:280px;padding:clamp(1.6rem,4vw,2.8rem);border:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(145deg,rgba(13,24,43,.78),rgba(4,8,16,.9))}.about-culture>span,.about-culture small{color:var(--faint);font:500 .57rem var(--font-mono);letter-spacing:.15em}.about-culture strong{font:600 clamp(1.8rem,3vw,3rem) var(--font-display);margin:.65rem 0}.culture-tech{align-items:flex-end;text-align:right}.culture-tech strong{color:#a8e0fa}.culture-institution strong{color:var(--gold-2)}
.about-regia{position:relative;z-index:2;display:grid;place-content:center;text-align:center;border-block:1px solid var(--gold-line);background:radial-gradient(circle,rgba(214,168,79,.16),#070d18 68%);box-shadow:0 0 45px #000}.about-regia>span{color:var(--gold-2);font:600 .57rem var(--font-mono);letter-spacing:.18em}.about-regia strong{font:700 1.15rem/1.35 var(--font-display);margin:.8rem 0}.about-regia i{width:8px;height:8px;margin:auto;border-radius:50%;background:var(--blue);box-shadow:0 0 15px var(--blue);animation:about-pulse 3s ease-in-out infinite}
.about-statement{grid-column:1/-1;display:grid;grid-template-columns:.4fr 1.6fr;gap:clamp(2rem,6vw,6rem);padding-top:clamp(3rem,7vw,6rem);margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line)}.about-statement p{font-size:clamp(1.2rem,1.05rem + .55vw,1.55rem);line-height:1.76;color:#c7d0dc;max-width:67ch;text-wrap:pretty}
.about-section-head{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:end;margin-bottom:clamp(2.5rem,6vw,4.5rem)}.about-section-head .eyebrow{grid-column:1/-1}.about-section-head h2{font-size:clamp(2rem,2.6vw + .45rem,3.65rem);max-width:850px}.about-section-head>p{justify-self:end;color:var(--faint);font:500 .58rem var(--font-mono);letter-spacing:.16em}
.about-dossiers{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.about-dossier{position:relative;min-height:410px;padding:1.5rem;border:1px solid rgba(214,168,79,.24);background:linear-gradient(155deg,rgba(18,27,43,.9),rgba(5,9,17,.96));display:flex;flex-direction:column;transition:transform var(--dur),border-color var(--dur)}.about-dossier:hover{transform:translateY(-5px);border-color:var(--gold)}
.about-dossier header,.about-dossier footer{display:flex;justify-content:space-between;align-items:center;color:var(--faint);font:500 .5rem var(--font-mono);letter-spacing:.11em}.about-dossier header i{color:var(--success);font-style:normal}.about-dossier h3{font:600 1.4rem var(--font-display);margin:clamp(3.2rem,6vw,5rem) 0 1rem}.about-dossier>p{color:#a9b3c2;font-size:.9rem;line-height:1.72;text-wrap:pretty}.about-dossier footer{margin-top:auto;padding-top:1.2rem;border-top:1px solid var(--line)}.about-dossier footer b{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--gold);border-radius:50%;color:var(--gold)}
.about-audience{border-top:1px solid var(--line)}.about-audience-list{display:grid}.about-audience-list article{position:relative;display:grid;grid-template-columns:80px minmax(220px,.7fr) 1.3fr 30px;gap:clamp(1rem,3vw,2.5rem);align-items:start;padding:2rem 0;border-top:1px solid var(--line);transition:padding var(--dur),background var(--dur)}.about-audience-list article:last-child{border-bottom:1px solid var(--line)}.about-audience-list article:hover{padding-inline:1rem;background:rgba(15,23,42,.38)}.about-audience-list article>span{color:var(--gold-2);font:500 .62rem var(--font-mono)}.about-audience-list h3{font:600 1.3rem var(--font-display)}.about-audience-list p{color:#a5b0c0;line-height:1.72;text-wrap:pretty}.about-audience-list i{color:var(--blue);font-style:normal}
@keyframes about-pulse{0%,100%{opacity:.45;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}

/* ---- Technology pages ---------------------------------------------------- */
.technology-hero{position:relative;min-height:90svh;display:flex;align-items:end;overflow:hidden;border-bottom:1px solid var(--line)}.technology-photo{position:absolute;inset:0 0 0 22%}.technology-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.75) contrast(1.06) brightness(.76)}.technology-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,var(--night),rgba(3,6,13,.93) 36%,rgba(3,6,13,.12) 75%),linear-gradient(0deg,var(--night),transparent 48%)}.technology-hero-copy{position:relative;z-index:2;width:min(var(--max),calc(100% - 2 * var(--gutter)));margin:auto;padding:clamp(7rem,17vh,11rem) 0 clamp(3.5rem,8vh,5rem)}.technology-hero h1{font:600 clamp(2.4rem,3.6vw + .35rem,5rem)/1.03 var(--font-display);letter-spacing:-.04em;max-width:880px;text-wrap:balance;margin:1.1rem 0 1.4rem}.technology-hero-copy>p{font-size:clamp(1rem,.92rem + .35vw,1.18rem);line-height:1.73;color:#d0d7e2;max-width:68ch;text-wrap:pretty}.tech-section-head{max-width:920px;margin-bottom:clamp(2.5rem,6vw,4.5rem)}.tech-section-head h2{font-size:clamp(2rem,2.55vw + .45rem,3.6rem);margin:1rem 0;max-width:900px}.tech-section-head>p{color:#aab5c4;line-height:1.78;max-width:65ch}
/* AI: a practice moving through an always-on system */
.technology-automazioni-ai{--tech-accent:#38bdf8}.ai-practice-flow{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:4rem;border-block:1px solid var(--line)}.ai-practice-flow article{position:relative;z-index:2;padding:1.4rem;text-align:center;background:rgba(4,9,18,.9)}.ai-practice-flow article>span{color:var(--faint);font:.55rem var(--font-mono)}.ai-practice-flow strong{display:block;font:600 1rem var(--font-display);margin:.4rem}.ai-practice-flow small{color:var(--blue);font:.52rem var(--font-mono);letter-spacing:.12em}.ai-flow-track{position:absolute;left:10%;right:10%;top:50%;height:1px;background:var(--line-strong)}.ai-flow-track i{position:absolute;width:70px;height:1px;background:linear-gradient(90deg,transparent,var(--blue),transparent);animation:ai-travel 5s linear infinite}.ai-capability-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.ai-capability{position:relative;min-height:270px;padding:2rem;background:linear-gradient(145deg,#0a1424,#050912);overflow:hidden}.ai-capability>span{color:var(--blue);font:.6rem var(--font-mono)}.ai-capability h3{font:600 1.3rem var(--font-display);margin:2.8rem 0 .8rem}.ai-capability p{color:#9eabba;font-size:.9rem;line-height:1.72}.ai-capability>i{position:absolute;right:1.5rem;top:1.5rem;width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 12px var(--success);animation:about-pulse 3s infinite}.ai-evidence{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}.ai-metrics{display:grid;gap:1px;background:var(--line)}.ai-metrics article{position:relative;padding:1.5rem;background:#070e1b}.ai-metrics strong{display:block;color:var(--gold-2);font:600 2rem var(--font-display)}.ai-metrics span{color:#98a5b7;font-size:.75rem}.ai-metrics i{position:absolute;left:0;bottom:0;height:2px;width:72%;background:var(--blue);animation:comm-meter 6s infinite}@keyframes ai-travel{from{left:0}to{left:calc(100% - 70px)}}
/* Blockchain: a public ledger with digital seals */
.technology-blockchain{--tech-accent:var(--gold)}.chain-register{display:grid;place-items:center}.chain-document{position:relative;width:min(960px,100%);padding:clamp(2rem,5vw,4rem);border:1px solid var(--gold-line);background:#e9e3d5;color:#182031;box-shadow:0 35px 100px #0009}.chain-document header,.chain-document footer{display:flex;justify-content:space-between;gap:1rem;font:600 .58rem var(--font-mono);letter-spacing:.12em;color:#796446}.chain-document header{padding-bottom:1.5rem;border-bottom:3px double #aa8c5a}.chain-document header b{color:#23785d}.chain-seal{display:grid;place-content:center;width:130px;height:130px;margin:3rem auto;border:2px double #9b7540;border-radius:50%;text-align:center;color:#8a6637;font:700 1.6rem var(--font-display);animation:ecosystem-breathe 7s infinite}.chain-seal small{display:block;font:.45rem var(--font-mono);letter-spacing:.1em}.chain-document>p{max-width:70ch;margin:auto;font-size:1.08rem;line-height:1.8}.chain-document footer{display:grid;grid-template-columns:repeat(3,1fr);margin-top:3rem;padding-top:1.5rem;border-top:1px solid #bca77f}.chain-document footer strong,.chain-document footer span{display:block}.chain-document footer strong{font-size:.7rem;color:#57472f}.chain-ledger{border:1px solid var(--gold-line)}.chain-ledger article{display:grid;grid-template-columns:90px 1fr 50px;gap:2rem;padding:2rem;border-bottom:1px solid var(--gold-line);align-items:start;background:linear-gradient(90deg,rgba(214,168,79,.05),transparent)}.chain-ledger article:last-child{border-bottom:0}.chain-ledger article>span{color:var(--gold-2);font:.6rem var(--font-mono)}.chain-ledger h3{font:600 1.3rem var(--font-display);margin-bottom:.7rem}.chain-ledger p{color:#9faaba;line-height:1.72}.chain-ledger article>b{display:grid;place-items:center;width:32px;height:32px;border:1px solid #328469;border-radius:50%;color:#51c69a}
/* Software: blueprint, structure, foundations */
.technology-software-house{--tech-accent:#7dd3fc}.software-blueprint{background-image:linear-gradient(rgba(56,189,248,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(56,189,248,.035) 1px,transparent 1px);background-size:32px 32px}.software-system{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.software-system article{min-height:300px;padding:1.7rem;border:1px solid var(--line-strong);background:rgba(5,12,23,.9)}.software-system header{display:flex;justify-content:space-between;color:var(--blue);font:.58rem var(--font-mono)}.software-system header i{width:28px;height:15px;border:1px solid var(--line-strong)}.software-system h3{font:600 1.25rem var(--font-display);margin:3.5rem 0 .9rem}.software-system p{color:#9da9b9;font-size:.9rem;line-height:1.72}.software-foundation{display:flex;align-items:center;gap:1rem;color:var(--gold-2);font:.55rem var(--font-mono);letter-spacing:.14em;margin-bottom:2rem}.software-foundation i{height:4px;flex:1;background:repeating-linear-gradient(90deg,var(--gold) 0 30px,transparent 30px 38px)}.software-phases{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.software-phases article{padding:2rem 1.4rem;border-right:1px solid var(--line)}.software-phases article:last-child{border-right:0}.software-phases article>span{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--blue);color:var(--blue);font:.65rem var(--font-mono);margin-bottom:2rem}.software-phases h3{font:600 1.15rem var(--font-display);margin-bottom:.7rem}.software-phases p{color:#9ca8b8;font-size:.86rem;line-height:1.68}

/* ---- Contact / protocol card ------------------------------------------------ */
.contact-hero{min-height:46vh}
.contact-section{max-width:var(--max);margin:auto;padding:clamp(3.5rem,8vw,7rem) var(--gutter) clamp(5rem,10vw,10rem);display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.contact-intro{position:sticky;top:8rem}
.contact-meta{margin-top:3rem;padding-top:1.2rem;border-top:1px solid var(--line);display:flex;flex-direction:column}
.contact-meta span{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.18em;color:var(--faint)}
.contact-meta strong{font-size:.78rem;color:var(--gold-2);font-weight:600}

.protocol-card{position:relative;background:var(--paper);color:var(--paper-ink);border:1px solid var(--gold);padding:clamp(1.6rem,4vw,3rem);box-shadow:0 35px 100px #0008}
.protocol-card:before{
  content:"TZ";position:absolute;top:-18px;right:clamp(1.4rem,4vw,2.6rem);width:56px;height:56px;border-radius:50%;
  border:2px solid rgba(139,105,31,.55);display:grid;place-items:center;
  font:700 1rem var(--font-mono);color:rgba(139,105,31,.65);letter-spacing:.02em;
  background:var(--paper);transform:rotate(-8deg);box-shadow:0 6px 18px #0004;
}
.protocol-card header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.4rem}
.protocol-card header h2{font-size:clamp(1.5rem,3vw,2rem);margin:.5rem 0;font-family:var(--font-display)}
.protocol-card header p{color:#596273;margin:0}
.protocol-card header>strong,.document-kicker{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.17em;color:#8b691f}
.document-rule{height:3px;border-top:1px solid #b99445;border-bottom:1px solid #b99445;margin:2rem 0}

.protocol-form label,.login-card label,.dashboard-panel label{display:block;margin:0 0 .45rem;font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.protocol-form input:not([type=checkbox]):not([type=submit]),.protocol-form select,.protocol-form textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid #a9a69c;border-radius:0;
  padding:.8rem 1.6rem .8rem .2rem;color:var(--paper-ink);outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
  -webkit-appearance:none;appearance:none;
}
.protocol-form input:not([type=checkbox]):not([type=submit]):focus,.protocol-form select:focus,.protocol-form textarea:focus{border-color:#8b691f;box-shadow:0 1px #8b691f}
/* crispy-tailwind renders its own select-arrow markup (div.relative > select + div > svg) whose
   Tailwind utility classes aren't in the compiled bundle (crispy's templates sit outside the
   content scan) — position and size that arrow by structure instead. */
.protocol-form .relative{position:relative}
.protocol-form select+div{position:absolute;top:50%;right:.3rem;transform:translateY(-50%);width:12px;height:12px;pointer-events:none;color:#8b691f}
.protocol-form select+div svg{display:block;width:100%;height:100%;fill:currentColor}
.protocol-form input[type=checkbox]{accent-color:#8b691f;width:16px;height:16px}
.protocol-form ul.errorlist,.dashboard-panel ul.errorlist,.login-card ul.errorlist,.protocol-form p[id^="error_"]{list-style:none;margin:.4rem 0 0;padding:0;color:var(--danger);font-size:.72rem;font-family:var(--font-mono)}
.protocol-form input.border-red-500,.protocol-form select.border-red-500,.protocol-form textarea.border-red-500{border-color:var(--danger)}
.protocol-form>div,.protocol-form>p{margin-bottom:1.3rem}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.4rem}
.protocol-submit{-webkit-appearance:none;appearance:none;width:100%;border:0;border-radius:0;background:linear-gradient(100deg,var(--gold),#c89a3d);color:#111827;font-size:.75rem;padding:1.05rem;font-family:var(--font-mono);font-weight:700;letter-spacing:.13em;cursor:pointer;margin-top:1rem;transition:filter var(--dur-fast),transform var(--dur-fast)}
.protocol-submit:hover,.protocol-submit:focus-visible{filter:brightness(1.08);transform:translateY(-1px)}
.protocol-note{font-size:.73rem;color:#657080;text-align:center;margin-top:1.2rem}

/* ---- Login / error --------------------------------------------------------- */
.login-shell,.error-page{min-height:85svh;display:grid;place-items:center;padding:clamp(7rem,16vh,10rem) var(--gutter) 5rem}
.login-card{position:relative;width:min(460px,100%);background:var(--panel-strong);border:1px solid var(--line);padding:clamp(2rem,5vw,3rem);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.login-card:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--blue),var(--gold-2))}
.login-card h1{font:600 2rem var(--font-display);margin:.6rem 0}
.login-card input{width:100%;padding:.85rem;background:#020617;border:1px solid #334155;color:#fff;margin-bottom:1rem;transition:border-color var(--dur-fast)}
.login-card input:focus{border-color:var(--gold-line);outline:none}
.login-card .button{width:100%}

.error-page{position:relative;text-align:center;overflow:hidden}
.error-page:before{
  content:"404";position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);
  font:800 clamp(9rem,32vw,26rem) var(--font-display);color:transparent;
  -webkit-text-stroke:1px rgba(56,189,248,.14);z-index:-1;letter-spacing:-.05em;pointer-events:none;
}
.error-page p{color:var(--muted);max-width:620px;position:relative}
.error-page h1{position:relative}

/* ---- Footer ------------------------------------------------------------------*/
.site-footer{max-width:var(--max);margin:auto;padding:clamp(3.5rem,8vw,5rem) var(--gutter) 2rem;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(260px,2fr) repeat(3,minmax(140px,1fr));gap:clamp(2rem,4vw,4rem)}
.site-footer p{max-width:420px;color:var(--muted)}
.site-footer>div:not(.footer-bottom){display:flex;flex-direction:column;gap:.7rem}
.footer-label{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.18em;color:var(--gold)!important}
.site-footer a:not(.brand){font-size:.8rem;color:#cbd5e1;width:fit-content;position:relative;transition:color var(--dur-fast)}
.footer-brand{width:230px;margin-bottom:1rem}
.site-footer a:not(.brand):hover{color:var(--gold-2)}
.site-footer>div>span{font-size:.8rem;color:#cbd5e1}
.footer-bottom{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;padding-top:2rem;border-top:1px solid rgba(148,163,184,.12);color:var(--faint);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.1em}
.contact-details{display:grid;gap:1.4rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.contact-details dt{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-2)}
.contact-details dd{margin-top:.35rem;color:var(--muted);max-width:520px}
.chain-register-label{width:min(900px,100%);margin:0 auto 1.25rem}

/* ---- Cookie banner / modal ---------------------------------------------------*/
.cookie-banner{
  position:fixed;z-index:90;left:1.4rem;right:1.4rem;bottom:1.4rem;
  bottom:max(1.4rem,env(safe-area-inset-bottom));
  background:var(--paper);color:var(--paper-ink);border:1px solid var(--gold);
  padding:1.2rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem;
  box-shadow:0 20px 60px #0009;animation:cookie-in var(--dur-slow) var(--ease);
}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:.2rem 0;font-size:.82rem}
.cookie-banner a{text-decoration:underline}
.cookie-banner button{background:var(--paper-ink);color:#fff;border:0;padding:.75rem 1.5rem;cursor:pointer;font-family:var(--font-mono);letter-spacing:.05em;transition:background var(--dur-fast)}
.cookie-banner button:hover{background:#0b1120}
.cookie-banner-copy{flex:1;min-width:min(100%,34rem)}
.cookie-banner-links{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:.55rem}
.cookie-banner-toggle{background:none!important;color:var(--paper-ink)!important;border:0;padding:0!important;font-size:.82rem;text-decoration:underline;cursor:pointer;font-family:inherit!important;letter-spacing:0!important}
.cookie-banner-toggle:hover{background:none!important;opacity:.75}
.cookie-banner-details{margin-top:.7rem;padding:.8rem 1rem;background:rgba(23,32,51,.06);border-left:2px solid var(--gold)}
.cookie-banner-details ul{margin:0 0 .5rem;padding:0;list-style:none;display:grid;gap:.35rem}
.cookie-banner-details li,.cookie-banner-details p{font-size:.78rem;margin:0}
.cookie-banner-details code{font-family:var(--font-mono);font-size:.72rem;background:rgba(23,32,51,.1);padding:.1rem .35rem}
@keyframes cookie-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---- Pagine legali (privacy / cookie policy) ------------------------------ */
.legal-section+.legal-section{padding-top:0}
.legal-section .editorial-copy h3{margin:1.6rem 0 .5rem;font-size:1.02rem;color:var(--gold-2)}
.legal-section .editorial-copy>p{font-size:1.02rem;line-height:1.75}
.legal-section .editorial-copy a{color:var(--gold-2);text-decoration:underline;text-underline-offset:3px}
.legal-list{margin:1.2rem 0;padding:0;list-style:none;display:grid;gap:.9rem}
.legal-list li{color:var(--muted);font-size:1.02rem;line-height:1.7;padding-left:1.2rem;position:relative}
.legal-list li:before{content:"◆";color:var(--gold);font-size:.55rem;position:absolute;left:0;top:.5em}
.legal-list strong{color:#e2e8f0}
.cookie-table{width:100%;min-width:640px;border-collapse:collapse;margin:1.4rem 0;font-size:.9rem}
.cookie-table th{text-align:left;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;color:var(--gold-2);border-bottom:1px solid var(--line-strong);padding:.7rem .8rem}
.cookie-table td{border-bottom:1px solid var(--line);padding:.85rem .8rem;color:var(--muted);vertical-align:top;line-height:1.6}
.cookie-table td:first-child{white-space:nowrap}
.cookie-table code{font-family:var(--font-mono);font-size:.78rem;color:#e2e8f0}

.modal{position:fixed;z-index:150;inset:0;background:rgba(2,6,23,.86);backdrop-filter:blur(4px);display:none;place-items:center;padding:1.5rem}
.modal.open{display:grid;animation:modal-in var(--dur-fast) var(--ease)}
.modal-panel{position:relative;width:min(680px,100%);max-height:88vh;overflow:auto;background:#0f172a;border:1px solid var(--gold);padding:clamp(1.6rem,5vw,2.5rem)}
.modal-close{position:absolute;right:1rem;top:1rem;background:none;border:0;color:#fff;font-size:2rem;cursor:pointer;line-height:1}
@keyframes modal-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.edit-trigger{display:inline-grid;place-items:center;vertical-align:middle;width:27px;height:27px;margin-left:.5rem;border:1px solid var(--gold);border-radius:50%;background:#111827;color:var(--gold);font-size:.75rem;cursor:pointer;transition:transform var(--dur-fast),box-shadow var(--dur-fast)}
.edit-trigger:hover{transform:scale(1.08);box-shadow:0 0 12px rgba(214,168,79,.35)}

/* ---- Reveal on scroll ---------------------------------------------------------*/
.reveal{opacity:0;transform:translateY(24px);transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease)}
.reveal.visible{opacity:1;transform:none}
.card-grid .reveal:nth-child(2){transition-delay:.06s}
.card-grid .reveal:nth-child(3){transition-delay:.12s}
.card-grid .reveal:nth-child(4){transition-delay:.18s}

/* ==========================================================================
   DASHBOARD
   ========================================================================== */
.dashboard-body{min-height:100vh;background:radial-gradient(ellipse 60% 40% at 85% 0%,rgba(56,189,248,.1),transparent 55%),#050914}
.dashboard-sidebar{
  position:fixed;inset:0 auto 0 0;width:250px;padding:1.5rem;display:flex;flex-direction:column;
  padding-top:max(1.5rem,env(safe-area-inset-top));
  background:#080e1b;border-right:1px solid var(--line);z-index:70;transition:transform var(--dur) var(--ease);
}
.dashboard-sidebar nav{display:flex;flex-direction:column;gap:.35rem;margin-top:3rem}
.dashboard-sidebar nav a,.dashboard-sidebar button{padding:.75rem 1rem;color:#94a3b8;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.03em;border:0;background:transparent;text-align:left;cursor:pointer;border-left:2px solid transparent;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}
.dashboard-sidebar nav a:hover,.dashboard-sidebar nav a:focus-visible{background:#101a2a;color:#fff}
.dashboard-sidebar nav a[aria-current="page"]{background:rgba(214,168,79,.08);color:var(--gold-2);border-left-color:var(--gold)}
.dashboard-sidebar form{margin-top:auto;padding-top:1rem}
.dashboard-sidebar form button:hover{color:var(--danger)}
.dash-toggle{display:none;position:fixed;z-index:90;top:.9rem;right:1rem;background:var(--panel-strong);border:1px solid var(--line);width:44px;height:44px;cursor:pointer}
.dash-toggle span:not(.sr-only){display:block;width:20px;height:1px;background:#fff;margin:5px auto}
.dashboard-main{margin-left:250px;padding:0 clamp(1.2rem,4vw,3rem) 5rem}
.dashboard-top{height:72px;border-bottom:1px solid var(--line);display:flex;justify-content:flex-end;align-items:center}
.dashboard-top div{display:flex;gap:1.2rem;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em;align-items:center}
.dashboard-top div:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 8px var(--success);animation:live-blink 2s ease-in-out infinite}
.dashboard-top span{color:var(--faint)}
.dashboard-heading{padding:clamp(2.2rem,6vw,3.5rem) 0 2rem}
.dashboard-heading h1{font:600 clamp(1.9rem,4vw,2.7rem) var(--font-display);margin:.4rem 0}
.dashboard-heading p{color:var(--muted)}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}
.stat-grid article{border:1px solid var(--line);background:var(--panel);padding:1.5rem;transition:border-color var(--dur-fast),transform var(--dur-fast)}
.stat-grid article:hover{border-color:var(--gold-line);transform:translateY(-3px)}
.stat-grid span{display:block;color:var(--faint);font-family:var(--font-mono);font-size:.6rem;letter-spacing:.12em}
.stat-grid strong{display:block;font:600 2.2rem var(--font-display);margin-top:1rem;color:var(--gold-2)}
.dashboard-panel{margin-top:2rem;border:1px solid var(--line);background:rgba(8,14,27,.85);padding:clamp(1.2rem,4vw,1.5rem)}
.panel-head{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;align-items:center}
.panel-head h2,.dashboard-panel h2{font:600 1.15rem var(--font-display)}
.panel-head a{font-family:var(--font-mono);font-size:.7rem;color:var(--gold)}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;margin-top:1rem;text-align:left}
th{padding:.85rem;color:var(--faint);font-family:var(--font-mono);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(8,14,27,.95);white-space:nowrap}
td{padding:.9rem;border-bottom:1px solid rgba(56,189,248,.08);font-size:.8rem;color:#cbd5e1}
tbody tr{transition:background var(--dur-fast)}
tbody tr:hover{background:rgba(56,189,248,.04)}
td strong,td small{display:block}
td small{color:var(--faint)}
.status{display:inline-block;padding:.25rem .6rem;border:1px solid #475569;border-radius:50px;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.04em}
.status-new{color:var(--warning);border-color:#a16207}
.status-read{color:#7dd3fc;border-color:#0369a1}
.status-contacted{color:#6ee7b7;border-color:#047857}
.status-archived{color:var(--faint);border-color:#475569}
.filter-bar{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:.7rem}
.filter-bar input,.filter-bar select,.dashboard-panel input,.dashboard-panel select,.dashboard-panel textarea{background:#080e1b;color:#e2e8f0;border:1px solid #26364c;padding:.7rem;width:100%;transition:border-color var(--dur-fast)}
.filter-bar input:focus,.filter-bar select:focus,.dashboard-panel input:focus,.dashboard-panel select:focus,.dashboard-panel textarea:focus{border-color:var(--gold-line);outline:none}
.dashboard-panel input[type=checkbox]{width:auto;accent-color:var(--gold)}
.filter-bar button,.dashboard-panel button[type=submit]{background:linear-gradient(100deg,var(--gold),var(--gold-2));color:#111827;border:0;padding:.7rem 1.1rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;font-weight:700;cursor:pointer;transition:filter var(--dur-fast)}
.filter-bar button:hover,.dashboard-panel button[type=submit]:hover{filter:brightness(1.08)}
.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:1.5rem}
.dashboard-panel dl{display:grid;grid-template-columns:140px 1fr}
.dashboard-panel dt,.dashboard-panel dd{padding:1rem;border-bottom:1px solid rgba(56,189,248,.1);margin:0}
.dashboard-panel dt{color:var(--faint);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.08em}
.lead-message{font-size:1rem}
.form-panel{max-width:800px}
.form-panel p{margin-bottom:1.3rem}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media(max-width:1180px){
  .site-header .brand-image-link{width:155px}
  .main-nav{gap:.85rem}
  .main-nav>a{font-size:.6rem}
  .site-footer{grid-template-columns:1.5fr repeat(3,1fr);gap:2rem}
}
@media(max-width:960px){
  /* A backdrop filter on the fixed header can make fixed descendants use the
     header as their containing block on mobile browsers. Keep the mobile
     header opaque instead, so the drawer always spans the viewport. */
  .site-header{padding:1rem 1.2rem;padding-top:max(1rem,env(safe-area-inset-top));backdrop-filter:none;-webkit-backdrop-filter:none}
  .site-header.scrolled{background:rgba(3,6,13,.97);backdrop-filter:none;-webkit-backdrop-filter:none}
  .site-header .brand-image-link{width:168px}
  .menu-toggle{display:grid;place-content:center;width:44px;height:44px;padding:0}
  .nav-scrim{display:block;top:0;left:0;width:100vw;height:100dvh;inset:auto;z-index:45}
  .main-nav{
    position:fixed;z-index:50;top:0;right:0;bottom:auto;width:min(320px,86vw);height:100dvh;min-height:100svh;
    display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:.3rem;
    padding:6rem 2rem max(2rem,env(safe-area-inset-bottom));background:#050b16;border-left:1px solid var(--line);
    box-shadow:-24px 0 70px rgba(0,0,0,.42);overflow-y:auto;overscroll-behavior:contain;isolation:isolate;
    transform:translateX(100%);transition:transform var(--dur) var(--ease);
  }
  .main-nav.open{transform:translateX(0)}
  .main-nav>a{font-size:.78rem;padding:.85rem 0;border-bottom:1px solid rgba(148,163,184,.08);opacity:0;transform:translateY(8px);transition:opacity .35s var(--ease),transform .35s var(--ease)}
  .main-nav.open>a{opacity:1;transform:none}
  .main-nav.open>a:nth-child(1){transition-delay:.04s}
  .main-nav.open>a:nth-child(2){transition-delay:.08s}
  .main-nav.open>a:nth-child(3){transition-delay:.12s}
  .main-nav.open>a:nth-child(4){transition-delay:.16s}
  .main-nav.open>a:nth-child(5){transition-delay:.2s}
  .main-nav.open>a:nth-child(6){transition-delay:.24s}
  .main-nav .nav-cta{margin-top:.6rem;text-align:center}
  .language-switch{padding:.5rem 0}
  .language-switch button{min-width:44px;min-height:44px}
  .account-link{width:44px;height:44px}
  .hero-copy h1,.inner-hero h1,.technology-hero h1,.communication-hero h1,.nonna-hero h1,.about-hero h1{
    max-width:18ch;
    font-size:clamp(2.4rem,5.4vw,3.25rem);
    line-height:1.06;
    letter-spacing:-.035em;
    margin-block:1rem 1.25rem;
  }
  .technology-hero h1,.communication-hero h1,.nonna-hero h1,.about-hero h1{font-size:clamp(2.3rem,5vw,3rem);max-width:20ch}
  .section h2,.manifesto h2,.contact-section h2,.cta-block h2,.tech-section-head h2{font-size:clamp(2rem,4.5vw,2.7rem);line-height:1.13;max-width:24ch}
  .hero-copy p,.inner-hero p,.technology-hero-copy>p,.communication-hero-copy>p,.nonna-hero-copy>p,.about-hero-copy>p{max-width:62ch;font-size:1.03rem;line-height:1.68}
  /* Keep the artwork visible on narrow screens. The text remains on the
     darker lower/left portion while cover crops around each image's subject. */
  .hero-visual,.communication-photo,.nonna-photo,.about-photo,.technology-photo{inset:0;opacity:1}
  .hero-visual img{object-position:68% center;filter:saturate(.9) contrast(1.05) brightness(1)}
  .hero-visual:after{background:linear-gradient(0deg,rgba(3,6,13,.9),transparent 58%)}
  .hero:after{
    background:
      linear-gradient(0deg,var(--night) 0%,rgba(3,6,13,.88) 42%,rgba(3,6,13,.18) 100%),
      linear-gradient(90deg,rgba(3,6,13,.78),rgba(3,6,13,.12) 78%);
  }
  .hero-grid{grid-template-columns:1fr;padding-bottom:3rem}
  .hero-index{justify-self:start;text-align:left}
  .section-head,.manifesto,.contact-section,.editorial{grid-template-columns:1fr;gap:2.6rem}
  .editorial-index{position:static}
  .contact-intro{position:static}
  .site-footer{grid-template-columns:1fr 1fr}
  .site-footer>div:first-child{grid-column:1/-1}
  .ecosystem-grid{grid-template-columns:1fr}
  .ecosystem-copy{max-width:720px}
  .ecosystem-radar{width:min(100%,580px)}
  .communication-hero{min-height:78svh}.communication-photo img{object-position:62% center}.communication-hero-shade{background:linear-gradient(0deg,var(--night) 0%,rgba(3,6,13,.9) 42%,rgba(3,6,13,.12) 100%),linear-gradient(90deg,rgba(3,6,13,.78),rgba(3,6,13,.08) 82%)}
  .communication-intro,.communication-data{grid-template-columns:1fr}.communication-flow{padding-left:0}.communication-card{grid-column:span 6}
  .nonna-photo img{object-position:68% center}.nonna-hero-shade{background:linear-gradient(0deg,#090b0a 0%,rgba(5,7,6,.88) 42%,rgba(5,7,6,.08) 100%),linear-gradient(90deg,rgba(5,7,6,.72),rgba(5,7,6,.06) 82%)}
  .nonna-opening,.nonna-journeys{grid-template-columns:1fr}.nonna-house-mark{min-height:240px}.nonna-journeys .nonna-section-head{position:static}.nonna-card-grid{grid-template-columns:repeat(2,1fr)}
  .nonna-steps{grid-template-columns:1fr 1fr;gap:2.5rem 1rem}.nonna-steps:before{display:none}
  .about-photo img{object-position:65% center}.about-hero-shade{background:linear-gradient(0deg,var(--night) 0%,rgba(3,6,13,.9) 42%,rgba(3,6,13,.1) 100%),linear-gradient(90deg,rgba(3,6,13,.76),rgba(3,6,13,.06) 82%)}
  .about-convergence{grid-template-columns:1fr 150px 1fr}.about-statement{grid-template-columns:1fr}.about-dossiers{grid-template-columns:1fr}.about-dossier{min-height:0}.about-audience-list article{grid-template-columns:60px .8fr 1.2fr 20px}
  .technology-photo img{object-position:68% center}.technology-hero-shade{background:linear-gradient(0deg,var(--night) 0%,rgba(3,6,13,.9) 42%,rgba(3,6,13,.1) 100%),linear-gradient(90deg,rgba(3,6,13,.76),rgba(3,6,13,.06) 82%)}.ai-evidence{grid-template-columns:1fr}.software-system{grid-template-columns:repeat(2,1fr)}.software-phases{grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}.software-phases article{background:var(--night);border:0}
  .dashboard-sidebar{position:fixed;transform:translateX(-100%)}
  .dashboard-sidebar.open{transform:translateX(0)}
  .dash-toggle{display:block}
  .dashboard-main{margin-left:0;padding:0 1.2rem 4rem}
  .dashboard-top{padding-right:3.4rem}
  .detail-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  body{font-size:.96rem;line-height:1.62}
  .eyebrow{font-size:.61rem;line-height:1.5;letter-spacing:.17em}
  .section{padding-block:clamp(3.5rem,16vw,5rem)}
  .hero-copy h1,.inner-hero h1,.technology-hero h1,.communication-hero h1,.nonna-hero h1,.about-hero h1{max-width:100%;font-size:clamp(1.9rem,8.2vw,2.2rem);line-height:1.08;letter-spacing:-.03em;margin-block:.85rem 1.1rem;text-wrap:pretty}
  .technology-hero h1,.communication-hero h1,.nonna-hero h1,.about-hero h1{font-size:clamp(1.82rem,7.8vw,2.1rem)}
  .hero-copy p,.inner-hero p,.technology-hero-copy>p,.communication-hero-copy>p,.nonna-hero-copy>p,.about-hero-copy>p{font-size:1rem;line-height:1.65;max-width:36rem}
  .section h2,.manifesto h2,.contact-section h2,.cta-block h2,.tech-section-head h2{max-width:100%;font-size:clamp(1.6rem,7vw,1.95rem);line-height:1.16;letter-spacing:-.025em;text-wrap:pretty}
  .section h3{font-size:clamp(1.08rem,5vw,1.3rem);line-height:1.26;text-wrap:pretty}
  .hero-actions{flex-direction:column}
  .hero-actions .button{width:100%}
  .cta-block{flex-direction:column;align-items:flex-start}
  .cta-block>a{width:100%;text-align:center}
  .site-footer{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column}
  .cookie-banner{flex-direction:column;align-items:flex-start}
  .cookie-banner button{width:100%}
  .filter-bar{grid-template-columns:1fr}
  .dashboard-panel dl{grid-template-columns:1fr}
  .dashboard-panel dd{padding-top:0}
  .table-wrap{margin:0 -.6rem}
  .protocol-card{padding:1.4rem}
  .protocol-card:before{width:44px;height:44px;font-size:.8rem;top:-14px}
  .ecosystem-radar{width:100%;min-width:0}
  .ecosystem-core{width:118px;height:118px}
  .ecosystem-node{padding:.5rem .55rem}.ecosystem-node strong{font-size:.53rem}.ecosystem-node span{display:none}
  .node-ai{left:5%;top:17%}.node-blockchain{right:2%;top:27%}.node-comms{left:2%;bottom:18%}.node-institutions{right:3%;bottom:10%}
  .ecosystem-proofs{grid-template-columns:1fr}
  .ecosystem-proofs p{border-right:0;border-bottom:1px solid var(--line)}
  .ecosystem-proofs p:last-child{border-bottom:0}
  .communication-hero{min-height:auto}.communication-hero-copy{padding-top:clamp(12rem,48vw,15rem)}
  .communication-flow article{grid-template-columns:54px 1fr}.communication-flow article small{display:none}.flow-line{left:2.55rem}.communication-flow article:before{left:.32rem}
  .communication-card{grid-column:1/-1;min-height:0}.communication-card header{margin-bottom:2rem}
  .communication-dashboard{grid-template-columns:1fr}
  .nonna-hero{min-height:auto}.nonna-hero-copy{padding-top:clamp(12rem,48vw,15rem)}.nonna-house-mark{min-height:190px}
  .nonna-card-grid,.nonna-steps{grid-template-columns:1fr}.nonna-card{min-height:0}.nonna-card>span{margin-bottom:2rem}
  .nonna-steps article{text-align:left;display:grid;grid-template-columns:56px 1fr;column-gap:1.2rem}.nonna-steps article>span{grid-row:1/3;margin:0}.nonna-steps article p{grid-column:2}
  .nonna-journey-grid article{grid-template-columns:52px 1fr}
  .about-hero{min-height:auto}.about-hero-copy{padding-top:clamp(12rem,48vw,15rem)}
  .about-convergence{grid-template-columns:1fr}.about-regia{min-height:180px;grid-row:2}.about-culture{min-height:190px;align-items:flex-start;text-align:left}.about-statement{grid-column:auto}
  .about-section-head{grid-template-columns:1fr}.about-section-head>p{justify-self:start}.about-audience-list article{grid-template-columns:45px 1fr}.about-audience-list article p{grid-column:2}.about-audience-list article i{display:none}
  .technology-hero{min-height:auto}.technology-hero-copy{padding-top:clamp(12rem,48vw,15rem)}.ai-practice-flow{grid-template-columns:1fr 1fr}.ai-flow-track{display:none}.ai-capability-grid,.software-system,.software-phases{grid-template-columns:1fr}.chain-document footer{grid-template-columns:1fr;gap:1rem}.chain-ledger article{grid-template-columns:50px 1fr}.chain-ledger article>b{display:none}
}
@media(max-width:380px){
  .hero-copy h1,.inner-hero h1{font-size:clamp(1.78rem,8.5vw,1.98rem)}
  .technology-hero h1,.communication-hero h1,.nonna-hero h1,.about-hero h1{font-size:clamp(1.7rem,8.1vw,1.9rem)}
  .section h2,.manifesto h2,.contact-section h2,.cta-block h2,.tech-section-head h2{font-size:clamp(1.5rem,7vw,1.72rem)}
  .brand span:not(.brand-mark){font-size:.68rem}
  .site-header .brand-image-link{width:145px}
}
@media(max-width:340px){
  :root{--gutter:1rem}
  .brand{gap:.5rem}.brand-mark{width:34px;height:34px}
  .hero-copy h1,.inner-hero h1{font-size:1.75rem}
  .technology-hero h1,.communication-hero h1,.nonna-hero h1,.about-hero h1{font-size:1.66rem}
  .ecosystem-node strong{font-size:.48rem}
  .chain-document{padding:1.4rem}
}
@media(min-width:1800px){
  :root{--max:1360px}
  body{font-size:1.05rem}
}

/* Landscape phones: shrink oversized 100svh hero so CTAs stay reachable */
@media(max-height:480px) and (orientation:landscape){
  .hero{min-height:max-content;padding:0}
  .hero-grid{padding-top:5.5rem;padding-bottom:2.5rem}
  .scroll-cue{display:none}
}

/* Laptop e viewport poco alte: il titolo deve lasciare visibile il sottotitolo. */
@media(max-height:900px) and (min-width:641px){
  .hero-grid{padding-top:6.5rem;padding-bottom:2.5rem}
  .hero-copy h1{font-size:clamp(2.15rem,2.7vw + .35rem,3.75rem);max-width:740px;margin-bottom:1.1rem}
  .hero-copy p{font-size:1rem;line-height:1.62;max-width:64ch}
  .hero-actions{margin-top:1.6rem}
}

/* Touch devices: no hover-locked states, keep active feedback instead */
@media(hover:none) and (pointer:coarse){
  .service-card:hover{transform:none}
  .service-card:active{transform:scale(.99)}
}

@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

@media print{
  .site-header,.site-footer,.cookie-banner,.to-top,.scroll-progress,.modal,.orbit,.hero-network,.scroll-cue,.edit-trigger,.dashboard-sidebar,.dash-toggle{display:none!important}
  body{background:#fff;color:#000}
  .hero,.inner-hero{min-height:auto;padding-top:2rem}
  a{color:#000;text-decoration:underline}
}

@media(forced-colors:active){
  .button,.card-grid,.service-card,.dashboard-panel,.stat-grid article{border:1px solid CanvasText}
}
