
:root{
  --black:#050505;
  --black-texture:#080807;
  --deep:#0d0d0c;
  --cream:#f5f1e8;
  --cream-soft:#d9d0bf;
  --muted:rgba(245,241,232,.62);
  --dim:rgba(245,241,232,.36);
  --line:rgba(245,241,232,.10);
  --paper:#f0e8dc;
  --ink:#12110f;
  --orion:#171a30;
  --orion-light:#c8cdea;
  --luna:#3a3024;
  --luna-light:#e0c89a;
  --vega:#102417;
  --vega-light:#b5d8c5;
  --sirius:#171025;
  --sirius-light:#c5b8e8;
  --antares:#2b0f0f;
  --antares-light:#deb8b8;
  --polaris:#1a1a1a;
  --polaris-light:#d8d6d2;
  --ease:cubic-bezier(.16,1,.3,1);
  --max:1360px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--black)}
body{font-family:Inter,system-ui,sans-serif;background:#050505;color:var(--cream);overflow-x:hidden;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision;cursor:none}
a{text-decoration:none;color:inherit} svg{display:block} ::selection{background:#faf9f6;color:var(--black)}


.cursor-light{position:fixed;width:360px;height:360px;border-radius:50%;pointer-events:none;z-index:5;opacity:0;background:radial-gradient(circle,rgba(245,241,232,.11),rgba(245,241,232,0) 65%);mix-blend-mode:screen;transform:translate(-50%,-50%);transition:opacity .35s var(--ease)}
.cursor-dot{position:fixed;left:0;top:0;width:8px;height:8px;border-radius:50%;background:#faf9f6;pointer-events:none;z-index:10001;transform:translate(-50%,-50%);mix-blend-mode:difference;opacity:.95}
.cursor-ring{position:fixed;left:0;top:0;width:42px;height:42px;border-radius:50%;border:1px solid rgba(245,241,232,.55);pointer-events:none;z-index:10000;transform:translate(-50%,-50%);mix-blend-mode:difference;opacity:.8;transition:width .28s var(--ease),height .28s var(--ease),border-color .28s var(--ease),opacity .28s var(--ease)}
body.cursor-hover .cursor-ring{width:68px;height:68px;border-color:rgba(245,241,232,.85);opacity:1}
body.cursor-hover .cursor-dot{transform:translate(-50%,-50%) scale(.65)}

.serif{font-family:"Playfair Display",Georgia,serif;font-weight:400;letter-spacing:-.045em;line-height:.94}
.italic{font-style:italic;letter-spacing:-.035em}
.kicker{font-size:10px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--dim)}
.text{font-size:clamp(16px,1.25vw,20px);font-weight:300;color:var(--muted);line-height:1.76;max-width:620px}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.visible{opacity:1;transform:none}.delay1{transition-delay:.1s}.delay2{transition-delay:.2s}.delay3{transition-delay:.3s}

.nav{position:fixed;top:0;left:0;right:0;height:78px;padding:0 clamp(24px,4vw,58px);display:flex;align-items:center;gap:34px;z-index:1000;color:var(--cream);background:linear-gradient(to bottom,rgba(7,7,7,.86),rgba(7,7,7,.15));transition:.35s var(--ease)}
.nav.small{height:62px;background:rgba(7,7,7,.82);backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}
.logo{width:clamp(190px, 14vw, 240px);color:var(--cream);flex-shrink:0}
.nav__links{margin-left:auto;display:flex;align-items:center;gap:30px}.nav__links a{font-size:10px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:rgba(245,241,232,.52);transition:.25s var(--ease)}.nav__links a:hover{color:var(--cream)}
.nav__cta{margin-left:14px;border:1px solid rgba(245,241,232,.18);border-radius:999px;padding:11px 22px;font-size:10px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--cream);transition:.35s var(--ease)}.nav__cta:hover{background:#faf9f6;color:var(--black);border-color:var(--cream)}

.hero{min-height:100svh;position:relative;overflow:hidden;padding:116px clamp(24px,4vw,58px) 58px;background:radial-gradient(circle at 52% 38%, rgba(255,255,255,.045), transparent 42%),linear-gradient(180deg,#050505 0%,#060606 100%),repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0px,rgba(255,255,255,.014) 1px,transparent 1px,transparent 4px);display:flex;align-items:center}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.98) 0%,rgba(5,5,5,.84) 45%,rgba(5,5,5,.42) 100%);z-index:1;pointer-events:none}
.hero__inner{width:100%;max-width:var(--max);margin:0 auto;position:relative;z-index:2;display:grid;grid-template-columns:minmax(420px, .88fr) minmax(420px, 1fr);gap:64px;align-items:center}
.hero__copy{position:relative;z-index:4}.hero__copy .kicker{margin-bottom:28px}
.hero h1{font-size:clamp(72px,7.2vw,118px);max-width:760px;color:var(--cream);text-shadow:0 22px 70px rgba(0,0,0,.36)}
.hero h1 .italic{display:block;font-size:.78em;color:rgba(245,241,232,.86);margin-top:.06em}.light-word{background:linear-gradient(180deg,#e6e2d8 0%,#a8a296 100%);-webkit-background-clip:text;background-clip:text;color:transparent;display:inline-block;padding-right:8px}
.hero .text{margin-top:30px;margin-bottom:38px}.actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.btn{height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:0 32px;font-size:10px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;transition:.35s var(--ease)}.btn--light{background:#faf9f6;color:var(--black)}.btn--light:hover{transform:translateY(-3px);box-shadow:0 22px 70px rgba(245,241,232,.16)}.btn--ghost{border:1px solid rgba(245,241,232,.18);color:rgba(245,241,232,.8)}.btn--ghost:hover{border-color:rgba(245,241,232,.48);color:var(--cream);transform:translateY(-3px)}

.hero__visual{position:relative;z-index:3;display:flex;justify-content:center;align-items:center;min-height:560px;pointer-events:auto}.moon{position:relative;width:clamp(360px,38vw,540px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 38% 34%,#fff8e9 0%,#efe4cc 24%,#d8ccb5 48%,#b4aa99 70%,#7a7368 100%);box-shadow:0 0 90px rgba(232,222,200,.12),inset -56px -62px 90px rgba(0,0,0,.26),inset 26px 28px 54px rgba(255,255,255,.32);filter:none;transition:box-shadow .65s var(--ease),transform .65s var(--ease),filter .65s var(--ease);overflow:hidden;pointer-events:auto;cursor:pointer}.moon .phase{position:absolute;inset:0;border-radius:50%;background:linear-gradient(115deg,rgba(255,255,255,.44) 0%,rgba(255,255,255,.16) 32%,rgba(0,0,0,.12) 68%,rgba(0,0,0,.22) 100%);mix-blend-mode:soft-light;opacity:.65;transition:opacity .65s var(--ease),transform .9s var(--ease)}.moon:hover .phase{opacity:.95;transform:translateX(5%) rotate(5deg)}.moon .reveal-light{position:absolute;inset:-20%;border-radius:50%;background:radial-gradient(circle at var(--mx,42%) var(--my,38%),rgba(255,255,255,1),rgba(255,246,220,.55) 18%,rgba(255,246,220,.18) 34%,transparent 52%);opacity:0;mix-blend-mode:screen;transition:opacity .45s var(--ease)}.moon:hover .reveal-light{opacity:1}

.moon__mark{position:absolute;left:50%;top:50%;width:64%;height:64%;transform:translate(-50%,-50%) scale(.88);opacity:0 !important;visibility:hidden;overflow:visible;background:transparent;mix-blend-mode:normal;filter:none;transition:opacity .75s var(--ease), visibility .75s var(--ease), transform .9s var(--ease)}.moon:hover .moon__mark{opacity:1 !important;visibility:visible;transform:translate(-50%,-50%) scale(1)}

.moon:hover .moon__mark{opacity:1 !important;visibility:visible;transform:translate(-50%,-50%) scale(1)}

.moon::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 31% 27%,rgba(255,255,255,.72),rgba(255,255,255,.16) 23%,transparent 43%),radial-gradient(circle at 72% 68%,rgba(0,0,0,.16),transparent 42%);mix-blend-mode:soft-light;opacity:.9;transition:opacity .65s var(--ease)}.moon:hover{box-shadow:0 0 210px rgba(232,222,200,.38),0 0 90px rgba(255,244,218,.22),inset -58px -68px 96px rgba(0,0,0,.23),inset 30px 32px 62px rgba(255,255,255,.42);filter:brightness(1.12)}
.moon__mark{position:absolute;left:50%;top:50%;width:64%;height:64%;transform:translate(-50%,-50%) scale(.88);opacity:0 !important;visibility:hidden;overflow:visible;background:transparent;mix-blend-mode:normal;filter:none;transition:opacity .75s var(--ease), visibility .75s var(--ease), transform .9s var(--ease)}.moon__mark svg{position:absolute;inset:0;width:100%;height:100%;display:block;background:transparent;overflow:visible}.moon__mark .engrave-shadow{fill:rgba(18,16,12,.42);transform:translate(2px,3px);filter:blur(.35px);mix-blend-mode:multiply}.moon__mark .engrave-light{fill:rgba(255,248,226,.28);transform:translate(-2px,-2px);filter:blur(.2px);mix-blend-mode:screen}.moon:hover .moon__mark .engrave-shadow{animation:engraveIn .9s var(--ease) both}.moon:hover .moon__mark .engrave-light{animation:engraveGlow .9s var(--ease) both}@keyframes engraveIn{0%{opacity:0;transform:translate(10px,12px) scale(.94);filter:blur(10px)}100%{opacity:1;transform:translate(2px,3px) scale(1);filter:blur(.35px)}}@keyframes engraveGlow{0%{opacity:0;transform:translate(-10px,-10px) scale(.94);filter:blur(12px)}70%{opacity:.7}100%{opacity:1;transform:translate(-2px,-2px) scale(1);filter:blur(.2px)}}.moon__mark::after{content:none}.moon:hover .moon__mark::after{content:none}
.orbit-dot::after{content:"";width:8px;height:8px;border-radius:50%;background:#faf9f6;box-shadow:0 0 20px rgba(245,241,232,.8)}
.scroll{position:absolute;right:clamp(28px,4vw,58px);bottom:58px;z-index:4;display:flex;align-items:flex-end;gap:18px;color:rgba(245,241,232,.36)}.scroll span{font-size:9px;letter-spacing:.34em;text-transform:uppercase;writing-mode:vertical-rl}.scroll i{display:block;width:1px;height:72px;background:rgba(245,241,232,.17);position:relative;overflow:hidden}.scroll i::after{content:"";position:absolute;left:0;top:-40%;width:100%;height:40%;background:#faf9f6;animation:scrollLine 1.8s ease-in-out infinite}

.service-marquee{height:72px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(circle at 50% 40%, rgba(255,255,255,.035), transparent 42%),linear-gradient(180deg,#050505 0%,#060606 100%),repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0px,rgba(255,255,255,.014) 1px,transparent 1px,transparent 4px);overflow:hidden;display:flex;align-items:center;white-space:nowrap;position:relative}
.service-marquee::before,.service-marquee::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none}.service-marquee::before{left:0;background:linear-gradient(90deg,#050505,transparent)}.service-marquee::after{right:0;background:linear-gradient(270deg,#050505,transparent)}
.service-marquee__track{display:flex;width:max-content;animation:serviceTicker 34s linear infinite}.service-marquee:hover .service-marquee__track{animation-play-state:paused}
.service-marquee span{display:inline-flex;align-items:center;gap:34px;padding:0 18px;font-size:11px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:rgba(245,241,232,.42)}
.service-marquee i{display:inline-block;width:4px;height:4px;border-radius:50%;background:rgba(245,241,232,.78);box-shadow:0 0 10px rgba(245,241,232,.35)}
@keyframes serviceTicker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.section{padding:118px clamp(24px,4vw,58px)}.inner{max-width:var(--max);margin:0 auto}.section-title{font-size:clamp(54px,7vw,112px);margin-bottom:36px;line-height:1.08;overflow:visible}.section-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:58px;align-items:end;margin-bottom:56px}.dark{background:radial-gradient(circle at 50% 38%, rgba(255,255,255,.04), transparent 42%),linear-gradient(180deg,#050505 0%,#060606 100%),repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0px,rgba(255,255,255,.014) 1px,transparent 1px,transparent 4px);border-top:1px solid var(--line);position:relative}.dark>.inner{position:relative;z-index:1}.paper{background:var(--paper);color:var(--ink)}.paper .kicker{color:rgba(18,17,15,.42)}.paper .text{color:rgba(18,17,15,.58)}
.manifesto__rows{border-top:1px solid rgba(18,17,15,.13)}.manifesto__row{display:grid;grid-template-columns:90px 1fr;gap:24px;padding:32px 0;border-bottom:1px solid rgba(18,17,15,.13)}.manifesto__row small{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(18,17,15,.35);padding-top:12px}.manifesto__row p{font-family:"Playfair Display",serif;font-size:clamp(34px,4.4vw,72px);line-height:1;letter-spacing:-.04em}.manifesto__row span{font-style:italic;color:rgba(18,17,15,.32)}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.service{min-height:330px;background:#080807;padding:34px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .45s var(--ease), box-shadow .45s var(--ease), filter .45s var(--ease);position:relative;overflow:hidden;border:1px solid rgba(245,241,232,.04)}.service:hover{transform:translateY(-6px);z-index:2;filter:brightness(1.08);box-shadow:0 26px 70px rgba(0,0,0,.24)}.service::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,currentColor,transparent 34%);opacity:.07;transition:opacity .45s var(--ease), transform .45s var(--ease);pointer-events:none}.service:hover::after{opacity:.16;transform:scale(1.08)}.service small{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(245,241,232,.42);position:relative;z-index:1}.service h3{font-family:"Playfair Display",serif;font-size:42px;font-weight:400;line-height:1;letter-spacing:-.04em;margin:22px 0 14px;color:var(--cream);position:relative;z-index:1}.service p{color:rgba(245,241,232,.58);font-weight:300;position:relative;z-index:1}.orion{color:var(--orion-light);background:linear-gradient(145deg,#0b0d19 0%,var(--orion) 58%,#0a0a12 100%)}.luna{color:var(--luna-light);background:linear-gradient(145deg,#17120d 0%,var(--luna) 56%,#0a0a0a 100%)}.vega{color:var(--vega-light);background:linear-gradient(145deg,#07120c 0%,var(--vega) 58%,#0a1a12 100%)}.sirius{color:var(--sirius-light);background:linear-gradient(145deg,#0a0612 0%,var(--sirius) 58%,#0b0615 100%)}.antares{color:var(--antares-light);background:linear-gradient(145deg,#130606 0%,var(--antares) 58%,#120707 100%)}.polaris{color:var(--polaris-light);background:linear-gradient(145deg,#111 0%,var(--polaris) 58%,#0c0c0c 100%)}
.works-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}.work{min-height:420px;border-radius:28px;padding:34px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background:#111}.work.large{grid-column:span 7}.work.small{grid-column:span 5}.work.half{grid-column:span 6}.work::before{content:"";position:absolute;inset:0;z-index:0}.work.one::before{background:linear-gradient(135deg,#090909,#171a30)}.work.two::before{background:linear-gradient(135deg,#3a3024,#080808)}.work.three::before{background:linear-gradient(135deg,#102417,#204a31)}.work.four::before{background:linear-gradient(135deg,#171025,#4f3da0)}.work>*{position:relative;z-index:1}.work small{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:rgba(245,241,232,.42)}.work h3{font-family:"Playfair Display",serif;font-size:clamp(38px,4.2vw,72px);font-weight:400;line-height:.98;letter-spacing:-.045em;max-width:520px}.work p{color:rgba(245,241,232,.56);font-weight:300;max-width:460px}
.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(18,17,15,.13);border:1px solid rgba(18,17,15,.13)}.method-item{background:var(--paper);min-height:300px;padding:30px;display:flex;flex-direction:column;justify-content:space-between}.method-item strong{font-family:"Playfair Display",serif;font-size:54px;font-weight:400;color:rgba(18,17,15,.26)}.method-item h3{font-family:"Playfair Display",serif;font-size:32px;font-weight:400;line-height:1;margin-bottom:12px}.method-item p{font-weight:300;color:rgba(18,17,15,.58)}
.contact-panel{background:radial-gradient(circle at 80% 24%,rgba(245,241,232,.12),transparent 30%),var(--deep);border:1px solid var(--line);border-radius:34px;padding:60px;display:grid;grid-template-columns:1fr 1fr;gap:60px}.form{display:grid;gap:14px}.field{width:100%;background:rgba(245,241,232,.05);border:1px solid rgba(245,241,232,.12);border-radius:18px;color:var(--cream);padding:17px 18px;outline:0;font:inherit}.field::placeholder{color:rgba(245,241,232,.32)}textarea.field{min-height:140px;resize:vertical}.submit{height:54px;border-radius:999px;border:0;background:#faf9f6;color:var(--black);font-size:10px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer}
.footer{border-top:1px solid var(--line);padding:76px clamp(24px,4vw,58px) 42px;background:radial-gradient(circle at 50% 38%, rgba(255,255,255,.04), transparent 42%),linear-gradient(180deg,#050505 0%,#060606 100%),repeating-linear-gradient(90deg,rgba(255,255,255,.014) 0px,rgba(255,255,255,.014) 1px,transparent 1px,transparent 4px);position:relative}.footer-grid{position:relative;z-index:1}.footer-grid{max-width:var(--max);margin:0 auto 56px;display:grid;grid-template-columns:1.2fr .7fr .7fr .7fr;gap:64px}.footer-brand{display:flex;align-items:center;gap:14px;font-family:"Playfair Display",serif;font-size:23px;letter-spacing:-.03em;margin-bottom:26px}.footer-brand i{width:22px;height:22px;border:1px solid var(--cream);border-radius:50%}.footer p{color:rgba(245,241,232,.48);font-weight:300;max-width:340px}.footer h4{font-size:10px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:rgba(245,241,232,.42);margin-bottom:22px}.footer a{display:block;color:rgba(245,241,232,.72);font-size:14px;margin-bottom:14px;transition:.25s}.footer a:hover{color:var(--cream);transform:translateX(4px)}
@keyframes dotFloat{from{transform:translate(0,0)}to{transform:translate(30px,16px)}}@keyframes scrollLine{to{top:120%}}
@media(max-width:1080px){.nav__links{display:none}.hero__inner{grid-template-columns:1fr}.hero__visual{position:absolute;right:-120px;top:50%;transform:translateY(-50%);opacity:.42}.hero::before{background:linear-gradient(90deg,rgba(7,7,7,.98),rgba(7,7,7,.74))}.section-head,.contact-panel{grid-template-columns:1fr}.services-grid{grid-template-columns:1fr 1fr}.works-grid{grid-template-columns:1fr}.work.large,.work.small,.work.half{grid-column:auto}.method-grid{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.hero h1{font-size:clamp(64px,12vw,108px)}}
@media(max-width:680px){.nav{padding:0 24px}.logo{width:140px}.nav__cta{display:none}.hero{padding-top:92px;align-items:flex-end}.hero__copy{padding-bottom:84px}.hero .text{margin-top:30px;margin-bottom:38px}.actions{gap:12px}.btn{width:100%;height:54px;padding:0 18px}.hero__visual{right:-180px;top:35%;opacity:.32}.moon{width:330px}.orbit-dot,.scroll{display:none}.services-grid,.method-grid,.footer-grid{grid-template-columns:1fr}.manifesto__row{grid-template-columns:1fr;gap:8px}.contact-panel{padding:32px;border-radius:24px}}
.moon__mark{opacity:0!important;visibility:hidden!important;pointer-events:none!important;z-index:4!important}
.moon:hover .moon__mark{opacity:1!important;visibility:visible!important;transform:translate(-50%,-50%) scale(1.08)!important}
.moon__mark svg{background:transparent!important;overflow:visible!important}
.moon__mark .engrave-shadow{fill:rgba(12,10,8,.72)!important;filter:blur(.2px)!important;mix-blend-mode:multiply!important;transform:translate(3px,4px)!important}
.moon__mark .engrave-light{fill:rgba(255,250,235,.55)!important;filter:blur(.1px)!important;mix-blend-mode:screen!important;transform:translate(-3px,-3px)!important}
.moon:hover .moon__mark .engrave-shadow{animation:engraveShadowIn .75s var(--ease) both!important}
.moon:hover .moon__mark .engrave-light{animation:engraveLightIn .75s var(--ease) both!important}
@keyframes engraveShadowIn{0%{opacity:0;transform:translate(16px,18px) scale(.88);filter:blur(12px)}100%{opacity:1;transform:translate(3px,4px) scale(1);filter:blur(.2px)}}
@keyframes engraveLightIn{0%{opacity:0;transform:translate(-16px,-16px) scale(.88);filter:blur(12px)}70%{opacity:.9}100%{opacity:1;transform:translate(-3px,-3px) scale(1);filter:blur(.1px)}}

/* TORCIA / LUNA — override pulito finale */
.moon{
  background:
    radial-gradient(circle at 34% 28%, rgba(255,255,255,.96) 0%, rgba(255,246,221,.78) 18%, rgba(224,211,184,.72) 38%, rgba(169,158,139,.66) 62%, rgba(76,72,64,.82) 100%),
    radial-gradient(circle at 68% 72%, rgba(0,0,0,.22), transparent 44%) !important;
  box-shadow:
    0 0 120px rgba(236,222,190,.13),
    inset -70px -78px 115px rgba(0,0,0,.34),
    inset 42px 36px 72px rgba(255,255,255,.24) !important;
  overflow:hidden!important;
  isolation:isolate;
}
.moon::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  background:
    radial-gradient(circle at 22% 22%, rgba(255,255,255,.38), transparent 34%),
    radial-gradient(circle at 73% 72%, rgba(0,0,0,.28), transparent 48%),
    radial-gradient(circle at 46% 58%, rgba(255,238,190,.10), transparent 26%);
  mix-blend-mode:soft-light;
  opacity:.82;
  pointer-events:none;
  z-index:1;
}
.moon .phase{
  z-index:2;
  opacity:.38!important;
  background:linear-gradient(120deg, rgba(255,255,255,.28), rgba(255,255,255,.08) 38%, rgba(0,0,0,.18) 76%)!important;
}
.moon .reveal-light{
  display:block!important;
  inset:0!important;
  z-index:5;
  border-radius:50%;
  background:radial-gradient(circle at var(--lx,50%) var(--ly,50%), rgba(255,255,255,.85), rgba(255,238,198,.30) 13%, transparent 30%)!important;
  opacity:0;
  mix-blend-mode:screen;
  pointer-events:none;
  transition:opacity .25s var(--ease);
}
.moon.is-lit .reveal-light{opacity:1!important;}
.moon__mark{
  z-index:4!important;
  opacity:1!important;
  visibility:visible!important;
  width:62%!important;
  height:62%!important;
  overflow:hidden!important;
  border-radius:50%;
  background:transparent!important;
  mix-blend-mode:normal!important;
  filter:none!important;
  clip-path:circle(0% at var(--lx,50%) var(--ly,50%));
  transition:clip-path .18s ease-out, transform .55s var(--ease)!important;
}
.moon.is-lit .moon__mark{
  clip-path:circle(34% at var(--lx,50%) var(--ly,50%));
  transform:translate(-50%,-50%) scale(1.02)!important;
}
.moon__mark svg{
  background:transparent!important;
  overflow:hidden!important;
}
.moon__mark .engrave-shadow{
  fill:rgba(16,14,11,.58)!important;
  transform:translate(2px,3px)!important;
  filter:blur(.15px)!important;
  mix-blend-mode:multiply!important;
}
.moon__mark .engrave-light{
  fill:rgba(255,248,226,.42)!important;
  transform:translate(-2px,-2px)!important;
  filter:blur(.1px)!important;
  mix-blend-mode:screen!important;
}
.moon:hover{filter:brightness(1.04)!important;}
.hero .text{margin-top:30px;margin-bottom:38px}

/* PREMIUM MOTION PASS — refined animations */
html{scroll-padding-top:84px}
body{
  opacity:0;
  transition:opacity .75s var(--ease);
}
body.is-ready{opacity:1}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* subtle background breathing */
.hero::after{
  content:"";
  position:absolute;
  inset:-18%;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 62% 42%, rgba(245,241,232,.065), transparent 28%),
    radial-gradient(circle at 26% 64%, rgba(245,241,232,.025), transparent 24%);
  filter:blur(24px);
  opacity:.72;
  animation:heroBreath 12s var(--ease) infinite alternate;
}
@keyframes heroBreath{
  0%{transform:translate3d(-1.5%,1%,0) scale(1);opacity:.48}
  100%{transform:translate3d(1.5%,-1%,0) scale(1.05);opacity:.88}
}

/* navigation refinement */
.nav{
  transform:translateY(-14px);
  opacity:0;
}
body.is-ready .nav{
  transform:translateY(0);
  opacity:1;
}
.nav__links a{
  position:relative;
}
.nav__links a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-8px;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .45s var(--ease);
  opacity:.7;
}
.nav__links a:hover::after{
  transform:scaleX(1);
  transform-origin:left;
}

/* hero content entrance */
.hero__copy .kicker,
.hero h1,
.hero .text,
.hero .actions{
  will-change:transform,opacity;
}
body.is-ready .hero__copy .kicker{animation:softRise .9s var(--ease) .08s both}
body.is-ready .hero h1{animation:softRise 1.05s var(--ease) .18s both}
body.is-ready .hero .text{animation:softRise 1.05s var(--ease) .32s both}
body.is-ready .hero .actions{animation:softRise 1.05s var(--ease) .45s both}

@keyframes softRise{
  from{opacity:0;transform:translate3d(0,26px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

.light-word{
  transition:filter .45s var(--ease), text-shadow .45s var(--ease);
}
.hero:hover .light-word{
  filter:brightness(1.12);
  text-shadow:0 0 34px rgba(245,241,232,.08);
}

/* button polish */
.btn,.submit{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.btn::before,.submit::before{
  content:"";
  position:absolute;
  inset:-1px;
  z-index:-1;
  background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.28) 42%,transparent 70%);
  transform:translateX(-125%);
  transition:transform .75s var(--ease);
}
.btn:hover::before,.submit:hover::before{
  transform:translateX(125%);
}
.btn:active,.submit:active{
  transform:translateY(-1px) scale(.985);
}

/* moon refinement */
.moon{
  will-change:transform,filter;
  animation:moonIdle 8s var(--ease) infinite alternate;
}
@keyframes moonIdle{
  from{filter:brightness(1)}
  to{filter:brightness(1.035)}
}
.moon .phase{
  animation:moonPhaseDrift 10s var(--ease) infinite alternate;
}
@keyframes moonPhaseDrift{
  from{transform:translateX(-1.5%) rotate(-1deg)}
  to{transform:translateX(2.5%) rotate(2deg)}
}

/* marquee refinement */
.service-marquee__track{
  will-change:transform;
}
.service-marquee span{
  transition:color .35s var(--ease), letter-spacing .35s var(--ease);
}
.service-marquee:hover span{
  color:rgba(245,241,232,.66);
  letter-spacing:.31em;
}

/* section reveal: more premium */
.reveal{
  filter:blur(8px);
  transition:opacity 1s var(--ease), transform 1s var(--ease), filter 1s var(--ease);
}
.reveal.visible{
  filter:blur(0);
}

/* manifesto rows */
.manifesto__row{
  position:relative;
  transition:padding-left .55s var(--ease), color .55s var(--ease);
}
.manifesto__row::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:2px;
  background:rgba(18,17,15,.22);
  transform:scaleY(0);
  transform-origin:top;
  transition:transform .65s var(--ease);
}
.manifesto__row:hover{
  padding-left:18px;
}
.manifesto__row:hover::before{
  transform:scaleY(1);
}

/* service cards */
.service{
  will-change:transform;
}
.service h3,.service p,.service small{
  transition:transform .55s var(--ease), color .55s var(--ease), opacity .55s var(--ease);
}
.service:hover h3{transform:translateY(-4px)}
.service:hover p{transform:translateY(-2px);color:rgba(245,241,232,.72)}
.service:hover small{color:rgba(245,241,232,.62)}

/* work cards cinematic hover */
.work{
  transition:transform .7s var(--ease), border-radius .7s var(--ease), box-shadow .7s var(--ease);
}
.work::before{
  transition:transform .9s var(--ease), filter .9s var(--ease);
}
.work:hover{
  transform:translateY(-8px);
  border-radius:36px;
  box-shadow:0 28px 90px rgba(0,0,0,.28);
}
.work:hover::before{
  transform:scale(1.06);
  filter:brightness(1.08);
}

/* method cards */
.method-item{
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.method-item:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 45px rgba(18,17,15,.05);
}
.method-item strong,
.method-item h3,
.method-item p{
  transition:transform .45s var(--ease), opacity .45s var(--ease);
}
.method-item:hover strong{transform:translateY(-3px);opacity:.9}
.method-item:hover h3{transform:translateY(-2px)}
.method-item:hover p{transform:translateY(-1px)}

/* form focus */
.field{
  transition:border-color .35s var(--ease), background .35s var(--ease), transform .35s var(--ease);
}
.field:focus{
  border-color:rgba(245,241,232,.42);
  background:rgba(245,241,232,.075);
  transform:translateY(-2px);
}

/* footer links */
.footer a{
  position:relative;
  transition:color .25s var(--ease), transform .25s var(--ease), opacity .25s var(--ease);
}
.footer a::after{content:none!important}
.footer a:hover{
  transform:translateX(4px);
  opacity:.95;
}

/* click pulse for custom cursor */
.cursor-ring.is-clicking{
  width:86px!important;
  height:86px!important;
  opacity:.28!important;
}


/* PROVA ROTTA — card nere con reveal/lampo */
.paper .method-grid{
  background:rgba(18,17,15,.13);
  border:1px solid rgba(18,17,15,.13);
}

.paper .method-item{
  background:#070707;
  color:#f5f1e8;
  min-height:300px;
  padding:32px;
  position:relative;
  overflow:hidden;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),filter .35s var(--ease);
}

/* flash di luce — stesso delle service card */
.paper .method-item::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:linear-gradient(
    105deg,
    transparent 0%,transparent 35%,
    rgba(255,255,255,.42) 47%,
    rgba(255,244,218,.16) 53%,
    transparent 65%,transparent 100%
  );
  opacity:0;
  transform:translateX(-120%);
  pointer-events:none;
  mix-blend-mode:screen;
  z-index:2;
}

.paper .method-item:hover{
  transform:translateY(-7px);
  box-shadow:0 22px 58px rgba(0,0,0,.28);
  filter:brightness(1.08);
  z-index:2;
}

.paper .method-item:hover::before{
  animation:methodFlash .82s var(--ease) both;
}

@keyframes methodFlash{
  0%{opacity:0;transform:translateX(-120%)}
  18%{opacity:.9}
  100%{opacity:0;transform:translateX(120%)}
}

.paper .method-item strong,
.paper .method-item h3,
.paper .method-item p{
  position:relative;
  z-index:1;
  transition:transform .45s var(--ease);
}

.paper .method-item strong{color:rgba(245,241,232,.28)}
.paper .method-item h3{color:#f5f1e8}
.paper .method-item p{color:rgba(245,241,232,.55)}

.paper .method-item:hover strong{transform:translateY(-4px)}
.paper .method-item:hover h3{transform:translateY(-3px)}
.paper .method-item:hover p{transform:translateY(-2px)}




/* PROVA COSTELLAZIONI — luce coordinata sulle macrosezioni */
.services-grid{
  position:relative;
  overflow:hidden;
}

.service{
  isolation:isolate;
  transform-style:preserve-3d;
}

.service::before{
  content:"";
  position:absolute;
  inset:-45%;
  z-index:0;
  background:
    linear-gradient(
      115deg,
      transparent 0%,
      transparent 36%,
      rgba(255,255,255,.55) 46%,
      rgba(255,244,214,.24) 51%,
      transparent 64%,
      transparent 100%
    );
  opacity:0;
  transform:translateX(-115%) rotate(10deg);
  pointer-events:none;
}

.service::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(circle at var(--card-x, 78%) var(--card-y, 18%), currentColor, transparent 36%),
    radial-gradient(circle at 18% 80%, rgba(255,255,255,.08), transparent 38%);
  opacity:.08;
  transition:opacity .5s var(--ease), transform .65s var(--ease);
  pointer-events:none;
}

.service:hover{
  transform:translateY(-8px) rotateX(2deg) rotateY(-2deg);
  filter:brightness(1.14) saturate(1.08);
  box-shadow:
    0 28px 90px rgba(0,0,0,.34),
    inset 0 0 0 1px rgba(245,241,232,.12);
}

.service:hover::before{
  opacity:1;
  animation:constellationFlash .82s var(--ease) both;
}

.service:hover::after{
  opacity:.20;
  transform:scale(1.08);
}

.service small,
.service h3,
.service p{
  transition:
    color .45s var(--ease),
    transform .55s var(--ease),
    opacity .45s var(--ease);
}

.service:hover small{
  color:rgba(245,241,232,.68);
  transform:translateY(-3px);
}

.service:hover h3{
  color:#fffaf0;
  transform:translateY(-5px);
  text-shadow:0 0 28px rgba(245,241,232,.12);
}

.service:hover p{
  color:rgba(245,241,232,.76);
  transform:translateY(-3px);
}

@keyframes constellationFlash{
  0%{
    opacity:0;
    transform:translateX(-115%) rotate(10deg);
  }
  18%{
    opacity:.8;
  }
  100%{
    opacity:0;
    transform:translateX(115%) rotate(10deg);
  }
}


/* PROVA LAYOUT COSTELLAZIONI — card moderne arrotondate */
.services-grid{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:18px;
  background:transparent!important;
  border:0!important;
  margin-top:8px;
  overflow:visible;
}

.service{
  min-height:360px;
  border-radius:28px;
  border:1px solid rgba(245,241,232,.10)!important;
  padding:34px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}

.service:nth-child(1),
.service:nth-child(2){
  grid-column:span 6;
}

.service:nth-child(3),
.service:nth-child(4),
.service:nth-child(5),
.service:nth-child(6){
  grid-column:span 3;
  min-height:330px;
}

.service h3{
  font-size:clamp(36px,3vw,54px);
  max-width:420px;
}

.service p{
  max-width:360px;
}

.service small{
  opacity:.78;
}

.service:hover{
  transform:translateY(-10px) rotateX(2deg) rotateY(-2deg);
  border-color:rgba(245,241,232,.22)!important;
}

@media(max-width:1080px){
  .services-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .service:nth-child(n){
    grid-column:auto;
  }
}

@media(max-width:680px){
  .services-grid{
    grid-template-columns:1fr;
    gap:14px;
  }
  .service{
    min-height:290px;
    border-radius:22px;
  }
}


/* UPDATE V6 — Costellazioni senza filetto + Work con stesso effetto luce */
#servizi .section-head .text{
  max-width:760px;
}

#servizi .service{
  border:0!important;
  box-shadow:none!important;
}

#servizi .service:hover{
  border-color:transparent!important;
}

/* stesso linguaggio luce/lampo anche su Il brand in azione */
.work{
  isolation:isolate;
  transform-style:preserve-3d;
  border:0!important;
  transition:
    transform .55s var(--ease),
    filter .55s var(--ease),
    box-shadow .55s var(--ease);
}

.work::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    radial-gradient(circle at var(--work-x, 78%) var(--work-y, 18%), rgba(245,241,232,.18), transparent 36%),
    radial-gradient(circle at 18% 80%, rgba(255,255,255,.08), transparent 38%);
  opacity:.10;
  transition:opacity .5s var(--ease), transform .65s var(--ease);
  pointer-events:none;
}

.work::before{
  z-index:0;
  transition:filter .55s var(--ease), opacity .55s var(--ease);
}

.work .work-flash{
  position:absolute;
  inset:-45%;
  z-index:1;
  background:
    linear-gradient(
      115deg,
      transparent 0%,
      transparent 36%,
      rgba(255,255,255,.52) 46%,
      rgba(255,244,214,.22) 51%,
      transparent 64%,
      transparent 100%
    );
  opacity:0;
  transform:translateX(-115%) rotate(10deg);
  pointer-events:none;
}

.work:hover{
  transform:translateY(-10px) rotateX(2deg) rotateY(-2deg);
  filter:brightness(1.12) saturate(1.05);
  box-shadow:0 28px 90px rgba(0,0,0,.34);
}

.work:hover::after{
  opacity:.22;
  transform:scale(1.08);
}

.work:hover .work-flash{
  opacity:1;
  animation:workFlash .82s var(--ease) both;
}

.work small,
.work h3,
.work p{
  transition:
    color .45s var(--ease),
    transform .55s var(--ease),
    opacity .45s var(--ease),
    text-shadow .45s var(--ease);
}

.work:hover small{
  color:rgba(245,241,232,.68);
  transform:translateY(-3px);
}

.work:hover h3{
  color:#fffaf0;
  transform:translateY(-5px);
  text-shadow:0 0 28px rgba(245,241,232,.12);
}

.work:hover p{
  color:rgba(245,241,232,.76);
  transform:translateY(-3px);
}

@keyframes workFlash{
  0%{opacity:0;transform:translateX(-115%) rotate(10deg)}
  18%{opacity:.85}
  100%{opacity:0;transform:translateX(115%) rotate(10deg)}
}


/* UPDATE V7 — galassia, card spente e luce che rivela */
#servizi,
#lavori{
  position:relative;
  overflow:hidden;
}

#servizi::before,
#lavori::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.12;
  background:
    radial-gradient(circle at 18% 22%, rgba(245,241,232,.08), transparent 22%),
    radial-gradient(circle at 84% 38%, rgba(245,241,232,.055), transparent 24%),
    linear-gradient(90deg, rgba(245,241,232,.035) 1px, transparent 1px),
    linear-gradient(0deg, rgba(245,241,232,.025) 1px, transparent 1px);
  background-size:auto, auto, 140px 140px, 140px 140px;
  mix-blend-mode:screen;
}

#servizi::after,
#lavori::after{
  content:"ƒ(x)=luce  ·  ∆ brand  ·  orbita 01  ·  y = identità  ·  rifrazione";
  position:absolute;
  left:8%;
  right:8%;
  top:18%;
  z-index:0;
  pointer-events:none;
  color:rgba(245,241,232,.10);
  font-family:"Playfair Display", Georgia, serif;
  font-size:clamp(16px,1.2vw,22px);
  font-style:italic;
  letter-spacing:.12em;
  transform:rotate(-4deg);
  white-space:nowrap;
  opacity:.32;
}

#servizi .inner,
#lavori .inner{
  position:relative;
  z-index:1;
}

#servizi .service,
#lavori .work{
  filter:grayscale(1) brightness(.58) contrast(1.06);
  transition:
    filter .34s var(--ease),
    transform .55s var(--ease),
    box-shadow .55s var(--ease),
    opacity .34s var(--ease);
}

#servizi .service{
  background:#121212!important;
}

#lavori .work::before,
#servizi .service::before{
  filter:grayscale(1) brightness(.56) contrast(1.05);
  transition:filter .34s var(--ease), opacity .34s var(--ease);
}

#servizi .service::after,
#lavori .work::after{
  opacity:.05;
}

#servizi .service small,
#servizi .service h3,
#servizi .service p,
#lavori .work small,
#lavori .work h3,
#lavori .work p{
  opacity:.74;
}

