  * { box-sizing: border-box; }
  
  img, svg, image-slot, video, canvas,
  .cf-badge, .cf-index, .pf-logo, .pf-gname, .num-big,
  [class*="badge"], [class*="eyebrow"], [class*="Eyebrow"], .ets-eyebrow {
    -webkit-user-select: none; -moz-user-select: none; user-select: none;
    -webkit-user-drag: none; user-drag: none;
  }
  img, image-slot, video, canvas { -webkit-touch-callout: none; }
  html, body { margin: 0; padding: 0; background: #09080D; }
  #app-scroll { height: 100vh; overflow-y: auto; scroll-behavior: smooth; background: #fff; }
  ::selection { background: #FE6807; color: #FFFFFF; }
  .ets-burger { display: none; }
  .ets-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .ets-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
  button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
    outline: 2px solid #191BDF; outline-offset: 2px;
  }
  @media (max-width: 980px) {
    .ets-grid-3 { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 640px) {
    .ets-grid-3 { grid-template-columns: 1fr; }
    .ets-grid-2 { grid-template-columns: 1fr; }
  }
  @media (max-width: 920px) {
    .ets-service-row { grid-template-columns: 1fr !important; }
    .ets-service-row > div:first-child { order: 2 !important; }
    .ets-service-row > div:last-child { order: 1 !important; }
    .ets-story-grid { grid-template-columns: 1fr !important; }
    .ets-faq-grid { grid-template-columns: 1fr !important; gap: 32px !important; }
  }
  @media (max-width: 860px) {
    .ets-desktop-nav { display: none !important; }
    .ets-burger { display: flex !important; width: 44px !important; height: 44px !important; }
    .ets-footer-grid { grid-template-columns: 1fr 1fr !important; }
    .ets-foot-brand { grid-column: 1 / -1 !important; }
    .ets-contact-grid { grid-template-columns: 1fr !important; }
    .ets-launch-grid { grid-template-columns: 1fr !important; }
  }
  
  @media (max-width: 560px) {
    .ets-cta-text { display: none !important; }
    .ets-cta-btn { padding: 5px !important; gap: 0 !important; }
    .ets-header { padding: 12px 14px !important; }
  }
  @media (max-width: 640px) {
    .ets-hero-stats { flex-direction: column; align-items: flex-start !important; gap: 22px; }
    .ets-hero-stat { padding-left: 0 !important; padding-right: 0 !important; border-left: none !important; margin-bottom: 0 !important; }
    .ets-hero-stat span:last-child { max-width: none !important; }
  }

  
  @media (max-width: 560px) {
    .sol-etsbox-row { flex-direction: column !important; text-align: center; gap: 20px !important; }
    .sol-etsbox-logo { max-width: 70% !important; }
    .sol-etsbox-sep { width: 100% !important; height: 2px !important; align-self: auto !important; }
    /* Queste due erano fuori dalla media query per una graffa di troppo qui
       sopra: valendo a ogni larghezza tenevano i form a una colonna anche su
       desktop, form contatti compreso. */
    .ct-cta-cell { flex-basis: 100% !important; }
    .ets-form-grid { grid-template-columns: 1fr !important; }
  }
  
  @media (max-width: 768px) {
    .ets-btn { width: 100% !important; }
  }

  
  .ets-mcta {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 46; display: none;
    background: var(--ets-orange); border-top: 2px solid #B24700;
    box-shadow: 0 -8px 26px rgba(9,8,13,0.28);
    padding: 11px 16px calc(11px + env(safe-area-inset-bottom, 0px));
    transition: transform 380ms cubic-bezier(.5,0,.2,1);
  }
  .ets-mcta[data-hidden="1"] { transform: translateY(150%); }
  .ets-mcta a {
    display: flex; align-items: center; justify-content: center; gap: 10px;
    font-family: var(--font-display,'League Spartan'),sans-serif; font-weight: 700;
    font-size: 15.5px; text-transform: uppercase; letter-spacing: 0.02em;
    color: #fff; text-decoration: none; padding: 7px 6px;
  }
  .ets-mcta a:active { transform: scale(0.98); }
  @media (max-width: 768px) {
    .ets-mcta { display: block; }
    footer { padding-bottom: 96px !important; }
    /* La barra arancione in fondo copriva i bottoni tondi di WhatsApp e
       "torna su": sul telefono vanno alzati sopra di lei. */
    .ets-fab-wrap { bottom: calc(78px + env(safe-area-inset-bottom, 0px)) !important; }
  }

  
  a.ets-contact-box:hover {
    transform: translateY(-3px);
    box-shadow: 6px 6px 0 #09080D;
    border-color: #09080D !important;
  }
  a.ets-contact-box:active { transform: translateY(-1px); box-shadow: 3px 3px 0 #09080D; }

  
  .ets-logos-viewport {
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%);
  }
  .ets-logos-track { animation: ets-marquee-rev 110s linear infinite; }

  
  .ets-sector-track { animation: ets-marquee 28s linear infinite; }

  @keyframes ets-marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
  }
  @keyframes ets-marquee-rev {
    from { transform: translateX(-50%); }
    to   { transform: translateX(0); }
  }
  @keyframes ets-scroll-hint {
    0%, 100% { transform: translateY(0); opacity: .55; }
    50%      { transform: translateY(7px); opacity: 1; }
  }

  
  .pa-scene {
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    padding: clamp(96px,13vh,140px) 28px clamp(70px,9vh,104px);
    box-sizing: border-box;
    opacity: 0; transform: translateY(26px);
    transition: opacity .5s ease, transform .5s ease;
    pointer-events: none;
  }
  .pa-scene[data-state="active"] { opacity: 1; transform: none; pointer-events: auto; }
  .pa-scene[data-state="done"]   { opacity: 0; transform: translateY(-26px); }
  .pa-scene-inner { max-width: 1120px; width: 100%; position: relative; }
  .pa-num {
    position: absolute; top: clamp(54px,8vh,86px); right: clamp(16px,5vw,64px);
    font-family: var(--font-display,'League Spartan'); font-weight: 800;
    font-size: clamp(84px,16vw,220px); line-height: .8;
    color: rgba(255,255,255,.05); letter-spacing: -.04em;
    pointer-events: none; user-select: none;
  }

  
  .pa-r { opacity: 0; }
  .pa-scene[data-state="done"] .pa-r { opacity: 1 !important; transform: none !important; filter: none !important; }
  .pa-scene[data-state="active"] .pa-up.pa-in      { animation: pa-up      .72s cubic-bezier(.22,1,.36,1) both; }
  .pa-scene[data-state="active"] .pa-left.pa-in    { animation: pa-left    .70s cubic-bezier(.22,1,.36,1) both; }
  .pa-scene[data-state="active"] .pa-right.pa-in   { animation: pa-right   .70s cubic-bezier(.22,1,.36,1) both; }
  .pa-scene[data-state="active"] .pa-boulder.pa-in { animation: pa-boulder .5s cubic-bezier(.62,.04,.86,.16) both; }
  .pa-scene[data-state="active"] .pa-swipe.pa-in   { animation: pa-swipe   .66s cubic-bezier(.22,1,.36,1) both; }
  .pa-scene[data-state="active"] .pa-fade.pa-in    { animation: pa-fade    .60s ease both; }
  .pa-scene[data-state="active"] .crow.pa-in       { animation: pa-rowopen .52s cubic-bezier(.4,0,.2,1) both; }
  .pa-scene[data-state="active"] .pa-swipeout.pa-in{ animation: pa-swipeout .58s cubic-bezier(.55,0,.78,.2) both; }

  @keyframes pa-up    { from { opacity:0; transform: translateY(28px); } to { opacity:1; transform:none; } }
  @keyframes pa-left  { from { opacity:0; transform: translateX(-48px); } to { opacity:1; transform:none; } }
  @keyframes pa-right { from { opacity:0; transform: translateX(48px); } to { opacity:1; transform:none; } }
  @keyframes pa-swipe { 0% { opacity:0; transform: translateX(80px); } 55% { opacity:1; } 100% { opacity:1; transform:none; } }
  @keyframes pa-fade  { from { opacity:0; } to { opacity:1; } }
  @keyframes pa-swipeout { 0% { opacity:1; transform: translateX(0); } 100% { opacity:0; transform: translateX(-72vw); } }
  @keyframes pa-rowopen  { from { grid-template-rows: 0fr; } to { grid-template-rows: 1fr; } }
  @keyframes pa-boulder {
    0%   { opacity:0; transform: translateY(-50vh) scaleY(1.05); }
    62%  { opacity:1; }
    80%  { transform: translateY(0) scaleY(.86); }   
    100% { opacity:1; transform: translateY(0) scaleY(1); }
  }

  
  .crow { display: grid; grid-template-rows: 0fr; overflow: hidden; }
  .crow > * { min-height: 0; }
  .pa-scene[data-state="done"] .crow { grid-template-rows: 1fr !important; }
  .pa-scene[data-state="done"] .pa-swipeout { opacity: 0 !important; }

  
  .pa-uline {
    -webkit-box-decoration-break: clone; box-decoration-break: clone;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 10' preserveAspectRatio='none'%3E%3Cpath d='M1 6 Q 15 1.5 30 5 T 59 5' fill='none' stroke='%23FE6807' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: 0 100%;
    background-size: 0% 0.32em; padding-bottom: 0.2em;
  }
  .pa-scene[data-state="active"] .pa-uline.pa-in { animation: pa-uline .8s ease-out both; }
  .pa-scene[data-state="done"] .pa-uline { background-size: 100% 0.32em; }
  @keyframes pa-uline { from { background-size: 0% 0.32em; } to { background-size: 100% 0.32em; } }

  
  @keyframes pa-neon {
    0%,17%,21%,24%,52%,56%,100% { opacity:1; text-shadow: 0 0 7px rgba(254,104,7,.6), 0 0 24px rgba(254,104,7,.35); }
    19%,23%,54% { opacity:.5; text-shadow:none; }
  }
  .pa-scene[data-state="active"] .pa-neon.pa-in { animation: pa-left .68s cubic-bezier(.22,1,.36,1) 500ms both, pa-neon 3.2s linear 1300ms infinite; }

  
  @keyframes pa-caret { 0%,100% { opacity:1; } 50% { opacity:0; } }

  
  .pa-gate { position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: rgba(255,255,255,0.08); z-index: 6; overflow: hidden; }
  .pa-gate-fill { position: absolute; left: 0; top: 0; bottom: 0; width: 100%; background: var(--ets-orange); transform-origin: left center; transform: scaleX(0); animation: pa-gatefill linear forwards; }
  @keyframes pa-gatefill { from { transform: scaleX(0); } to { transform: scaleX(1); } }

  
  .sol-stage {
    position: relative; width: 100%;
    height: clamp(480px, 62vh, 600px);
    margin-top: clamp(26px, 3.5vw, 48px);
    --rest: clamp(200px, 21vw, 320px);
  }
  
  .sol-pin {
    position: sticky; top: 0; height: 100vh; overflow: hidden;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: clamp(14px, 2.6vh, 30px); padding: clamp(58px, 9vh, 102px) 28px clamp(38px, 6vh, 62px);
    box-sizing: border-box;
    transition: gap .55s cubic-bezier(.4,0,.2,1), padding-top .55s cubic-bezier(.4,0,.2,1);
  }
  .sol-pin-head { width: 100%; max-width: 1240px; }
  
  .sol-pin.fusing { gap: 0; padding-top: clamp(38px, 6vh, 62px); }
  .sol-stage-pin { height: auto; flex: 1 1 auto; min-height: 320px; max-width: 1240px; margin-top: 0; }
  .sol-rail { position: absolute; right: clamp(14px,3vw,34px); top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 10px; z-index: 6; }
  .sol-rail-dot { width: 8px; height: 8px; border-radius: 999px; background: rgba(255,255,255,.22); transition: all 240ms cubic-bezier(.22,1,.36,1); }
  .sol-rail-dot.on { height: 24px; background: #FE6807; }
  .sol-hint { position: absolute; bottom: clamp(18px,4vh,36px); left: 0; right: 0; display: flex; flex-direction: column; align-items: center; gap: 6px; font-family: var(--font-body,'Montserrat'); font-size: 11.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,.6); transition: opacity 300ms; pointer-events: none; z-index: 6; }
  .sol-hint-chev { display: inline-flex; animation: ets-scroll-hint 1.5s ease-in-out infinite; }
  
  .sol-orbitfield { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden;
    -webkit-mask-image: radial-gradient(125% 76% at 50% 45%, #000 58%, transparent 100%);
    mask-image: radial-gradient(125% 76% at 50% 45%, #000 58%, transparent 100%); }
  .sol-star { position: absolute; width: 2px; height: 2px; border-radius: 50%; background: rgba(255,255,255,.7); transform: translate(-50%,-50%); animation: sol-twinkle 3.4s ease-in-out infinite; }
  @keyframes sol-twinkle { 0%,100% { opacity: .25; } 50% { opacity: .9; } }
  .sol-orbit { position: absolute; top: 50%; left: 50%; width: 0; height: 0; transition: transform 1.1s cubic-bezier(.32,0,.67,0), opacity .8s ease; }
  .sol-orbit.collapsed { transform: scale(.18); opacity: 0; }
  .sol-ring { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); border-radius: 50%; border: 1px solid rgba(255,255,255,.09); }
  .sol-ring:nth-child(1) { border-color: rgba(254,104,7,.18); }
  .sol-spin { position: absolute; top: 50%; left: 50%; width: 0; height: 0; animation: sol-spin 70s linear infinite; }
  @keyframes sol-spin { to { transform: rotate(360deg); } }
  .sol-moon { position: absolute; border-radius: 50%; transform: translate(-50%,-50%); }
  .sol-planet { position: absolute; left: 0; border-radius: 50%; transform: translate(-50%,-50%); }
  .sol-planet-ring { position: absolute; top: 50%; left: 50%; width: 250%; height: 250%; transform: translate(-50%,-50%) rotate(24deg); border-radius: 50%; border: 1.5px solid rgba(255,255,255,.5); border-left-color: transparent; border-right-color: transparent; }
  .sol-sun {
    position: absolute; top: 50%; left: 50%; width: 74px; height: 74px;
    transform: translate(-50%,-50%); border-radius: 50%; background: #FE6807;
    box-shadow: 0 0 46px 6px rgba(254,104,7,.38), 0 0 0 7px rgba(254,104,7,.10);
    animation: sol-sun-pulse 4.6s ease-in-out infinite;
  }
  .sol-sun.bloom { animation: none; box-shadow: 0 0 120px 40px rgba(254,104,7,.55), 0 0 0 18px rgba(254,104,7,.18); }
  @keyframes sol-sun-pulse {
    0%,100% { box-shadow: 0 0 42px 5px rgba(254,104,7,.34), 0 0 0 6px rgba(254,104,7,.09); }
    50%     { box-shadow: 0 0 62px 11px rgba(254,104,7,.5), 0 0 0 10px rgba(254,104,7,.15); }
  }

  .sol-wrap {
    position: absolute; top: 0; bottom: 0; left: 50%; z-index: 2;
    display: flex; align-items: center; will-change: transform;
  }
  .sol-web  { transform: translateX(-100vw); transition: transform 1.2s cubic-bezier(.22,1,.36,1); }
  .sol-web.in  { transform: translateX(calc(-50% - var(--rest))); }
  .sol-eng  { transform: translateX(100vw);  transition: transform 1.2s cubic-bezier(.22,1,.36,1); }
  .sol-eng.in  { transform: translateX(calc(-50% + var(--rest))); }
  .sol-web.collide, .sol-eng.collide { transform: translateX(-50%); transition: transform .7s cubic-bezier(.32,0,.67,0); }
  
  .sol-orb { position: absolute; top: 50%; left: 50%; width: 110px; height: 110px; border-radius: 50%; transform: translate(-50%,-50%) scale(.45); opacity: 0; pointer-events: none; transition: opacity .4s ease, transform .55s cubic-bezier(.22,1,.36,1); }
  .sol-web-orb { background: radial-gradient(circle, #ffffff 0%, #d7e6ff 50%, rgba(150,185,255,0) 72%); box-shadow: 0 0 46px 14px rgba(200,222,255,.55); }
  .sol-eng-orb { background: radial-gradient(circle, #ffffff 0%, #ffd2ac 48%, rgba(254,104,7,0) 72%); box-shadow: 0 0 46px 14px rgba(254,140,40,.5); }
  .sol-wrap.orb .sol-float > div { opacity: 0; transition: opacity .35s ease; }
  .sol-wrap.orb .sol-orb { opacity: 1; transform: translate(-50%,-50%) scale(1); }
  .sol-wrap.gone { opacity: 0; visibility: hidden; transition: none; }

  
  .sol-binary { position: absolute; top: 50%; left: 50%; width: 0; height: 0; z-index: 5; opacity: 0; pointer-events: none; transition: opacity .45s ease; }
  .sol-binary.show { opacity: 1; }
  .sol-binary.gone { opacity: 0; transition: opacity .18s ease; }
  .sol-binary-rot { position: absolute; top: 0; left: 0; }
  .sol-binary.spin .sol-binary-rot { animation: sol-bin-spin 2.6s cubic-bezier(.4,0,.85,.45) forwards; }
  @keyframes sol-bin-spin { from { transform: rotate(0deg); } to { transform: rotate(1480deg); } }
  .sol-bstar { position: absolute; top: 0; left: 0; width: 84px; height: 84px; border-radius: 50%; transform: translate(-50%,-50%); }
  
  .sol-bstar-a { background: radial-gradient(circle, #ffffff 0%, #ffffff 56%, rgba(25,27,223,0) 76%); box-shadow: 0 0 40px 13px rgba(25,27,223,.6); }
  .sol-bstar-b { background: radial-gradient(circle, #ffffff 0%, #ffffff 56%, rgba(254,104,7,0) 76%); box-shadow: 0 0 40px 13px rgba(254,104,7,.6); }
  .sol-bstar-logo { position: absolute; top: 50%; left: 50%; width: 74%; height: 74%; transform: translate(-50%,-50%); object-fit: contain; user-select: none; pointer-events: none; }
  
  .sol-binary.show .sol-bstar-a { transform: translate(calc(-50% - var(--rest)), -50%); }
  .sol-binary.show .sol-bstar-b { transform: translate(calc(-50% + var(--rest)), -50%); }
  .sol-binary.show:not(.spin) .sol-bstar-a { animation: sol-bstar-rest-a 2.8s ease-in-out infinite; }
  .sol-binary.show:not(.spin) .sol-bstar-b { animation: sol-bstar-rest-b 2.8s ease-in-out infinite; }
  @keyframes sol-bstar-rest-a { 0%,100% { box-shadow: 0 0 34px 10px rgba(25,27,223,.5); } 50% { box-shadow: 0 0 56px 18px rgba(25,27,223,.72); } }
  @keyframes sol-bstar-rest-b { 0%,100% { box-shadow: 0 0 34px 10px rgba(254,104,7,.5); } 50% { box-shadow: 0 0 56px 18px rgba(254,104,7,.72); } }
  .sol-binary.spin .sol-bstar-a { animation: sol-inspiral-a 2.6s cubic-bezier(.45,0,.85,.4) forwards; }
  .sol-binary.spin .sol-bstar-b { animation: sol-inspiral-b 2.6s cubic-bezier(.45,0,.85,.4) forwards; }
  @keyframes sol-inspiral-a {
    0%   { transform: translate(calc(-50% - var(--rest)), -50%) scale(1); }
    55%  { transform: translate(calc(-50% - var(--rest) * .60), -50%) scale(1.06); }
    82%  { transform: translate(calc(-50% - var(--rest) * .24), -50%) scale(1.14); }
    100% { transform: translate(-50%, -50%) scale(1.32); }
  }
  @keyframes sol-inspiral-b {
    0%   { transform: translate(calc(-50% + var(--rest)), -50%) scale(1); }
    55%  { transform: translate(calc(-50% + var(--rest) * .60), -50%) scale(1.06); }
    82%  { transform: translate(calc(-50% + var(--rest) * .24), -50%) scale(1.14); }
    100% { transform: translate(-50%, -50%) scale(1.32); }
  }
  
  .sol-spark { position: absolute; top: 50%; left: 50%; width: 78px; height: 78px; transform: translate(-50%,-50%) scale(.7); background: rgba(255,255,255,.92); clip-path: polygon(50% 0%, 57% 43%, 100% 50%, 57% 57%, 50% 100%, 43% 57%, 0% 50%, 43% 43%); opacity: .2; pointer-events: none; animation: sol-spark-tw 2.6s ease-in-out infinite; }
  .sol-spark2 { width: 42px; height: 42px; top: 22%; left: 76%; animation-duration: 1.9s; animation-delay: .55s; }
  .sol-bstar-a .sol-spark { background: rgba(206,216,255,.95); }
  .sol-bstar-b .sol-spark { background: rgba(255,222,190,.95); }
  @keyframes sol-spark-tw {
    0%,100% { opacity: .1;  transform: translate(-50%,-50%) scale(.6)  rotate(0deg); }
    50%     { opacity: .85; transform: translate(-50%,-50%) scale(1.05) rotate(45deg); }
  }
  .sol-binary-trail { position: absolute; top: 50%; left: 50%; width: calc(var(--rest) * 2 + 120px); height: 120px; transform: translate(-50%,-50%); border-radius: 50%; background: radial-gradient(ellipse at center, rgba(120,135,255,.16) 0%, rgba(254,104,7,.1) 52%, rgba(254,104,7,0) 68%); filter: blur(8px); opacity: 0; }
  .sol-binary.spin .sol-binary-trail { animation: sol-bin-trail 2.6s ease-in forwards; }
  @keyframes sol-bin-trail {
    0%   { opacity: 0; transform: translate(-50%,-50%) rotate(0deg) scale(1); }
    24%  { opacity: .58; }
    100% { opacity: 0; transform: translate(-50%,-50%) rotate(520deg) scale(.2); }
  }

  
  .sol-fuse-holder { position: relative; display: flex; justify-content: center; }
  .sol-fuse-box { position: relative; z-index: 1; display: block; }
  .sol-dust { position: absolute; top: 50%; left: 50%; width: 0; height: 0; z-index: 0; pointer-events: none; }
  .sol-dust span { position: absolute; top: 0; left: 0; width: var(--s); height: var(--s); margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2); border-radius: 50%; background: var(--c); box-shadow: 0 0 6px var(--c); opacity: 0; transform: rotate(var(--a)) translateX(8px) scale(.2); }
  .sol-dust.go span { animation: sol-dust-fly var(--dur) cubic-bezier(.2,.7,.3,1) forwards var(--delay); }
  @keyframes sol-dust-fly {
    0%   { opacity: 0; transform: rotate(var(--a)) translateX(8px) scale(.2); }
    22%  { opacity: .9; }
    100% { opacity: 0; transform: rotate(var(--a)) translateX(var(--d)) scale(.95); }
  }

  .sol-float { will-change: transform; position: relative; }
  .sol-float.floatA { animation: sol-orbit-a 7s linear infinite; }
  .sol-float.floatB { animation: sol-orbit-b 9s linear infinite; }
  @keyframes sol-orbit-a {
    0%   { transform: translate(0, -17px); }
    25%  { transform: translate(17px, 0); }
    50%  { transform: translate(0, 17px); }
    75%  { transform: translate(-17px, 0); }
    100% { transform: translate(0, -17px); }
  }
  @keyframes sol-orbit-b {
    0%   { transform: translate(0, -17px); }
    25%  { transform: translate(-17px, 0); }
    50%  { transform: translate(0, 17px); }
    75%  { transform: translate(17px, 0); }
    100% { transform: translate(0, -17px); }
  }

  .sol-textwrap {
    position: absolute; top: 0; bottom: 0; display: flex; align-items: center; z-index: 3;
    width: clamp(290px, 31vw, 430px); pointer-events: none;
  }
  .sol-textwrap.right { right: clamp(12px, 4vw, 44px); }
  .sol-textwrap.left  { left:  clamp(12px, 4vw, 44px); }
  .sol-reveal { opacity: 0; transform: translateY(20px); transition: opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1); }
  .sol-reveal.in  { opacity: 1; transform: none; }
  .sol-reveal.out { opacity: 0; transform: translateY(-20px); transition: opacity .5s ease, transform .5s ease; }

  .sol-ets {
    position: absolute; inset: 0; display: flex; flex-direction: column; z-index: 4;
    align-items: center; justify-content: center; gap: clamp(22px, 3.4vh, 40px);
    padding: 0 22px; opacity: 0; pointer-events: none;
  }
  .sol-ets.in { opacity: 1; pointer-events: auto; }
  .sol-etsbox { transform: scale(1); opacity: 1; transition: transform .9s cubic-bezier(.34,1.56,.64,1), opacity .5s ease; box-shadow: 0 30px 70px rgba(0,0,0,0.6), 0 0 70px rgba(254,104,7,.42); }
  .sol-ets:not(.in) .sol-etsbox { transform: scale(.7); opacity: 0; }
  .sol-final { opacity: 0; transition: opacity 1s ease; }
  .sol-ets.textin .sol-final { opacity: 1; }

  .sol-flash {
    position: absolute; top: 50%; left: 50%; width: 820px; height: 820px; border-radius: 50%; z-index: 3;
    transform: translate(-50%,-50%) scale(0); opacity: 0; pointer-events: none; margin-top: -34px;
    will-change: transform, opacity;
    background: radial-gradient(circle, rgba(255,255,255,.6) 0%, rgba(255,214,170,.55) 10%, rgba(254,104,7,.4) 24%, rgba(254,104,7,.13) 42%, rgba(254,104,7,0) 66%);
  }
  .sol-flash::after {
    content: ''; position: absolute; inset: 0; border-radius: 50%;
    border: 2px solid rgba(255,190,130,.5);
    -webkit-mask-image: radial-gradient(circle, transparent 58%, #000 62%); mask-image: radial-gradient(circle, transparent 58%, #000 62%);
  }
  .sol-flash.on { animation: sol-flash-scale .62s cubic-bezier(.16,.78,.28,1) forwards, sol-flash-fade 2.1s ease-out .5s forwards; }
  @keyframes sol-flash-scale {
    0%   { transform: translate(-50%,-50%) scale(0); }
    100% { transform: translate(-50%,-50%) scale(1); }
  }
  @keyframes sol-flash-fade {
    0%   { opacity: 1; }
    100% { opacity: 0; }
  }

  .sol-replay-wrap { display: flex; justify-content: center; margin-top: clamp(30px, 4.5vw, 56px); }
  .sol-replay {
    display: inline-flex; align-items: center; gap: 9px;
    font-family: var(--font-display,'League Spartan'); font-weight: 700; font-size: 14px;
    letter-spacing: 0.04em; text-transform: uppercase;
    color: #fff; background: transparent; border: 1.5px solid rgba(255,255,255,.4);
    border-radius: 999px; padding: 11px 20px; cursor: pointer;
    transition: all 160ms cubic-bezier(.22,1,.36,1);
  }
  .sol-replay:hover { border-color: #FE6807; color: #FE6807; }
  .sol-replay svg { transform: rotate(-45deg); }

  @media (max-width: 980px) {
    .sol-textwrap { width: clamp(240px, 30vw, 360px); }
  }
  @media (max-width: 768px) {
    
    .sol-stage { --rest: clamp(84px, 26vw, 128px) !important; }
    .sol-web.in, .sol-eng.in { transform: translateX(-50%) !important; }
    .sol-float { display: none !important; }
    .sol-story-id { display: flex !important; }
    .sol-textwrap {
      top: 0 !important; bottom: 0 !important; height: auto !important;
      left: 0 !important; right: 0 !important; width: 100% !important;
      padding: 0 24px !important; align-items: center !important; justify-content: center !important;
      text-align: center; z-index: 5 !important;
    }
    .sol-textwrap p { display: block !important; }
    .sol-textwrap h4 { font-size: clamp(25px,6.6vw,34px) !important; }
    
    .sol-textwrap .sol-reveal {
      background: rgba(9,8,13,0.55);
      backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
      border: 1px solid rgba(255,255,255,0.1); border-radius: 18px;
      padding: 26px 22px; box-shadow: 0 24px 60px rgba(0,0,0,0.45);
    }
  }

  
  .svc-arena {
    position: relative; width: 100%;
    height: clamp(560px, 66vh, 700px);
    margin: 6px 0 8px;
    touch-action: pan-y;
    user-select: none; -webkit-user-select: none;
  }
  .svc-card {
    position: absolute; top: 0; left: 0;
    opacity: 0; transition: box-shadow .16s ease, border-color .16s ease;
    background: #FFFFFF; border: 2px solid #09080D; border-radius: 14px;
    box-shadow: 4px 4px 0 #09080D;
    padding: 18px 18px 16px; box-sizing: border-box;
    display: flex; flex-direction: column; gap: 11px;
    cursor: grab; will-change: transform; overflow: hidden;
  }
  .svc-card[data-drag="1"] {
    cursor: grabbing; border-color: #FE6807;
    box-shadow: 7px 7px 0 #FE6807;
  }
  .svc-card-chip {
    flex: none; width: 42px; height: 42px; border-radius: 10px;
    background: #191BDF; color: #fff;
    display: flex; align-items: center; justify-content: center;
  }
  .svc-card[data-drag="1"] .svc-card-chip { background: #FE6807; }
  .svc-card-title {
    font-family: 'League Spartan', sans-serif; font-weight: 700;
    font-size: 19px; line-height: 1.02; letter-spacing: -0.01em;
    color: #09080D; margin: 0;
  }
  .svc-card-desc {
    font-family: 'Montserrat', sans-serif; font-size: 13px; line-height: 1.45;
    color: #6B6B73; margin: 0;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
  
  .svc-rowimg { aspect-ratio: 4 / 3; border-radius: 0; overflow: visible; background: transparent; border: none; position: relative; }
  .svc-rowimg img { width: 100%; height: 100%; object-fit: contain; display: block; opacity: 0; transition: opacity .5s ease; position: relative; z-index: 1; }
  .svc-rowimg img.loaded { opacity: 1; }
  .svc-rowimg::before { content: ''; position: absolute; inset: 6%; z-index: 0; border-radius: 14px; background: linear-gradient(100deg, rgba(9,8,13,.04) 30%, rgba(9,8,13,.09) 50%, rgba(9,8,13,.04) 70%); background-size: 220% 100%; animation: pf-shimmer 1.4s linear infinite; }
  .svc-rowimg.loaded::before { opacity: 0; animation: none; transition: opacity .4s ease; }
  
  .svc-list { position: relative; }
  .svc-ribbon { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; overflow: visible; }
  .svc-ribbon-a { stroke-width: 7; filter: drop-shadow(9px 16px 12px rgba(9,8,13,0.62)); }
  .svc-ribbon-b { stroke-width: 5.5; filter: drop-shadow(8px 15px 12px rgba(9,8,13,0.58)); }
  @media (max-width: 920px) { .svc-ribbon-a { stroke-width: 5; } .svc-ribbon-b { stroke-width: 4; } }
  .svc-hint, .svc-controls-hint {    display: inline-flex; align-items: center; gap: 9px;
    font-family: 'Montserrat', sans-serif; font-size: 11.5px; font-weight: 700;
    letter-spacing: 0.16em; text-transform: uppercase; color: #6B6B73;
  }
  .svc-controls {
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 14px 24px; margin: 16px 0 2px;
  }
  .svc-controls-hint {
    opacity: 0; transition: opacity .5s ease;
  }
  .svc-controls-hint[data-show="1"] { opacity: 1; }
  .svc-reset {
    display: inline-flex; align-items: center; gap: 8px;
    font-family: 'Montserrat', sans-serif; font-size: 12px; font-weight: 700;
    letter-spacing: 0.04em; color: #09080D; cursor: pointer;
    background: #FFFFFF; border: 2px solid #09080D; border-radius: 999px;
    padding: 9px 18px; box-shadow: 3px 3px 0 #09080D;
    transition: transform .12s ease, box-shadow .12s ease, background .16s ease, color .16s ease;
  }
  .svc-reset:hover { background: #FE6807; border-color: #FE6807; color: #09080D; }
  .svc-reset:active { transform: translate(2px,2px); box-shadow: 1px 1px 0 #09080D; }
  .svc-reset svg { transition: transform .4s ease; }
  .svc-reset:hover svg { transform: rotate(-180deg); }

  @media (prefers-reduced-motion: reduce) {
    .sol-spin, .sol-sun, .sol-star { animation: none !important; }
  }
  @media (prefers-reduced-motion: reduce) {
    .ets-logos-track, .ets-sector-track { animation: none; }
    .pa-scene[data-state="active"] .pa-r.pa-in { animation: none !important; opacity: 1 !important; transform: none !important; }
    .pa-scene[data-state="active"] .crow.pa-in { grid-template-rows: 1fr !important; animation: none !important; }
    .pa-scene[data-state="active"] .pa-neon.pa-in { animation: none !important; }
    .pa-scene[data-state="active"] .pa-swipeout.pa-in { opacity: 0 !important; animation: none !important; }
    .pa-scene[data-state="active"] .pa-uline.pa-in { background-size: 100% 0.32em !important; animation: none !important; }
    .sol-float.floatA, .sol-float.floatB { animation: none !important; }
  }
  
  .metodo-bg {
    position: absolute; inset: 0; pointer-events: none; z-index: 0;
    background:
      radial-gradient(820px 460px at 50% -8%, rgba(25,27,223,0.26), transparent 62%),
      radial-gradient(620px 420px at 88% 30%, rgba(254,104,7,0.10), transparent 60%),
      radial-gradient(circle at 1px 1px, rgba(255,255,255,0.05) 1px, transparent 1.6px);
    background-size: auto, auto, 38px 38px;
    -webkit-mask-image: radial-gradient(1100px 700px at 50% 18%, #000 35%, transparent 78%);
            mask-image: radial-gradient(1100px 700px at 50% 18%, #000 35%, transparent 78%);
  }
  .metodo-mesh {
    position: absolute; left: 50%; top: 0; transform: translateX(-50%);
    width: min(1240px, 100%); height: 56%; pointer-events: none; z-index: 0;
    opacity: 0.5; color: rgba(120,130,255,0.5);
  }
  .metodo-dot {
    position: absolute; width: 7px; height: 7px; border-radius: 50%;
    z-index: 0; pointer-events: none; opacity: 0;
  }
  .metodo-dot.b { background: #2E5BFF; box-shadow: 0 0 16px 4px rgba(46,91,255,0.8); }
  .metodo-dot.o { background: #FF7A1A; box-shadow: 0 0 16px 4px rgba(255,122,26,0.78); }
  .metodo-dot.c { background: #18E0E8; box-shadow: 0 0 16px 4px rgba(24,224,232,0.7); }
  .metodo-dot.m { background: #E83CC4; box-shadow: 0 0 16px 4px rgba(232,60,196,0.72); }
  .metodo-dot.g { background: #3DF08B; box-shadow: 0 0 16px 4px rgba(61,240,139,0.66); }
  .metodo-dot.sm { width: 5px; height: 5px; }
  .metodo-dot.lg { width: 9px; height: 9px; }
  @keyframes firefly {
    0%   { opacity: .1;  transform: scale(.92); }
    50%  { opacity: .72; transform: scale(1); }
    100% { opacity: .1;  transform: scale(.92); }
  }
  
  .metodo-dot-wrap { position: absolute; z-index: 0; pointer-events: none; will-change: transform; }
  @keyframes drift {
    0%   { transform: translate(0, 0); }
    25%  { transform: translate(var(--dx1,0), var(--dy1,0)); }
    50%  { transform: translate(var(--dx2,0), var(--dy2,0)); }
    75%  { transform: translate(var(--dx3,0), var(--dy3,0)); }
    100% { transform: translate(0, 0); }
  }
  @media (prefers-reduced-motion: no-preference) {
    .metodo-dot { animation: firefly var(--fdur,4s) ease-in-out var(--fdelay,0s) infinite; }
    .metodo-dot-wrap { animation: drift var(--ddur,32s) ease-in-out var(--ddelay,0s) infinite; }
  }
  @media (prefers-reduced-motion: reduce) { .metodo-dot { opacity: .5; } }

  
  .metodo-stage { position: relative; z-index: 1; display: flex; flex-direction: column; }
  .metodo-row {
    display: flex; align-items: center; justify-content: center; gap: 0;
    padding: clamp(18px,2.4vw,28px) 8px; position: relative; cursor: default;
    min-height: clamp(104px,12vw,168px);
  }
  .metodo-stage[data-expanded="true"] .metodo-row { border-top: 1px solid rgba(255,255,255,0.12); }
  .metodo-stage[data-expanded="true"] .metodo-row:first-child { border-top: none; }

  .metodo-letter {
    flex: none;
    font-family: var(--font-display,'League Spartan'), sans-serif; font-weight: 900;
    font-size: clamp(82px,9vw,138px); line-height: 1; letter-spacing: -0.045em;
    padding-top: 0.08em; color: #FE6807;
    transition: transform .34s cubic-bezier(.22,1,.36,1), filter .34s ease;
    transform-origin: center; will-change: transform; user-select: none;
  }
  .metodo-row:hover .metodo-letter { transform: scale(1.06); }
  .metodo-row:hover .metodo-letter,
  .metodo-stage[data-expanded="true"] .metodo-letter {
    filter: drop-shadow(0 8px 30px rgba(254,104,7,0.46));
  }

  
  .metodo-text {
    max-width: 0; opacity: 0; overflow: hidden;
    transition: max-width .46s cubic-bezier(.22,1,.36,1), opacity .4s ease;
  }
  .metodo-row:hover .metodo-text,
  .metodo-stage[data-expanded="true"] .metodo-text { max-width: min(640px,66vw); opacity: 1; }
  .metodo-text-inner { width: min(580px,58vw); padding-left: clamp(20px,2.8vw,44px); }
  .metodo-title {
    font-family: var(--font-display,'League Spartan'), sans-serif; font-weight: 700;
    font-size: clamp(22px,2.4vw,28px); text-transform: uppercase; letter-spacing: -0.01em;
    color: #fff; margin: 0 0 10px;
  }
  .metodo-desc {
    font-family: var(--font-body,'Montserrat'), sans-serif; font-size: clamp(14px,1.1vw,15.5px);
    color: #C7C6D0; line-height: 1.62; margin: 0;
  }

  
  .metodo-expand {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--font-body,'Montserrat'), sans-serif; font-size: 13px; font-weight: 700;
    letter-spacing: 0.06em; text-transform: uppercase; color: #09080D; cursor: pointer;
    background: #FE6807; border: none; border-radius: 999px; padding: 13px 26px;
    box-shadow: 0 0 0 0 rgba(254,104,7,0);
    transition: transform .14s ease, box-shadow .26s ease, background .2s ease;
  }
  .metodo-expand:hover { box-shadow: 0 12px 32px rgba(254,104,7,0.34); }
  .metodo-expand:active { transform: translateY(1px) scale(0.99); }

  
  .metodo-row {
    transition: opacity .6s ease, transform .62s cubic-bezier(.22,1,.36,1);
    transition-delay: calc(var(--i,0) * 130ms);
  }
  .metodo-stage[data-active="true"] .metodo-row { opacity: 1; transform: none; }
  @media (prefers-reduced-motion: no-preference) {
    .metodo-stage[data-active="false"] .metodo-row { opacity: 0; transform: translateY(28px); }
  }

  @media (max-width: 720px) {
    .metodo-letter { font-size: 64px; }
    .metodo-text-inner { width: min(440px,68vw); padding-left: 16px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .metodo-letter, .metodo-text { transition: none !important; }
  }

  
  .nums-row {
    display: grid; grid-template-columns: repeat(5, 1fr); gap: 0;
    margin-top: clamp(40px,5vw,64px);
  }
  .num-col {
    display: flex; flex-direction: column; align-items: flex-start; min-width: 0;
    padding: 24px clamp(14px,1.8vw,30px) 0 0; border-top: 2px solid rgba(255,255,255,.32);
  }
  .num-big {
    font-family: var(--font-display,'League Spartan'), sans-serif; font-weight: 800;
    font-size: clamp(34px,5.4vw,98px); line-height: .9; letter-spacing: -0.03em;
    color: #fff; white-space: nowrap; transform-origin: left bottom;
  }
  .num-cap {
    font-family: var(--font-body,'Montserrat'), sans-serif; font-size: clamp(11px,0.95vw,15px); line-height: 1.4;
    font-weight: 600; color: #fff; margin-top: 16px; max-width: 210px;
    opacity: 0; animation: numCapIn .55s ease forwards;
  }
  
  .num-pencil-wrap { position: relative; display: inline-block; }
  .num-pencil { animation: numPenReveal .85s cubic-bezier(.62,0,.24,1) both; }
  .num-pen {
    position: absolute; top: -4%; bottom: -4%; width: 3px; border-radius: 2px;
    background: #fff; box-shadow: 0 0 9px 2px rgba(255,255,255,.92); left: 0; opacity: 0;
    animation: numPenMove .85s cubic-bezier(.62,0,.24,1) both;
  }
  
  .num-hd { display: inline-block; animation: numFall .78s cubic-bezier(.3,1.4,.5,1) both; }

  
  .num-figure { position: relative; display: inline-block; }
  .num-glow {
    position: absolute; left: 0; top: 0;
    font-family: var(--font-display,'League Spartan'), sans-serif; font-weight: 800;
    font-size: clamp(34px,5.4vw,98px); line-height: .9; letter-spacing: -0.03em;
    white-space: nowrap; pointer-events: none;
    color: transparent;
    -webkit-text-stroke: 1.6px #EEF1F5;
    
    text-shadow: none;
    background-image: linear-gradient(90deg,
      rgba(238,241,245,0) 0%, rgba(244,247,250,.7) 34%,
      #FFFFFF 50%, rgba(244,247,250,.7) 66%, rgba(238,241,245,0) 100%);
    -webkit-background-clip: text; background-clip: text;
    opacity: 0;
    clip-path: inset(-14% 100% -14% 0);
    animation: numGlow .5s cubic-bezier(.4,0,.2,1) both;
  }
  @keyframes numGlow {
    0%   { opacity: 0;  clip-path: inset(-14% 100% -14% 0); }
    30%  { opacity: 1; }
    60%  { opacity: 1;  clip-path: inset(-14% 0 -14% 0); }
    100% { opacity: 0;  clip-path: inset(-14% 0 -14% 0); }
  }

  @keyframes numSlide { from { opacity: 0; transform: translateX(-120vw); } to { opacity: 1; transform: none; } }
  @keyframes numDrop { from { opacity: 0; transform: translateY(-46px); } to { opacity: 1; transform: none; } }
  @keyframes numFall { from { opacity: 0; transform: translateY(-120px); } to { opacity: 1; transform: none; } }
  @keyframes numPop { 0% { transform: scale(1); } 55% { transform: scale(1.16); } 100% { transform: scale(1); } }
  @keyframes numCapIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
  @keyframes numPenReveal { from { clip-path: inset(-12% 100% -12% 0); } to { clip-path: inset(-12% 0 -12% 0); } }
  @keyframes numPenMove { 0% { left: 0; opacity: 0; } 10% { opacity: 1; } 90% { opacity: 1; } 100% { left: 100%; opacity: 0; } }

  @media (prefers-reduced-motion: reduce) {
    .num-cap { opacity: 1; animation: none; }
    .num-big, .num-pencil, .num-hd { animation: none !important; }
    .num-pen { display: none; }
    .num-glow { display: none; }
  }
  @media (max-width: 900px) { .nums-row { grid-template-columns: repeat(3, 1fr); row-gap: 34px; } }
  @media (max-width: 560px) {
    .nums-row { grid-template-columns: 1fr; row-gap: 0; }
    .num-col { padding-right: 0; }
    .num-cap { max-width: none; margin-top: 10px; }
  }

  
  .nums-ink-orange .num-big,
  .nums-ink-orange .num-cap,
  .nums-ink-orange .num-glow { color: var(--ets-orange); }
  .nums-ink-orange .num-pen { background: var(--ets-orange); box-shadow: 0 0 9px 2px rgba(254,104,7,.85); }
  
  .nums-ink-orange .num-glow {
    color: transparent;
    -webkit-text-stroke: 1.6px #FFE7CC;
    text-shadow: none;
    background-image: linear-gradient(90deg,
      rgba(255,231,204,0) 0%, rgba(255,231,204,.5) 38%,
      #FFF6EC 50%, rgba(255,231,204,.5) 62%, rgba(255,231,204,0) 100%);
    -webkit-background-clip: text; background-clip: text;
  }

  
  .cf-section {
    position: relative; overflow: hidden;
    background: var(--ets-white);
    padding: clamp(90px,9vw,124px) 28px clamp(104px,10vw,138px);
    isolation: isolate;
  }
  
  .cf-section::before {
    content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: radial-gradient(rgba(9,8,13,.05) 1px, transparent 1.4px);
    background-size: 32px 32px;
    -webkit-mask-image: radial-gradient(120% 80% at 50% 40%, #000 22%, transparent 68%);
            mask-image: radial-gradient(120% 80% at 50% 40%, #000 22%, transparent 68%);
    opacity: .85;
  }
  
  .cf-section::after {
    content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background:
      radial-gradient(46% 42% at 50% 33%, rgba(0,0,0,.05), transparent 70%),
      radial-gradient(70% 38% at 50% 86%, rgba(9,8,13,.10), transparent 72%),
      radial-gradient(120% 100% at 50% 30%, transparent 60%, rgba(9,8,13,.05) 100%);
  }
  .cf-inner { position: relative; z-index: 1; max-width: 1240px; margin: 0 auto; }

  .cf-shell { display: flex; align-items: center; justify-content: center; gap: clamp(8px,1.6vw,24px); margin-top: clamp(34px,4.5vw,56px); position: relative; z-index: 1; }
  .cf-stage {
    position: relative; flex: 1 1 auto;
    height: clamp(452px, 58vh, 540px);
    perspective: 1750px; perspective-origin: 50% 42%;
    touch-action: pan-y; outline: none;
  }
  .cf-track { position: absolute; inset: 0; transform-style: preserve-3d; }

  .cf-card {
    position: absolute; top: 50%; left: 50%;
    width: clamp(266px, 29vw, 384px);
    height: clamp(376px, 47vh, 462px);
    box-sizing: border-box;
    transform-origin: 50% 50%;
    transition: transform 620ms cubic-bezier(.22,1,.36,1), opacity 420ms ease, box-shadow 400ms ease;
    -webkit-backface-visibility: hidden; backface-visibility: hidden;
    border-radius: 18px;
    box-shadow: 0 18px 34px -22px rgba(9,8,13,.42);
  }
  .cf-card.is-side { cursor: pointer; }
  .cf-card.is-center {
    cursor: pointer;
    box-shadow:
      0 26px 50px -26px rgba(9,8,13,.42),
      0 0 0 1px rgba(9,8,13,.06);
  }
  
  .cf-face {
    position: absolute; inset: 0; border-radius: 18px; overflow: hidden;
    background: linear-gradient(180deg, #ffffff 0%, #f3f2ef 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.9), inset 0 0 0 1px rgba(9,8,13,.07);
  }
  
  .cf-scrim {
    position: absolute; inset: 0; z-index: 5; pointer-events: none;
    background: linear-gradient(180deg, rgba(20,18,16,.22), rgba(9,8,7,.40));
    opacity: 0.5; transition: opacity 480ms ease;
  }
  .cf-card.is-center .cf-face .cf-scrim { opacity: 0; }

  .cf-head {
    height: 46%; min-height: 128px; position: relative; overflow: hidden;
    display: flex; align-items: flex-end; padding: clamp(18px,1.8vw,24px);
  }
  
  .cf-head::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(157deg, rgba(255,255,255,.18), transparent 40%, rgba(0,0,0,.20));
  }
  .cf-head-e { position: absolute; right: -38px; top: -40px; width: 168px; opacity: 0.18; filter: brightness(0) invert(1); pointer-events: none; }
  .cf-index {
    position: absolute; top: 6px; left: clamp(14px,1.5vw,20px); z-index: 2;
    font-family: var(--font-display), sans-serif; font-weight: 800; font-size: clamp(48px,5vw,64px);
    line-height: 1; color: transparent; -webkit-text-stroke: 1.4px rgba(255,255,255,.32);
    letter-spacing: -0.04em; pointer-events: none;
  }
  .cf-badge {
    position: absolute; top: 16px; right: 16px; z-index: 2; font-family: var(--font-body), sans-serif;
    font-size: 9.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
    color: rgba(255,255,255,.82); border: 1px solid rgba(255,255,255,.36); border-radius: 999px; padding: 4px 10px;
    background: rgba(255,255,255,.08);
  }
  .cf-sector {
    position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 9px;
    font-family: var(--font-body), sans-serif; font-size: clamp(11px,1vw,13px);
    font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,.95);
  }
  .cf-sector::before { content: ''; width: 16px; height: 2px; background: currentColor; opacity: .8; }
  .cf-body { padding: clamp(22px,2.1vw,30px); display: flex; flex-direction: column; height: 54%; box-sizing: border-box; }
  .cf-res {
    font-family: var(--font-display), sans-serif; font-weight: 800; font-size: clamp(36px,4.6vw,58px);
    color: var(--ets-black); letter-spacing: -0.035em; line-height: 0.86;
  }
  .cf-lab { font-family: var(--font-body), sans-serif; font-size: clamp(13px,1.1vw,15px); color: var(--ets-grey-500); margin-top: 14px; font-weight: 500; line-height: 1.45; }
  .cf-rule { margin-top: auto; height: 1px; background: var(--ets-line); opacity: 0; transition: opacity 360ms ease 80ms; }
  .cf-card.is-center .cf-face .cf-rule { opacity: 1; }
  .cf-cta {
    margin-top: 16px; display: inline-flex; align-items: center; gap: 8px;
    font-family: var(--font-body), sans-serif; font-size: 13px; font-weight: 700; color: var(--ets-black);
    opacity: 0; transform: translateY(6px); transition: opacity 360ms ease 140ms, transform 360ms ease 140ms;
  }
  .cf-cta svg { color: var(--ets-orange); }
  .cf-card.is-center .cf-face .cf-cta { opacity: 1; transform: none; }

  
  .cf-face--img { background: radial-gradient(rgba(255,255,255,.045) 1px, transparent 1.4px) 0 0 / 22px 22px, linear-gradient(180deg, #0f0e14 0%, #0b0a0f 100%); overflow: hidden; box-shadow: 0 14px 40px rgba(0,0,0,.5); -webkit-box-reflect: below 8px linear-gradient(transparent 66%, rgba(0,0,0,.16)); }
  .cf-face--img > .cf-pimg { z-index: 2; }
  .cf-face--img > image-slot { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
  .cf-pimg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; user-select: none; -webkit-user-drag: none; opacity: 0; transition: opacity .45s ease; }
  .cf-pimg.loaded { opacity: 1; }
  .cf-imeta {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: clamp(64px,9vw,104px) clamp(20px,2vw,28px) clamp(20px,2vw,28px);
    background: linear-gradient(180deg, rgba(9,8,13,0) 0%, rgba(9,8,13,.14) 24%, rgba(9,8,13,.52) 58%, rgba(9,8,13,.9) 100%);
  }
  .cf-pname {
    font-family: var(--font-display), sans-serif; font-weight: 800; font-size: clamp(23px,2.5vw,33px);
    line-height: 0.92; letter-spacing: -0.02em; text-transform: uppercase; color: #fff; margin: 12px 0 14px;
  }
  .cf-cta--light { color: #fff; text-decoration: none; }
  .cf-cta--light:hover { color: #fff; text-decoration: none; }
  .cf-card.is-side image-slot { pointer-events: none; }

  
  .cf-showhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; margin: clamp(48px,5.5vw,68px) 0 2px; }
  .cf-showhead.is-first { margin-top: clamp(26px,3vw,34px); }
  .cf-showhead-l { min-width: 0; }
  .cf-showtitle { font-family: var(--font-display), sans-serif; font-weight: 800; font-size: clamp(28px,3.6vw,46px); line-height: 0.92; letter-spacing: -0.025em; text-transform: uppercase; color: var(--ets-black); margin: 10px 0 0; }
  .cf-showbar { width: 56px; height: 4px; border-radius: 2px; margin-top: 16px; }
  .cf-showdesc { font-family: var(--font-body), sans-serif; font-size: 15px; color: var(--ets-grey-500); line-height: 1.55; max-width: 380px; margin: 0 0 6px; }
  .cf-hint { font-family: var(--font-body), sans-serif; font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ets-grey-500); margin: clamp(16px,2vw,24px) 0 0; }
  .cf-hint-sep { color: var(--ets-grey-300); margin: 0 8px; }
  .cf-empty { font-family: var(--font-body), sans-serif; color: var(--ets-grey-500); margin: 18px 0 0; }
  @media (max-width: 720px) {
    .cf-pname { font-size: 20px; margin: 8px 0 10px; }
    .cf-showdesc { max-width: none; }
  }

  
  .cf-arrow {
    flex: none; width: clamp(48px,4vw,60px); height: clamp(48px,4vw,60px); border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
    background: var(--ets-white); color: var(--ets-black); border: 2px solid var(--ets-black);
    transition: transform 180ms var(--ease-out,ease-out), background 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 200ms ease;
    z-index: 40;
  }
  .cf-arrow:hover { background: var(--ets-orange); border-color: var(--ets-orange); color: var(--ets-black); box-shadow: 4px 4px 0 var(--ets-black); transform: translate(-1px,-1px); }
  .cf-arrow:active { transform: scale(.94); box-shadow: 2px 2px 0 var(--ets-black); }
  .cf-arrow:focus-visible { outline: var(--focus-ring); outline-offset: 3px; }

  
  .cf-section--dark { background: var(--ets-black); color: var(--ets-white); }
  .cf-section--dark::before { background-image: radial-gradient(rgba(255,255,255,.055) 1px, transparent 1.4px); opacity: .9; }
  .cf-section--dark::after {
    background:
      radial-gradient(46% 42% at 50% 30%, rgba(255,255,255,.05), transparent 70%),
      radial-gradient(72% 40% at 50% 88%, rgba(0,0,0,.5), transparent 74%);
  }
  .cf-section--dark .cf-showtitle { color: var(--ets-white); }
  .cf-section--dark .cf-showdesc { color: rgba(255,255,255,.6); }
  .cf-section--dark .cf-hint { color: rgba(255,255,255,.5); }
  .cf-section--dark .cf-hint-sep { color: rgba(255,255,255,.3); }
  .cf-section--dark .cf-empty { color: rgba(255,255,255,.6); }
  .cf-section--dark .cf-face--img { background: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.4px) 0 0 / 22px 22px, linear-gradient(180deg, #0f0e14 0%, #0a090e 100%); }
  .cf-section--dark .cf-arrow { background: transparent; color: var(--ets-white); border-color: rgba(255,255,255,.5); }
  .cf-section--dark .cf-arrow:hover { background: var(--ets-orange); border-color: var(--ets-orange); color: var(--ets-black); box-shadow: 4px 4px 0 rgba(0,0,0,.6); }
  .cf-section--dark .cf-dot { background: rgba(255,255,255,.25); }
  .cf-section--dark .cf-dot:hover { background: rgba(255,255,255,.5); }
  .cf-section--dark .cf-dot.on { background: var(--ets-orange); }

  
  .pf-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px 28px; flex-wrap: wrap; margin: 16px 0 2px; }
  .pf-toolbar .pf-filters { margin: 0; flex: 1 1 auto; }
  
  @media (max-width: 640px) {
    .pf-toolbar { flex-direction: column-reverse; gap: 14px; align-items: stretch; }
    .pf-toolbar .pf-search { width: 100%; }
    .pf-toolbar .pf-filters { flex: 0 0 auto !important; flex-wrap: nowrap !important; width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; overflow-y: hidden; margin: 12px 0 0; padding: 2px 40px 10px 0; scrollbar-width: none; -webkit-overflow-scrolling: touch; scroll-padding-right: 40px; }
    .pf-toolbar .pf-filters::-webkit-scrollbar { display: none; }
    .pf-toolbar .pf-chip { flex: 0 0 auto; }
  }
  
  .pf-search {
    flex: 0 0 auto; display: inline-flex; align-items: center; gap: 9px;
    width: min(320px, 100%); padding: 10px 14px; border-radius: 999px;
    background: rgba(255,255,255,.06); border: 1.5px solid rgba(255,255,255,.2);
    color: rgba(255,255,255,.6);
    transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
  }
  .pf-search:focus-within { border-color: var(--ets-orange); background: rgba(255,255,255,.09); box-shadow: 3px 3px 0 rgba(0,0,0,.5); color: #fff; }
  .pf-search svg { flex: 0 0 auto; }
  .pf-search-input {
    flex: 1 1 auto; min-width: 0; border: 0; outline: 0; background: transparent;
    font-family: var(--font-body), sans-serif; font-size: 14px; font-weight: 600; color: #fff;
  }
  .pf-search-input::placeholder { color: rgba(255,255,255,.5); font-weight: 500; }
  .pf-search-clear {
    flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 999px; border: 0; cursor: pointer;
    background: rgba(255,255,255,.14); color: #fff; transition: background 140ms ease;
  }
  .pf-search-clear:hover { background: var(--ets-orange); color: var(--ets-black); }
  .pf-search-clear:focus-visible { outline: var(--focus-ring); outline-offset: 2px; }
  .pf-filters { display: flex; gap: 10px; flex-wrap: wrap; margin: 16px 0 2px; }
  .pf-chip {
    font-family: var(--font-body), sans-serif; font-size: 13.5px; font-weight: 600; letter-spacing: .005em;
    padding: 10px 18px; border-radius: 999px; border: 1.5px solid var(--ets-line);
    background: var(--ets-white); color: var(--ets-ink-800); cursor: pointer;
    transition: transform 160ms cubic-bezier(.22,1,.36,1), border-color 160ms ease, color 160ms ease, background 160ms ease, box-shadow 160ms ease;
  }
  .pf-chip:hover { border-color: var(--ets-black); color: var(--ets-black); transform: translateY(-1px); }
  .pf-chip.on { background: var(--ets-black); color: var(--ets-white); border-color: var(--ets-black); box-shadow: 3px 3px 0 var(--ets-orange); }
  .pf-chip.on:hover { transform: translate(-1px,-1px); box-shadow: 4px 4px 0 var(--ets-orange); }
  .pf-chip:focus-visible { outline: var(--focus-ring); outline-offset: 2px; }

  
  .cf-section--dark .pf-chip { background: rgba(255,255,255,.05); color: rgba(255,255,255,.72); border-color: rgba(255,255,255,.2); }
  .cf-section--dark .pf-chip:hover { border-color: rgba(255,255,255,.6); color: #fff; }
  .cf-section--dark .pf-chip.on { background: var(--ets-orange); color: var(--ets-black); border-color: var(--ets-orange); box-shadow: 3px 3px 0 rgba(0,0,0,.55); }
  .cf-section--dark .pf-chip.on:hover { transform: translate(-1px,-1px); box-shadow: 4px 4px 0 rgba(0,0,0,.55); }

  
  .pf-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px,1.8vw,26px); margin-top: clamp(26px,3vw,38px); }
  .pf-gcard {
    position: relative; overflow: hidden; border-radius: 12px; aspect-ratio: 4 / 5;
    background: radial-gradient(rgba(255,255,255,.05) 1px, transparent 1.4px) 0 0 / 22px 22px, linear-gradient(180deg, #0f0e14 0%, #0b0a0f 100%);
    box-shadow: 0 14px 40px rgba(0,0,0,.5);
    cursor: default; -webkit-tap-highlight-color: transparent;
    content-visibility: auto; contain-intrinsic-size: auto 340px;
  }
  
  .pf-gcard::before {
    content: ''; position: absolute; inset: 0; z-index: 0;
    background: linear-gradient(110deg, #1a191f 0%, #232128 18%, #1a191f 36%);
    background-size: 220% 100%; animation: pf-shimmer 1.4s linear infinite;
  }
  .pf-gcard.loaded::before { opacity: 0; animation: none; transition: opacity .4s ease; }
  @keyframes pf-shimmer { from { background-position: 120% 0; } to { background-position: -120% 0; } }
  
  .pf-gcard::after, .cf-face--img::after {
    content: ''; position: absolute; z-index: 1; top: 0; left: 0;
    width: 62%; height: 54%; pointer-events: none;
    background: radial-gradient(115% 115% at 14% 12%, rgba(255,255,255,.04), rgba(255,255,255,0) 62%);
  }
  .pf-logo {
    position: absolute; z-index: 1; top: 0; left: 0;
    height: 68%; width: auto; max-width: 125%;
    object-fit: contain; object-position: left top;
    transform: translate(-25%, -25%);
    opacity: .2; filter: drop-shadow(0 3px 9px rgba(0,0,0,.4));
    image-rendering: -webkit-optimize-contrast;
    pointer-events: none; user-select: none;
  }
  
  .pf-logo.pf-logo--wide {
    left: 50%; top: 6%; right: auto;
    height: auto; width: 62%; max-width: 62%;
    object-position: center top;
    transform: translateX(-50%);
  }
  .pf-gimg { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; user-select: none; -webkit-user-drag: none; opacity: 0; transition: transform .55s cubic-bezier(.22,1,.36,1), opacity .45s ease; }
  .pf-gimg.loaded { opacity: 1; }
  .pf-gcard:hover .pf-gimg, .pf-gcard:focus-within .pf-gimg { transform: scale(1.045); }
  .pf-goverlay {
    position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
    padding: clamp(56px,7vw,88px) clamp(15px,1.3vw,20px) clamp(15px,1.3vw,20px);
    background: linear-gradient(180deg, rgba(9,8,13,0) 0%, rgba(9,8,13,.5) 34%, rgba(9,8,13,.92) 100%);
    display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
    opacity: 0; transition: opacity .3s ease; pointer-events: none;
  }
  .pf-gcard:hover .pf-goverlay, .pf-gcard:focus-within .pf-goverlay { opacity: 1; }
  .pf-gname {
    font-family: var(--font-display), sans-serif; font-weight: 800;
    font-size: clamp(22px,1.85vw,30px); line-height: 1.02; letter-spacing: -0.015em;
    text-transform: uppercase; color: #fff; margin: 0; min-width: 0;
    transform: translateY(10px); transition: transform .32s cubic-bezier(.22,1,.36,1);
  }
  .pf-gcard:hover .pf-gname, .pf-gcard:focus-within .pf-gname { transform: none; }
  .pf-glink {
    flex: none; pointer-events: auto; display: inline-flex; align-items: center; gap: 6px;
    font-family: var(--font-body), sans-serif; font-size: 15px; font-weight: 700;
    letter-spacing: 0.01em; color: #fff; text-decoration: none; white-space: nowrap;
    padding-bottom: 2px; border-bottom: 1.5px solid rgba(255,255,255,.45);
    transform: translateY(10px); opacity: 0;
    transition: transform .32s cubic-bezier(.22,1,.36,1) 40ms, opacity .3s ease 40ms, color .16s ease, border-color .16s ease;
  }
  .pf-gcard:hover .pf-glink, .pf-gcard:focus-within .pf-glink { transform: none; opacity: 1; }
  .pf-glink:hover, .pf-glink:focus-visible { color: var(--ets-orange); border-color: var(--ets-orange); text-decoration: none; }
  .pf-glink svg { transition: transform .2s ease; }
  .pf-glink:hover svg { transform: translateX(3px); }
  @media (max-width: 820px)  { .pf-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } }
  @media (max-width: 640px)  { .pf-grid { grid-template-columns: 1fr; } }
  @media (prefers-reduced-motion: reduce) {
    .pf-gimg { transition: none; } .pf-gname, .pf-glink { transform: none; }
  }

  .cf-dots { display: flex; justify-content: center; gap: 10px; margin-top: clamp(30px,3.5vw,46px); position: relative; z-index: 1; }
  .cf-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--ets-grey-300); border: none; padding: 0; cursor: pointer; transition: background 240ms ease, width 280ms cubic-bezier(.22,1,.36,1); }
  .cf-dot:hover { background: var(--ets-grey-500); }
  .cf-dot.on { width: 30px; background: var(--ets-orange); }

  @media (max-width: 720px) {
    .cf-card { width: clamp(224px, 72vw, 304px); }
    .cf-shell { gap: 6px; }
  }
  @media (prefers-reduced-motion: reduce) {
    .cf-card { transition: opacity 200ms ease; }
  }

  
  .why2 { position: relative; overflow: hidden; background: var(--ets-black); color: var(--ets-white); padding: clamp(80px,9vw,112px) 28px clamp(72px,8vw,104px); }
  
  .why2::before {
    content: ''; position: absolute; left: 50%; top: 58%; width: min(760px,86vw); height: min(560px,60vh);
    transform: translate(-50%,-50%); pointer-events: none; z-index: 0;
    background: radial-gradient(46% 50% at 50% 50%, rgba(254,104,7,.10), transparent 70%);
  }
  
  .why2-wave {
    position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none;
    filter: blur(6px) saturate(1.18); opacity: .66; mix-blend-mode: screen;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 44%, transparent 72%);
            mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 44%, transparent 72%);
  }
  @media (prefers-reduced-motion: reduce) { .why2-wave { opacity: .36; } }
  
  .why2-stars { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
  .why2-star { position: absolute; border-radius: 50%; background: #fff; opacity: 0; animation: why2-twinkle var(--tw, 4s) ease-in-out infinite var(--dl, 0s); }
  @keyframes why2-twinkle {
    0%, 100% { opacity: 0; transform: scale(.7); }
    50%      { opacity: var(--mx, .5); transform: scale(1); }
  }
  @media (prefers-reduced-motion: reduce) {
    .why2-star { animation: none; opacity: calc(var(--mx, .5) * 0.6); }
  }
  .why2-inner { position: relative; z-index: 1; max-width: 1240px; margin: 0 auto; }
  .why2-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; margin-bottom: clamp(30px,3.4vw,46px); }

  
  .why2-stage {
    position: relative; width: 100%;
    transition: height .6s cubic-bezier(.22,1,.36,1), opacity .6s ease, transform .6s cubic-bezier(.22,1,.36,1), filter .6s ease;
    opacity: 0; transform: translateY(20px); filter: blur(6px);
  }
  .why2-stage.is-in { opacity: 1; transform: none; filter: none; }

  .why2-card {
    position: absolute; left: 50%; top: 50%;
    width: clamp(320px, 46vw, 444px); height: clamp(316px, 44vh, 384px);
    box-sizing: border-box; overflow: hidden;
    border: 1px solid rgba(255,255,255,.13); border-radius: 16px;
    background: linear-gradient(180deg, #15141a 0%, #0d0c11 100%);
    padding: clamp(28px,2.4vw,38px) clamp(26px,2.1vw,34px) clamp(30px,2.4vw,38px);
    display: flex; flex-direction: column; justify-content: space-between;
    transform: translate(-50%,-50%);
    transition: transform .62s cubic-bezier(.22,1,.36,1), opacity .5s ease, filter .5s ease, box-shadow .4s ease, border-color .26s ease;
    will-change: transform, opacity, filter;
  }
  .why2-card.is-front { box-shadow: 0 34px 66px -26px rgba(0,0,0,.85), 0 0 0 1px rgba(255,255,255,.05); border-color: rgba(255,255,255,.2); }
  .why2-card.is-clickable { cursor: pointer; }
  .why2-card.is-grid:hover { border-color: rgba(255,255,255,.3); }
  
  .why2-card::after { content: ''; position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: var(--ets-orange); transition: width .4s var(--ease-out,ease-out); }
  .why2-card.is-front::after, .why2-card.is-grid:hover::after { width: 100%; }

  .why2-top { display: flex; align-items: flex-start; justify-content: space-between; }
  .why2-id { display: flex; flex-direction: column; gap: 11px; }
  .why2-num { font-family: var(--font-display), sans-serif; font-weight: 800; font-size: clamp(38px,3.6vw,54px); line-height: .9; color: var(--ets-orange); letter-spacing: -0.03em; }
  .why2-ico { width: 44px; height: 44px; border-radius: 10px; flex: none; display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.7); border: 1px solid rgba(255,255,255,.15); }
  .why2-kicker { font-family: var(--font-body), sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,.52); margin: 0; }
  .why2-title { font-family: var(--font-display), sans-serif; font-weight: 800; font-size: clamp(26px,2.6vw,40px); line-height: 0.98; letter-spacing: -0.02em; color: var(--ets-white); margin: 0; text-transform: uppercase; }
  .why2-desc { font-family: var(--font-body), sans-serif; font-size: clamp(14px,1.2vw,17px); line-height: 1.62; color: #A4A3AD; margin: 0; max-width: 40ch; text-wrap: pretty; }

  
  .why2-seg { display: inline-flex; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: 3px; gap: 2px; }
  .why2-seg button { display: inline-flex; align-items: center; gap: 7px; font-family: var(--font-body), sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,.62); background: transparent; border: none; border-radius: 999px; padding: 8px 16px; cursor: pointer; transition: background .18s ease, color .18s ease; }
  .why2-seg button[aria-pressed="true"] { background: var(--ets-orange); color: var(--ets-black); }
  .why2-seg button:focus-visible { outline: var(--focus-ring); outline-offset: 2px; }

  .why2-foot { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: clamp(26px,3vw,40px); transition: opacity .4s ease; }
  .why2-foot.is-hidden { opacity: 0; pointer-events: none; height: 0; margin-top: 0; overflow: hidden; }
  .why2-arrow {
    flex: none; width: 50px; height: 50px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
    background: rgba(255,255,255,.06); color: #fff; border: 1px solid rgba(255,255,255,.2);
    transition: background .18s ease, border-color .18s ease, color .18s ease, transform .16s var(--ease-out,ease-out), opacity .2s ease;
  }
  .why2-arrow:hover:not(:disabled) { background: var(--ets-orange); border-color: var(--ets-orange); color: var(--ets-black); transform: translateY(-2px); }
  .why2-arrow:active:not(:disabled) { transform: scale(.93); }
  .why2-arrow:disabled { opacity: .3; cursor: default; }
  .why2-arrow:focus-visible { outline: var(--focus-ring); outline-offset: 3px; }
  .why2-dots { display: flex; gap: 9px; }
  .why2-dot { width: 8px; height: 8px; border-radius: 999px; background: rgba(255,255,255,.26); border: none; padding: 0; cursor: pointer; transition: width .28s cubic-bezier(.22,1,.36,1), background .2s ease; }
  .why2-dot:hover { background: rgba(255,255,255,.5); }
  .why2-dot.on { width: 28px; background: var(--ets-orange); }
  .why2-hint { font-family: var(--font-body), sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; color: rgba(255,255,255,.4); text-align: center; margin-top: 16px; transition: opacity .4s ease; }
  .why2-hint.is-hidden { opacity: 0; }

  
  .page-decor { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
  .decor-dark   { --dc-rail: #FE6807; --dc-grid: rgba(255,255,255,.05); --dc-glow: rgba(254,104,7,.18); }
  .decor-orange { --dc-rail: rgba(255,255,255,.85); --dc-grid: rgba(255,255,255,.14); --dc-glow: rgba(255,255,255,.14); }
  .decor-light  { --dc-rail: #FE6807; --dc-grid: rgba(9,8,13,.055); --dc-glow: rgba(254,104,7,.09); }
  .decor-grid { position: absolute; inset: -1px; background-image: linear-gradient(var(--dc-grid) 1px, transparent 1px), linear-gradient(90deg, var(--dc-grid) 1px, transparent 1px); background-size: 58px 58px; -webkit-mask-image: radial-gradient(ellipse 92% 78% at 62% 42%, #000 32%, transparent 86%); mask-image: radial-gradient(ellipse 92% 78% at 62% 42%, #000 32%, transparent 86%); }
  .decor-dots { position: absolute; inset: -30px; background-image: radial-gradient(var(--dc-grid) 1.6px, transparent 1.8px); background-size: 26px 26px; animation: decorDotsDrift 26s linear infinite; -webkit-mask-image: radial-gradient(ellipse 88% 82% at 42% 46%, #000 30%, transparent 84%); mask-image: radial-gradient(ellipse 88% 82% at 42% 46%, #000 30%, transparent 84%); }
  @keyframes decorDotsDrift { from { background-position: 0 0; } to { background-position: 52px 78px; } }
  .decor-grid { animation: decorGridDrift 34s linear infinite; }
  @keyframes decorGridDrift { from { background-position: 0 0, 0 0; } to { background-position: 0 58px, 58px 0; } }
  .decor-glow { position: absolute; right: -8%; top: 50%; width: min(62vw, 860px); height: min(62vw, 860px); transform: translateY(-50%); background: radial-gradient(circle, var(--dc-glow) 0%, transparent 66%); animation: decorGlow 9s ease-in-out infinite; }
  .decor-glow.left { right: auto; left: -10%; }
  .decor-rail-left { position: absolute; left: clamp(14px, 3.2vw, 46px); top: 0; bottom: 0; width: 17px; background-image: repeating-linear-gradient(to bottom, var(--dc-rail) 0 2px, transparent 2px 64px), repeating-linear-gradient(to bottom, var(--dc-rail) 0 1.5px, transparent 1.5px 16px); background-size: 17px 64px, 9px 16px; background-repeat: repeat-y, repeat-y; animation: decorTickPulse 3.4s ease-in-out infinite; -webkit-mask-image: linear-gradient(to bottom, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(to bottom, transparent, #000 7%, #000 93%, transparent); }
  .decor-rail-right, .decor-rail-right2 { position: absolute; top: 0; bottom: 0; width: 80px; background: var(--dc-rail); -webkit-mask-repeat: no-repeat, repeat-y; mask-repeat: no-repeat, repeat-y; -webkit-mask-composite: source-in; mask-composite: intersect; }
  .decor-rail-right { right: clamp(10px, 2.6vw, 44px); opacity: .6; -webkit-mask-image: var(--dc-wave), repeating-linear-gradient(to bottom, transparent 0 4px, #000 8px 28px, transparent 32px 34px); mask-image: var(--dc-wave), repeating-linear-gradient(to bottom, transparent 0 4px, #000 8px 28px, transparent 32px 34px); -webkit-mask-size: 100% 100%, 80px 34px; mask-size: 100% 100%, 80px 34px; animation: decorDashA 2.1s linear infinite; }
  .decor-rail-right2 { right: clamp(28px, 4.2vw, 70px); opacity: .34; -webkit-mask-image: var(--dc-wave2), repeating-linear-gradient(to bottom, transparent 0 2px, #000 4px 13px, transparent 15px 17px); mask-image: var(--dc-wave2), repeating-linear-gradient(to bottom, transparent 0 2px, #000 4px 13px, transparent 15px 17px); -webkit-mask-size: 100% 100%, 80px 17px; mask-size: 100% 100%, 80px 17px; animation: decorDashB 2.9s linear infinite; }
  @keyframes decorGlow { 0%, 100% { opacity: .68; transform: translateY(-50%) scale(1); } 50% { opacity: 1; transform: translateY(-50%) scale(1.13); } }
  @keyframes decorDashA { from { -webkit-mask-position: 0 0, 0 var(--dc-ph,0px); mask-position: 0 0, 0 var(--dc-ph,0px); } to { -webkit-mask-position: 0 0, 0 calc(var(--dc-ph,0px) + 34px); mask-position: 0 0, 0 calc(var(--dc-ph,0px) + 34px); } }
  @keyframes decorDashB { from { -webkit-mask-position: 0 0, 0 var(--dc-ph2,0px); mask-position: 0 0, 0 var(--dc-ph2,0px); } to { -webkit-mask-position: 0 0, 0 calc(var(--dc-ph2,0px) + 17px); mask-position: 0 0, 0 calc(var(--dc-ph2,0px) + 17px); } }
  @keyframes decorTickPulse { 0%, 100% { opacity: .3; } 50% { opacity: .58; } }
  @media (max-width: 700px) { .decor-rail-left { display: none; } .decor-rail-right2 { display: none; } .decor-rail-right { right: 10px; } }

  
  .ets-backtop { position: fixed; right: 22px; bottom: 22px; z-index: 47; width: 50px; height: 50px; border-radius: 50%; border: none; background: var(--ets-orange); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 10px 26px rgba(9,8,13,.32); opacity: 0; transform: translateY(16px) scale(.9); pointer-events: none; transition: opacity 260ms ease, transform 260ms cubic-bezier(.22,1,.36,1), background 160ms ease; }
  .ets-backtop.is-on { opacity: 1; transform: none; pointer-events: auto; }
  .ets-backtop:hover { background: var(--ets-orange-600, #d9550a); transform: translateY(-2px); }
  .ets-backtop:active { transform: translateY(0) scale(.96); }
  @media (max-width: 768px) { .ets-backtop { bottom: 84px; right: 16px; width: 46px; height: 46px; } }

  @media (prefers-reduced-motion: reduce) {
    .decor-glow, .decor-rail-right, .decor-rail-right2, .decor-rail-left, .decor-dots, .decor-grid { animation: none !important; }
    .why2-stage { opacity: 1 !important; transform: none !important; filter: none !important; transition: height .3s ease; }
    .why2-card { transition: transform .3s ease, opacity .3s ease, border-color .2s ease; filter: none !important; }
  }

  /* ---- fila partner a scorrimento ----
     La pista contiene DUE gruppi identici e NON ha gap propria: lo spazio fra
     un logo e l'altro sta dentro il gruppo, compreso quello finale. Cosi' la
     larghezza dei due gruppi e' esattamente il doppio di uno, e lo spostamento
     del 50% coincide col punto di partenza: il ciclo si chiude senza salto.
     Con una gap sulla pista, meta' larghezza cadrebbe mezzo spazio piu' in la'
     e a ogni giro si vedrebbe uno scatto. */
  .pt-nastro { position: relative; overflow: hidden; margin: 0 -28px;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
  .pt-pista { display: flex; width: max-content; padding: 4px 0;
    animation: ptScorri linear infinite; }
  .pt-gruppo { display: flex; gap: 20px; padding-right: 20px; }
  .pt-nastro:hover .pt-pista { animation-play-state: paused; }
  @keyframes ptScorri { from { transform: translateX(0); } to { transform: translateX(-50%); } }
  @media (prefers-reduced-motion: reduce) { .pt-pista { animation: none; } }

/* Seven navigation entries: switch to the existing menu before links become clipped. */
@media(max-width:1180px){.ets-nav-wrap{display:none!important}.ets-desktop-nav{display:none!important}.ets-burger{display:flex!important;width:44px!important;height:44px!important}}
