/* ═══════════════════════════════════════════
   RESET & BASE
   ═══════════════════════════════════════════ */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#000000;
  --bg2:#050508;
  --accent:#3b82f6;
  --accent2:#06b6d4;
  --gold:#f59e0b;
  --green:#10b981;
  --red:#ef4444;
  --text:#f1f5f9;
  --text-dim:rgba(241,245,249,0.5);
  --text-dimmer:rgba(241,245,249,0.25);
  --font:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --font-mono:'SF Mono','Fira Code','Cascadia Code',monospace;
}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font);overflow-x:hidden;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
::selection{background:var(--accent);color:white}

/* ═══════════════════════════════════════════
   LOADING SCREEN
   ═══════════════════════════════════════════ */
#loading{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10000;gap:18px;transition:opacity 0.8s ease}
#loading.done{opacity:0;pointer-events:none}
body.loading{overflow:hidden}
#ll{display:flex;align-items:center;justify-content:center}
#ll img{height:112px;width:auto;max-width:85vw;display:block}
#lsub{color:rgba(255,255,255,0.85);font-size:0.72rem;letter-spacing:0.5em;text-transform:uppercase;font-weight:500}
#ltrack{width:150px;height:1px;background:rgba(255,255,255,0.1)}
#lfill{height:1px;background:rgba(255,255,255,0.8);width:0;transition:width 0.15s}

/* ═══════════════════════════════════════════
   HEADER / NAV
   ═══════════════════════════════════════════ */