#servizi .service:hover,
#lavori .work:hover{
  filter:grayscale(0) brightness(1.08) contrast(1.04) saturate(1.08);
}

#servizi .service:hover::before,
#lavori .work:hover::before{
  filter:grayscale(0) brightness(1.02) contrast(1);
}

#servizi .service:hover small,
#servizi .service:hover h3,
#servizi .service:hover p,
#lavori .work:hover small,
#lavori .work:hover h3,
#lavori .work:hover p{
  opacity:1;
}

/* disegni tecnici quasi invisibili */
.cosmic-sketch{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.055;
  color:#f5f1e8;
  mix-blend-mode:screen;
}

.cosmic-sketch svg{
  width:100%;
  height:100%;
  overflow:visible;
}

.cosmic-sketch path,
.cosmic-sketch circle,
.cosmic-sketch line{
  stroke:currentColor;
  stroke-width:1;
  fill:none;
  vector-effect:non-scaling-stroke;
}

.cosmic-sketch text{
  fill:currentColor;
  font-family:"Playfair Display", Georgia, serif;
  font-style:italic;
  font-size:16px;
  letter-spacing:.08em;
  opacity:.55;
}


/* UPDATE V8 — Costellazioni reali + card che si accendono */
#servizi .service,
#lavori .work{
  filter:none!important;
}

