:root { --sny-home-background: #070a0a; }
html, html body { margin: 0; min-height: 100%; background: var(--sny-home-background); }
x-dc { display: none !important; }
.sny-startup[hidden] { display: none !important; }
.sny-startup:not([hidden]) ~ #dc-root { display: none; }
.sny-startup {
  min-height: 100vh; min-height: 100svh; box-sizing: border-box;
  color: #f4f3f0; font-family: Montserrat, Arial, sans-serif;
}
.sny-startup .sny-home-card {
  display: flex; flex-direction: column; align-items: center; width: 100%;
}
.sny-startup-loading {
  position: fixed; inset: 0; z-index: 70;
  display: flex; align-items: center; justify-content: center;
  background: var(--sny-home-background); pointer-events: none;
  animation: sny-startup-timeout 1ms step-end 4s forwards;
}
@keyframes sny-startup-timeout {
  to { visibility: hidden; }
}
.sny-startup-recovery {
  width: calc(100% - 40px); max-width: 800px;
  margin-top: 24px; text-align: center; font-size: 12px; line-height: 1.6;
  color: rgba(244,243,240,.82);
}
.sny-startup a { color: inherit; }
.sny-startup-cta { display: block; box-sizing: border-box; text-align: center; text-decoration: none; }
.sny-logo-intro[hidden] { display: none !important; }
.sny-logo-intro {
  position: fixed; inset: 0; z-index: 70; pointer-events: none;
  display: flex; align-items: center; justify-content: center;
}
.sny-logo-intro::before {
  content: ''; position: absolute; inset: 0; background: var(--sny-home-background);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  transition: opacity 650ms ease, backdrop-filter 650ms ease;
}
.sny-logo-intro-mark {
  position: relative; display: block; width: 280px; max-width: 65%; height: auto;
  object-fit: contain; transform-origin: center;
}
.sny-logo-intro[data-intro-state="running"] .sny-logo-intro-mark {
  opacity: 1; filter: none;
}
.sny-logo-intro[data-intro-state="leaving"]::before {
  opacity: 0; -webkit-backdrop-filter: blur(0); backdrop-filter: blur(0);
}
.sny-logo-intro[data-intro-state="leaving"] .sny-logo-intro-mark {
  transform: translate(var(--sny-intro-x, 0px), var(--sny-intro-y, 0px)) scale(var(--sny-intro-scale, 1));
  transition: transform 800ms cubic-bezier(.65,0,.25,1);
}
.sny-startup, .sny-shell {
  --sny-motion-duration: 1100ms;
  --sny-motion-ease: cubic-bezier(.16,.84,.44,1);
  --sny-screen-ease: cubic-bezier(.65,0,.25,1);
  --sny-form-top: calc(max(16px, env(safe-area-inset-top)) + 52px);
  /* Unità comune: logo, caratteri, larghezze e distanze scalano insieme. */
  --sny-reference-width: 390;
  --sny-reference-height: 844;
  --sny-viewport-height: 100vh;
  --sny-unit: clamp(.875px, min(calc(100vw / var(--sny-reference-width)), calc(var(--sny-viewport-height) / var(--sny-reference-height))), 1.6px);
  --sny-logo-width: 188;
  --sny-logo-height: 82;
  --sny-title-size: 34;
  --sny-title-width: 340;
  --sny-copy-size: 14;
  --sny-copy-width: 340;
  --sny-action-width: 360;
  --sny-top-space: 211;
  --sny-bottom-space: 40;
  --sny-logo-gap: 78;
  --sny-copy-gap: 32;
  --sny-action-gap: 85;
  --sny-footer-gap: 32;
  background: var(--sny-home-background) !important;
}
@supports (height: 100svh) {
  .sny-shell { --sny-viewport-height: 100svh; }
  .sny-startup { --sny-viewport-height: 100svh; }
}
.sny-desktop {
  --sny-reference-width: 1440;
  --sny-reference-height: 900;
  --sny-logo-width: 198;
  --sny-logo-height: 86;
  --sny-title-size: 44;
  --sny-title-width: 520;
  --sny-copy-size: 15;
  --sny-copy-width: 460;
  --sny-action-width: 380;
  --sny-top-space: 216;
  --sny-bottom-space: 38;
  --sny-logo-gap: 85;
  --sny-copy-gap: 22;
  --sny-action-gap: 104;
  --sny-footer-gap: 51;
}
.sny-shell video { opacity: 0; }
.sny-shell video[data-playing] { opacity: 1; }
.sny-shell video { transition: opacity 600ms var(--sny-motion-ease); }
/* Clip only the slide's horizontal travel; the long mobile form still scrolls. */
.sny-mobile { overflow-x: clip; }
.sny-ocean-surface {
  /* Campioni del poster con il velo home; attenuate le luci per il contrasto. */
  background-color: #0e0e0c;
  background-image: linear-gradient(180deg,
    #2b3c46 0%, #394b55 14%, #414f55 28%, #485255 36%,
    #404f55 42%, #384c55 46%, #2d4149 50%, #273940 58%,
    #182428 70%, #131a1c 86%, #0e0e0c 100%);
}
.sny-shell :is(a,button,input,select,textarea):focus-visible,
.sny-startup a:focus-visible { outline: 2px solid #f4f3f0 !important; outline-offset: 4px; }
.sny-shell :is(input,select,textarea,button) { scroll-margin-block: 28px; }
.sny-shell select:is([name="countryRegion"],[name="interest"]) {
  color-scheme: light;
}
.sny-shell select:is([name="countryRegion"],[name="interest"]) option {
  /* Il menu nativo non deve ereditare il testo avorio del campo trasparente. */
  color: #1a1a18;
  background-color: #fff;
}
[data-country-field] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.sny-field-row > label, [data-country-field] { justify-content: space-between; }
.sny-field-caption {
  display: block; font: 400 10px/1.2 Montserrat, sans-serif;
  letter-spacing: .14em; color: rgba(244,243,240,.92);
}
.sny-field-row :is(input,select) {
  box-sizing: border-box; display: block; height: 44px; line-height: 1.4;
}
.sny-request-field { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.sny-request-field textarea {
  display: block; box-sizing: border-box; width: 100%; min-width: 0; min-height: 106px;
  resize: vertical; border: 1px solid rgba(244,243,240,.55); border-radius: 0;
  background: transparent; color: #f4f3f0; padding: 12px;
  font: 300 16px/1.6 Montserrat, sans-serif;
}
[data-country-ui]:empty { display: none; }
[data-country-ui] { position: relative; min-width: 0; }
.sny-country-control { position: relative; }
.sny-country-input {
  box-sizing: border-box; width: 100%; min-width: 0; height: 44px;
  border: 0; border-bottom: 1px solid rgba(244,243,240,.55); border-radius: 0;
  background: transparent; color: #f4f3f0; padding: 10px 44px 10px 0;
  font: 300 16px/1.4 Montserrat, sans-serif;
}
.sny-country-input::placeholder { color: #f4f3f0; opacity: 1; }
.sny-country-toggle {
  position: absolute; right: 0; top: 0; width: 44px; height: 44px;
  border: 0; padding: 0; background: transparent; color: #f4f3f0;
  display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.sny-country-arrow { width: 6px; height: 6px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); }
.sny-country-popup {
  position: absolute; top: calc(100% + 6px); right: 0; width: 100%; z-index: 5;
  box-sizing: border-box; border: 1px solid #d9d9d9; background: #fff; color: #1a1a18;
  font: 400 14px/1.5 Montserrat, sans-serif; color-scheme: light;
}
.sny-country-list { position: relative; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; }
.sny-country-option { padding: 11px 12px; min-height: 44px; box-sizing: border-box; cursor: pointer; overflow-wrap: anywhere; }
.sny-country-option:hover, .sny-country-option[aria-selected="true"] { background: #d9d9d9; }
.sny-country-option[aria-selected="true"] { outline: 1px solid #1a1a18; outline-offset: -2px; }
.sny-country-status { padding: 12px; }
.sny-country-popup[hidden], .sny-country-list[hidden], .sny-country-status[hidden], [data-country-select][hidden] { display: none !important; }
/* Tipografia più raccolta, senza scalare il layout o i controlli touch. */
.sny-shell form[name="landing-lead"] {
  --sny-input-size: 16px;
  --sny-input-padding: 10px;
}
.sny-desktop form[name="landing-lead"] { gap: 22px !important; margin-top: 24px; }
.sny-mobile form[name="landing-lead"] { gap: 18px !important; }
.sny-shell .sny-form-intro {
  margin: 12px 0 24px;
  font-size: 12.5px; line-height: 1.5; font-weight: 300;
  color: rgba(244,243,240,.82); max-width: 360px; text-wrap: pretty;
}
.sny-shell #sny-form-title { margin-bottom: 0 !important; }
.sny-mobile .sny-form-intro { text-align: center; margin-bottom: 0; }
.sny-form-actions {
  display: flex; flex-direction: column; gap: 14px; margin-top: 12px;
}
.sny-shell form[name="landing-lead"] .sny-form-actions button[type="submit"] {
  margin-top: 0 !important;
}
.sny-updates-notice {
  margin: 0; font-size: 13px; line-height: 1.5; font-weight: 300;
  color: rgba(244,243,240,.96);
}
.sny-updates-notice a { color: inherit; }
.sny-newsletter-choice a, .sny-updates-notice a { text-underline-offset: 3px; }
.sny-newsletter-choice a:focus-visible, .sny-updates-notice a:focus-visible {
  outline: 2px solid currentColor; outline-offset: 3px;
}
.sny-shell form[name="landing-lead"] :is(input:not([type="hidden"]):not([type="checkbox"]),select) {
  font-size: var(--sny-input-size) !important;
  padding-block: var(--sny-input-padding) !important;
}
.sny-shell form[name="landing-lead"] textarea {
  font-size: var(--sny-input-size);
  padding-block: var(--sny-input-padding);
}
.sny-shell form[name="landing-lead"] .sny-newsletter-choice > span {
  font-size: 12.5px !important;
}
.sny-shell form[name="landing-lead"] button[type="submit"] {
  font-size: 11px !important; min-height: 44px; padding-block: 14px !important;
}
@media (hover: hover) and (pointer: fine) {
  .sny-shell form[name="landing-lead"] { --sny-input-size: 14px; --sny-input-padding: 8px; }
}
@media (any-pointer: coarse) {
  .sny-shell form[name="landing-lead"] { --sny-input-size: 16px; --sny-input-padding: 10px; }
}
.sny-shell :is(h1,h2) { margin: 0; }
.sny-hero {
  padding-left: max(26px, env(safe-area-inset-left)) !important;
  padding-right: max(26px, env(safe-area-inset-right)) !important;
  padding-bottom: max(40px, env(safe-area-inset-bottom)) !important;
}
.sny-desktop .sny-hero {
  height: auto !important; min-height: 100vh !important; min-height: 100svh !important;
  padding: 0 !important;
}
.sny-mobile .sny-hero:has(.sny-home-card) {
  height: auto !important; min-height: 100vh !important; min-height: 100svh !important;
  padding: 0 !important;
}
.sny-home-card {
  flex: none !important;
  padding-bottom: max(40px, env(safe-area-inset-bottom));
}
.sny-home-card > :is(.sny-home-copy,.sny-home-cta),
:is(.sny-success-mobile,.sny-success) > :is(.sny-logo,button) {
  position: static !important; inset: auto !important; flex-shrink: 0;
  margin: 0 !important;
}
.sny-shell .sny-logo {
  width: calc(var(--sny-logo-width) * var(--sny-unit)) !important;
  height: calc(var(--sny-logo-height) * var(--sny-unit)) !important;
  flex-shrink: 0;
}
.sny-home-visual {
  position: relative; width: 100%;
  height: clamp(260px, calc(100vh - 320px), 620px);
  height: clamp(260px, calc(100svh - 320px), 620px);
  background: var(--sny-home-background);
}
.sny-home-photo, .sny-home-photo img {
  display: block; width: 100%; height: 100%;
}
.sny-home-photo img { object-fit: contain; }
.sny-home-veil {
  position: absolute; inset: 0; pointer-events: none;
  background: none;
}
.sny-home-brand {
  position: relative; width: 100%; min-height: 144px; box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: max(28px, env(safe-area-inset-top)) max(26px, env(safe-area-inset-right)) 28px max(26px, env(safe-area-inset-left));
}
.sny-startup .sny-home-brand .sny-home-logo,
.sny-shell .sny-home-brand .sny-home-logo {
  position: static !important; width: 158px !important; height: 69px !important;
  scale: 1.25; transform-origin: center; object-fit: contain;
}
.sny-home-card > .sny-home-title {
  width: calc(100% - 64px); max-width: 760px; margin: 40px 0 0;
  font-size: 40px; line-height: 1.2; font-weight: 700;
  letter-spacing: 0; color: #f4f3f0; white-space: nowrap; text-align: center;
}
.sny-home-card > .sny-home-copy {
  width: calc(100% - 64px); max-width: 800px !important;
  margin-top: 24px !important;
  font-size: 15px; line-height: 1.85; font-weight: 300;
  text-align: justify; text-align-last: left; color: rgba(244,243,240,.96);
}
.sny-home-copy p { margin: 0; }
.sny-home-copy p + p { margin-top: 24px; }
.sny-home-cta,
:is(.sny-success-mobile,.sny-success) > button {
  width: 100% !important; max-width: calc(var(--sny-action-width) * var(--sny-unit)) !important;
  min-height: 44px;
  font-size: max(.625rem, calc(12 * var(--sny-unit))) !important;
  padding: calc(18 * var(--sny-unit)) calc(24 * var(--sny-unit)) !important;
}
.sny-home-card > .sny-home-cta { margin-top: 32px !important; }
.sny-shell [data-cta] {
  /* Isolate the fill from the hero entry and screen transitions. */
  position: relative !important; isolation: isolate; overflow: hidden;
}
.sny-shell [data-cta]::before {
  content: ''; position: absolute; z-index: 0; left: 50%; top: 50%;
  width: 250%; aspect-ratio: 1; clip-path: circle(50%);
  background: #1a1a18; pointer-events: none;
  transform: translate(-50%, -50%) scale(0);
  transition: transform 700ms var(--sny-motion-ease);
}
.sny-shell [data-cta]::after {
  content: ''; position: absolute; z-index: 2; inset: 0;
  border: 1px solid #f4f3f0; pointer-events: none;
}
.sny-cta-label {
  position: relative; z-index: 1; color: #fff; mix-blend-mode: difference;
  /* One real label stays readable across both sides of the moving fill. */
}
@media (hover: hover) and (pointer: fine) {
  .sny-shell [data-cta]:not(:disabled):hover::before { transform: translate(-50%, -50%) scale(1); }
}
.sny-shell [data-cta]:not(:disabled):focus-visible::before,
.sny-shell [data-cta]:not(:disabled):active::before { transform: translate(-50%, -50%) scale(1); }
.sny-shell [data-cta]:not(:disabled):active::before { transition-duration: 180ms; }
@media (forced-colors: active) {
  .sny-shell [data-cta] { background: ButtonFace !important; color: ButtonText !important; outline: 1px solid ButtonText; }
  .sny-shell [data-cta]::before, .sny-shell [data-cta]::after { display: none; }
  .sny-cta-label { color: ButtonText; mix-blend-mode: normal; }
}
.sny-home-card footer {
  max-width: calc(var(--sny-action-width) * var(--sny-unit)) !important;
  margin-top: 40px !important;
  padding-top: 0 !important; gap: calc(14 * var(--sny-unit)) !important;
}
.sny-home-card footer > a { font-size: max(.6875rem, calc(12 * var(--sny-unit))) !important; }
.sny-socials {
  display: flex; align-items: center; justify-content: center;
  gap: calc(8 * var(--sny-unit)); color: rgba(244,243,240,.92);
}
.sny-social-icon {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px; color: inherit;
}
.sny-social-icon svg {
  display: block; width: max(34.2px, calc(38 * var(--sny-unit)));
  height: max(34.2px, calc(38 * var(--sny-unit))); flex-shrink: 0;
}
.sny-home-card footer nav { gap: calc(10 * var(--sny-unit)) calc(18 * var(--sny-unit)) !important; }
.sny-home-card footer :is(nav a,nav button) { font-size: max(.625rem, calc(9 * var(--sny-unit))) !important; }
.sny-home-card footer > div { font-size: max(.625rem, calc(10 * var(--sny-unit))) !important; }
.sny-hero footer a { overflow-wrap: anywhere; }
@media (max-width: 820px) {
  .sny-home-visual { height: auto; aspect-ratio: 16 / 9; }
  .sny-home-brand { min-height: 96px; padding: max(20px, env(safe-area-inset-top)) 20px 20px; }
  .sny-startup .sny-home-brand .sny-home-logo,
  .sny-shell .sny-home-brand .sny-home-logo { width: 104px !important; height: 45px !important; scale: 1.15; }
  .sny-home-card > .sny-home-title { width: calc(100% - 40px); margin-top: 28px; font-size: 30px; max-width: none; }
  .sny-home-card > .sny-home-copy { width: calc(100% - 40px); margin-top: 20px !important; font-size: 14px; line-height: 1.8; }
  .sny-home-card > .sny-home-cta { width: calc(100% - 40px) !important; font-size: 11px !important; }
  .sny-shell form[name="landing-lead"] textarea { font-size: 16px !important; }
  .sny-desktop .sny-dialog-root[aria-labelledby="sny-form-title"] .sny-form-shell {
    margin-top: var(--sny-form-top); height: calc(100% - var(--sny-form-top)) !important;
    padding-top: 12px !important;
  }
  .sny-desktop .sny-dialog-root[aria-labelledby="sny-form-title"] .sny-form-back-spacer { display: none; }
  .sny-mobile .sny-form-back ~ .sny-hero {
    margin-top: var(--sny-form-top);
    height: calc(100vh - var(--sny-form-top)); height: calc(100dvh - var(--sny-form-top));
    min-height: 0 !important; overflow-y: auto; padding-top: 12px !important;
  }
  .sny-mobile .sny-form-back ~ .sny-hero .sny-form-back-spacer { display: none; }
}
@media (max-width: 679px) {
  .sny-home-card > .sny-home-title { font-size: 26px; }
}
@media (max-width: 519px) {
  .sny-home-card > .sny-home-title { font-size: 21px; }
}
@media (max-width: 419px) {
  .sny-home-card > .sny-home-title { font-size: 17px; }
}
@media (max-width: 359px) {
  .sny-home-card > .sny-home-title { font-size: 15px; }
}
@media (min-width: 821px) and (max-height: 640px) {
  .sny-home-brand { min-height: 112px; padding-block: 16px; }
  .sny-home-visual {
    height: clamp(120px, calc(100vh - 300px), 340px);
    height: clamp(120px, calc(100svh - 300px), 340px);
  }
  .sny-home-card > .sny-home-title { margin-top: 28px; font-size: 32px; }
}
.sny-dialog-root { position: fixed; inset: 0; z-index: 50; pointer-events: none; }
.sny-dialog-root[aria-hidden="true"] { visibility: hidden; }
.sny-dialog { height: 100vh !important; height: 100dvh !important; max-width: 100%; min-width: 0 !important; }
.sny-form-back {
  position: fixed; top: max(16px, env(safe-area-inset-top)); left: max(16px, env(safe-area-inset-left));
  z-index: 60; width: 44px; height: 44px; min-width: 44px; min-height: 44px;
  display: flex; align-items: center; justify-content: center;
  padding: 0; border: 0; background: transparent; color: rgba(244,243,240,.85);
  font: 400 24px/1 Montserrat, sans-serif; cursor: pointer; pointer-events: auto;
}
.sny-form-back-spacer { flex: none; height: 44px; }
.sny-form-shell {
  overflow-y: auto !important; overscroll-behavior-y: contain;
  padding: max(28px, env(safe-area-inset-top)) max(clamp(24px,4vw,56px), env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(clamp(24px,4vw,56px), env(safe-area-inset-left)) !important;
}
.sny-panel-content { flex: 1 0 auto !important; }
.sny-dialog [aria-label="Close"], .sny-hero [aria-label="Back"] { min-width: 44px; min-height: 44px; }
.sny-success-mobile, .sny-success {
  flex-shrink: 0; gap: 0;
  padding-block: calc(24 * var(--sny-unit)) !important;
}
.sny-success { max-width: calc(440 * var(--sny-unit)) !important; }
:is(.sny-success-mobile,.sny-success) > .sny-logo { margin-bottom: calc(60 * var(--sny-unit)) !important; }
:is(.sny-success-mobile,.sny-success) > div { gap: calc(14 * var(--sny-unit)) !important; margin: 0 !important; }
:is(.sny-success-mobile,.sny-success) > div span { width: calc(30 * var(--sny-unit)) !important; }
#sny-success-title { font-size: max(.625rem, calc(11 * var(--sny-unit))) !important; }
:is(.sny-success-mobile,.sny-success) > [role="status"] {
  font-size: max(.8125rem, calc(15 * var(--sny-unit))) !important;
  max-width: min(100%, calc(340 * var(--sny-unit))) !important;
  margin: calc(24 * var(--sny-unit)) 0 0 !important;
}
.sny-shell :is(.sny-success-mobile,.sny-success) > button { margin-top: calc(38 * var(--sny-unit)) !important; }
@media (max-width: 1100px) {
  .sny-dialog { width: 100% !important; }
  [data-home] { width: 100% !important; transform: none !important; }
}
@media (max-width: 420px) {
  .sny-field-row { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .sny-logo-intro { display: none !important; }
  .sny-shell *, .sny-shell *::before, .sny-shell *::after {
    animation: none !important; transition: none !important; scroll-behavior: auto !important;
  }
  [data-enter] { opacity: 1 !important; transform: none !important; }
}