header{position:fixed;top:0;left:0;right:0;z-index:3000;padding:3px 2rem;height:70px;display:flex;align-items:center;justify-content:space-between;transition:all 0.4s ease;background:linear-gradient(to right,rgba(234,243,255,0.92) 0%,rgba(120,170,255,0.86) 22%,rgba(34,99,235,0.9) 58%,rgba(12,42,140,0.96) 100%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
header.scrolled{background:linear-gradient(to right,rgba(234,243,255,0.95) 0%,rgba(120,170,255,0.9) 22%,rgba(34,99,235,0.94) 58%,rgba(12,42,140,0.98) 100%);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}
@media(max-width:768px){header.scrolled{backdrop-filter:none;-webkit-backdrop-filter:none;background:linear-gradient(to right,rgb(225,238,255) 0%,rgb(110,160,255) 22%,rgb(30,90,225) 58%,rgb(12,40,135) 100%)}}
@media(max-width:1024px){header.nav-open{box-shadow:none}}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none}
.logo img{height:64px;width:auto}
nav{display:flex;align-items:center;gap:0}
nav a{color:rgba(255,255,255,0.85);font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;text-decoration:none;padding:8px 14px;font-weight:400;transition:color 0.3s;position:relative}
nav a:hover{color:white}
nav a{opacity:1;transform:none;transition:opacity 0.3s ease,transform 0.3s ease,color 0.3s}
nav a.arrived{opacity:1;transform:scale(1)}
nav a::after{content:'';position:absolute;bottom:2px;left:50%;transform:translateX(-50%) scaleX(0);width:20px;height:1px;background:var(--accent);transition:transform 0.3s}
nav a:hover::after{transform:translateX(-50%) scaleX(1)}
.nav-cta{background:#fff;border:1px solid #fff;border-radius:5px;color:#1e4fd0!important;font-weight:600;padding:8px 18px!important;margin-left:8px;transition:all 0.3s!important;box-shadow:0 2px 10px rgba(0,0,0,0.18)}
.nav-cta:hover{background:#eaf2ff;border-color:#eaf2ff;color:#13399e!important;transform:translateY(-1px);box-shadow:0 4px 16px rgba(0,0,0,0.28)}
.nav-cta::after{display:none!important}

/* Desktop dropdowns for .nav-has-sub */
@media(min-width:1025px){
  .nav-has-sub{position:relative;display:inline-flex;align-items:center}
  .nav-has-sub > a{display:flex;align-items:center;gap:5px}
  .nav-has-sub > a::before{content:'';display:none}
  .nav-has-sub .nav-arrow{display:inline-block;font-size:0.55em;opacity:0.6;transition:transform 0.25s;margin-left:2px;line-height:1}
  .nav-has-sub:hover .nav-arrow,.nav-has-sub.open-sub .nav-arrow{transform:rotate(90deg);opacity:1}
  .nav-submenu{position:absolute;top:100%;left:50%;transform:translateX(-50%);min-width:200px;background:rgba(8,14,28,0.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,0.08);border-radius:6px;box-shadow:0 12px 40px rgba(0,0,0,0.55),0 0 0 1px rgba(59,130,246,0.08);padding:6px 0;opacity:0;pointer-events:none;transition:opacity 0.18s ease,transform 0.22s ease;transform:translateX(-50%) translateY(-4px);flex-direction:column;display:flex;margin-top:6px;z-index:3100}
  .nav-has-sub:hover .nav-submenu,.nav-has-sub.open-sub .nav-submenu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
  .nav-submenu::before{content:'';position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);width:10px;height:10px;background:rgba(8,14,28,0.96);border-left:1px solid rgba(255,255,255,0.08);border-top:1px solid rgba(255,255,255,0.08)}
  .nav-submenu a{display:block;padding:9px 18px!important;font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(255,255,255,0.78)!important;white-space:nowrap;transition:all 0.2s}
  .nav-submenu a:hover{color:#fff!important;background:rgba(59,130,246,0.12)}
  .nav-submenu a::after{display:none}
  .nav-submenu .nav-sub-head{display:block;padding:9px 18px 5px!important;font-size:0.58rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent2)!important;font-weight:600;white-space:nowrap;opacity:0.9}
  .nav-submenu a.nav-sub-head{cursor:pointer;transition:opacity .2s,color .2s}
  .nav-submenu a.nav-sub-head:hover{opacity:1;color:#fff!important;background:rgba(59,130,246,0.12)}
}

/* Mobile menu */
.hamburger{display:none;position:fixed;top:20px;right:20px;flex-direction:column;gap:5px;cursor:pointer;padding:8px;z-index:4000}
.hamburger span{width:22px;height:1.5px;background:rgba(255,255,255,0.7);transition:all 0.3s}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}

@media(max-width:1024px){
  nav{position:fixed;top:70px;right:0;width:55%;height:calc(100vh - 70px);height:calc(100dvh - 70px);overscroll-behavior:contain;touch-action:pan-y;overflow-y:auto;-webkit-overflow-scrolling:touch;background:linear-gradient(to right,rgba(32,38,52,0.85) 0%,rgba(16,20,30,0.9) 18%,rgba(2,3,6,0.95) 100%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);flex-direction:column;justify-content:flex-start;align-items:stretch;padding:16px 0 calc(24px + env(safe-area-inset-bottom));gap:0;z-index:3500;border-radius:0 0 0 16px;border:none;border-left:1px solid transparent;border-bottom:1px solid transparent;box-shadow:none}
  nav{display:flex!important;transform-origin:top right;opacity:0;transform:translateX(20%);transition:transform 0.2s ease,opacity 0.2s ease,box-shadow 0.2s ease,background 0.2s ease;pointer-events:none}
  nav.open{opacity:1;transform:translateX(0);box-shadow:-4px 4px 20px rgba(0,0,0,0.5),0 14px 35px rgba(255,255,255,0.35);border-left-color:rgba(255,255,255,0.4);border-bottom-color:rgba(255,255,255,0.4);pointer-events:auto}
  nav.open a{opacity:1!important;transform:none!important}
  nav a,nav .nav-has-sub>a{display:block;font-size:0.8rem;letter-spacing:0.12em;padding:11px 20px;text-align:right!important;border-right:2px solid transparent;transition:all 0.3s;line-height:1.4;margin:0;box-sizing:border-box;width:100%;position:relative;z-index:1}
  nav a:hover,nav a.active,nav a.current{border-right-color:var(--accent);color:white;background:rgba(59,130,246,0.08)}
  nav a.current{border-right-color:var(--accent);color:var(--accent);font-weight:500}
  .nav-submenu{display:none;flex-direction:column;padding:0}
  .nav-submenu a{display:block;font-size:0.7rem;padding:11px 20px;text-align:right!important;color:rgba(255,255,255,0.5);border-right:2px solid transparent;line-height:1.4;margin:0;width:100%}
  .nav-submenu a:hover{color:white;border-right-color:var(--accent2)}
  .nav-submenu .nav-sub-head{display:block;font-size:0.6rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent2);padding:10px 20px 4px;text-align:right!important;opacity:0.85}
  .nav-has-sub{position:relative;display:flex;flex-direction:column}
  .nav-has-sub.open-sub .nav-submenu{display:flex;background:rgba(255,255,255,0.06)}
  .nav-has-sub .nav-arrow{font-size:0.5rem;margin-right:6px;transition:transform 0.3s;display:inline-block;float:left;line-height:1.8}
  .nav-has-sub.open-sub .nav-arrow{transform:rotate(90deg)}
  nav .nav-cta{background:transparent!important;border:none!important;border-right:2px solid transparent!important;border-radius:0!important;color:rgba(255,255,255,0.85)!important;padding:11px 20px!important;margin-left:0!important}
  nav .nav-cta:hover{border-right-color:var(--accent)!important;color:white!important;background:rgba(59,130,246,0.08)!important}
  .hamburger{display:flex;z-index:4000}
  .menu-particle{position:fixed;width:4px;height:4px;border-radius:50%;pointer-events:none;z-index:4001;opacity:1;transition:none}
  @keyframes menuParticle{0%{transform:translate(0,0) scale(1);opacity:1}100%{opacity:0}}
}

/* ═══════════════════════════════════════════
   HERO SECTION
   ═══════════════════════════════════════════ */
#hero{position:relative;height:500vh}
@media(max-width:768px){#hero{height:100vh}.circuit-lines{display:none !important}.mobile-signs-container{display:none !important}.scroll-hint{display:none !important}#nav-dots{display:none !important}#active-label{display:none !important}}
#canvas-wrap{position:sticky;top:0;width:100%;height:100vh;overflow:hidden;z-index:1;will-change:transform;touch-action:pan-y}
#hero-placeholder{position:fixed;top:0;left:0;width:100%;height:100vh;z-index:3;background:#0A0A0B url('/assets/images/cryostat_hero.webp') center 35%/cover no-repeat;transition:opacity 0.8s ease}
@media(max-width:768px){#hero-placeholder{background-image:url('/assets/images/cryostat_hero_mobile.webp');background-position:center center}}
@media(max-width:1024px) and (pointer:coarse){#hero-placeholder{background-image:url('/assets/images/cryostat_hero_mobile.webp');background-position:center center}}
#hero-placeholder.loaded{opacity:0;pointer-events:none}
@media(max-width:768px){#canvas-wrap{position:fixed;top:0;left:0;pointer-events:none;transition:opacity 0.6s}#canvas-wrap.dimmed{opacity:1}}
#canvas-wrap canvas{display:block;width:100%;height:100%;touch-action:pan-y}
@media(max-width:768px){#canvas-wrap canvas{pointer-events:none}}
#active-label{position:fixed;top:2.5rem;left:50%;transform:translateX(-50%);color:white;font-size:0.7rem;letter-spacing:0.5em;text-transform:uppercase;font-weight:400;z-index:100;pointer-events:none;transition:opacity 0.4s;opacity:0}
#active-label.show{opacity:1}
#nav-dots{position:fixed;right:2rem;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px;z-index:100;opacity:0;transition:opacity 0.4s;pointer-events:none}
#nav-dots.show{opacity:1}
.nd{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,0.2);cursor:pointer;transition:all 0.35s;border:none;padding:0}
.nd:hover{background:rgba(255,255,255,0.6)}
.nd.on{background:white;transform:scale(2)}

.hero-content{position:fixed;top:50%;left:6%;transform:translateY(-50%);z-index:10;max-width:700px;pointer-events:none;transition:opacity 0.5s}
.hero-content.fade{opacity:0}
@media(min-width:769px){.hero-content a,.hero-content button{pointer-events:auto}}
.hero-pre{font-size:0.65rem;letter-spacing:0.5em;text-transform:uppercase;color:var(--accent2);font-weight:400;margin-bottom:16px}
.hero-tagline{font-size:clamp(2.2rem,5vw,3.8rem);font-weight:200;letter-spacing:-0.02em;line-height:1.15;margin-bottom:20px}
.hero-tagline .word{display:inline-block}
.hero-tagline .highlight{color:var(--accent);position:relative}
.hero-tagline .highlight::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2))}
.hero-sub{font-size:0.85rem;font-weight:300;line-height:1.7;color:var(--text-dim);max-width:380px;margin-bottom:32px;background:rgba(0,0,0,0.45);padding:12px 16px;border-radius:8px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
@media(max-width:768px){.hero-sub{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(0,0,0,0.55);max-width:100%}
.hero-content{display:none !important}
.hero-tagline{font-size:clamp(1.8rem,7vw,2.6rem)}
.hero-cta-group{flex-wrap:wrap}
#pillars .pillars-grid{grid-template-columns:1fr !important}
#pillars .section-grid{padding:0 5%}
#pillars .pillar{text-align:center}
#pillars .pillar-num{font-size:0.9rem;color:rgba(255,255,255,0.5)}
#pillars .pillar-title-row{justify-content:center}
#pillars .pillar-info-btn{margin-top:4px}
#pillars .pillar .read-more-wrap{max-height:none !important;overflow:visible !important}
#pillars .pillar .read-more-wrap::after{display:none !important}
#pillars .pillar .read-more-btn{display:none !important}
}
/* ── Mobile horizontal slides over cryostat ── */
#hslides{display:none}
@media(max-width:768px){
#hslides{display:block;position:fixed;top:0;left:0;width:100%;height:100vh;z-index:10;pointer-events:none;overflow:hidden}
.hslide-hint{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:20;display:none;align-items:center;gap:10px;color:rgba(255,255,255,0.75);font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;pointer-events:none;transition:opacity 0.6s;background:rgba(0,0,0,0.65);padding:10px 20px;border-radius:24px;border:1px solid rgba(255,255,255,0.15)}
@media(max-width:768px){.hslide-hint{display:flex}}
.hslide-hint.hidden{opacity:0}
.hslide-hint-arrows{display:flex;align-items:center;gap:6px;font-size:0.9rem}
.hslide-hint-arrows{font-size:1rem}
.hslide-hint-arrows span{animation:hintPulse 2s ease infinite}
.hslide-hint-arrows span:nth-child(1){animation-delay:0s}
.hslide-hint-arrows span:nth-child(2){animation-delay:0.3s}
.hslide-hint-arrows span:nth-child(3){animation-delay:0.6s}
.hslide-hint-arrows span:nth-child(4){animation-delay:0.9s}
@keyframes hintPulse{0%,100%{opacity:0.3}50%{opacity:0.8}}
.hslide-counter{position:fixed;bottom:28px;right:20px;z-index:20;color:rgba(255,255,255,0.35);font-size:0.65rem;letter-spacing:0.1em;font-family:monospace;pointer-events:none;display:none}
@media(max-width:768px){.hslide-counter{display:block}}
.hslide{position:absolute;top:18%;left:0;width:85%;max-width:360px;transform:translate(105vw,0);padding:28px 24px;background:rgba(8,12,20,0.43);border-radius:14px;border-left:3px solid var(--accent);backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px);pointer-events:auto;transition:none}
.hslide[data-slide="0"]{transform:translate(5vw,0);opacity:1}
.hslide-eyebrow{font-size:0.6rem;letter-spacing:0.4em;text-transform:uppercase;color:var(--accent2);margin-bottom:10px;font-weight:500}
.hslide h2{font-size:1.4rem;font-weight:300;line-height:1.3;letter-spacing:-0.01em;margin-bottom:12px;color:#fff}
.hslide h2 .acc{color:var(--accent)}
.hslide p{font-size:0.82rem;line-height:1.65;color:rgba(255,255,255,0.7);margin-bottom:0}
.hslide .hslide-cta{display:inline-flex;margin-top:16px;padding:8px 16px;background:linear-gradient(135deg,var(--accent),#2563eb);color:#fff;text-decoration:none;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:500;border-radius:4px;pointer-events:auto}
.hslide-num{font-size:0.7rem;letter-spacing:0.3em;color:var(--accent);font-weight:500;margin-bottom:6px;font-family:monospace}
.hslide h3{font-size:1.1rem;font-weight:400;color:#fff;margin-bottom:8px}
}
.mobile-signs-container{position:fixed;top:0;left:0;width:100%;height:100%;z-index:15;pointer-events:none;overflow:hidden;touch-action:pan-y}
.mobile-sign{position:absolute;top:32%;left:50%;transform:translateX(120vw);padding:18px 30px;background:rgba(12,22,45,0.88);border-radius:12px;border-top:3px solid;white-space:nowrap;pointer-events:none;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:6px;transition:none;touch-action:pan-y}
.mobile-sign .ms-icon{font-size:1.8rem}
.mobile-sign .ms-label{font-size:1.2rem;font-weight:600;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.mobile-sign .ms-sub{font-size:0.72rem;font-weight:300;color:rgba(255,255,255,0.65);text-transform:uppercase;letter-spacing:0.12em;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.hero-cta-group{display:flex;gap:14px;flex-wrap:nowrap}
.btn-primary{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:linear-gradient(135deg,var(--accent),#2563eb);color:white;text-decoration:none;font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;font-weight:500;border-radius:4px;border:none;cursor:pointer;transition:all 0.3s;position:relative;overflow:hidden;touch-action:pan-y}
.btn-primary::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#2563eb,var(--accent2));opacity:0;transition:opacity 0.3s}
.btn-primary:hover::before{opacity:1}
.btn-primary span{position:relative;z-index:1}
.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:rgba(0,0,0,0.4);color:#fff;text-decoration:none;font-size:0.65rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;border-radius:4px;border:1px solid rgba(255,255,255,0.45);cursor:pointer;transition:all 0.3s;text-align:center;white-space:nowrap;touch-action:pan-y}
.btn-secondary:hover{border-color:rgba(255,255,255,0.3);color:white}

/* Scroll indicator */
.scroll-hint{position:fixed;left:50%;bottom:2.5rem;transform:translateX(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;animation:fadeUp 0.8s ease 1.8s forwards;transition:opacity 0.6s;background:rgba(0,0,0,0.5);padding:10px 20px;border-radius:20px;border:1px solid rgba(255,255,255,0.1);pointer-events:none}
.scroll-hint span{font-size:0.7rem;letter-spacing:0.5em;text-transform:uppercase;font-weight:400;animation:hintColorPulse 2s ease infinite}
.scroll-arrows{display:flex;align-items:center;gap:12px}
.scroll-arrow{font-size:1.4rem;color:rgba(255,255,255,0.9);animation:arrowBlink 1.5s ease infinite}
.scroll-arrow-h{font-size:1.1rem;color:rgba(255,255,255,0.7);animation:arrowBlinkH 1.5s ease infinite 0.3s}
@keyframes arrowBlink{0%,100%{opacity:0.3;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}
@keyframes arrowBlinkH{0%,100%{opacity:0.2;transform:translateX(0)}50%{opacity:0.8;transform:translateX(3px)}}
@keyframes hintColorPulse{0%,100%{color:rgba(255,255,255,0.9)}50%{color:#3b82f6}}

/* Circuit lines decorative */
.circuit-lines{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.circuit-line{position:absolute;background:var(--accent);opacity:0.06}
.cl-h{height:1px;animation:circuitH 4s ease infinite}
.cl-v{width:1px;animation:circuitV 4s ease infinite}
.circuit-dot{position:absolute;width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:0;animation:circuitDot 4s ease infinite}
@media(max-width:768px){a,button,input,textarea,select,.pillar{touch-action:pan-y!important}.desktop-only{display:none!important}#dbg{display:none!important}}

/* ═══════════════════════════════════════════
   SECTIONS COMMON
   ═══════════════════════════════════════════ */
section{padding:120px 0;position:relative}
@media(max-width:768px){section{padding:60px 0}
#pillars,#case-study,#case-study-2,#ai-competenza,#metodo,#cta{position:relative;z-index:5;background:rgba(8,12,20,0.43) !important;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}
#pillars *,#case-study *,#case-study-2 *,#ai-competenza *,#metodo *,#cta *{color:#fff !important}
#pillars .read-more-btn,#case-study .read-more-btn,#case-study-2 .read-more-btn,#ai-competenza .read-more-btn,#metodo .read-more-btn,#cta .read-more-btn{color:#06b6d4 !important}
#pillars .read-more-btn:hover,#case-study .read-more-btn:hover,#case-study-2 .read-more-btn:hover,#ai-competenza .read-more-btn:hover,#metodo .read-more-btn:hover,#cta .read-more-btn:hover{color:#67e8f9 !important}
#pillars .pillar-info-btn{color:#06b6d4 !important}
#case-study .section-label,#ai-competenza .section-label,#metodo .section-label{color:var(--accent) !important}
#case-study .case-stat-num,#metodo .fase-num{color:var(--accent) !important}
}
.section-grid{max-width:100%;margin:0 auto;padding:0 3%}
.section-label{font-size:0.6rem;letter-spacing:0.5em;text-transform:uppercase;color:var(--accent);font-weight:400;margin-bottom:8px;font-family:var(--font-mono)}
.section-title{font-size:clamp(1.8rem,3.5vw,2.8rem);font-weight:200;letter-spacing:-0.02em;line-height:1.2;margin-bottom:16px}
.section-desc{font-size:0.95rem;font-weight:300;line-height:1.8;color:var(--text-dim);max-width:600px;margin-bottom:48px}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(40px);transition:opacity 0.8s ease,transform 0.8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}

/* ═══════════════════════════════════════════
   PILLARS (4 pilastri)
   ═══════════════════════════════════════════ */
#pillars{background:var(--bg2)}
@media(max-width:768px){#pillars{position:relative;z-index:5}}
.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px}
@media(max-width:900px){.pillars-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:550px){.pillars-grid{grid-template-columns:1fr}}

.pillar{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);padding:40px 32px;position:relative;overflow:hidden;cursor:pointer;transition:all 0.5s ease;text-decoration:none}
.pillar:hover{background:rgba(255,255,255,0.06);border-color:rgba(255,255,255,0.12);transform:translateY(-4px)}
.pillar::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;transform:scaleX(0);transition:transform 0.5s ease;pointer-events:none}
.pillar:hover::before{transform:scaleX(1)}
.pillar:nth-child(1)::before{background:var(--accent)}
.pillar:nth-child(2)::before{background:var(--green)}
.pillar:nth-child(3)::before{background:var(--gold)}
.pillar:nth-child(4)::before{background:var(--accent2)}

.pillar-icon{font-size:2.4rem;display:block;opacity:1;margin-bottom:16px}
.pillar:nth-child(1) .pillar-icon{color:var(--accent)}
.pillar:nth-child(2) .pillar-icon{color:var(--green)}
.pillar:nth-child(3) .pillar-icon{color:var(--gold)}
.pillar:nth-child(4) .pillar-icon{color:var(--accent2)}

.pillar-num{font-size:0.85rem;letter-spacing:0.3em;color:rgba(255,255,255,0.4);font-family:var(--font-mono);margin-bottom:0}
.pillar-num-row{display:flex;align-items:center;margin-bottom:16px}
.pillar-num-row .pillar-num{flex:0 0 auto}
.pillar-num-row .pillar-icon{flex:1;text-align:center;margin-bottom:0}
.pillar h3{font-size:1.1rem;font-weight:500;letter-spacing:0.02em;margin-bottom:12px;color:white}
.pillar p{font-size:0.82rem;line-height:1.7;color:rgba(255,255,255,0.7);font-weight:300}
.pillar-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:4px;position:relative;z-index:2}
.pillar-title-row h3{margin:0}
.pillar-info-btn{position:relative;z-index:3;padding:5px 12px;background:none;border:1px solid rgba(59,130,246,0.3);border-radius:12px;color:#06b6d4;font-size:0.65rem;letter-spacing:0.06em;cursor:pointer;transition:all 0.2s;font-family:inherit;white-space:nowrap}
.pillar-info-btn:hover{border-color:#06b6d4;background:rgba(6,182,212,0.1);color:#67e8f9}
.pillar-actions{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
/* Read more collapsible — mobile only */
.read-more-wrap{position:relative;transition:max-height 0.4s ease}
.read-more-btn{display:none}
@media(max-width:768px){
.read-more-wrap{max-height:4.5em;overflow:hidden}
.read-more-btn{display:inline-block}
}
.read-more-wrap.open{max-height:2000px}
@media(max-width:768px){
.read-more-wrap:not(.open)::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2em;background:linear-gradient(transparent,var(--bg))}
.pillar .read-more-wrap:not(.open)::after{background:linear-gradient(transparent,rgba(0,0,0,0.8))}
#ai-competenza .read-more-wrap:not(.open)::after{background:linear-gradient(transparent,rgba(8,12,20,0.95))}
}
.read-more-btn{margin-top:8px;padding:0;background:none;border:none;color:#06b6d4 !important;font-size:0.72rem;letter-spacing:0.08em;cursor:pointer;font-weight:400;transition:color 0.2s}
.read-more-btn:hover{color:#67e8f9 !important}
.read-more-btn .arrow{display:inline-block;transition:transform 0.3s;margin-left:4px}
.read-more-btn.open .arrow{transform:rotate(180deg)}
.pillar-link{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-size:0.65rem;letter-spacing:0.15em;text-transform:uppercase;text-decoration:none;color:rgba(255,255,255,0.5);transition:color 0.3s}
.pillar-link:hover{color:white;text-decoration:none}
.pillar-link .arrow{transition:transform 0.3s;display:inline-block}
.pillar:hover .pillar-link .arrow{transform:translateX(4px)}

/* Glowing orb behind pillar on hover */
.pillar::after{content:'';position:absolute;width:200px;height:200px;border-radius:50%;filter:blur(80px);opacity:0;transition:opacity 0.5s;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}
.pillar:hover::after{opacity:0.08}
.pillar:nth-child(1)::after{background:var(--accent)}
.pillar:nth-child(2)::after{background:var(--green)}
.pillar:nth-child(3)::after{background:var(--gold)}
.pillar:nth-child(4)::after{background:var(--accent2)}

/* ═══════════════════════════════════════════
   MANIFESTO
   ═══════════════════════════════════════════ */
#manifesto{background:var(--bg);overflow:hidden}
.manifesto-content{max-width:800px;margin:0 auto;text-align:center;padding-left:5%;padding-right:5%}
.manifesto-quote{font-size:clamp(1.4rem,3vw,2.2rem);font-weight:200;line-height:1.5;letter-spacing:-0.01em;margin-bottom:32px}
.manifesto-quote .em{color:var(--accent);font-style:normal}
.manifesto-detail{font-size:0.85rem;color:var(--text-dim);line-height:1.8;font-weight:300;max-width:600px;margin:0 auto 40px}

/* Stats counters */
.stats-row{display:flex;justify-content:center;gap:60px;flex-wrap:wrap;margin-top:48px}
.stat{text-align:center}
.stat-num{font-size:clamp(2rem,4vw,3rem);font-weight:200;font-family:var(--font-mono);letter-spacing:-0.03em}
.stat-num .counter{display:inline-block}
.stat:nth-child(1) .stat-num{color:var(--accent)}
.stat:nth-child(2) .stat-num{color:var(--green)}
.stat:nth-child(3) .stat-num{color:var(--gold)}
.stat-label{font-size:0.6rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--text-dimmer);margin-top:8px}

/* Animated separator */
.separator{width:100%;height:1px;margin:0 auto;position:relative;overflow:hidden}
.separator::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--accent),var(--accent2),transparent);animation:separatorMove 3s ease infinite}

/* ═══════════════════════════════════════════
   CASE STUDY
   ═══════════════════════════════════════════ */
#case-study{background:var(--bg2)}
.case-card{background:rgba(255,255,255,0.02);border:1px solid rgba(255,255,255,0.06);border-radius:8px;padding:48px;max-width:900px;margin:0 auto;position:relative;overflow:hidden}
.case-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--green),var(--accent2))}
.case-badge{display:inline-block;font-size:0.55rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--green);border:1px solid rgba(16,185,129,0.3);padding:4px 12px;border-radius:3px;margin-bottom:20px;font-family:var(--font-mono)}
.case-title{font-size:1.4rem;font-weight:300;margin-bottom:16px}
.case-text{font-size:0.88rem;line-height:1.8;color:var(--text-dim);font-weight:300;margin-bottom:32px}
.case-results{display:flex;gap:40px;flex-wrap:wrap}
.case-stat{display:flex;align-items:baseline;gap:8px}
.case-stat-num{font-size:2rem;font-weight:200;font-family:var(--font-mono);color:var(--accent2)}
.case-stat-label{font-size:0.7rem;color:var(--text-dim);letter-spacing:0.1em;text-transform:uppercase}

/* ═══════════════════════════════════════════
   COME LAVORIAMO (4 fasi)
   ═══════════════════════════════════════════ */
#metodo{background:var(--bg)}
.fasi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative}
.fasi-grid::before{content:'';position:absolute;top:32px;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(59,130,246,0.2),rgba(6,182,212,0.2),transparent)}
@media(max-width:900px){.fasi-grid{grid-template-columns:repeat(2,1fr)}.fasi-grid::before{display:none}}
@media(max-width:550px){.fasi-grid{grid-template-columns:1fr}}

.fase{text-align:center;padding:24px 16px}
.fase-num{width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,0.1);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-family:var(--font-mono);font-size:0.75rem;color:var(--accent);position:relative;transition:all 0.5s}
.fase:hover .fase-num{border-color:var(--accent);box-shadow:0 0 30px rgba(59,130,246,0.15)}
.fase h4{font-size:0.9rem;font-weight:400;letter-spacing:0.05em;margin-bottom:10px}
.fase p{font-size:0.78rem;line-height:1.7;color:var(--text-dim);font-weight:300}

/* ═══════════════════════════════════════════
   CTA SECTION
   ═══════════════════════════════════════════ */
#cta{background:var(--bg2);text-align:center;padding:100px 3%;position:relative;overflow:hidden}
#cta::before{content:'';position:absolute;top:50%;left:50%;width:600px;height:600px;background:radial-gradient(circle,rgba(59,130,246,0.06),transparent 70%);transform:translate(-50%,-50%);pointer-events:none}
.cta-title{font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:200;margin-bottom:16px}
.cta-sub{font-size:0.9rem;color:var(--text-dim);font-weight:300;max-width:550px;margin:0 auto 36px;line-height:1.7}

/* Terminal-style text */
.terminal-line{font-family:var(--font-mono);font-size:0.7rem;color:var(--text-dimmer);margin-top:32px;overflow:hidden}
.terminal-line .prompt{color:var(--green)}
.terminal-line .cmd{color:var(--text-dim)}
.cursor-blink{display:inline-block;width:7px;height:14px;background:var(--green);animation:blink 1s step-end infinite;vertical-align:middle;margin-left:2px}
@media(max-width:768px){.cursor-blink{animation:none}}

/* ═══════════════════════════════════════════
   FOOTER — minimal with header-style gradient
   ═══════════════════════════════════════════ */
footer{background:linear-gradient(to right,rgba(234,243,255,0.92) 0%,rgba(120,170,255,0.86) 22%,rgba(34,99,235,0.9) 58%,rgba(12,42,140,0.96) 100%);padding:18px 5%;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;position:relative;z-index:5}
footer{text-shadow:0 1px 2px rgba(0,0,0,0.22)}
@media(max-width:768px){footer{background:linear-gradient(to right,rgb(225,238,255) 0%,rgb(110,160,255) 22%,rgb(30,90,225) 58%,rgb(12,40,135) 100%) !important}}
.footer-brand{display:flex;align-items:center;text-decoration:none}
.footer-brand img{height:46px;width:auto;display:block}
.footer-legal{font-size:0.7rem;letter-spacing:0.08em;color:rgba(255,255,255,0.78);text-align:right}
.footer-legal a{color:rgba(255,255,255,0.78);text-decoration:none;transition:color 0.2s}
.footer-legal a:hover{color:#fff}
@media (max-width:680px){
  footer{flex-direction:column;text-align:center;gap:10px}
  .footer-legal{text-align:center}
  .footer-brand img{height:42px}
}

/* ═══════════════════════════════════════════
   KEYFRAMES
   ═══════════════════════════════════════════ */
/* Flying sign plate */
.flying-sign{position:fixed;z-index:2000;pointer-events:none;padding:8px 16px;background:rgba(12,22,45,0.92);border:1px solid rgba(255,255,255,0.15);border-radius:6px;color:white;font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;font-weight:400;white-space:nowrap;backdrop-filter:blur(8px);box-shadow:0 0 20px rgba(59,130,246,0.2);transition:all 0.9s cubic-bezier(0.23,1,0.32,1)}
.flying-sign .sign-icon{margin-right:8px;font-size:0.85rem}
.flying-sign .sign-sub{display:block;font-size:0.5rem;color:var(--text-dim);letter-spacing:0.2em;margin-top:2px;font-weight:300;transition:opacity 0.4s}
.flying-sign.flying{transform:scale(0.5)!important;opacity:0.8}
.flying-sign.flying .sign-sub{opacity:0}

@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes lineGrow{to{transform:scaleX(1)}}
@keyframes scrollPulse{0%,100%{opacity:0.3;transform:scaleY(1)}50%{opacity:0.8;transform:scaleY(1.2)}}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes separatorMove{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes circuitH{0%{width:0;opacity:0}10%{opacity:0.1}50%{width:200px;opacity:0.06}100%{width:0;opacity:0}}
@keyframes circuitV{0%{height:0;opacity:0}10%{opacity:0.1}50%{height:150px;opacity:0.06}100%{height:0;opacity:0}}
@keyframes circuitDot{0%,100%{opacity:0;transform:scale(0)}20%{opacity:0.3;transform:scale(1)}80%{opacity:0.3;transform:scale(1)}100%{opacity:0;transform:scale(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes glowPulse{0%,100%{opacity:0.4}50%{opacity:0.8}}

/* ── Language switch (flags) in the header ── */
.lang-switch{display:flex;align-items:center;gap:8px;margin-left:18px}
.lang-switch a{display:inline-flex;align-items:center;font-size:1.15rem;line-height:1;text-decoration:none;opacity:0.45;filter:grayscale(0.6);transition:opacity 0.2s,filter 0.2s,transform 0.2s}
.lang-switch a:hover{opacity:0.85;filter:grayscale(0)}
.lang-switch a.active{opacity:1;filter:grayscale(0);transform:scale(1.05)}
@media(max-width:1024px){
  .lang-switch{position:fixed;top:22px;right:62px;z-index:4000;margin:0}
  .lang-switch a{font-size:1.25rem}
}

/* ── Header right cluster (nav + flags) ── */
.header-right{display:flex;align-items:center}

/* ── Sub-page content (home design language: Helvetica + home palette) ── */
.page section{padding:84px 5%;position:relative}
.page section.alt{background:var(--bg2)}
.page .wrap{max-width:1100px;margin:0 auto}
.page .narrow{max-width:760px;margin:0 auto}
.page-hero{padding-top:150px !important;padding-bottom:56px !important}
.page-hero .section-title{font-size:clamp(2.2rem,5.5vw,3.6rem);margin-bottom:22px}
.page .section-desc.lead{font-size:1.05rem;max-width:680px}
.page p.body{font-size:0.95rem;font-weight:300;line-height:1.85;color:var(--text-dim);max-width:760px;margin-top:16px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}
.note{font-size:0.78rem;color:var(--text-dimmer);margin-top:14px}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-top:8px}
.card{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:10px;padding:26px 24px}
.card h3{font-size:1.02rem;font-weight:500;color:#fff;margin-bottom:9px;letter-spacing:-0.01em}
.card p{font-size:0.88rem;font-weight:300;line-height:1.7;color:var(--text-dim)}

/* numbered steps */
.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:30px 44px;margin-top:8px}
.step{display:flex;gap:18px;align-items:flex-start}
.step .num{font-family:var(--font-mono);font-size:1.3rem;color:var(--accent);font-weight:400;line-height:1.1;min-width:2.2ch}
.step h3{font-size:1.05rem;font-weight:500;color:#fff;margin-bottom:6px}
.step p{font-size:0.88rem;font-weight:300;line-height:1.7;color:var(--text-dim)}

/* project index cards */
.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,360px));gap:20px;margin-top:8px}
.project-card{display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:10px;padding:30px 26px;text-decoration:none;transition:border-color .2s,transform .2s}
.project-card:hover{border-color:rgba(59,130,246,0.4);transform:translateY(-2px)}
.project-card .tag{font-size:0.62rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--accent)}
.project-card h3{font-size:1.5rem;font-weight:300;color:#fff;letter-spacing:-0.01em}
.project-card p{font-size:0.9rem;font-weight:300;color:var(--text-dim);line-height:1.6;flex:1}
.project-card .more{font-size:0.68rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);margin-top:4px}

@media(max-width:768px){
  .steps{grid-template-columns:1fr}
  .proj-grid{grid-template-columns:1fr}
  .page section{padding:56px 6%}
  .page-hero{padding-top:108px !important}
}

/* ===== Language switch (SVG flags) — overrides emoji version ===== */
.lang-switch{display:flex;align-items:center;gap:7px;margin-left:18px;position:static;top:auto;right:auto}
.lang-switch .lang{display:inline-flex;line-height:0;border-radius:2px;overflow:hidden;font-size:0;opacity:0.4;filter:grayscale(0.7);box-shadow:0 0 0 1px rgba(255,255,255,0.18);transition:opacity .2s,filter .2s,box-shadow .2s}
.lang-switch .lang img{display:block;width:22px;height:15px;object-fit:cover}
.lang-switch a.lang{cursor:pointer}
.lang-switch a.lang:hover{opacity:0.9;filter:grayscale(0)}
.lang-switch .lang.active{opacity:1;filter:grayscale(0);box-shadow:0 0 0 1.5px var(--accent)}
.lang-switch .disabled{cursor:not-allowed;opacity:0.22}
.lang-switch-mobile{justify-content:flex-end;margin:0 0 6px;padding:14px 20px 16px;border-bottom:1px solid rgba(255,255,255,0.08)}
@media(min-width:1025px){.lang-switch-mobile{display:none}}
@media(max-width:1024px){#header .lang-switch{display:none}}

/* ===== Footer redistributed (clean columns) ===== */
footer{display:block !important;padding:52px 5% 26px !important}
.footer-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.5fr 1fr 1.1fr 1fr 1fr;gap:30px;align-items:start;text-align:left}
.footer-brand{display:inline-flex}
.footer-brand img{height:46px;width:auto;display:block}
.footer-col{font-size:0.78rem;font-weight:300;line-height:1.75;color:rgba(255,255,255,0.85)}
.footer-col .footer-h{display:block;font-size:0.6rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.8);margin-bottom:10px}
.footer-col a{color:rgba(255,255,255,0.85);text-decoration:none;transition:color .2s}
.footer-col a:hover{color:#fff}
.footer-col .lang-switch{margin-left:0}
.footer-bottom{max-width:1100px;margin:34px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,0.18);font-size:0.7rem;color:rgba(255,255,255,0.72);text-align:center;letter-spacing:0.04em}
@media(max-width:768px){
  .footer-inner{grid-template-columns:1fr 1fr;gap:22px}
  .footer-brand-col{grid-column:1 / -1}
}

/* ===== Language switch as dropdown (droplist) — overrides row version ===== */
.lang-switch{position:relative;display:inline-flex;align-items:center;margin-left:18px;gap:0}
.lang-current{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);border-radius:4px;padding:5px 8px;cursor:pointer;line-height:0}
.lang-current:hover{border-color:rgba(255,255,255,0.3)}
.lang-current img{width:22px;height:15px;display:block;border-radius:1px}
.lang-current .caret{font-size:0.55rem;color:var(--text-dim);line-height:1;transition:transform .2s}
.lang-switch.open .lang-current .caret{transform:rotate(180deg)}
.lang-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:172px;background:rgba(8,14,28,0.98);border:1px solid rgba(255,255,255,0.1);border-radius:6px;box-shadow:0 14px 40px rgba(0,0,0,0.55);padding:6px;display:none;flex-direction:column;gap:1px;z-index:3600}
.lang-switch.open .lang-menu{display:flex}
.lang-switch.up .lang-menu{top:auto;bottom:calc(100% + 6px)}
.lang-opt{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px;text-decoration:none;font-size:0.8rem;font-weight:300;color:var(--text)}
.lang-opt img{width:22px;height:15px;border-radius:1px;flex-shrink:0;box-shadow:0 0 0 1px rgba(255,255,255,0.12)}
.lang-opt .lang-name{color:var(--text)}
.lang-opt.active{background:rgba(59,130,246,0.16)}
.lang-opt:not(.disabled):hover{background:rgba(255,255,255,0.07)}
.lang-opt.disabled{opacity:0.45;cursor:not-allowed}
.lang-opt.disabled .lang-name{color:var(--text-dim)}
.lang-opt .soon{margin-left:auto;font-size:0.56rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--text-dimmer)}
/* mobile: dropdown lives at top of the menu panel */
.lang-switch-mobile{margin:0 0 4px;padding:12px 20px;border-bottom:1px solid rgba(255,255,255,0.08);justify-content:flex-end}
.lang-switch-mobile .lang-menu{right:20px}
@media(min-width:1025px){.lang-switch-mobile{display:none}}
@media(max-width:1024px){#header .lang-switch{display:none}}

/* ===== SVG icons (recolorable via mask) + icon layouts ===== */
.ico{display:inline-block;width:22px;height:22px;background:var(--accent);flex-shrink:0;
  -webkit-mask-image:var(--m);mask-image:var(--m);
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:center;mask-position:center;
  -webkit-mask-size:contain;mask-size:contain}
.ico-ai{--m:url(/assets/images/icons/ai.svg)}
.ico-globe{--m:url(/assets/images/icons/globe.svg)}
.ico-card{--m:url(/assets/images/icons/card.svg)}
.ico-quote{--m:url(/assets/images/icons/quote.svg)}
.ico-route{--m:url(/assets/images/icons/route.svg)}
.ico-article{--m:url(/assets/images/icons/article.svg)}
.ico-calendar{--m:url(/assets/images/icons/calendar.svg)}
.ico-star{--m:url(/assets/images/icons/star.svg)}
.ico-megaphone{--m:url(/assets/images/icons/megaphone.svg)}
.ico-leaf{--m:url(/assets/images/icons/leaf.svg)}

/* feature chips (SaaS short giardiniamo section) */
.feat-row{display:flex;flex-wrap:wrap;gap:14px 28px;margin-top:26px}
.feat{display:flex;align-items:center;gap:9px;font-size:0.82rem;color:var(--text-dim)}
.feat .ico{width:20px;height:20px}

/* icon cards (detail page tools) */
.icards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;margin-top:8px}
.icard{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:10px;padding:26px 24px}
.icard .ico{width:26px;height:26px;margin-bottom:14px}
.icard h3{font-size:1.02rem;font-weight:500;color:#fff;margin-bottom:8px;letter-spacing:-0.01em}
.icard p{font-size:0.88rem;font-weight:300;line-height:1.7;color:var(--text-dim)}
.ico-chat{--m:url(/assets/images/icons/chat.svg)}
.ico-camera{--m:url(/assets/images/icons/camera.svg)}
.ico-code{--m:url(/assets/images/icons/code.svg)}
.ico-layers{--m:url(/assets/images/icons/layers.svg)}
.ico-shield{--m:url(/assets/images/icons/shield.svg)}

/* ===== "Punto di vista" modal ===== */
.pov-overlay{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(2,4,10,0.74);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.pov-overlay.open{display:flex}
.pov-modal{position:relative;max-width:600px;width:100%;max-height:86vh;overflow-y:auto;background:linear-gradient(160deg,rgba(16,22,38,0.98),rgba(8,11,20,0.99));border:1px solid rgba(59,130,246,0.18);border-radius:14px;padding:42px 38px;box-shadow:0 30px 80px rgba(0,0,0,0.6)}
.pov-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--text-dim);font-size:1.7rem;line-height:1;cursor:pointer;padding:4px}
.pov-close:hover{color:#fff}
.pov-eyebrow{font-size:0.6rem;letter-spacing:0.45em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.pov-claim{font-size:clamp(1.3rem,2.6vw,1.7rem);font-weight:300;line-height:1.3;color:#fff;letter-spacing:-0.01em;margin:0 0 28px}
.pov-claim .acc{color:var(--accent)}
.pov-points{display:flex;flex-direction:column;gap:20px}
.pov-point{display:flex;gap:14px;align-items:flex-start}
.pov-point .ico{width:24px;height:24px;margin-top:2px}
.pov-point strong{display:block;color:#fff;font-weight:500;font-size:0.98rem;margin-bottom:3px}
.pov-point p{color:var(--text-dim);font-size:0.88rem;font-weight:300;line-height:1.65;margin:0}
.pov-closing{margin:28px 0 0;padding-top:20px;border-top:1px solid rgba(255,255,255,0.09);color:var(--text);font-size:0.92rem;font-weight:300;line-height:1.7}
@media(max-width:600px){.pov-modal{padding:34px 22px}}

.ico-refresh{--m:url(/assets/images/icons/refresh.svg)}
.ico-cpu{--m:url(/assets/images/icons/cpu.svg)}
.ico-cart{--m:url(/assets/images/icons/cart.svg)}
.ico-phone{--m:url(/assets/images/icons/phone.svg)}
.ico-lock{--m:url(/assets/images/icons/lock.svg)}
.ico-network{--m:url(/assets/images/icons/network.svg)}
.ico-search{--m:url(/assets/images/icons/search.svg)}
.ico-gamepad{--m:url(/assets/images/icons/gamepad.svg)}

/* ===== Modal as draggable + resizable window (fixed header + always-visible X) ===== */
.pov-overlay{display:none;align-items:initial;justify-content:initial;padding:0;background:rgba(2,4,10,0.55)}
.pov-overlay.open{display:block}
.pov-modal{position:fixed;left:50%;top:8vh;transform:translateX(-50%);width:min(600px,92vw);height:auto;max-height:84vh;min-width:300px;min-height:220px;display:flex;flex-direction:column;padding:0;overflow:hidden;border:1px solid rgba(59,130,246,0.22);border-radius:14px}
.pov-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 13px 24px;border-bottom:1px solid rgba(255,255,255,0.09);background:rgba(255,255,255,0.035);cursor:move;flex-shrink:0;touch-action:none;border-radius:14px 14px 0 0}
.pov-head .pov-eyebrow{margin:0}
.pov-close{position:static;flex-shrink:0;font-size:1.6rem;padding:0 4px;line-height:1}
.pov-body{flex:1;min-height:0;overflow-y:auto;padding:24px 30px 30px}
.pov-claim{margin:0 0 24px}
.pov-resize{position:absolute;right:2px;bottom:2px;width:18px;height:18px;cursor:nwse-resize;touch-action:none}
.pov-resize::after{content:'';position:absolute;right:4px;bottom:4px;width:8px;height:8px;border-right:2px solid rgba(255,255,255,0.35);border-bottom:2px solid rgba(255,255,255,0.35)}
.pov-modal{max-width:96vw}

/* ===== coronatek-style window: slate palette, header bar, 8-direction resize ===== */
.pov-modal{background:#1e293b;border:1px solid #475569;border-radius:8px;box-shadow:0 25px 60px -12px rgba(0,0,0,0.7);transition:border-color .2s,box-shadow .2s}
.pov-modal:hover{border-color:#64748b}
.pov-modal.maximized{border-radius:8px}
.pov-head{background:#334155;border-bottom:1px solid #475569;border-radius:8px 8px 0 0;padding:11px 10px 11px 20px;gap:10px}
.pov-head .pov-eyebrow{color:#93c5fd;font-size:0.62rem;letter-spacing:0.32em}
.pov-controls{display:flex;align-items:center;gap:3px;flex-shrink:0}
.pov-ctl{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;background:none;color:#cbd5e1;border-radius:6px;cursor:pointer;line-height:0;transition:background .15s,color .15s}
.pov-ctl:hover{background:rgba(255,255,255,0.09);color:#fff}
.pov-ctl svg{width:16px;height:16px}
.pov-body{background:#1e293b;border-radius:0 0 8px 8px}
.pov-claim{color:#f8fafc}
.pov-point strong{color:#f1f5f9}
.pov-point p{color:#cbd5e1}
.pov-closing{color:#e2e8f0;border-top-color:rgba(255,255,255,0.1)}
.pov-point .ico{background:#60a5fa}
.pov-claim .acc{color:#60a5fa}
/* 8 resize handles (edges + corners) */
.pov-rz{position:absolute;z-index:60;touch-action:none}
.pov-rz[data-dir="top"]{top:-3px;left:18px;right:18px;height:12px;cursor:ns-resize}
.pov-rz[data-dir="bottom"]{bottom:-3px;left:18px;right:18px;height:12px;cursor:ns-resize}
.pov-rz[data-dir="left"]{left:-3px;top:18px;bottom:18px;width:12px;cursor:ew-resize}
.pov-rz[data-dir="right"]{right:-3px;top:18px;bottom:18px;width:12px;cursor:ew-resize}
.pov-rz[data-dir="top-left"]{top:-3px;left:-3px;width:18px;height:18px;cursor:nwse-resize;z-index:61}
.pov-rz[data-dir="top-right"]{top:-3px;right:-3px;width:18px;height:18px;cursor:nesw-resize;z-index:61}
.pov-rz[data-dir="bottom-left"]{bottom:-3px;left:-3px;width:18px;height:18px;cursor:nesw-resize;z-index:61}
.pov-rz[data-dir="bottom-right"]{bottom:-3px;right:-3px;width:18px;height:18px;cursor:nwse-resize;z-index:61}
.pov-rz[data-dir="bottom-right"]::after{content:'';position:absolute;right:3px;bottom:3px;width:8px;height:8px;border-right:2px solid rgba(148,163,184,0.7);border-bottom:2px solid rgba(148,163,184,0.7)}


/* ── Lock background scroll while a modal is open (reserve gutter to avoid layout shift) ── */
html{scrollbar-gutter:stable}
body.modal-open{overflow:hidden}

/* ── Custom page scrollbar (matches the dark/blue theme) ── */
*{scrollbar-width:thin;scrollbar-color:rgba(59,130,246,0.45) transparent}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,rgba(59,130,246,0.55),rgba(37,99,235,0.6));border-radius:10px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,rgba(96,165,250,0.85),rgba(59,130,246,0.85));background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}

/* ── Keep modal scroll contained (belt-and-suspenders with the JS touch lock) ── */
.pov-body,.pillar-modal-body,#cryo-modal-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* ── Micro-interactions: icons, cards, buttons ── */
.ico{transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .3s,filter .3s}
.icard,.card,.feat{transition:transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease}

.icard:hover{transform:translateY(-4px);border-color:rgba(59,130,246,0.35);background:rgba(255,255,255,0.05);box-shadow:0 14px 34px -18px rgba(59,130,246,0.6)}
.icard:hover .ico{transform:scale(1.15) rotate(-4deg);background:var(--accent2);filter:drop-shadow(0 0 7px rgba(59,130,246,0.6))}

.card:hover{transform:translateY(-3px);border-color:rgba(59,130,246,0.28);background:rgba(255,255,255,0.05)}

.feat:hover .ico{transform:scale(1.18);background:var(--accent2);filter:drop-shadow(0 0 6px rgba(59,130,246,0.55))}

.project-card:hover{box-shadow:0 18px 40px -22px rgba(59,130,246,0.6)}
.project-card .more{transition:color .25s,letter-spacing .25s}
.project-card:hover .more{color:var(--accent2);letter-spacing:0.2em}

.step .num{transition:transform .3s cubic-bezier(.34,1.56,.64,1),text-shadow .3s,color .3s}
.step:hover .num{transform:scale(1.18);color:var(--accent2);text-shadow:0 0 14px rgba(59,130,246,0.5)}

.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px -10px rgba(59,130,246,0.7)}

.pov-point .ico{transition:transform .3s cubic-bezier(.34,1.56,.64,1),filter .3s}
.pov-point:hover .ico{transform:scale(1.15);filter:drop-shadow(0 0 7px rgba(96,165,250,0.7))}

@media (prefers-reduced-motion: reduce){
  .ico,.icard,.card,.feat,.feat .ico,.project-card,.project-card .more,.step .num,.btn-primary,.pov-point .ico{transition:none!important}
  .icard:hover,.card:hover,.btn-primary:hover,.icard:hover .ico,.feat:hover .ico,.step:hover .num,.pov-point:hover .ico{transform:none}
}

/* ── Home pillar icons + case-study stats ── */
.pillar-icon{transition:transform .35s cubic-bezier(.34,1.56,.64,1),filter .35s}
.pillar:hover .pillar-icon{transform:scale(1.14) translateY(-2px);filter:drop-shadow(0 6px 14px rgba(59,130,246,0.35))}
.case-stat-num{transition:transform .3s cubic-bezier(.34,1.56,.64,1),text-shadow .3s}
.case-card:hover .case-stat-num{transform:scale(1.06);text-shadow:0 0 18px rgba(59,130,246,0.4)}
@media (prefers-reduced-motion: reduce){
  .pillar-icon,.case-stat-num{transition:none!important}
  .pillar:hover .pillar-icon,.case-card:hover .case-stat-num{transform:none}
}

/* ── Compact desktop menu: multi-word items on two centred lines ── */
@media(min-width:1025px){
  nav a,nav .nav-has-sub>a{text-align:center;line-height:1.08;padding:6px 11px}
}
/* the forced break only applies on the desktop bar; collapse it in the mobile drawer */
@media(max-width:1024px){ .nav-brk{display:none} }

/* anchored sections clear the fixed header */
section[id]{scroll-margin-top:88px}

/* ── Contact page: info + map + form ── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;margin-top:8px}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:34px}}
.contact-info{display:flex;flex-direction:column;gap:22px}
.contact-block{font-size:0.92rem;color:rgba(255,255,255,0.85);line-height:1.7}
.contact-block .footer-h{display:block;font-size:0.6rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:rgba(255,255,255,0.55);margin-bottom:6px}
.contact-block a{color:var(--accent2);text-decoration:none;transition:color .2s}
.contact-block a:hover{color:#fff}
.map-wrap{position:relative;margin-top:6px;border-radius:12px;overflow:hidden;border:1px solid rgba(59,130,246,0.28);line-height:0}
.map-wrap iframe{width:100%;height:300px;border:0;display:block;filter:invert(0.86) hue-rotate(185deg) saturate(0.68) brightness(1.06) contrast(0.82)}
/* subtle brand-blue tint; pointer-events:none keeps the map interactive */
.map-wrap::after{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(130% 130% at 0% 0%,rgba(59,130,246,0.16),rgba(8,14,28,0.22));mix-blend-mode:soft-light}
.contact-form{display:flex;flex-direction:column;gap:18px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:30px 28px}
.field{display:flex;flex-direction:column;gap:7px}
.field label{font-size:0.62rem;letter-spacing:0.16em;text-transform:uppercase;color:rgba(255,255,255,0.62);font-weight:600}
.field input,.field textarea{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.13);border-radius:8px;padding:12px 14px;color:var(--text);font-family:inherit;font-size:0.9rem;transition:border-color .2s,background .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:rgba(59,130,246,0.06)}
.field textarea{resize:vertical;min-height:130px}
.contact-form .btn-primary{align-self:flex-start;margin-top:4px;border:none;cursor:pointer}
.form-note{font-size:0.72rem;color:var(--text-dim);line-height:1.6;margin:0}
.form-ok{font-size:0.85rem;color:var(--accent2);line-height:1.6;display:none}
.form-ok.show{display:block}
.form-ok.error{color:#fca5a5}

.field select{background-color:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.13);border-radius:8px;padding:12px 38px 12px 14px;color:var(--text);font-family:inherit;font-size:0.9rem;transition:border-color .2s,background-color .2s;appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2393a3b8' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;background-size:13px}
.field select:focus{outline:none;border-color:var(--accent);background-color:rgba(59,130,246,0.06)}
.field select option{background:#0e1626;color:var(--text)}

/* ── Chi siamo: timeline ── */
#storia{scroll-margin-top:90px}
.timeline{position:relative;margin-top:40px;padding-left:8px}
.timeline::before{content:'';position:absolute;left:7px;top:6px;bottom:10px;width:2px;background:linear-gradient(180deg,var(--accent),rgba(59,130,246,0.12))}
.timeline::after{content:'';position:absolute;left:4px;top:0;width:8px;height:44px;border-radius:8px;background:radial-gradient(closest-side,rgba(96,165,250,0.85),rgba(59,130,246,0));filter:blur(1px);pointer-events:none;animation:tlFlow 5s ease-in-out infinite}
@keyframes tlFlow{0%{top:-10px;opacity:0}12%{opacity:1}88%{opacity:1}100%{top:calc(100% - 30px);opacity:0}}
.timeline.tl-animate .tl-item{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}
.timeline.tl-animate .tl-item.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.timeline::after{animation:none;display:none}.timeline.tl-animate .tl-item{opacity:1;transform:none;transition:none}}
.tl-item{position:relative;padding:0 0 30px 32px}
.tl-item::before{content:'';position:absolute;left:1px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2px solid var(--accent);box-shadow:0 0 0 4px rgba(59,130,246,0.12);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.tl-item:hover::before{transform:scale(1.35);border-color:var(--accent2);box-shadow:0 0 0 5px rgba(59,130,246,0.2),0 0 16px rgba(96,165,250,0.55)}
.tl-item:last-child{padding-bottom:0}
.tl-year{font-family:var(--font-mono,monospace);font-size:0.8rem;letter-spacing:0.18em;color:var(--accent);font-weight:600;transition:color .25s ease,text-shadow .25s ease}
.tl-item:hover .tl-year{color:var(--accent2);text-shadow:0 0 12px rgba(96,165,250,0.5)}
.tl-item h3{font-size:1.08rem;font-weight:500;color:#fff;margin:5px 0 7px}
.tl-item p{font-size:0.9rem;line-height:1.7;color:var(--text-dim);font-weight:300;max-width:640px}
.tl-item .tl-link{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:600;color:#fff;text-decoration:none;background:linear-gradient(135deg,rgba(59,130,246,0.28),rgba(59,130,246,0.14));border:1px solid rgba(96,165,250,0.6);border-radius:7px;padding:9px 16px;box-shadow:0 2px 10px rgba(59,130,246,0.15);transition:all .25s}
.tl-item .tl-link:hover{background:linear-gradient(135deg,rgba(59,130,246,0.5),rgba(59,130,246,0.3));border-color:var(--accent2);transform:translateY(-2px);box-shadow:0 6px 20px rgba(59,130,246,0.35)}
.tl-media{margin:14px 0 0;border-radius:10px;overflow:hidden;border:1px solid rgba(255,255,255,0.08);max-width:520px;background:rgba(255,255,255,0.03)}
.tl-media img{width:100%;height:auto;display:block}
.tl-media figcaption{font-size:0.72rem;color:var(--text-dim);padding:9px 13px;line-height:1.5}

/* ── Media hero (image + text) ── */
.media-hero{display:grid;grid-template-columns:1fr 0.82fr;gap:44px;align-items:center}
@media(max-width:820px){.media-hero{grid-template-columns:1fr;gap:26px}}
.media-img{border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);line-height:0}
.media-img img{width:100%;height:auto;display:block}

/* ── Gallery ── */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:26px}
.gallery figure{margin:0;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);transition:transform .3s ease,border-color .3s ease}
.gallery figure:hover{transform:translateY(-3px);border-color:rgba(59,130,246,0.3)}
.gallery img{width:100%;height:210px;object-fit:cover;display:block}
.gallery figcaption{font-size:0.72rem;color:var(--text-dim);padding:11px 13px;line-height:1.5}
.figure-solo{max-width:620px;margin:30px auto 0;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);transition:transform .3s ease,border-color .3s ease}
.figure-solo:hover{transform:translateY(-3px);border-color:rgba(59,130,246,0.3)}
.figure-solo img{width:100%;height:auto;display:block}
.figure-solo figcaption{font-size:0.78rem;color:var(--text-dim);padding:13px 16px;line-height:1.55;text-align:center}
.logo-card{display:inline-block;background:#fff;padding:16px 28px;border-radius:14px;box-shadow:0 10px 34px rgba(0,0,0,0.4)}
.logo-card img{display:block;width:340px;max-width:74vw;height:auto}
.media-cap{font-size:0.72rem;color:var(--text-dim);padding-top:10px;line-height:1.5}
.q-attr{display:block;margin-top:10px;font-size:0.82rem;color:var(--text-dim);font-weight:400}
.detail-row{display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start;margin-top:28px}
.detail-row figure{margin:0;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.04)}
.detail-row figure img{display:block;height:auto}
.detail-row figure.box img{width:230px;max-width:62vw}
.detail-row figure.tall img{width:92px}
.detail-row figcaption{font-size:0.7rem;color:var(--text-dim);padding:9px 12px;line-height:1.45}
.steps-list{margin:18px 0 6px;padding-left:22px;max-width:640px}
.steps-list li{font-size:0.92rem;line-height:1.7;color:var(--text-dim);font-weight:300;margin-bottom:8px}
.steps-list li strong{color:#fff;font-weight:500}
/* Comparison table (Senza / Con) */
.compare{width:100%;border-collapse:collapse;margin-top:34px;font-size:0.92rem}
.compare th,.compare td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(255,255,255,0.08);line-height:1.55}
.compare thead th{font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:600}
.compare thead th:first-child{color:var(--text-dim)}
.compare thead th:last-child{color:var(--accent2)}
.compare td:first-child{color:var(--text-dim);width:50%}
.compare td:last-child{color:#fff}
.compare tbody tr:last-child td{border-bottom:0}
@media(max-width:640px){
  .compare,.compare tbody,.compare tr,.compare td{display:block;width:auto}
  .compare thead{display:none}
  .compare tr{padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.08)}
  .compare td{border:0;padding:3px 0}
  .compare td:first-child::before{content:'Senza: ';color:var(--text-dim);font-weight:600}
  .compare td:last-child::before{content:'Con Nutriva: ';color:var(--accent2);font-weight:600}
}
/* Lightbox: click a content photo to enlarge */
.lb-zoomable{cursor:zoom-in}
.lb-overlay{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;background:rgba(5,8,16,0.93);padding:4vmin;cursor:zoom-out;opacity:0;transition:opacity .2s ease;touch-action:none}
.lb-overlay.open{display:flex;opacity:1}
.lb-overlay figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:94vw;max-height:94vh}
.lb-overlay img{max-width:94vw;max-height:86vh;width:auto;height:auto;border-radius:10px;box-shadow:0 24px 80px rgba(0,0,0,0.6);object-fit:contain;cursor:default}
.lb-overlay figcaption{color:var(--text-dim);font-size:0.82rem;line-height:1.5;text-align:center;max-width:760px}
.lb-close{position:fixed;top:18px;right:22px;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,0.22);background:rgba(0,0,0,0.45);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s}
.lb-close:hover{background:rgba(59,130,246,0.25);border-color:var(--accent2)}
.lb-close svg{width:20px;height:20px}
/* Auth control in nav (Accedi / Ciao name + Esci) */
.nav-auth{display:contents}
.nav-greet{font-size:0.7rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--accent2);white-space:nowrap;opacity:0.9;align-self:center;padding:0 6px}
nav a.nav-logout{color:rgba(255,255,255,0.6)!important}
nav a.nav-logout:hover{color:#fff!important}
@media(max-width:1024px){.nav-greet{display:block;text-align:right;padding:11px 20px;align-self:auto}}
/* ── User dashboard (/area) ── */
.dash-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px;justify-content:space-between;margin:10px 0 6px}
.chat-topctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.chat-topctl .chat-burger{margin-bottom:0}
.credit-pill{display:inline-flex;align-items:center;gap:8px;font-size:0.82rem;letter-spacing:0.04em;color:#fff;background:rgba(59,130,246,0.14);border:1px solid rgba(96,165,250,0.5);border-radius:999px;padding:8px 16px}
.credit-pill b{font-family:var(--font-mono,monospace);color:var(--accent2)}
.plan-badge{font-size:0.6rem;letter-spacing:0.16em;text-transform:uppercase;font-weight:600;padding:4px 10px;border-radius:4px;border:1px solid rgba(255,255,255,0.2);color:var(--text-dim)}
.plan-badge.pro{color:#fff;background:linear-gradient(135deg,var(--accent),#2563eb);border-color:transparent}
.dash-card .soon{font-size:0.6rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-dim);border:1px solid rgba(255,255,255,0.12);border-radius:4px;padding:3px 8px;margin-top:10px;display:inline-block}
/* ── Chat (/chat) ── */
.chat-wrap{display:flex;flex-direction:column;max-width:880px;margin:0 auto}
.chat-log{max-height:56vh;min-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:10px 2px 18px}
.chat-msg{max-width:84%;padding:12px 16px;border-radius:14px;line-height:1.6;font-size:0.95rem;white-space:pre-wrap;word-wrap:break-word}
.chat-msg.user{align-self:flex-end;background:linear-gradient(135deg,rgba(59,130,246,0.9),#2563eb);color:#fff;border-bottom-right-radius:4px}
.chat-msg.ai{align-self:flex-start;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);color:var(--text);border-bottom-left-radius:4px}
.chat-msg.sys{align-self:center;background:transparent;color:var(--text-dim);font-size:0.82rem;text-align:center;max-width:100%}
/* light markdown render in AI bubbles */
.chat-msg .md-h1{font-size:1.12rem;font-weight:600;color:#fff;margin:8px 0 4px}
.chat-msg .md-h2{font-size:1.02rem;font-weight:600;color:#fff;margin:7px 0 4px}
.chat-msg .md-h3{font-size:0.95rem;font-weight:600;color:var(--accent2);margin:6px 0 3px}
.chat-msg .md-h1:first-child,.chat-msg .md-h2:first-child,.chat-msg .md-h3:first-child,.chat-msg .md-p:first-child{margin-top:0}
.chat-msg .md-p{margin:0 0 7px}
.chat-msg .md-p:last-child{margin-bottom:0}
.chat-msg .md-ul,.chat-msg .md-ol{margin:4px 0 8px;padding-left:20px}
.chat-msg .md-ul li,.chat-msg .md-ol li{margin:2px 0}
.chat-msg code{background:rgba(255,255,255,0.09);border-radius:4px;padding:1px 5px;font-family:var(--font-mono,monospace);font-size:0.88em}
.chat-msg strong{color:#fff;font-weight:600}
/* fenced code blocks + runner */
.chat-msg pre.code-block{position:relative;background:#0b1220;border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:14px;margin:10px 0;overflow-x:auto}
.chat-msg pre.code-block code{font-family:var(--font-mono,monospace);font-size:0.84rem;line-height:1.55;background:none;padding:0;white-space:pre;color:#e6edf6}
.code-run{position:absolute;top:8px;right:8px;background:rgba(59,130,246,0.18);border:1px solid rgba(96,165,250,0.5);color:#cfe0ff;border-radius:7px;padding:3px 10px;font-size:0.72rem;cursor:pointer}
.code-run:hover{background:rgba(59,130,246,0.32);color:#fff}
.cr-code{width:100%;min-height:170px;background:#0b1220;border:1px solid rgba(255,255,255,0.14);border-radius:10px;color:#e6edf6;padding:11px 13px;font-family:var(--font-mono,monospace);font-size:0.84rem;line-height:1.5;resize:vertical;color-scheme:dark;white-space:pre;margin-bottom:4px}
.cr-code:focus{outline:none;border-color:var(--accent2)}
.cr-out-lbl{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-dim);margin:14px 0 5px}
.cr-out{background:#06090f;border:1px solid rgba(255,255,255,0.1);border-radius:9px;padding:11px 13px;font-family:var(--font-mono,monospace);font-size:0.82rem;color:#9fe6b0;white-space:pre-wrap;max-height:220px;overflow:auto;min-height:42px;margin:0}
/* diagrams (mermaid) */
.chat-msg .diagram{margin:12px 0;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.1);border-radius:12px;padding:14px;text-align:center;overflow-x:auto}
.chat-msg .diagram svg{max-width:100%;height:auto}
.diag-bar{display:flex;gap:8px;justify-content:center;margin-top:10px}
.diag-btn{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);color:var(--text-dim);border-radius:7px;padding:3px 11px;font-size:0.72rem;cursor:pointer}
.diag-btn:hover{color:#fff;border-color:var(--accent2)}
.diag-modal{text-align:center;overflow:auto;max-height:74vh}
.diag-modal svg{max-width:100%;height:auto}
.chat-controls{border-top:1px solid rgba(255,255,255,0.08);padding-top:14px}
.depth-row{display:flex;align-items:center;gap:12px;font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-dim);margin-bottom:12px;flex-wrap:wrap}
.depth-row input[type=range]{flex:1;min-width:140px;accent-color:var(--accent)}
.depth-note{font-size:0.72rem;color:var(--accent2)}
.chat-input-row{display:flex;gap:10px;align-items:flex-end}
.chat-input{flex:1;resize:none;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:12px;color:#fff;padding:12px 14px;font:inherit;font-size:0.95rem;line-height:1.5;max-height:140px}
.chat-input:focus{outline:none;border-color:var(--accent2)}
.chat-send{flex-shrink:0;border:none;cursor:pointer;background:linear-gradient(135deg,var(--accent),#2563eb);color:#fff;border-radius:12px;padding:12px 20px;font-size:0.8rem;letter-spacing:0.08em;text-transform:uppercase;font-weight:600}
.chat-send:disabled{opacity:0.5;cursor:default}
/* smartphone: textarea a tutta larghezza, allega + invia sulla riga sotto */
@media(max-width:600px){
  .chat-input-row{flex-wrap:wrap;gap:8px}
  .chat-input{flex:1 1 100%;min-width:0;font-size:1rem}
  .chat-attach{order:2}
  .chat-send{order:3;margin-left:auto;padding:11px 26px}
}
.chat-typing{align-self:flex-start;color:var(--text-dim);font-size:0.85rem;font-style:italic}
.chat-msg.ai .msg-tools{margin-top:9px}
.msg-pdf{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);color:var(--text-dim);border-radius:8px;padding:4px 11px;font-size:0.72rem;cursor:pointer}
.msg-pdf:hover{color:#fff;border-color:var(--accent2)}
.msg-more{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);color:var(--text-dim);border-radius:8px;padding:1px 12px 4px;font-size:1.05rem;line-height:1;cursor:pointer;letter-spacing:1px}
.msg-more:hover{color:#fff;border-color:var(--accent2)}
.msg-map{background:rgba(59,130,246,0.1);border:1px solid rgba(96,165,250,0.35);color:var(--accent2);border-radius:999px;padding:3px 11px;font-size:0.74rem;cursor:pointer;transition:all .2s}
.msg-map:hover{background:rgba(59,130,246,0.2);color:#fff}
.chat-actions{display:flex;gap:8px;margin:0 0 8px;flex-wrap:wrap}
.act-btn{cursor:pointer;background:rgba(59,130,246,0.12);border:1px solid rgba(96,165,250,0.45);color:#fff;border-radius:999px;padding:6px 14px;font-size:0.8rem;letter-spacing:0.02em;transition:all .2s}
.act-btn:hover{background:rgba(59,130,246,0.24)}
.dg-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 4px}
.dg-opt{cursor:pointer;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.16);color:var(--text);border-radius:10px;padding:13px 10px;font-size:0.85rem;transition:all .2s}
.dg-opt:hover{background:rgba(59,130,246,0.16);border-color:var(--accent2);color:#fff}
/* per-formula calculator */
.formula-btn{display:block;margin:8px auto 0;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);color:var(--text-dim);border-radius:8px;padding:4px 12px;font-size:0.74rem;cursor:pointer}
.formula-btn:hover{color:#fff;border-color:var(--accent2)}
.fx-formula{text-align:center;margin:4px 0 14px;overflow-x:auto}
.fx-note{color:var(--text-dim);font-size:0.82rem;line-height:1.55;margin:0 0 16px;padding:9px 12px;background:rgba(255,255,255,0.03);border-left:2px solid var(--accent2);border-radius:6px}
.fx-vars{display:flex;flex-direction:column;gap:11px}
.fx-row{display:flex;flex-direction:column;gap:4px}
.fx-row label{font-size:0.82rem;color:var(--text-dim)}
.fx-row .fx-u{color:var(--accent2)}
.fx-in{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:9px;color:#fff;padding:9px 11px;font:inherit;font-size:0.92rem;color-scheme:dark}
.fx-in:focus{outline:none;border-color:var(--accent2)}
.fx-result{margin:18px 0 4px;padding:13px 15px;background:rgba(59,130,246,0.1);border:1px solid rgba(96,165,250,0.4);border-radius:12px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.fx-result .fx-rl{color:var(--text-dim);font-size:0.85rem}
.fx-result .fx-rv{color:#fff;font-size:1.45rem;font-weight:700;font-family:var(--font-mono,monospace)}
.fx-result .fx-ru{color:var(--accent2)}
.verif{margin-top:10px;border-radius:10px;padding:11px 13px;font-size:0.86rem;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.1);border-left:3px solid var(--text-dim)}
.verif-affidabile{border-left-color:#22c55e}
.verif-attenzione{border-left-color:#f59e0b}
.verif-errori{border-left-color:#ef4444}
.verif-h{display:flex;align-items:center;gap:8px;font-weight:600;color:#fff;margin-bottom:5px}
.verif-dot{color:var(--text-dim)}
.verif-affidabile .verif-dot{color:#22c55e}.verif-attenzione .verif-dot{color:#f59e0b}.verif-errori .verif-dot{color:#ef4444}
.verif-sint{color:var(--text);line-height:1.55}
.verif-ok{color:#86efac;margin-top:3px}
.verif-issue{margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,0.08)}
.verif-issue .vi-p{color:#fff;font-weight:500}
.verif-issue .vi-x{color:var(--text-dim);margin-top:2px;line-height:1.5}
.verif-issue .vi-x b{color:var(--accent2);font-weight:500}
.verif-by{margin-top:9px;font-size:0.7rem;color:var(--text-dim);opacity:0.8}
/* context form (specialized chat) */
.ctx-form{max-width:720px;margin:0 auto;padding:2px 2px 8px;overflow-y:auto;max-height:64vh;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px 14px;align-content:start}
.ctx-form .ctx-head,.ctx-form .ctx-start{grid-column:1/-1}
@media(max-width:560px){
  .ctx-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ctx-form .fld{grid-column:span 1!important}
  .ctx-form .fld[style*="span 6"]{grid-column:1/-1!important}
  .ctx-form .dd{width:auto;min-width:0;max-width:none}
  .ctx-form .dd-opt{white-space:normal;line-height:1.35}
  .ctx-form .dd-btn{gap:6px}
}
/* smartphone: compatta l'header della chat (titolo piccolo, Conversazioni+FREE+Crediti su una riga) */
@media(max-width:600px){
  body.chat-page .dash-head{gap:8px;margin:4px 0 4px}
  body.chat-page .dash-head .section-label{display:none}
  body.chat-page #title{font-size:1.2rem!important;line-height:1.2}
  body.chat-page .chat-topctl{gap:8px}
  body.chat-page .chat-topctl .chat-burger{padding:6px 11px;font-size:0.72rem}
  body.chat-page .credit-pill{font-size:0.72rem;padding:6px 11px;gap:6px}
  body.chat-page .plan-badge{padding:4px 8px}
  body.chat-page main.page > section{padding-top:58px}
}
.ctx-form .ctx-head{margin-bottom:2px}
.ctx-form .ctx-head h2{font-size:1.1rem;color:#fff;font-weight:500;margin:0 0 2px}
.ctx-form .ctx-head p{font-size:0.8rem;color:var(--text-dim);margin:0;line-height:1.45}
.ctx-form .fld{margin-bottom:0}
.ctx-form .fld>label{display:block;font-size:0.72rem;color:var(--text-dim);margin-bottom:3px;letter-spacing:0.03em}
.ctx-form input[type=text],.ctx-form textarea,.ctx-form select{width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:10px;color:#fff;padding:8px 10px;font:inherit;font-size:0.87rem}
.ctx-form input:focus,.ctx-form textarea:focus,.ctx-form select:focus{outline:none;border-color:var(--accent2)}
.ctx-form textarea{resize:vertical;min-height:50px}
.ctx-form .toggle{display:flex;align-items:center;cursor:pointer;color:#fff;font-size:0.85rem;padding-top:22px}
.ctx-form .toggle input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.ctx-form .toggle .sw{display:inline-block;position:relative;flex:0 0 auto;margin-right:12px;width:46px;height:26px;background:linear-gradient(180deg,#2a3445,#1b2230);border:1px solid rgba(255,255,255,0.14);border-radius:999px;box-shadow:inset 0 1px 3px rgba(0,0,0,0.55);transition:background .25s,border-color .25s}
.ctx-form .toggle .sw::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:linear-gradient(180deg,#ffffff,#dde4ee);box-shadow:0 1px 2px rgba(0,0,0,0.55),0 2px 6px rgba(0,0,0,0.3);transition:transform .25s}
.ctx-form .toggle input:checked+.sw{background:linear-gradient(180deg,#4f9bff,#2563eb);border-color:rgba(96,165,250,0.6)}
.ctx-form .toggle input:checked+.sw::after{transform:translateX(20px)}
.ctx-form .toggle input:focus-visible+.sw{outline:2px solid var(--accent2);outline-offset:2px}
.ctx-form .toggle .tl{line-height:1.3}
.ctx-form .note{font-size:0.72rem;color:var(--text-dim);margin-top:5px}
.ctx-form .filebox{border:1px dashed rgba(255,255,255,0.18);border-radius:10px;padding:14px;color:var(--text-dim);font-size:0.85rem;opacity:0.65;display:flex;align-items:center;justify-content:space-between;gap:10px}
.ctx-form .soon{font-size:0.58rem;letter-spacing:0.12em;text-transform:uppercase;border:1px solid rgba(255,255,255,0.2);border-radius:4px;padding:3px 7px}
.ctx-actions{grid-column:1/-1;display:flex;gap:8px;margin-top:2px}
.ctx-start{flex:1;min-width:0;border:none;cursor:pointer;background:linear-gradient(135deg,var(--accent),#2563eb);color:#fff;border-radius:11px;padding:8px;font-size:0.72rem;letter-spacing:0.07em;text-transform:uppercase;font-weight:600}
.ctx-back{flex:0 0 auto;cursor:pointer;background:transparent;border:1px solid rgba(255,255,255,0.16);color:var(--text-dim);border-radius:11px;padding:8px 14px;font-size:0.72rem;white-space:nowrap;transition:all .2s}
.ctx-back:hover{color:#fff;border-color:rgba(255,255,255,0.32)}
.ctx-form input[type=file]{width:100%;font-size:0.8rem;color:var(--text-dim);background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:10px;padding:8px}
.ctx-range{width:100%;accent-color:var(--accent);margin-top:5px;cursor:pointer}
.rng-val{color:var(--accent2);font-family:var(--font-mono,monospace);font-weight:600}
/* field help tooltips */
.help{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid rgba(255,255,255,0.32);color:var(--text-dim);font-size:0.64rem;font-weight:700;line-height:1;cursor:pointer;margin-left:6px;vertical-align:middle;flex-shrink:0;user-select:none}
.help:hover{color:#fff;border-color:var(--accent2)}
.tip-pop{position:fixed;z-index:240;max-width:270px;background:#0b1018;border:1px solid rgba(255,255,255,0.18);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,0.5);padding:10px 13px;color:var(--text);font-size:0.82rem;line-height:1.5}
/* verify-auto chip in the input controls */
.vchip{display:inline-flex;align-items:center;gap:7px;cursor:pointer;font-size:0.7rem;letter-spacing:0.04em;text-transform:uppercase;color:var(--text-dim);border:1px solid rgba(255,255,255,0.14);border-radius:999px;padding:5px 11px;background:rgba(255,255,255,0.04)}
.vchip.on{color:#fff;border-color:var(--accent2);background:rgba(59,130,246,0.14)}
.vchip .vdot{width:8px;height:8px;border-radius:50%;background:var(--text-dim);flex-shrink:0}
.vchip.on .vdot{background:#22c55e}
/* generic on-brand modal */
.dc-modal{position:fixed;inset:0;z-index:200;background:rgba(4,8,16,0.66);display:flex;align-items:center;justify-content:center;padding:20px}
.dc-modal-box{background:#0c121d;border:1px solid rgba(255,255,255,0.14);border-radius:16px;max-width:460px;width:100%;padding:26px;box-shadow:0 24px 60px rgba(0,0,0,0.5)}
.dc-modal-box h3{margin:0 0 10px;color:#fff;font-size:1.15rem;font-weight:600}
.dc-modal-box p{margin:0 0 18px;color:var(--text-dim);font-size:0.9rem;line-height:1.6}
.dc-check{display:flex;align-items:center;gap:9px;color:var(--text-dim);font-size:0.84rem;cursor:pointer;margin:-4px 0 16px}
.dc-check input{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0}
.dc-input{width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.16);border-radius:10px;color:#fff;padding:11px 13px;font:inherit;font-size:0.95rem;margin:2px 0 18px}
.dc-input:focus{outline:none;border-color:var(--accent2)}
.dc-modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.dc-btn{border:none;cursor:pointer;border-radius:10px;padding:10px 18px;font-size:0.82rem;font-weight:600}
.dc-btn-primary{background:linear-gradient(135deg,var(--accent),#2563eb);color:#fff}
.dc-btn-ghost{background:rgba(255,255,255,0.06);color:var(--text-dim);border:1px solid rgba(255,255,255,0.14);text-decoration:none;display:inline-block}
/* interactive test */
.dc-modal-box.wide{max-width:640px;max-height:88vh;overflow-y:auto}
.qz-setup label{display:block;color:var(--text-dim);font-size:0.8rem;margin:12px 0 5px}
.qz-num,.qz-sel{width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:10px;color:#fff;padding:9px 11px;font:inherit;font-size:0.9rem;color-scheme:dark}
.qz-sel option{background:#0c121d;color:#fff}
/* generic switch (usable outside the form) */
.swrow{display:flex;align-items:center;gap:11px;cursor:pointer;color:#fff;font-size:0.9rem;margin-top:14px}
.swrow input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}
.swrow .sw{display:inline-block;position:relative;flex:0 0 auto;width:46px;height:26px;background:linear-gradient(180deg,#2a3445,#1b2230);border:1px solid rgba(255,255,255,0.14);border-radius:999px;box-shadow:inset 0 1px 3px rgba(0,0,0,0.55);transition:background .25s}
.swrow .sw::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:linear-gradient(180deg,#fff,#dde4ee);box-shadow:0 1px 2px rgba(0,0,0,0.55);transition:transform .25s}
.swrow input:checked+.sw{background:linear-gradient(180deg,#4f9bff,#2563eb);border-color:rgba(96,165,250,0.6)}
.swrow input:checked+.sw::after{transform:translateX(20px)}
.qz-x{background:none;border:none;color:var(--text-dim);font-size:1.1rem;cursor:pointer;line-height:1;padding:2px 6px}
.qz-x:hover{color:#fff}
.qz-loading{color:var(--text-dim);text-align:center;padding:30px 0}
.qz-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.qz-prog{font-size:0.78rem;letter-spacing:0.06em;color:var(--accent2);font-family:var(--font-mono,monospace)}
.qz-bar{height:6px;border-radius:999px;background:rgba(255,255,255,0.1);overflow:hidden;margin:8px 0 2px}
.qz-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#ef4444,#f59e0b,#22c55e)}
.qz-bar.total i{background:var(--accent2)}
.qz-q{font-size:1.02rem;color:#fff;font-weight:500;margin:16px 0 13px;line-height:1.5}
.qz-opts{display:flex;flex-direction:column;gap:9px}
.qz-opt{text-align:left;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);color:var(--text);border-radius:10px;padding:11px 14px;cursor:pointer;font-size:0.92rem;line-height:1.4}
.qz-opt:hover{border-color:var(--accent2);background:rgba(59,130,246,0.12);color:#fff}
.qz-dunno{margin-top:10px;width:100%;background:none;border:1px dashed rgba(255,255,255,0.22);color:var(--text-dim);border-radius:10px;padding:10px;cursor:pointer;font-size:0.85rem}
.qz-dunno:hover{color:#fff;border-color:var(--text-dim)}
.qz-voto{font-size:2.1rem;font-weight:700;color:#fff;margin-top:4px}
.qz-score{color:var(--text-dim);font-size:0.88rem;margin:2px 0 10px}
.qz-sec{margin-top:14px}
.qz-sec h4{margin:0 0 6px;font-size:0.78rem;color:var(--accent2);text-transform:uppercase;letter-spacing:0.06em}
.qz-sec ul{margin:0;padding-left:18px;color:var(--text);font-size:0.88rem;line-height:1.6}
.qz-det{margin-top:9px;border-top:1px solid rgba(255,255,255,0.08);padding-top:9px;font-size:0.85rem;color:var(--text);line-height:1.5}
.qz-det .e-corretta{color:#86efac;font-weight:600}.qz-det .e-errata{color:#fca5a5;font-weight:600}.qz-det .e-non{color:#fcd34d;font-weight:600}
.qz-img{margin:4px 0 12px;text-align:center}
.qz-img img{max-width:100%;max-height:300px;border-radius:10px;border:1px solid rgba(255,255,255,0.1)}
.qz-img.sm{margin:8px 0;text-align:left}
.qz-img.sm img{max-height:150px}
.qz-cred{display:block;margin-top:4px;font-size:0.68rem;color:var(--text-dim)}
.qz-diag{margin:4px 0 12px}
.quiz-saved{border:1px solid rgba(96,165,250,0.25);background:rgba(59,130,246,0.06);border-radius:14px;padding:16px 18px;max-width:none}
.quiz-saved h3{margin:4px 0 0;font-size:1.05rem}
.qz-saved-h{font-size:0.72rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent2);font-weight:700}
/* usage report (/area) */
.usage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin-top:16px}
.usage-cell{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:14px 16px}
.usage-cell .uc-lbl{font-size:0.8rem;color:var(--text-dim)}
.usage-cell .uc-cr{font-size:1.5rem;color:#fff;font-weight:600;margin:5px 0 2px}
.usage-cell .uc-n{font-size:0.7rem;color:var(--text-dim)}
.usage-h{font-size:0.82rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--accent2);margin:26px 0 4px}
.usage-list{border-top:1px solid rgba(255,255,255,0.08)}
.usage-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 2px;border-bottom:1px solid rgba(255,255,255,0.06);font-size:0.88rem}
.usage-row .ur-l{color:var(--text)}
.usage-row .ur-d{color:var(--text-dim);font-size:0.78rem;margin-left:6px}
.usage-row .ur-c{color:var(--accent2);font-family:var(--font-mono,monospace);flex-shrink:0}
/* attachments */
.att-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.att-thumb{width:74px;height:74px;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,0.18)}
.att-doc{font-size:0.78rem;color:var(--text-dim);background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:8px;padding:6px 10px}
.chat-attach{flex-shrink:0;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.14);color:#fff;border-radius:12px;padding:0 14px;cursor:pointer;font-size:1.1rem;line-height:1}
.chat-attach.has{border-color:var(--accent2);color:var(--accent2)}
/* pending attachments (drag/paste/picker) + drop target */
.pend-box{display:none;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.pend-chip{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);border-radius:9px;padding:5px 6px;font-size:0.76rem;color:var(--text-dim);max-width:190px}
.pend-chip .pn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pend-chip .px{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:1.05rem;line-height:1;padding:0 2px}
.pend-chip .px:hover{color:#fff}
.chat-main.drag{outline:2px dashed rgba(96,165,250,0.65);outline-offset:-6px;border-radius:12px;background:rgba(59,130,246,0.04)}
/* on-brand dropdown (inline-expanding, no clipping inside scroll areas) */
.dd{position:relative;width:max-content;max-width:100%;min-width:150px}
.dd-btn{width:100%;text-align:left;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:10px;color:#fff;padding:8px 10px;font:inherit;font-size:0.87rem;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px}
.dd-btn.placeholder{color:var(--text-dim)}
.dd-btn .dd-caret{color:var(--accent2);font-size:0.62rem;transition:transform .2s}
.dd.open .dd-btn{border-color:var(--accent2)}
.dd.open .dd-btn .dd-caret{transform:rotate(180deg)}
/* list stays in flow (collapsed) so .dd sizes to the longest option */
.dd-list{background:rgba(10,16,26,0.6);border:0;border-radius:10px;max-height:0;overflow:hidden;padding:0 5px;opacity:0;pointer-events:none;min-width:100%}
.dd.open .dd-list{margin-top:6px;border:1px solid rgba(255,255,255,0.14);max-height:230px;overflow:auto;padding:5px;opacity:1;pointer-events:auto}
.dd-opt{padding:7px 11px;border-radius:7px;color:var(--text-dim);font-size:0.86rem;cursor:pointer;white-space:nowrap}
.dd-opt:hover{background:rgba(59,130,246,0.16);color:#fff}
.dd-opt.sel{background:rgba(59,130,246,0.12);color:#fff}
/* re-elaborate (back to form with new params) */
.chat-redo{align-self:flex-start;background:rgba(255,255,255,0.05);border:1px solid rgba(96,165,250,0.4);color:var(--accent2);border-radius:9px;padding:8px 14px;font-size:0.8rem;cursor:pointer;margin-bottom:12px}
.chat-redo:hover{background:rgba(59,130,246,0.14);color:#fff}
/* chat shell with sidebar */
.chat-shell{display:flex;gap:18px;border-top:1px solid rgba(255,255,255,0.08);margin-top:12px}
.chat-side{width:240px;flex-shrink:0;padding-top:14px;border-right:1px solid rgba(255,255,255,0.08)}
.chat-new{width:100%;cursor:pointer;border:1px solid rgba(96,165,250,0.5);background:rgba(59,130,246,0.12);color:#fff;border-radius:10px;padding:10px 12px;font-size:0.82rem;letter-spacing:0.04em;transition:all .2s}
.chat-new:hover{background:rgba(59,130,246,0.22)}
.conv-list{display:flex;flex-direction:column;gap:2px;margin-top:12px;max-height:52vh;overflow-y:auto}
.conv-item{display:flex;align-items:center;gap:4px;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--text-dim);font-size:0.85rem}
.conv-item:hover{background:rgba(255,255,255,0.05);color:#fff}
.conv-item.active{background:rgba(59,130,246,0.16);color:#fff}
.conv-item .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv-item .act{opacity:0.5;background:none;border:none;color:inherit;cursor:pointer;font-size:0.9rem;padding:2px 4px;line-height:1}
.conv-item:hover .act{opacity:0.8}
.conv-item .act:hover{opacity:1;color:var(--accent2)}
/* cartelle (folders) */
.chat-newfolder{margin-top:8px;background:rgba(255,255,255,0.04);border-color:rgba(255,255,255,0.14);color:var(--text-dim);font-size:0.78rem}
.chat-newfolder:hover{background:rgba(255,255,255,0.08);color:#fff}
.rag-link{margin-top:5px;font-size:0.72rem}
.rag-link a{color:var(--accent2);text-decoration:none}
.rag-link a:hover{text-decoration:underline}
.rag-badge{margin-top:9px;font-size:0.73rem;color:var(--text-dim);background:rgba(59,130,246,0.08);border:1px solid rgba(96,165,250,0.25);border-radius:8px;padding:5px 10px;display:inline-block}
.verif-done{margin-top:9px;font-size:0.73rem;color:#86efac;background:rgba(34,197,94,0.08);border:1px solid rgba(134,239,172,0.3);border-radius:8px;padding:5px 10px;display:inline-block}
.rag-modal-body{font-size:0.9rem;line-height:1.55;color:var(--text)}
.rag-modal-body p{margin:0 0 10px}
.rag-box{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:22px 24px;background:rgba(255,255,255,0.02)}
.rag-form{margin-top:16px;display:flex;flex-direction:column;gap:12px;max-width:640px}
.rag-form input[type=file]{color:var(--text-dim);font-size:0.85rem}
.rag-form textarea{width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:9px;color:#fff;padding:9px 11px;font:inherit;font-size:0.88rem;resize:vertical}
.rag-form textarea:focus{outline:none;border-color:var(--accent2)}
.rag-subjects{display:flex;flex-wrap:wrap;gap:8px 14px}
.rag-subj{font-size:0.82rem;color:var(--text);display:inline-flex;align-items:center;gap:5px;cursor:pointer}
.rag-form-actions{display:flex;align-items:center;gap:14px}
.rag-status{font-size:0.82rem;color:var(--text-dim)}
.rag-list{margin-top:22px;display:flex;flex-direction:column;gap:10px}
.rag-item{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;border:1px solid rgba(255,255,255,0.1);border-radius:10px;padding:12px 14px;background:rgba(255,255,255,0.02)}
.rag-item-name{font-weight:600;color:#fff;font-size:0.92rem}
.rag-item-note{color:var(--text);font-size:0.82rem;margin-top:3px}
.rag-item-meta{color:var(--text-dim);font-size:0.76rem;margin-top:4px;text-transform:capitalize}
.rag-del{flex-shrink:0;cursor:pointer;background:rgba(248,113,113,0.1);border:1px solid rgba(248,113,113,0.4);color:#fca5a5;border-radius:8px;padding:6px 12px;font-size:0.78rem;transition:all .2s}
.rag-del:hover{background:rgba(248,113,113,0.2);color:#fff}
.rag-fd-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto;margin-bottom:6px}
.rag-fd-item{display:flex;align-items:flex-start;gap:9px;font-size:0.86rem;color:var(--text);cursor:pointer;padding:7px 9px;border:1px solid rgba(255,255,255,0.1);border-radius:8px}
.rag-fd-item:hover{border-color:var(--accent2)}
.rag-fd-item input{margin-top:3px}
.rag-fd-sub{color:var(--text-dim);font-size:0.8rem}
.qz-rag{font-size:0.72rem;color:var(--accent2);margin:-2px 0 8px}
.rag-acro{color:var(--text-dim)}
.rag-mm-desc{color:var(--text-dim);font-size:0.85rem;margin:2px 0 14px}
.rag-mm-empty{color:var(--text-dim);font-size:0.85rem;margin:14px 0 0}
.dc-modal-box.wide .rag-form{max-width:none}
.buy-box{border:1px solid rgba(255,255,255,0.1);border-radius:14px;padding:22px 24px;background:rgba(255,255,255,0.02)}
.buy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:18px}
.buy-card{position:relative;border:1px solid rgba(255,255,255,0.12);border-radius:14px;padding:22px 18px 20px;background:rgba(255,255,255,0.025);text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;transition:border-color .2s,transform .2s}
.buy-card:hover{border-color:var(--accent2);transform:translateY(-2px)}
.buy-card.pop{border-color:rgba(58,160,255,0.55);background:rgba(58,160,255,0.06)}
.buy-pop{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,#1e62d0,#3aa0ff);color:#fff;font-size:0.62rem;letter-spacing:0.08em;text-transform:uppercase;padding:3px 11px;border-radius:999px;white-space:nowrap}
.buy-name{font-size:0.82rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-dim)}
.buy-cr{font-size:2rem;font-weight:700;color:#fff;line-height:1.05}
.buy-cr span{display:block;font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-dim);font-weight:400;margin-top:2px}
.buy-price{font-size:1.15rem;font-weight:600;color:var(--accent2);margin-top:4px}
.buy-ppc{font-size:0.72rem;color:var(--text-dim)}
.buy-btn{margin-top:12px;width:100%}
.buy-banner{border-radius:12px;padding:13px 18px;font-size:0.9rem;border:1px solid}
.buy-banner.ok{background:rgba(52,211,153,0.1);border-color:rgba(52,211,153,0.4);color:#6ee7b7}
.buy-banner.warn{background:rgba(251,191,36,0.1);border-color:rgba(251,191,36,0.4);color:#fcd34d}
.buy-note{color:var(--text-dim);font-size:0.78rem;margin-top:14px}
.buy-price small{font-size:0.72rem;color:var(--text-dim);font-weight:400}
.sub-active{margin-top:8px}
.sub-cur{border:1px solid rgba(58,160,255,0.4);background:rgba(58,160,255,0.06);border-radius:14px;padding:20px 22px;max-width:460px}
.sub-cur-name{font-size:1.4rem;font-weight:700;color:#fff;margin-top:2px}
.sub-cur-allow{margin-top:12px;color:var(--text);font-size:0.95rem}
.sub-cur-allow b{color:var(--accent2);font-size:1.2rem}
.sub-cur-ren{margin-top:6px;color:var(--text-dim);font-size:0.82rem}
.chat-back-menu{display:block;text-align:center;text-decoration:none;margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,0.08);color:var(--text-dim);font-size:0.78rem;letter-spacing:0.02em;transition:color .2s}
.chat-back-menu:hover{color:var(--accent2)}
.fold-head{display:flex;align-items:center;gap:6px;margin-top:6px;padding:7px 10px;border-radius:8px;cursor:pointer;color:var(--text);font-size:0.82rem}
.fold-head:hover{background:rgba(255,255,255,0.05)}
.fold-head .fcar{font-size:0.55rem;color:var(--text-dim);transition:transform .15s;flex-shrink:0}
.fold-head.open .fcar{transform:rotate(90deg)}
.fold-head .ft{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.fold-head .fn{font-size:0.7rem;color:var(--text-dim);background:rgba(255,255,255,0.06);border-radius:999px;padding:0 7px;min-width:18px;text-align:center}
.fold-head .act{opacity:0.5;background:none;border:none;color:inherit;cursor:pointer;font-size:0.85rem;padding:2px 3px;line-height:1}
.fold-head:hover .act{opacity:0.8}
.fold-head .act:hover{opacity:1;color:var(--accent2)}
.fold-body{margin-left:9px;border-left:1px solid rgba(255,255,255,0.08);padding-left:4px}
.fold-sep{font-size:0.64rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-dim);opacity:0.6;margin:14px 0 4px;padding:0 10px}
.mvmenu{position:fixed;z-index:120;background:#0b1018;border:1px solid rgba(255,255,255,0.16);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,0.5);padding:5px;min-width:170px;max-width:240px;max-height:280px;overflow-y:auto}
.mvmenu>div{padding:8px 11px;border-radius:7px;color:var(--text-dim);font-size:0.84rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mvmenu>div:hover{background:rgba(59,130,246,0.16);color:#fff}
.mvmenu .mv-cur{color:#fff}
.mvmenu .mv-new{color:var(--accent2)}
.mvmenu .mv-sep{border-top:1px solid rgba(255,255,255,0.1);margin:4px 2px;padding:0;height:0;pointer-events:none}
.mvmenu .mv-del{color:#fca5a5}
.mvmenu .mv-del:hover{background:rgba(239,68,68,0.16);color:#fff}
/* conversation list: search, single ⋯ action, date groups */
.conv-search{width:100%;margin-top:10px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.14);border-radius:9px;color:#fff;padding:8px 11px;font:inherit;font-size:0.85rem}
.conv-search:focus{outline:none;border-color:var(--accent2)}
.conv-search::placeholder{color:var(--text-dim)}
.conv-daygroup{font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-dim);opacity:0.7;margin:16px 0 4px;padding:0 10px}
.conv-empty{color:var(--text-dim);font-size:0.85rem;padding:14px 10px;text-align:center}
.conv-item .conv-more,.fold-head .fold-more{opacity:0.45;flex-shrink:0;background:none;border:none;color:inherit;cursor:pointer;font-size:1.05rem;line-height:1;padding:2px 7px;border-radius:6px;letter-spacing:1px}
.conv-item:hover .conv-more,.fold-head:hover .fold-more,.conv-item.active .conv-more{opacity:0.75}
.conv-item .conv-more:hover,.fold-head .fold-more:hover{opacity:1;background:rgba(255,255,255,0.08);color:#fff}
.chat-main{flex:1;min-width:0;display:flex;flex-direction:column;padding-top:14px}
.chat-burger{display:none;cursor:pointer;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.14);color:#fff;border-radius:8px;padding:7px 12px;font-size:0.8rem;margin-bottom:10px;align-self:flex-start}
.chat-side-bk{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:49}
@media(max-width:780px){
  .chat-shell{display:block;border-top:0}
  .chat-burger{display:inline-flex}
  .chat-side{position:fixed;left:0;top:52px;bottom:0;width:82%;max-width:300px;background:rgba(8,12,20,0.98);z-index:50;transform:translateX(-105%);transition:transform .2s;border-right:1px solid rgba(255,255,255,0.12);padding:16px;overflow-y:auto}
  .chat-side.open{transform:none}
  .chat-side.open ~ .chat-side-bk{display:block}
  .conv-list{max-height:none}
  /* compact header on the chat page */
  body.chat-page header{height:52px;padding:2px 1rem}
  body.chat-page .logo img{height:38px}
  body.chat-page .hamburger{top:14px}
  body.chat-page main.page > section{padding-top:64px}
  .chat-log{max-height:none;min-height:320px;flex:1}
  .chat-msg{max-width:92%}
  .att-thumb{width:64px;height:64px}
}
/* ── Soluzioni AI (catalogo pubblico) ── */
.sol-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;margin-top:40px}
.sol-card{display:block;text-decoration:none;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);transition:transform .3s,border-color .3s}
.sol-card:hover{transform:translateY(-4px);border-color:rgba(59,130,246,0.4)}
.sol-card-img{aspect-ratio:16/10;background-size:cover;background-position:center;background-color:#0a0f1a}
.sol-card-b{padding:18px}
.sol-card .cat{font-size:0.6rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--accent2)}
.sol-card h3{font-size:1.05rem;color:#fff;margin:6px 0 8px;font-weight:500}
/* persona name big, the "· descriptor" smaller (e.g. "Newton · Fisica, matematica e scienze") */
.t-sub{font-size:0.62em;font-weight:400;color:var(--text-dim);letter-spacing:0}
.sol-card p{font-size:0.85rem;color:var(--text-dim);line-height:1.6;margin:0}
.sol-hero-img{width:100%;max-height:360px;object-fit:cover;border-radius:14px;margin-top:22px;border:1px solid rgba(255,255,255,0.08)}
.sol-ex{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.sol-ex span{font-size:0.85rem;color:var(--text-dim);background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:999px;padding:8px 14px}

/* ── Spec list ── */
.spec-list{list-style:none;margin:20px 0 0;padding:0}
.spec-list li{display:flex;gap:18px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,0.07);font-size:0.9rem}
.spec-list li:last-child{border-bottom:none}
.spec-list .k{min-width:140px;color:var(--accent2);font-weight:500;font-size:0.82rem}
.spec-list .v{color:var(--text-dim);font-weight:300;line-height:1.65}

/* ── Pullquote ── */
.pullquote{margin:38px 0;padding:6px 0 6px 24px;border-left:3px solid var(--accent);font-size:1.3rem;line-height:1.6;font-weight:300;color:#fff}
.pullquote span{color:var(--accent)}
/* ── Chi siamo: founder mini-portrait ── */
.founder{display:flex;align-items:center;gap:16px;margin:2px 0 26px}
.founder img{width:112px;height:112px;border-radius:50%;object-fit:cover;border:2px solid rgba(59,130,246,0.35);flex-shrink:0}
.founder .fn{font-size:0.86rem;color:var(--text-dim);line-height:1.55}
.founder .fn strong{display:block;color:#fff;font-weight:500;font-size:0.98rem;margin-bottom:2px}
/* ── Hero with full-bleed background graphic + readable overlay ── */
.page-hero.hero-bg{position:relative;overflow:hidden}
.page-hero.hero-bg .hero-bg-layer{position:absolute;inset:0;background-size:cover;background-position:center right;z-index:0}
.page-hero.hero-bg::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,11,20,0.9) 0%,rgba(8,11,20,0.72) 38%,rgba(8,11,20,0.34) 70%,rgba(8,11,20,0.08) 100%)}
.page-hero.hero-bg .wrap{position:relative;z-index:2}
.page-hero.hero-bg .section-desc{max-width:620px}
@media(max-width:760px){
  .page-hero.hero-bg .hero-bg-layer{background-position:center}
  .page-hero.hero-bg::before{background:linear-gradient(180deg,rgba(8,11,20,0.6) 0%,rgba(8,11,20,0.78) 55%,rgba(8,11,20,0.9) 100%)}
}

/* ── Mobile: stat counters stacked & centered (number over multi-line label) ── */
@media(max-width:768px){
  .case-results{flex-direction:column;align-items:center;gap:26px;text-align:center;width:100%}
  .case-stat{flex-direction:column;align-items:center;gap:6px}
  .case-stat-num{font-size:2.6rem;line-height:1}
  .case-stat-label{max-width:15em;line-height:1.45}
}

/* ── Newton "in azione" demo (soluzioni/scienze) ── */
.nd-wrap{padding:44px 0 6px}
.nd-h{font-size:1.5rem;text-align:center}
.nd-sub{text-align:center;max-width:640px;margin:6px auto 24px}
.nd-sub a{color:var(--accent2);text-decoration:none;white-space:nowrap}
.nd-card{max-width:460px;margin:0 auto;background:rgba(10,14,22,0.92);border:1px solid rgba(255,255,255,0.1);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,0.4);overflow:hidden}
.nd-head{display:flex;align-items:center;gap:7px;padding:11px 16px;border-bottom:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03)}
.nd-dot{width:10px;height:10px;border-radius:50%}
.nd-dot:nth-child(1){background:#ff5f57}.nd-dot:nth-child(2){background:#febc2e}.nd-dot:nth-child(3){background:#28c840}
.nd-htitle{margin-left:8px;font-weight:600;color:#fff;font-size:0.9rem}
.nd-badge2{margin-left:auto;font-size:0.64rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent2);border:1px solid rgba(96,165,250,0.4);border-radius:6px;padding:2px 7px}
.nd-log{height:360px;overflow:hidden;padding:16px;display:flex;flex-direction:column;gap:10px}
.nd-log.nd-static{height:auto;overflow:visible}
.nd-msg{max-width:86%;padding:9px 13px;border-radius:14px;font-size:0.86rem;line-height:1.5;animation:ndIn .25s ease}
.nd-msg p{margin:0}
.nd-msg.user{align-self:flex-end;background:linear-gradient(135deg,var(--accent),#2563eb);color:#fff;border-bottom-right-radius:5px}
.nd-msg.ai{align-self:flex-start;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.09);color:var(--text);border-bottom-left-radius:5px}
@keyframes ndIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.nd-typing{display:flex;gap:4px;align-items:center}
.nd-typing i{width:6px;height:6px;border-radius:50%;background:var(--text-dim);animation:ndBlink 1s infinite}
.nd-typing i:nth-child(2){animation-delay:.15s}.nd-typing i:nth-child(3){animation-delay:.3s}
@keyframes ndBlink{0%,60%,100%{opacity:.25}30%{opacity:1}}
.nd-input{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03)}
.nd-inp{flex:1;min-height:18px;color:var(--text);font-size:0.86rem;white-space:nowrap;overflow:hidden}
.nd-inp:empty::before{content:'…';color:var(--text-dim)}
.nd-send{width:30px;height:30px;flex-shrink:0;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:0.8rem}
.nd-cap{max-width:540px;margin:18px auto 0;min-height:50px;text-align:center}
.nd-cap-t{color:var(--text);font-size:0.95rem;line-height:1.55;display:block}
.nd-formula{font-family:var(--font-mono,monospace);font-size:1.05rem;color:#fff;margin:2px 0 8px}
.nd-chip{display:inline-block;background:rgba(59,130,246,0.16);border:1px solid rgba(96,165,250,0.4);color:var(--accent2);border-radius:999px;padding:4px 12px;font-size:0.78rem}
.nd-chip.dl{background:rgba(34,197,94,0.12);border-color:rgba(134,239,172,0.4);color:#86efac}
.nd-map{background:#fff;border-radius:10px;padding:8px;max-width:280px}
.nd-svg{width:100%;height:auto;display:block}
.nd-svg line{stroke:#9bb5d6;stroke-width:2}
.nd-svg rect{fill:#eef3fb;stroke:#9bb5d6;stroke-width:1.5}
.nd-svg rect.c{fill:#2563eb;stroke:#2563eb}
.nd-svg text{fill:#1e293b;font-size:11px;text-anchor:middle;font-family:inherit}
.nd-svg rect.c+text{fill:#fff;font-weight:600}
.nd-quiz{display:flex;flex-direction:column;gap:6px}
.nd-q{font-weight:600;color:#fff;margin-bottom:2px}
.nd-o{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);border-radius:9px;padding:7px 11px;font-size:0.82rem;transition:all .35s}
.nd-o.ok{background:rgba(34,197,94,0.18);border-color:rgba(134,239,172,0.5);color:#bbf7d0}
.nd-score{margin-top:4px;align-self:flex-start;background:rgba(34,197,94,0.16);border:1px solid rgba(134,239,172,0.45);color:#86efac;border-radius:8px;padding:4px 11px;font-size:0.82rem;font-weight:600;animation:ndIn .3s ease}
.nd-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.nd-badge{font-size:0.72rem;border-radius:999px;padding:3px 10px;border:1px solid}
.nd-badge.blu{background:rgba(59,130,246,0.1);border-color:rgba(96,165,250,0.35);color:var(--accent2)}
.nd-badge.grn{background:rgba(34,197,94,0.1);border-color:rgba(134,239,172,0.35);color:#86efac}
.nd-calc{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.12);border-radius:12px;padding:11px 13px;display:flex;flex-direction:column;gap:6px;min-width:235px}
.nd-calc-t{font-family:var(--font-mono,monospace);color:#fff;font-size:0.95rem;margin-bottom:3px}
.nd-cv{display:flex;justify-content:space-between;gap:14px;font-size:0.82rem;color:var(--text-dim)}
.nd-cv b{color:#fff;font-weight:600}
.nd-cv-dyn b{color:var(--accent2)}
.nd-calc-r{display:flex;justify-content:space-between;gap:14px;border-top:1px solid rgba(255,255,255,0.12);padding-top:6px;margin-top:2px;font-size:0.9rem}
.nd-calc-r b{color:#86efac;font-weight:700}
.flash{animation:ndFlash .5s ease}
@keyframes ndFlash{0%{background:rgba(96,165,250,0.4);border-radius:4px}100%{background:transparent}}
.nd-form{display:flex;flex-direction:column;gap:13px;padding:8px 2px}
.ndf-row{display:flex;align-items:center;gap:12px}
.ndf-row label{width:84px;flex-shrink:0;font-size:0.8rem;color:var(--text-dim)}
.ndf-dd{flex:1;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.14);border-radius:9px;padding:8px 12px;font-size:0.85rem;color:var(--text);transition:all .25s}
.ndf-dd.open{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(96,165,250,0.18)}
.ndf-dd.done .ndf-val{color:#fff;font-weight:600}
.ndf-car{color:var(--text-dim)}
.ndf-slider{flex:1;position:relative;height:6px;background:rgba(255,255,255,0.12);border-radius:99px}
.ndf-fill{position:absolute;left:0;top:0;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:99px;transition:width .7s ease}
.ndf-knob{position:absolute;top:50%;left:0;width:14px;height:14px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);transition:left .7s ease}
.ndf-toggles{display:flex;gap:14px;flex-wrap:wrap}
.ndf-tog{display:inline-flex;align-items:center;gap:7px;font-size:0.82rem;color:var(--text-dim)}
.ndf-tog i{width:32px;height:18px;border-radius:99px;background:rgba(255,255,255,0.14);position:relative;transition:background .3s}
.ndf-tog i::after{content:'';position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:left .3s}
.ndf-tog.on{color:#fff}
.ndf-tog.on i{background:var(--accent)}
.ndf-tog.on i::after{left:16px}
.ndf-go{margin-top:4px;border:none;cursor:default;background:linear-gradient(135deg,var(--accent),#2563eb);color:#fff;border-radius:11px;padding:10px;font-size:0.78rem;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;transition:transform .15s,filter .15s}
.ndf-go.press{transform:scale(0.96);filter:brightness(1.2)}
@media(max-width:520px){.nd-card{max-width:none}.nd-log{height:340px}}
.nd-grid{display:grid;grid-template-columns:minmax(0,460px) 1fr;gap:46px;align-items:start;max-width:1000px;margin:0 auto}
.nd-col-demo{min-width:0}
.nd-col-demo .nd-cap{margin-left:0;margin-right:0}
.nd-list-h{font-size:0.82rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--accent2);font-weight:700;margin:6px 0 16px}
.nd-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.nd-list li{position:relative;padding-left:28px;color:var(--text);font-size:0.94rem;line-height:1.5}
.nd-list li::before{content:'\2713';position:absolute;left:0;top:0;color:var(--accent2);font-weight:700}
.nd-cta{display:inline-block;margin-top:24px}
@media(max-width:860px){.nd-grid{grid-template-columns:1fr;gap:30px}.nd-col-list{max-width:480px;margin:0 auto;width:100%}}
/* subject picker modal */
.subj-search{width:100%;margin-bottom:10px}
.subj-list{max-height:55vh;overflow-y:auto;margin-bottom:4px}
.subj-cat{display:flex;align-items:center;gap:9px;width:100%;text-align:left;cursor:pointer;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.1);border-radius:9px;padding:10px 13px;margin:7px 0 0;color:#fff;font-size:0.88rem;font-weight:600;transition:all .15s}
.subj-cat:hover{border-color:var(--accent2);background:rgba(59,130,246,0.08)}
.subj-car{display:inline-block;color:var(--accent2);font-size:0.78rem;transition:transform .18s}
.subj-cat.open .subj-car{transform:rotate(90deg)}
.subj-cnt{margin-left:auto;color:var(--text-dim);font-weight:400;font-size:0.78rem}
.subj-items{display:flex;flex-wrap:wrap;gap:7px;padding:8px 4px 12px}
.subj-it{cursor:pointer;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.14);color:var(--text);border-radius:9px;padding:7px 12px;font-size:0.84rem;transition:all .15s}
.subj-it:hover{background:rgba(59,130,246,0.18);border-color:var(--accent2);color:#fff}
.subj-empty{color:var(--text-dim);font-size:0.85rem}

.subj-checks{display:flex;flex-direction:column;gap:8px;padding:8px 6px 12px}