/* stato spento, tono su tono */
#servizi .service{
  background:linear-gradient(145deg,#141414,#080808)!important;
  color:#f5f1e8;
  opacity:.92;
}

/* riaccensione colore reale in hover */
#servizi .service.orion:hover{background:linear-gradient(145deg,#0b0d19 0%,var(--orion) 58%,#0a0a12 100%)!important;}
#servizi .service.luna:hover{background:linear-gradient(145deg,#17120d 0%,var(--luna) 56%,#0a0a0a 100%)!important;}
#servizi .service.vega:hover{background:linear-gradient(145deg,#07120c 0%,var(--vega) 58%,#0a1a12 100%)!important;}
#servizi .service.sirius:hover{background:linear-gradient(145deg,#0a0612 0%,var(--sirius) 58%,#0b0615 100%)!important;}
#servizi .service.antares:hover{background:linear-gradient(145deg,#130606 0%,var(--antares) 58%,#120707 100%)!important;}


#servizi .service:hover{
  opacity:1;
  filter:brightness(1.08) saturate(1.08)!important;
}

#servizi .service::before,
#lavori .work .work-flash{
  mix-blend-mode:screen;
}

.constellation-field,
.formula-field{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  color:#f5f1e8;
  opacity:.07;
  mix-blend-mode:screen;
}

