:root {
  --notte: #0e0c18; --notte2: #17141f; --viola: #2a2340; --oro: #ffd84a; --oro2: #fff1b0; --testo: #f4f2fb; --tenue: #a9a3c0;
  --filo: rgba(255, 255, 255, .1); --raggio: 18px;
  color-scheme: dark;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; min-height: 100vh; color: var(--testo); background: var(--notte);
  font: 500 16px/1.5 "Archivo", system-ui, sans-serif;
  background-image: radial-gradient(90% 60% at 50% -10%, #3a2d5c 0%, transparent 60%), radial-gradient(60% 40% at 100% 100%, rgba(255, 140, 40, .08), transparent 70%);
  background-attachment: fixed;
}
a { color: var(--oro); }
.testa {
  position: sticky; top: 0; z-index: 5; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: calc(env(safe-area-inset-top, 0px) + 10px) 16px 10px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  background: rgba(14, 12, 24, .6); border-bottom: 1px solid var(--filo);
}
.marchio { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--testo); font-weight: 900; letter-spacing: -.01em; }
.marchio img { border-radius: 9px; }
.piccolo { font-weight: 800; text-decoration: none; font-size: 14px; padding: 8px 14px; border-radius: 999px; border: 1px solid rgba(255, 216, 74, .4); }

main { max-width: 980px; margin: 0 auto; padding: 0 16px; }
.eroe { position: relative; text-align: center; padding: 64px 0 40px; overflow: hidden; }
.eroe h1 { position: relative; margin: 0; font-size: clamp(46px, 13vw, 104px); line-height: .9; font-weight: 900; letter-spacing: -.03em; }
.eroe h1 em { font-style: normal; color: var(--oro); text-shadow: 0 0 40px rgba(255, 216, 74, .35); }
.sotto { position: relative; max-width: 30em; margin: 18px auto 28px; color: var(--tenue); font-size: 17px; }
.anello { position: absolute; left: 50%; top: 46%; width: 0; height: 0; pointer-events: none; }
.anello i { position: absolute; left: -170px; top: -170px; width: 340px; height: 340px; border-radius: 50%; border: 2px solid rgba(255, 216, 74, .5);
            animation: stringe 1.875s cubic-bezier(.4, 0, .9, .5) infinite; opacity: 0; }
.anello i:nth-child(2) { animation-delay: .625s; } .anello i:nth-child(3) { animation-delay: 1.25s; }
@keyframes stringe { 0% { transform: scale(1.5); opacity: 0; } 30% { opacity: .5; } 92% { transform: scale(.62); opacity: .9; border-color: var(--oro); } 100% { transform: scale(.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .anello { display: none; } }

.grande {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 56px; padding: 0 30px;
  border-radius: 999px; background: var(--oro); color: #17141f; font-weight: 900; font-size: 18px; text-decoration: none;
  box-shadow: 0 10px 30px rgba(255, 216, 74, .25), inset 0 -3px 0 rgba(0, 0, 0, .15); transition: transform .12s;
}
.grande:active { transform: scale(.97); }
.grande small { font-weight: 600; font-size: 12px; opacity: .7; }
.grande.secondo { background: rgba(255, 255, 255, .08); color: var(--testo); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); }
.grande[aria-disabled="true"] { opacity: .5; pointer-events: none; }
.nota { position: relative; color: var(--tenue); font-size: 13px; margin: 8px 0 0; }

.tre { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; padding: 20px 0 30px; }
.tre article { padding: 18px; border-radius: var(--raggio); background: rgba(255, 255, 255, .035); border: 1px solid var(--filo); }
.tre h2 { margin: 0 0 6px; font-size: 18px; font-weight: 900; }
.tre p { margin: 0; color: var(--tenue); font-size: 15px; }

.installa { padding: 24px 0 40px; scroll-margin-top: 70px; }
.installa > h2 { font-size: clamp(26px, 6vw, 38px); margin: 0 0 16px; font-weight: 900; letter-spacing: -.02em; }
.piattaforma { padding: 20px; border-radius: var(--raggio); background: var(--notte2); border: 1px solid var(--filo); margin-bottom: 12px; }
.piattaforma h3 { margin: 0 0 6px; font-size: 20px; font-weight: 900; }
.piattaforma > p { margin: 0 0 16px; color: var(--tenue); }
.passi { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 10px; }
.passi li { display: flex; gap: 12px; align-items: flex-start; }
.num { flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 900; font-size: 14px; color: #17141f; background: var(--oro); }
.ios-cond { width: 20px; height: 20px; vertical-align: -4px; fill: #4ea1ff; }
.avviso { margin: 16px 0 0; padding: 12px 14px; border-radius: 12px; background: rgba(255, 255, 255, .04); color: var(--tenue); font-size: 14px; }
.altre { display: block; margin: 8px auto 0; font: inherit; font-weight: 700; color: var(--tenue); background: none; border: 0; text-decoration: underline; cursor: pointer; }
.piede { max-width: 980px; margin: 0 auto; padding: 24px 16px calc(env(safe-area-inset-bottom, 0px) + 30px); color: var(--tenue); font-size: 13px; border-top: 1px solid var(--filo); }