.constellation-field svg,
.formula-field svg{
  width:100%;
  height:100%;
}

.constellation-field .constellation{
  opacity:.72;
}

.constellation-field path,
.constellation-field circle,
.formula-field path,
.formula-field circle,
.formula-field line{
  vector-effect:non-scaling-stroke;
}

.constellation-field path,
.formula-field path,
.formula-field line{
  stroke:currentColor;
  stroke-width:1.2;
  fill:none;
}

.constellation-field circle{
  fill:currentColor;
  stroke:none;
}

.constellation-field text,
.formula-field text{
  fill:currentColor;
  font-family:"Playfair Display", Georgia, serif;
  font-size:15px;
  letter-spacing:.32em;
  opacity:.72;
}

.formula-field{
  opacity:.055;
}

.formula-field text{
  font-size:20px;
  letter-spacing:.04em;
  font-style:italic;
}

#servizi .inner,
#lavori .inner{
  position:relative;
  z-index:1;
}


#servizi .service.polaris:hover{
  background:linear-gradient(
    145deg,
    #1a1a1a 0%,
    #3a3a3a 50%,
    #0e0e0e 100%
  )!important;

  filter: brightness(1.12) contrast(1.05) !important;
}


/* FIX V10 — mantiene gli angoli stondati durante hover/lampo */
#servizi .service,
#lavori .work{
  overflow:hidden!important;
  border-radius:28px!important;
  clip-path:inset(0 round 28px);
  -webkit-mask-image:-webkit-radial-gradient(white, black);
}

#servizi .service::before,
#servizi .service::after,
#lavori .work::before,
#lavori .work::after,
#lavori .work .work-flash{
  border-radius:inherit!important;
  overflow:hidden!important;
}

#servizi .service::before,
#lavori .work .work-flash{
  clip-path:inset(0 round 28px);
}

@media(max-width:680px){
  #servizi .service,
  #lavori .work{
    border-radius:22px!important;
    clip-path:inset(0 round 22px);
  }

  #servizi .service::before,
  #lavori .work .work-flash{
    clip-path:inset(0 round 22px);
  }
}




/* UPDATE V14 — Luna shader Apple/studio, luce solo dentro la sfera */
.hero__visual .moon{
  position:relative!important;
  overflow:hidden!important;
  border-radius:50%!important;
  isolation:isolate!important;
  background:
    radial-gradient(circle at 32% 26%, rgba(232,220,190,.70) 0%, rgba(184,174,152,.72) 28%, rgba(112,106,94,.76) 56%, rgba(42,40,36,.94) 100%),
    radial-gradient(circle at 76% 78%, rgba(0,0,0,.48), transparent 48%)!important;
  box-shadow:
    0 0 86px rgba(236,222,190,.08),
    inset -82px -90px 126px rgba(0,0,0,.54),
    inset 36px 32px 76px rgba(255,246,218,.14)!important;
  filter:brightness(.84) contrast(1.05)!important;
  transition:
    filter 1.05s cubic-bezier(.22,.61,.36,1),
    box-shadow 1.05s cubic-bezier(.22,.61,.36,1),
    transform .65s var(--ease)!important;
}

.hero__visual .moon::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  border-radius:50%!important;
  z-index:2!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 28% 24%, rgba(255,255,255,.18), transparent 34%),
    radial-gradient(circle at 72% 72%, rgba(0,0,0,.38), transparent 52%),
    linear-gradient(118deg, rgba(255,255,255,.08), rgba(255,255,255,0) 42%, rgba(0,0,0,.18) 78%)!important;
  mix-blend-mode:soft-light!important;
  opacity:.78!important;
}

/* luce sferica: clippata, curva e senza rettangoli */
.hero__visual .moon::after{
  content:"";
  position:absolute;
  inset:0!important;
  z-index:7;
  border-radius:50%!important;
  pointer-events:none;
  background:
    radial-gradient(
      ellipse at var(--lx,42%) var(--ly,38%),
      rgba(255,250,226,.82) 0%,
      rgba(255,238,198,.46) 16%,
      rgba(255,226,178,.22) 34%,
      rgba(255,226,178,.08) 52%,
      transparent 72%
    ),
    radial-gradient(
      circle at 34% 34%,
      rgba(255,255,255,.18),
      transparent 46%
    );
  opacity:.05;
  transform:scale(.42);
  transform-origin:var(--lx,42%) var(--ly,38%);
  mix-blend-mode:screen;
  clip-path:circle(50% at 50% 50%);
  -webkit-clip-path:circle(50% at 50% 50%);
  mask-image:radial-gradient(circle at 50% 50%, black 68%, rgba(0,0,0,.72) 82%, transparent 100%);
  -webkit-mask-image:radial-gradient(circle at 50% 50%, black 68%, rgba(0,0,0,.72) 82%, transparent 100%);
  transition:
    opacity .58s var(--ease),
    transform 1.45s cubic-bezier(.22,.61,.36,1);
}

.hero__visual .moon.is-lit,
.hero__visual .moon:hover{
  filter:brightness(1.08) contrast(1.03)!important;
  box-shadow:
    0 0 168px rgba(236,222,190,.24),
    0 0 62px rgba(255,239,197,.14),
    inset -66px -80px 116px rgba(0,0,0,.38),
    inset 48px 44px 88px rgba(255,246,218,.26)!important;
}

.hero__visual .moon.is-lit::after,
.hero__visual .moon:hover::after{
  opacity:1;
  transform:scale(1.42);
}

.hero__visual .moon .phase{
  z-index:3!important;
  border-radius:50%!important;
  opacity:.42!important;
  background:
    radial-gradient(circle at 34% 30%, rgba(255,255,255,.12), transparent 42%),
    linear-gradient(120deg, rgba(255,255,255,.13), rgba(255,255,255,.03) 40%, rgba(0,0,0,.26) 78%)!important;
  transition:opacity 1s var(--ease), transform 1.2s cubic-bezier(.22,.61,.36,1)!important;
}

.hero__visual .moon.is-lit .phase,
.hero__visual .moon:hover .phase{
  opacity:.68!important;
  transform:translateX(2%) rotate(2deg)!important;
}

/* luce puntuale del mouse, sempre clippata dentro la sfera */
.hero__visual .moon .reveal-light{
  display:block!important;
  inset:0!important;
  z-index:6!important;
  border-radius:50%!important;
  background:
    radial-gradient(
      circle at var(--lx,50%) var(--ly,50%),
      rgba(255,252,232,.62),
      rgba(255,232,188,.24) 18%,
      rgba(255,232,188,.07) 36%,
      transparent 60%
    )!important;
  opacity:.10!important;
  transform:scale(.82);
  transform-origin:var(--lx,50%) var(--ly,50%);
  mix-blend-mode:screen!important;
  pointer-events:none!important;
  clip-path:circle(50% at 50% 50%);
  -webkit-clip-path:circle(50% at 50% 50%);
  transition:
    opacity .58s var(--ease),
    transform 1.25s cubic-bezier(.22,.61,.36,1)!important;
}

.hero__visual .moon.is-lit .reveal-light,
.hero__visual .moon:hover .reveal-light{
  opacity:.72!important;
  transform:scale(1.18);
}

/* monogramma: solo mezzelune, inciso e più stabile */
.hero__visual .moon__mark{
  z-index:8!important;
  width:54%!important;
  height:54%!important;
  opacity:0!important;
  visibility:hidden!important;
  clip-path:none!important;
  overflow:visible!important;
  border-radius:0!important;
  transform:translate(-50%,-50%) scale(.90) rotate(-2deg)!important;
  filter:drop-shadow(4px 7px 8px rgba(0,0,0,.30))!important;
  mix-blend-mode:normal!important;
  transition:
    opacity .68s var(--ease),
    visibility .68s var(--ease),
    transform 1s cubic-bezier(.22,.61,.36,1)!important;
  transition-delay:.18s!important;
}

.hero__visual .moon.is-lit .moon__mark,
.hero__visual .moon:hover .moon__mark{
  opacity:1!important;
  visibility:visible!important;
  transform:translate(-50%,-50%) scale(1.02) rotate(0deg)!important;
}

.hero__visual .moon__mark svg{
  overflow:visible!important;
  background:transparent!important;
}

.hero__visual .moon__mark .engrave-shadow{
  fill:rgba(24,20,14,.50)!important;
  transform:translate(3px,4px) translateZ(0)!important;
  filter:none!important;
  mix-blend-mode:multiply!important;
}

.hero__visual .moon__mark .engrave-light{
  fill:rgba(255,245,216,.34)!important;
  transform:translate(-3px,-3px) translateZ(0)!important;
  filter:none!important;
  mix-blend-mode:screen!important;
}


/* FIX V15 — luce sferica senza layer quadrato */
.hero__visual .moon{
  overflow:hidden!important;
  border-radius:50%!important;
  clip-path:circle(50% at 50% 50%)!important;
  -webkit-clip-path:circle(50% at 50% 50%)!important;
  isolation:isolate!important;
  contain:paint!important;
}

/* annulla qualunque square layer precedente */
.hero__visual .moon::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:7!important;
  border-radius:50%!important;
  pointer-events:none!important;
  clip-path:circle(50% at 50% 50%)!important;
  -webkit-clip-path:circle(50% at 50% 50%)!important;
  mask-image:none!important;
  -webkit-mask-image:none!important;
  transform:none!important;
  transform-origin:center!important;
  mix-blend-mode:screen!important;
  opacity:.08!important;

  background-image:
    radial-gradient(
      circle at var(--lx,42%) var(--ly,38%),
      rgba(255,252,232,.88) 0%,
      rgba(255,238,198,.48) 18%,
      rgba(255,226,178,.22) 34%,
      rgba(255,226,178,.08) 50%,
      transparent 68%
    ),
    radial-gradient(
      circle at 32% 28%,
      rgba(255,255,255,.12),
      transparent 48%
    )!important;

  background-repeat:no-repeat!important;
  background-position:
    var(--lx,42%) var(--ly,38%),
    center!important;

  background-size:
    0% 0%,
    100% 100%!important;

  transition:
    opacity .55s var(--ease),
    background-size 1.55s cubic-bezier(.22,.61,.36,1)!important;
}

.hero__visual .moon:hover::after,
.hero__visual .moon.is-lit::after{
  opacity:1!important;
  background-size:
    175% 175%,
    100% 100%!important;
}

/* anche la luce puntuale resta dentro e non si scala fuori */
.hero__visual .moon .reveal-light{
  inset:0!important;
  border-radius:50%!important;
  clip-path:circle(50% at 50% 50%)!important;
  -webkit-clip-path:circle(50% at 50% 50%)!important;
  transform:none!important;
  background:
    radial-gradient(
      circle at var(--lx,50%) var(--ly,50%),
      rgba(255,252,232,.54),
      rgba(255,232,188,.20) 18%,
      rgba(255,232,188,.06) 34%,
      transparent 58%
    )!important;
  transition:opacity .65s var(--ease)!important;
}

.hero__visual .moon:hover .reveal-light,
.hero__visual .moon.is-lit .reveal-light{
  opacity:.68!important;
}


/* FIX V16 — ingresso mouse morbido sulla luna, senza flash quadrato */
.hero__visual .moon::after{
  opacity:0!important;
  background-size:
    40% 40%,
    100% 100%!important;
  transition:
    opacity .42s var(--ease),
    background-size 1.25s cubic-bezier(.22,.61,.36,1),
    background-position .18s linear!important;
}

.hero__visual .moon:hover::after,
.hero__visual .moon.is-lit::after{
  opacity:.95!important;
  background-size:
    165% 165%,
    100% 100%!important;
}

.hero__visual .moon .reveal-light{
  opacity:0!important;
  transition:
    opacity .36s var(--ease),
    background-position .18s linear!important;
}

.hero__visual .moon:hover .reveal-light,
.hero__visual .moon.is-lit .reveal-light{
  opacity:.58!important;
}

/* evita artefatti del cursore dentro la luna durante il reveal */
.hero__visual .moon,
.hero__visual .moon::before,
.hero__visual .moon::after,
.hero__visual .moon .phase,
.hero__visual .moon .reveal-light{
  backface-visibility:hidden;
  transform:translateZ(0);
}


/* FIX V17 — niente flash su ingresso veloce: la luna si accende solo via JS */
.hero__visual .moon:hover::after{
  opacity:0!important;
  background-size:
    40% 40%,
    100% 100%!important;
}

.hero__visual .moon.is-lit::after{
  opacity:.95!important;
  background-size:
    165% 165%,
    100% 100%!important;
}

.hero__visual .moon:hover .reveal-light{
  opacity:0!important;
}

.hero__visual .moon.is-lit .reveal-light{
  opacity:.58!important;
}

.hero__visual .moon:hover .moon__mark{
  opacity:0!important;
  visibility:hidden!important;
}

.hero__visual .moon.is-lit .moon__mark{
  opacity:1!important;
  visibility:visible!important;
  transform:translate(-50%,-50%) scale(1.02)!important;
}

.hero__visual .moon:hover{
  filter:brightness(.84) contrast(1.05)!important;
}

.hero__visual .moon.is-lit{
  filter:brightness(1.08) contrast(1.03)!important;
}


/* FIX V18 — luna stabile: reagisce solo quando il mouse è dentro */
.hero__visual .moon{
  transform:none!important;
}

.hero__visual .moon::after,
.hero__visual .moon .reveal-light,
.hero__visual .moon .phase,
.hero__visual .moon__mark{
  pointer-events:none!important;
}

.hero__visual .moon:not(.is-lit)::after{
  opacity:0!important;
  background-size:0% 0%,100% 100%!important;
}

.hero__visual .moon:not(.is-lit) .reveal-light{
  opacity:0!important;
}

.hero__visual .moon:not(.is-lit) .moon__mark{
  opacity:0!important;
  visibility:hidden!important;
}

.hero__visual .moon:not(.is-lit){
  filter:brightness(.84) contrast(1.05)!important;
}

.hero__visual .moon.is-lit{
  filter:brightness(1.08) contrast(1.03)!important;
}

.hero__visual .moon.is-lit::after{
  opacity:.88!important;
  background-size:150% 150%,100% 100%!important;
}

.hero__visual .moon.is-lit .reveal-light{
  opacity:.52!important;
}

.hero__visual .moon.is-lit .moon__mark{
  opacity:1!important;
  visibility:visible!important;
  transform:translate(-50%,-50%) scale(1.02)!important;
}

/* disattiva qualsiasi hover precedente sulla luna */
.hero__visual .moon:hover::after,
.hero__visual .moon:hover .reveal-light,
.hero__visual .moon:hover .moon__mark{
  transition-delay:0s!important;
}


/* FIX V19 — luce solo circolare, nessun taglio retto dentro la luna */
.hero__visual .moon{
  overflow:hidden!important;
  border-radius:50%!important;
  clip-path:circle(50% at 50% 50%)!important;
  -webkit-clip-path:circle(50% at 50% 50%)!important;
  contain:paint!important;
}

/* disattiva completamente il layer che creava il taglio quadrato */
.hero__visual .moon::after{
  content:none!important;
  display:none!important;
}

/* la luce diventa un vero disco morbido, non un rettangolo con gradiente */
.hero__visual .moon .reveal-light{
  display:block!important;
  position:absolute!important;
  z-index:6!important;
  left:var(--lx,42%)!important;
  top:var(--ly,38%)!important;
  width:18%!important;
  height:18%!important;
  inset:auto!important;
  transform:translate(-50%,-50%) scale(.35)!important;
  border-radius:50%!important;
  background:
    radial-gradient(
      circle,
      rgba(255,252,232,.78) 0%,
      rgba(255,238,198,.42) 24%,
      rgba(255,226,178,.16) 48%,
      transparent 72%
    )!important;
  opacity:0!important;
  mix-blend-mode:screen!important;
  pointer-events:none!important;
  filter:blur(0)!important;
  transition:
    opacity .45s var(--ease),
    width 1.35s cubic-bezier(.22,.61,.36,1),
    height 1.35s cubic-bezier(.22,.61,.36,1),
    transform 1.35s cubic-bezier(.22,.61,.36,1),
    left .12s linear,
    top .12s linear!important;
}

.hero__visual .moon.is-lit .reveal-light{
  opacity:.78!important;
  width:185%!important;
  height:185%!important;
  transform:translate(-50%,-50%) scale(1)!important;
}

/* effetto schiarita globale della sfera, senza overlay rettangolari */
.hero__visual .moon.is-lit{
  filter:brightness(1.08) contrast(1.03)!important;
  box-shadow:
    0 0 150px rgba(236,222,190,.22),
    0 0 58px rgba(255,239,197,.12),
    inset -66px -80px 116px rgba(0,0,0,.38),
    inset 48px 44px 88px rgba(255,246,218,.25)!important;
}

.hero__visual .moon:not(.is-lit) .reveal-light{
  opacity:0!important;
  width:18%!important;
  height:18%!important;
  transform:translate(-50%,-50%) scale(.35)!important;
}

/* monogramma stabile */
.hero__visual .moon__mark{
  transition-delay:.12s!important;
}


/* UPDATE V20 — luna hover più morbida e fondo meno in ombra */
.hero__visual .moon .reveal-light{
  transition:
    opacity .75s var(--ease),
    width 1.9s cubic-bezier(.22,.61,.36,1),
    height 1.9s cubic-bezier(.22,.61,.36,1),
    transform 1.9s cubic-bezier(.22,.61,.36,1),
    left .18s linear,
    top .18s linear!important;
}

.hero__visual .moon.is-lit .reveal-light{
  opacity:.68!important;
  width:205%!important;
  height:205%!important;
}

/* ammorbidisce la comparsa del monogramma */
.hero__visual .moon__mark{
  transition:
    opacity .9s var(--ease),
    visibility .9s var(--ease),
    transform 1.25s cubic-bezier(.22,.61,.36,1)!important;
  transition-delay:.25s!important;
}

/* schiarita più morbida e più presente nella parte bassa */
.hero__visual .moon.is-lit{
  filter:brightness(1.09) contrast(1.02)!important;
  box-shadow:
    0 0 155px rgba(236,222,190,.22),
    0 0 58px rgba(255,239,197,.12),
    inset -58px -62px 104px rgba(0,0,0,.30),
    inset 48px 44px 88px rgba(255,246,218,.26),
    inset 0 -52px 82px rgba(255,236,198,.12)!important;
}

.hero__visual .moon.is-lit::before{
  background:
    radial-gradient(circle at 28% 24%, rgba(255,255,255,.20), transparent 34%),
    radial-gradient(circle at 68% 72%, rgba(0,0,0,.24), transparent 54%),
    radial-gradient(circle at 48% 88%, rgba(255,235,195,.16), transparent 38%),
    linear-gradient(118deg, rgba(255,255,255,.08), rgba(255,255,255,0) 42%, rgba(0,0,0,.12) 78%)!important;
  opacity:.86!important;
}


/* UPDATE V21 — entrata più lenta e uscita sincronizzata luna/monogramma */
.hero__visual .moon{
  transition:
    filter 1.35s cubic-bezier(.22,.61,.36,1),
    box-shadow 1.35s cubic-bezier(.22,.61,.36,1),
    transform .65s var(--ease)!important;
}

.hero__visual .moon .reveal-light{
  transition:
    opacity 1.05s cubic-bezier(.22,.61,.36,1),
    width 2.35s cubic-bezier(.22,.61,.36,1),
    height 2.35s cubic-bezier(.22,.61,.36,1),
    transform 2.35s cubic-bezier(.22,.61,.36,1),
    left .22s linear,
    top .22s linear!important;
}

.hero__visual .moon__mark{
  transition:
    opacity 1.05s cubic-bezier(.22,.61,.36,1),
    visibility 1.05s cubic-bezier(.22,.61,.36,1),
    transform 1.35s cubic-bezier(.22,.61,.36,1)!important;
  transition-delay:.36s!important;
}

/* quando esci: niente delay, tutto sfuma assieme */
.hero__visual .moon:not(.is-lit) .moon__mark{
  transition-delay:0s!important;
  opacity:0!important;
  visibility:hidden!important;
}

.hero__visual .moon:not(.is-lit) .reveal-light{
  transition:
    opacity 1.05s cubic-bezier(.22,.61,.36,1),
    width 1.35s cubic-bezier(.22,.61,.36,1),
    height 1.35s cubic-bezier(.22,.61,.36,1),
    transform 1.35s cubic-bezier(.22,.61,.36,1),
    left .22s linear,
    top .22s linear!important;
}

/* mantiene morbido il rientro alla luna scura */
.hero__visual .moon:not(.is-lit){
  transition:
    filter 1.05s cubic-bezier(.22,.61,.36,1),
    box-shadow 1.05s cubic-bezier(.22,.61,.36,1),
    transform .65s var(--ease)!important;
}


/* UPDATE V22 — monogramma full premium, tono su tono */
.hero__visual .moon__mark{
  filter:none!important;
  mix-blend-mode:multiply!important;
}

.hero__visual .moon__mark svg{
  overflow:visible!important;
  background:transparent!important;
}

/* niente sdoppiamento: shadow e light quasi sovrapposti */
.hero__visual .moon__mark .engrave-shadow{
  fill:rgba(28,24,17,.24)!important;
  transform:translate(.8px,1.1px) translateZ(0)!important;
  filter:none!important;
  opacity:.72!important;
  mix-blend-mode:multiply!important;
}

.hero__visual .moon__mark .engrave-light{
  fill:rgba(255,248,225,.12)!important;
  transform:translate(-.7px,-.7px) translateZ(0)!important;
  filter:none!important;
  opacity:.58!important;
  mix-blend-mode:screen!important;
}

/* micro-riflesso materico, senza creare altre forme */
.hero__visual .moon__mark::after{
  content:"";
  position:absolute;
  inset:-4%;
  border-radius:50%;
  background:
    radial-gradient(circle at 38% 30%, rgba(255,255,255,.10), transparent 48%),
    linear-gradient(145deg, rgba(255,255,255,.055), transparent 42%, rgba(0,0,0,.035));
  opacity:.55;
  mix-blend-mode:soft-light;
  pointer-events:none;
}


/* UPDATE V23 — monogramma in emersione, senza sdoppiamenti */
.hero__visual .moon__mark{
  filter:none!important;
  mix-blend-mode:multiply!important;
  transition:
    opacity 1.05s cubic-bezier(.22,.61,.36,1),
    visibility 1.05s cubic-bezier(.22,.61,.36,1),
    transform 1.05s cubic-bezier(.22,.61,.36,1)!important;
  transition-delay:.18s!important;
  will-change:opacity,transform;
}

.hero__visual .moon.is-lit .moon__mark,
.hero__visual .moon:hover .moon__mark{
  transform:translate(-50%,-50%) scale(1.005)!important;
}

/* stop allo sdoppiamento: niente offset diversi tra i layer */
.hero__visual .moon__mark .engrave-shadow,
.hero__visual .moon__mark .engrave-light{
  transform:translate(0,0) translateZ(0)!important;
  filter:none!important;
  animation:none!important;
  transition:
    fill 1s cubic-bezier(.22,.61,.36,1),
    opacity 1s cubic-bezier(.22,.61,.36,1)!important;
}

/* incisione tono su tono: materica, non doppia */
.hero__visual .moon__mark .engrave-shadow{
  fill:rgba(24,21,15,.26)!important;
  opacity:.82!important;
  mix-blend-mode:multiply!important;
}

.hero__visual .moon__mark .engrave-light{
  fill:rgba(255,248,225,.09)!important;
  opacity:.46!important;
  mix-blend-mode:screen!important;
}

/* alone di materia che emerge con la luce, non crea forme duplicate */
.hero__visual .moon__mark::after{
  content:"";
  position:absolute;
  inset:-8%;
  border-radius:50%;
  background:
    radial-gradient(circle at 42% 36%, rgba(255,255,255,.11), transparent 42%),
    radial-gradient(circle at 64% 70%, rgba(0,0,0,.055), transparent 44%);
  opacity:0;
  mix-blend-mode:soft-light;
  pointer-events:none;
  transition:opacity 1.1s cubic-bezier(.22,.61,.36,1)!important;
}

.hero__visual .moon.is-lit .moon__mark::after,
.hero__visual .moon:hover .moon__mark::after{
  opacity:.72;
}

/* uscita pulita: sparisce tutto insieme, senza scattino */
.hero__visual .moon:not(.is-lit) .moon__mark{
  transition-delay:0s!important;
}


/* UPDATE V24 — monogramma singolo, nessuno sdoppiamento */
.hero__visual .moon__mark{
  z-index:8!important;
  width:54%!important;
  height:54%!important;
  opacity:0!important;
  visibility:hidden!important;
  overflow:visible!important;
  border-radius:0!important;
  mix-blend-mode:multiply!important;
  filter:none!important;
  transform:translate(-50%,-50%) scale(.985)!important;
  transition:
    opacity .95s cubic-bezier(.22,.61,.36,1),
    visibility .95s cubic-bezier(.22,.61,.36,1),
    transform .95s cubic-bezier(.22,.61,.36,1)!important;
  transition-delay:.18s!important;
  will-change:opacity,transform;
}

.hero__visual .moon.is-lit .moon__mark{
  opacity:.88!important;
  visibility:visible!important;
  transform:translate(-50%,-50%) scale(1)!important;
}

.hero__visual .moon:not(.is-lit) .moon__mark{
  transition-delay:0s!important;
  opacity:0!important;
  visibility:hidden!important;
  transform:translate(-50%,-50%) scale(.985)!important;
}

/* un solo SVG: niente più light/shadow separati */
.hero__visual .moon__mark .mono-single{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  display:block!important;
  overflow:visible!important;
  background:transparent!important;
  fill:rgba(24,21,15,.28)!important;
  opacity:1!important;
  filter:none!important;
  transform:none!important;
  animation:none!important;
}

/* annulla eventuali vecchi layer se rimasti in cache/codice */
.hero__visual .moon__mark .engrave-shadow,
.hero__visual .moon__mark .engrave-light{
  display:none!important;
  opacity:0!important;
  animation:none!important;
  transform:none!important;
  filter:none!important;
}

/* micro materia sopra il singolo monogramma, senza duplicare forme */
.hero__visual .moon__mark::after{
  content:"";
  position:absolute;
  inset:-6%;
  border-radius:50%;
  pointer-events:none;
  opacity:0;
  background:
    radial-gradient(circle at 38% 30%, rgba(255,255,255,.08), transparent 46%),
    radial-gradient(circle at 65% 72%, rgba(0,0,0,.045), transparent 48%);
  mix-blend-mode:soft-light;
  transition:opacity .95s cubic-bezier(.22,.61,.36,1)!important;
}

.hero__visual .moon.is-lit .moon__mark::after{
  opacity:.58;
}

/* evita ogni hover diretto sul monogramma: comanda solo is-lit */
.hero__visual .moon:hover .moon__mark{
  opacity:0!important;
  visibility:hidden!important;
}

.hero__visual .moon.is-lit:hover .moon__mark{
  opacity:.88!important;
  visibility:visible!important;
}


/* UPDATE V26 — timing luna morbido, senza stati extra */
.hero__visual .moon{
  transition:
    filter 1.4s cubic-bezier(.22,.61,.36,1),
    box-shadow 1.4s cubic-bezier(.22,.61,.36,1),
    transform .65s var(--ease)!important;
}

.hero__visual .moon .reveal-light{
  transition:
    opacity 1s cubic-bezier(.22,.61,.36,1),
    width 2.2s cubic-bezier(.22,.61,.36,1),
    height 2.2s cubic-bezier(.22,.61,.36,1),
    transform 2.2s cubic-bezier(.22,.61,.36,1),
    left .22s linear,
    top .22s linear!important;
}

.hero__visual .moon.is-lit .reveal-light{
  opacity:.65!important;
}

.hero__visual .moon__mark{
  transition:
    opacity 1s cubic-bezier(.22,.61,.36,1),
    visibility 1s cubic-bezier(.22,.61,.36,1),
    transform 1.2s cubic-bezier(.22,.61,.36,1)!important;
  transition-delay:.25s!important;
}

.hero__visual .moon:not(.is-lit) .moon__mark{
  transition-delay:0s!important;
}


/* UPDATE V27 — monogramma parte subito al perimetro della luna */
.hero__visual .moon__mark{
  transition:
    opacity 1.05s cubic-bezier(.22,.61,.36,1),
    visibility 1.05s cubic-bezier(.22,.61,.36,1),
    transform 1.25s cubic-bezier(.22,.61,.36,1)!important;
  transition-delay:0s!important;
}

.hero__visual .moon.is-lit .moon__mark{
  transition-delay:0s!important;
}

.hero__visual .moon:not(.is-lit) .moon__mark{
  transition-delay:0s!important;
}


/* UPDATE V28 — flash hover più lento su Costellazioni e Brand in azione */
#servizi .service:hover::before{
  animation-duration:1.15s!important;
  animation-timing-function:cubic-bezier(.22,.61,.36,1)!important;
}

#lavori .work:hover .work-flash{
  animation-duration:1.15s!important;
  animation-timing-function:cubic-bezier(.22,.61,.36,1)!important;
}

#servizi .service,
#lavori .work{
  transition:
    transform .72s cubic-bezier(.22,.61,.36,1),
    filter .72s cubic-bezier(.22,.61,.36,1),
    box-shadow .72s cubic-bezier(.22,.61,.36,1),
    opacity .5s cubic-bezier(.22,.61,.36,1)!important;
}

#servizi .service::after,
#lavori .work::after{
  transition:
    opacity .72s cubic-bezier(.22,.61,.36,1),
    transform .9s cubic-bezier(.22,.61,.36,1)!important;
}


/* UPDATE V29 — Metodo: flash più lento, movimento e bianco più rapidi */
.paper .method-item::before{
  animation-duration:1.15s!important;
  animation-timing-function:cubic-bezier(.22,.61,.36,1)!important;
}

/* UPDATE V30 — mappa stellare sezione contatti */
#contatti{
  position:relative;
  overflow:hidden;
}

#contatti .contact-star-map{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.34;
  mix-blend-mode:screen;
}

#contatti .contact-star-map svg{
  width:100%;
  height:100%;
}

#contatti .star-lines path{
  fill:none;
  stroke:rgba(245,241,232,.16);
  stroke-width:1;
  stroke-dasharray:4 12;
  vector-effect:non-scaling-stroke;
}

#contatti .stars circle{
  fill:rgba(245,241,232,.46);
}

#contatti .stars .bright{
  fill:rgba(255,249,226,.95);
  filter:drop-shadow(0 0 10px rgba(255,244,214,.55));
  animation:starPulse 3.6s ease-in-out infinite;
}

#contatti .stars .glow{
  fill:rgba(255,244,214,.75);
  filter:drop-shadow(0 0 8px rgba(255,244,214,.38));
  animation:starPulse 4.8s ease-in-out infinite;
}

#contatti .contact-panel{
  position:relative;
  z-index:1;
  backdrop-filter:blur(1px);
}

@keyframes starPulse{
  0%,100%{opacity:.55;transform:scale(1)}
  48%{opacity:1;transform:scale(1.35)}
}



/* UPDATE V35 — performance fix Costellazioni + Brand */

/* elimina background SVG pesanti */
.constellation-field,
.formula-field{
  display:none!important;
}

/* fondo leggero, statico, senza SVG e senza animazioni */
#servizi,
#lavori{
  position:relative;
  overflow:hidden;
}

#servizi::before,
#lavori::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.18;
  background:
    radial-gradient(circle at 20% 24%, rgba(245,241,232,.055), transparent 24%),
    radial-gradient(circle at 82% 44%, rgba(245,241,232,.045), transparent 26%),
    linear-gradient(90deg, rgba(245,241,232,.028) 1px, transparent 1px),
    linear-gradient(0deg, rgba(245,241,232,.020) 1px, transparent 1px);
  background-size:auto, auto, 160px 160px, 160px 160px;
  mix-blend-mode:screen;
}

#servizi .inner,
#lavori .inner{
  position:relative;
  z-index:1;
}

/* reset leggero performance */
#servizi .service,
#lavori .work{
  position:relative;
  overflow:hidden!important;
  border-radius:28px!important;
  transform:translateZ(0);
  will-change:auto!important;
  transition:
    transform .42s cubic-bezier(.22,.61,.36,1),
    filter .32s cubic-bezier(.22,.61,.36,1),
    box-shadow .42s cubic-bezier(.22,.61,.36,1)!important;
}

/* card costellazioni: stato spento ma non pesante */
#servizi .service{
  background:linear-gradient(145deg,#141414,#080808)!important;
  filter:none!important;
}

/* colori hover ripristinati */
#servizi .service.orion:hover{background:linear-gradient(145deg,#0b0d19 0%,var(--orion) 58%,#0a0a12 100%)!important;}
#servizi .service.luna:hover{background:linear-gradient(145deg,#17120d 0%,var(--luna) 56%,#0a0a0a 100%)!important;}
#servizi .service.vega:hover{background:linear-gradient(145deg,#07120c 0%,var(--vega) 58%,#0a1a12 100%)!important;}
#servizi .service.sirius:hover{background:linear-gradient(145deg,#0a0612 0%,var(--sirius) 58%,#0b0615 100%)!important;}
#servizi .service.antares:hover{background:linear-gradient(145deg,#130606 0%,var(--antares) 58%,#120707 100%)!important;}
#servizi .service.polaris:hover{background:linear-gradient(145deg,#1a1a1a 0%,#3a3a3a 50%,#0e0e0e 100%)!important;}

#servizi .service:hover,
#lavori .work:hover{
  transform:translateY(-7px)!important;
  filter:brightness(1.08) saturate(1.04)!important;
  box-shadow:0 24px 72px rgba(0,0,0,.30)!important;
}

/* flash leggero e affidabile */
#servizi .service::before,
#lavori .work .work-flash{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  border-radius:inherit;
  background:linear-gradient(
    105deg,
    transparent 0%,
    transparent 38%,
    rgba(255,255,255,.52) 48%,
    rgba(255,244,214,.22) 54%,
    transparent 66%,
    transparent 100%
  );
  opacity:0;
  transform:translateX(-120%);
  pointer-events:none;
  mix-blend-mode:screen;
}

#servizi .service:hover::before,
#lavori .work:hover .work-flash{
  animation:cleanFlashV35 .82s cubic-bezier(.22,.61,.36,1) both!important;
}

@keyframes cleanFlashV35{
  0%{opacity:0;transform:translateX(-120%)}
  18%{opacity:.85}
  100%{opacity:0;transform:translateX(120%)}
}

/* elimina pseudo/overlay precedenti pesanti sulle stesse card */
#servizi .service::after,
#lavori .work::after{
  opacity:.08!important;
  transform:none!important;
  transition:opacity .32s cubic-bezier(.22,.61,.36,1)!important;
}

#servizi .service:hover::after,
#lavori .work:hover::after{
  opacity:.16!important;
}

/* evita transizioni eccessive sui testi */
#servizi .service small,
#servizi .service h3,
#servizi .service p,
#lavori .work small,
#lavori .work h3,
#lavori .work p{
  transition:
    color .28s cubic-bezier(.22,.61,.36,1),
    transform .28s cubic-bezier(.22,.61,.36,1),
    opacity .28s cubic-bezier(.22,.61,.36,1)!important;
}


/* UPDATE V36 — sezione sistema/team */
.team-orbit{
  position:relative;
  overflow:hidden;
  background:var(--paper);
  color:var(--ink);
}

.team-orbit .inner{
  position:relative;
  z-index:1;
}

.team-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(42px,7vw,120px);
  align-items:center;
}

.team-copy{
  max-width:680px;
}

.team-copy p{
  font-size:clamp(16px,1.18vw,20px);
  line-height:1.75;
  color:rgba(18,17,15,.62);
  margin-bottom:20px;
  font-weight:300;
}

.team-copy .team-lead{
  font-size:clamp(22px,2vw,34px);
  line-height:1.25;
  color:rgba(18,17,15,.86);
  font-family:"Playfair Display", Georgia, serif;
  letter-spacing:-.035em;
  margin-bottom:30px;
}

.team-cta{
  display:inline-flex;
  margin-top:18px;
  font-size:10px;
  font-weight:500;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--ink);
  border-bottom:1px solid rgba(18,17,15,.28);
  padding-bottom:8px;
  transition:opacity .32s var(--ease), transform .32s var(--ease), border-color .32s var(--ease);
}

.team-cta:hover{
  opacity:.65;
  transform:translateX(6px);
  border-color:rgba(18,17,15,.12);
}

.orbit-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  opacity:.18;
}

.orbit-bg svg{
  width:100%;
  height:100%;
}

.orbit-lines ellipse,
.orbit-lines path{
  fill:none;
  stroke:rgba(18,17,15,.42);
  stroke-width:1;
  vector-effect:non-scaling-stroke;
}

.orbit-lines ellipse{
  transform-box:fill-box;
  transform-origin:center;
}

.orbit-nodes .node{
  fill:rgba(18,17,15,.42);
}

.orbit-nodes .main{
  fill:rgba(18,17,15,.72);
}

.orbit-nodes .bright{
  fill:rgba(18,17,15,.62);
  filter:drop-shadow(0 0 8px rgba(18,17,15,.16));
}

@media(max-width:900px){
  .team-grid{
    grid-template-columns:1fr;
  }

  .orbit-bg{
    opacity:.10;
  }
}





/* CTA sezione Luce - allineata alla griglia interna */
.luce-cta-wrap{
  margin-top:44px;
  display:flex;
  justify-content:flex-end;
  width:100%;
}

.luce-cta{
  display:inline-flex;
  font-size:10px;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--ink);
  border-bottom:1px solid rgba(18,17,15,.28);
  padding-bottom:8px;
  transition:opacity .32s var(--ease), transform .32s var(--ease), border-color .32s var(--ease);
}

.luce-cta:hover{
  opacity:.65;
  transform:translateX(6px);
  border-color:rgba(18,17,15,.12);
}


/* MOBILE REFINEMENT — menu grande, footer compatto, hero allineate */
.mobile-menu-toggle,
.mobile-menu-panel{
  display:none;
}

@media(max-width:1080px){
  body{
    cursor:auto!important;
  }

  .cursor-light,
  .cursor-ring,
  .cursor-dot{
    display:none!important;
  }

  .nav{
    height:72px!important;
    padding:0 24px!important;
    background:linear-gradient(to bottom,rgba(7,7,7,.94),rgba(7,7,7,.42))!important;
    backdrop-filter:blur(14px)!important;
  }

  .nav.small{
    height:64px!important;
  }

  .nav__links,
  .nav__cta{
    display:none!important;
  }

  .logo{
    width:clamp(142px,38vw,180px)!important;
  }

  .mobile-menu-toggle{
    margin-left:auto;
    width:48px;
    height:48px;
    border-radius:999px;
    border:1px solid rgba(245,241,232,.20);
    background:rgba(245,241,232,.035);
    color:var(--cream);
    display:flex!important;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    padding:0;
    cursor:pointer;
    z-index:1302;
  }

  .mobile-menu-toggle span{
    width:18px;
    height:1px;
    display:block;
    background:currentColor;
    transform-origin:center;
    transition:transform .36s var(--ease), opacity .24s var(--ease);
  }

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(1){
    transform:translateY(6px) rotate(45deg);
  }

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(2){
    opacity:0;
  }

  body.mobile-menu-open .mobile-menu-toggle span:nth-child(3){
    transform:translateY(-6px) rotate(-45deg);
  }

  .mobile-menu-panel{
    position:fixed;
    inset:0;
    z-index:1300;
    display:block!important;
    overflow:auto;
    padding:104px 24px 36px;
    color:var(--cream);
    background:
      radial-gradient(circle at 72% 24%, rgba(245,241,232,.09), transparent 30%),
      radial-gradient(circle at 24% 72%, rgba(245,241,232,.045), transparent 32%),
      linear-gradient(180deg,#050505,#060606);
    transform:translateY(-100%);
    transition:transform .68s cubic-bezier(.22,.61,.36,1);
  }

  body.mobile-menu-open{
    overflow:hidden!important;
  }

  body.mobile-menu-open .mobile-menu-panel{
    transform:translateY(0);
  }

  .mobile-menu-panel nav{
    display:flex;
    flex-direction:column;
    gap:0;
  }

  .mobile-menu-panel a{
    display:flex;
    align-items:baseline;
    gap:16px;
    padding:15px 0;
    border-bottom:1px solid rgba(245,241,232,.085);
    color:rgba(245,241,232,.92);
    font-family:"Playfair Display",Georgia,serif;
    font-size:clamp(44px,14vw,82px);
    line-height:.92;
    letter-spacing:-.06em;
  }

  .mobile-menu-panel a span{
    min-width:28px;
    font-family:Inter,system-ui,sans-serif;
    font-size:10px;
    font-weight:500;
    letter-spacing:.28em;
    color:rgba(245,241,232,.35);
  }

  .mobile-menu-panel .mobile-menu-cta{
    margin-top:32px;
    height:56px;
    border-radius:999px;
    border:1px solid rgba(245,241,232,.22);
    display:flex;
    align-items:center;
    justify-content:center;
    font-family:Inter,system-ui,sans-serif;
    font-size:10px;
    font-weight:500;
    letter-spacing:.25em;
    text-transform:uppercase;
    color:var(--cream);
  }

  .mobile-menu-foot{
    margin-top:34px;
    padding-top:22px;
    border-top:1px solid rgba(245,241,232,.08);
    color:rgba(245,241,232,.42);
    font-size:13px;
    font-weight:300;
  }

  /* Footer mobile compatto */
  .footer{
    padding:50px 24px 28px!important;
  }

  .footer-grid{
    display:block!important;
    max-width:none!important;
    margin:0 auto!important;
  }

  .footer-grid > div:first-child{
    padding-bottom:26px!important;
    margin-bottom:8px!important;
    border-bottom:1px solid rgba(245,241,232,.08)!important;
  }

  .footer-brand{
    margin-bottom:14px!important;
  }

  .footer p{
    max-width:320px!important;
    font-size:14px!important;
    line-height:1.6!important;
  }

  .footer-grid > div:not(:first-child):not(:last-child){
    margin:0!important;
  }

  .footer h4{
    margin:0!important;
    padding:17px 0!important;
    border-bottom:1px solid rgba(245,241,232,.075)!important;
    position:relative;
    cursor:pointer;
  }

  .footer h4::after{
    content:"+";
    position:absolute;
    right:0;
    top:17px;
    color:rgba(245,241,232,.42);
  }

  .footer .footer-mobile-open h4::after{
    content:"−";
  }

  .footer-grid > div:not(:first-child):not(:last-child) a{
    display:none!important;
  }

  .footer-grid > div.footer-mobile-open a{
    display:block!important;
  }

  .footer a{
    font-size:13px!important;
    margin-bottom:12px!important;
  }

  .footer-grid > div[style*="grid-column"]{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:10px!important;
    margin-top:22px!important;
    padding-top:18px!important;
  }

  .footer-grid > div[style*="grid-column"] div{
    display:flex!important;
    gap:18px!important;
    flex-wrap:wrap!important;
  }
}

@media(max-width:680px){
  /* Hero mobile: allineamento coerente a Sistema */
  .hero,
  .luce-hero,
  .cost-hero,
  .costellazioni-hero,
  .constellazioni-hero,
  .sistema-hero,
  .orbita-hero,
  .rotta-hero,
  .proj-hero,
  .page-hero{
    min-height:100svh!important;
    align-items:flex-start!important;
    padding-top:112px!important;
    padding-left:24px!important;
    padding-right:24px!important;
    padding-bottom:58px!important;
  }

  .hero__inner,
  .luce-hero__inner,
  .cost-hero__inner,
  .sistema-hero__inner,
  .orbita-hero__inner,
  .rotta-hero__inner,
  .proj-hero__inner,
  .page-hero .inner{
    padding-top:0!important;
    transform:none!important;
    align-items:start!important;
  }

  .hero__copy,
  .luce-hero__copy,
  .cost-hero__copy,
  .sistema-hero__copy,
  .orbita-hero__copy,
  .rotta-hero__copy{
    padding-top:0!important;
    padding-bottom:0!important;
  }

  .hero .kicker,
  .luce-hero .kicker,
  .cost-hero .kicker,
  .sistema-hero .kicker,
  .orbita-hero .kicker,
  .rotta-hero .kicker,
  .proj-hero .kicker{
    margin-bottom:24px!important;
  }

  .hero h1,
  .luce-hero h1,
  .cost-hero h1,
  .sistema-hero h1,
  .orbita-hero h1,
  .rotta-hero h1,
  .proj-hero__title{
    margin-top:0!important;
  }

  .btn,
  .btn--light,
  .btn--ghost,
  .btn--ink{
    width:100%;
    max-width:100%;
  }

  .actions,
  .cta-actions,
  .cta-btns{
    width:100%;
    gap:12px!important;
  }
}


/* MOBILE FOOTER ACCORDION FIX */
@media(max-width:1080px){
  .footer .footer-grid > div[data-mobile-accordion="true"] a{
    display:none!important;
  }

  .footer .footer-grid > div[data-mobile-accordion="true"].footer-mobile-open a{
    display:block!important;
  }

  .footer .footer-grid > div[data-mobile-accordion="true"] h4{
    cursor:pointer!important;
    user-select:none;
  }

  .footer .footer-grid > div[data-mobile-accordion="true"] h4::after{
    content:"+";
    position:absolute;
    right:0;
    top:17px;
    color:rgba(245,241,232,.42);
  }

  .footer .footer-grid > div[data-mobile-accordion="true"].footer-mobile-open h4::after{
    content:"−";
  }
}


/* MOBILE FOOTER ACCORDION DEFINITIVO */
@media(max-width:1080px){
  .footer .footer-mobile-links{
    display:none!important;
    padding:2px 0 14px!important;
  }

  .footer .footer-mobile-links a{
    display:block!important;
  }

  .footer .footer-mobile-group.footer-mobile-open .footer-mobile-links{
    display:block!important;
  }

  .footer .footer-mobile-group h4{
    cursor:pointer!important;
    user-select:none!important;
    position:relative!important;
    padding-right:34px!important;
  }

  .footer .footer-mobile-group h4::after{
    content:"+";
    position:absolute;
    right:0;
    top:17px;
    color:rgba(245,241,232,.42);
  }

  .footer .footer-mobile-group.footer-mobile-open h4::after{
    content:"−";
  }

  /* neutralizza le vecchie regole che nascondevano direttamente gli <a> */
  .footer-grid > div.footer-mobile-group:not(:first-child):not(:last-child) a{
    display:block!important;
  }
}




/* MOBILE FOOTER ACCORDION + MENU CLOSE + 404 CURSOR FIX */
@media(max-width:1080px){
  .footer .footer-grid > div.footer-mobile-group .footer-mobile-links{
    display:none!important;
    padding:4px 0 18px!important;
  }

  .footer .footer-grid > div.footer-mobile-group.footer-mobile-open .footer-mobile-links{
    display:block!important;
  }

  .footer .footer-grid > div.footer-mobile-group .footer-mobile-links a{
    display:block!important;
    margin-bottom:13px!important;
  }

  .footer .footer-grid > div.footer-mobile-group h4{
    cursor:pointer!important;
    user-select:none!important;
    position:relative!important;
    padding:18px 34px 18px 0!important;
    margin:0!important;
    border-bottom:1px solid rgba(245,241,232,.075)!important;
  }

  .footer .footer-grid > div.footer-mobile-group h4::after{
    content:"+";
    position:absolute;
    right:0;
    top:18px;
    color:rgba(245,241,232,.55);
    font-size:18px;
    line-height:1;
  }

  .footer .footer-grid > div.footer-mobile-group.footer-mobile-open h4::after{
    content:"−";
  }

  .footer-grid > div.footer-mobile-group:not(:first-child):not(:last-child) > a{
    display:none!important;
  }

  .footer-grid > div.footer-mobile-group.footer-mobile-open:not(:first-child):not(:last-child) > a{
    display:none!important;
  }

  .mobile-menu-panel{
    padding-top:96px!important;
  }

  .mobile-menu-close{
    position:fixed;
    right:24px;
    top:18px;
    width:48px;
    height:48px;
    border-radius:999px;
    border:1px solid rgba(245,241,232,.22);
    background:rgba(245,241,232,.04);
    color:var(--cream);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:28px;
    line-height:1;
    z-index:1400;
    cursor:pointer;
  }

  .mobile-menu-back{
    margin-top:26px;
    width:100%;
    height:54px;
    border-radius:999px;
    border:1px solid rgba(245,241,232,.18);
    background:transparent;
    color:rgba(245,241,232,.82);
    font-size:10px;
    letter-spacing:.25em;
    text-transform:uppercase;
    cursor:pointer;
  }
}

body.error404,
body.error404 *,
.error404,
.error404 *{
  cursor:auto!important;
}

body.error404 .cursor-light,
body.error404 .cursor-ring,
body.error404 .cursor-dot{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}




/* FOOTER WORDPRESS FINAL FIX — no bullets + mobile accordion */
.footer ul,
.footer li{
  list-style:none!important;
  margin:0!important;
  padding:0!important;
}

.footer li::marker{
  content:""!important;
}

.footer li a,
.footer a{
  text-decoration:none!important;
}

@media(max-width:1080px){
  .footer .footer-grid{
    display:block!important;
  }

  .footer .footer-mobile-group{
    display:block!important;
  }

  .footer .footer-mobile-group .footer-mobile-links{
    display:none!important;
    overflow:hidden!important;
    padding:4px 0 18px!important;
  }

  .footer .footer-mobile-group.footer-mobile-open .footer-mobile-links{
    display:block!important;
  }

  .footer .footer-mobile-group .footer-mobile-links a{
    display:block!important;
    margin:0 0 13px!important;
    padding:0!important;
  }

  .footer .footer-mobile-group h4{
    display:block!important;
    cursor:pointer!important;
    user-select:none!important;
    position:relative!important;
    padding:18px 34px 18px 0!important;
    margin:0!important;
    border-bottom:1px solid rgba(245,241,232,.075)!important;
  }

  .footer .footer-mobile-group h4::after{
    content:"+";
    position:absolute;
    right:0;
    top:18px;
    color:rgba(245,241,232,.55);
    font-size:18px;
    line-height:1;
  }

  .footer .footer-mobile-group.footer-mobile-open h4::after{
    content:"−";
  }
}




/* LOGO GOLD MOON + NAV BULLET FIX */
.nav__links,
.nav__links li,
.footer ul,
.footer li{
  list-style:none!important;
}

.nav__links li::marker,
.footer li::marker{
  content:""!important;
  font-size:0!important;
}

.nav__links li{
  margin:0!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
}

.nav__links a::before,
.nav__links li::before{
  content:none!important;
  display:none!important;
}

.logo .logo-gold-crescent,
.logo use .logo-gold-crescent{
  fill:url(#comoonicaMoonGold)!important;
  filter:
    drop-shadow(0 0 3px rgba(244,223,155,.20))
    drop-shadow(0 0 11px rgba(198,154,62,.18));
  animation:comoonicaGoldLamina 5.8s ease-in-out infinite;
  transform-box:fill-box;
  transform-origin:center;
}

@keyframes comoonicaGoldLamina{
  0%,100%{
    opacity:.90;
    filter:
      drop-shadow(0 0 3px rgba(244,223,155,.18))
      drop-shadow(0 0 10px rgba(198,154,62,.14));
  }
  45%{
    opacity:1;
    filter:
      drop-shadow(0 0 5px rgba(255,242,191,.34))
      drop-shadow(0 0 16px rgba(216,173,75,.26));
  }
  58%{
    opacity:.96;
  }
}

