/* Palette, tipografia e spaziatura: modifica qui l’identità del sito.
   Tutti i font sono di sistema: nessuna connessione a servizi esterni. */
:root {
  color-scheme: dark;
  --bg: #090f16;
  --bg-deep: #060b11;
  --surface: #a5ceec0a;
  --text: #e4e9ee;
  --muted: #a8b7c4;
  --accent: #b4d7eb;
  --accent-dark: #53758c;
  --line: #b0d7ed26;
  --serif: Georgia, "Times New Roman", serif;
  --sans: "Segoe UI", Arial, sans-serif;
  --page-width: 1320px;
  --gutter: clamp(24px, 5.5vw, 96px);
  --reading-size: clamp(1rem, .96rem + .15vw, 1.0625rem);
  --detail-size: clamp(.875rem, .84rem + .15vw, .975rem);
}

/* Scheda del gioco e approfondimenti: stesso ordine narrativo della home. */
.game-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin: 48px auto 0; padding-top: 26px; border-top: 1px solid var(--line); text-align: center; }
.game-facts > div { min-width: 0; text-wrap: balance; }
.game-facts dt { font-size: .68rem; color: var(--accent); letter-spacing: .12em; text-transform: uppercase; }
.game-facts dd { margin: 9px 0 0; font-size: .9rem; line-height: 1.6; color: var(--muted); }
.experience-details { margin-top: 45px; padding-top: 50px; border-top: 1px solid var(--line); }
.experience-intro h3 { margin: 18px 0; font: 400 clamp(2rem, 3vw, 3.1rem)/1.15 var(--serif); text-wrap: balance; }
.experience-note { color: var(--muted); font-size: .85rem; max-width: 60ch; }
/* Comandi audio sempre raggiungibili, senza sovrapporre un player esterno. */
.sound-panel { position: fixed; z-index: 30; inset-inline-end: 24px; bottom: max(22px,env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 4px; padding: 4px; border: 1px solid #b0d7ed38; border-radius: 3px; background: #091017f2; box-shadow: 0 5px 24px #0004; }
.sound-panel svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.2; stroke-linecap: round; }
.sound-toggle { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; border: 0; padding: 8px 12px; background: transparent; color: var(--muted); cursor: pointer; font-size: .75rem; }
.sound-toggle:hover, .sound-panel[data-state="playing"] .sound-toggle { color: var(--text); }
.sound-panel[data-state="playing"] .sound-toggle svg { stroke: var(--accent); }
.sound-settings summary { display: grid; place-items: center; width: 44px; height: 44px; cursor: pointer; list-style: none; color: var(--muted); border-inline-start: 1px solid var(--line); }
.sound-settings summary::-webkit-details-marker { display: none; }
.sound-settings summary:focus-visible, .sound-volume input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.sound-volume { position: absolute; bottom: calc(100% + 10px); inset-inline-end: 0; display: grid; grid-template-columns: 1fr auto; gap: 12px; width: 240px; padding: 18px; border: 1px solid var(--line); background: #091017; font-size: .8rem; }
.sound-volume input { grid-column: 1/-1; width: 100%; min-height: 30px; accent-color: var(--accent); cursor: ew-resize; }
.sound-volume output { color: var(--muted); }
.site-footer .footer-inner { padding-bottom: 110px; }
@media (max-width: 900px) {
  .game-facts { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 600px) {
  .game-facts { grid-template-columns: 1fr; gap: 22px; margin-top: 30px; }
  .game-facts dd { font-size: .8rem; }
  .experience-details { margin-top: 30px; padding-top: 35px; }
  .sound-panel { inset-inline-end: 14px; bottom: max(12px,env(safe-area-inset-bottom)); max-width: calc(100vw - 28px); }
  .sound-toggle { font-size: .72rem; }
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-gutter: stable; scroll-padding-top: calc(var(--header-height, 110px) + 24px); scroll-padding-bottom: calc(var(--controls-height, 100px) + 28px); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: radial-gradient(ellipse at 0 40%, #6da6c50a, transparent 45%), var(--bg); color: var(--text); font: 1rem/1.75 var(--sans); -webkit-font-smoothing: antialiased; }
body::selection { background: var(--accent-dark); color: #fff; }
::selection { background: var(--accent-dark); color: #fff; }
a { color: inherit; text-decoration: none; }
button, select { font: inherit; color: inherit; }
button, select, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, select:focus-visible { outline: 2px solid var(--accent); outline-offset: 7px; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
img, video { display: block; width: 100%; }
figure, h1, h2, h3, p { margin: 0; }
.skip-link { position: fixed; top: 12px; left: 12px; z-index: 100; padding: 10px 20px; background: var(--text); color: var(--bg); transform: translateY(-180%); }
.skip-link:focus { transform: none; }
.section-shell { max-width: calc(var(--page-width) + var(--gutter) * 2); padding-inline: var(--gutter); margin-inline: auto; }
.eyebrow { font-size: .75rem; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--accent); }

/* Intestazione leggera e navigazione utilizzabile senza JavaScript. */
.site-header { position: fixed; inset: 0 0 auto; z-index: 20; min-height: 100px; padding: 25px var(--gutter); display: flex; align-items: center; justify-content: space-between; gap: 28px; border-bottom: 1px solid #aabbd218; background: linear-gradient(#070b12d9, #070b1255); transition: background .4s, border-color .4s; }
.site-header.is-scrolled { background: #0a131dc9; backdrop-filter: blur(22px); border-color: var(--line); }
.site-header::after { content: ""; position: absolute; bottom: -1px; left: 0; right: 0; height: 1px; background: var(--accent); transform: scaleX(var(--page-progress, 0)); transform-origin: left; opacity: .65; }
.site-header nav a[aria-current="location"] { color: var(--text); border-color: var(--accent); }
.site-header nav a[aria-current="page"] { color: var(--text); border-color: var(--accent); }
.brand { display: inline-flex; align-items: center; gap: 15px; }
.brand-symbol { flex-shrink: 0; width: 31px; height: 31px; border: 1px solid var(--text); border-radius: 50%; position: relative; }
.brand-symbol::after { content: ""; position: absolute; width: 27px; height: 27px; top: -4px; right: -5px; background: #0b1018; border-radius: 50%; }
.brand-name { font-size: .78rem; line-height: 1.6; letter-spacing: .17em; text-transform: uppercase; }
.brand-name > span { display: block; font-size: .75rem; letter-spacing: .4em; color: var(--muted); }
.site-header nav { display: flex; gap: clamp(16px, 2.2vw, 34px); }
.site-header nav a { font-size: .78rem; letter-spacing: .1em; padding: 7px 0; border-bottom: 1px solid transparent; transition: color .25s, border-color .25s; }
.site-header nav a:hover { color: var(--accent); border-color: var(--accent); }
.header-controls { display: flex; align-items: center; gap: clamp(24px, 3.5vw, 54px); }
.language-switch { position: relative; flex-shrink: 0; }
.language-switch select { appearance: none; min-width: 68px; min-height: 44px; padding: 10px 29px 10px 13px; border: 1px solid #8298b280; border-radius: 0; background: #0b1018b3; font-size: .8rem; line-height: 1.4; letter-spacing: .08em; cursor: pointer; transition: border-color .25s; }
.language-switch select:hover { border-color: var(--accent); }
.language-switch option { background: var(--bg); color: var(--text); }
.select-chevron { position: absolute; right: 13px; top: 18px; width: 6px; height: 6px; border-right: 1px solid var(--accent); border-bottom: 1px solid var(--accent); transform: rotate(45deg); pointer-events: none; }

/* Il gradiente resta visibile anche senza il filmato o il poster locale. */
.hero { min-height: 800px; min-height: max(800px, 100svh); position: relative; isolation: isolate; display: grid; place-items: center; overflow: clip; background: radial-gradient(ellipse at 72% 33%, #34475e 0, #1d2c40 22%, #121d2d 43%, #090f19 76%); }
.hero-media, .hero-overlay { position: absolute; inset: 0; z-index: -3; }
.hero-media video { position: absolute; inset: 0; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.3s; }
.hero-media video.is-ready { opacity: 1; }
.hero-media video.is-unavailable { visibility: hidden; }
.hero-poster { height: 100%; object-fit: cover; object-position: 50% 45%; animation: memory-arrival 2.8s cubic-bezier(.16, 1, .3, 1) both; }
.hero-overlay { z-index: -2; background: linear-gradient(180deg, #070b1299, #070b1233 27%, #070b1266 58%, #0b1018 100%), linear-gradient(90deg, #07111fa6, transparent 60%, #07111f40); }
.hero::after { content: ""; position: absolute; inset: -20%; z-index: -1; pointer-events: none; opacity: .45; background: radial-gradient(ellipse at 45% 57%, #abd8ee36, transparent 42%), radial-gradient(ellipse at 65% 70%, #7c9cbc33, transparent 35%); animation: fog-drift 8s ease-out both; }
.eclipse { position: absolute; left: 50%; top: 48%; translate: -50% -50%; width: min(56vw, 620px); aspect-ratio: 1; border: 1px solid #bedeee38; border-radius: 50%; z-index: -1; animation: eclipse-arrival 3s cubic-bezier(.16, 1, .3, 1) both; }
.eclipse::before { content: ""; position: absolute; inset: 14px; border: 1px solid #a8bad40b; border-radius: 50%; }
.eclipse::after { content: ""; position: absolute; inset: 50% -8%; height: 1px; background: linear-gradient(90deg, transparent, #a8bad42a 15%, transparent 30%, transparent 70%, #a8bad42a 85%, transparent); }
.eclipse-orbit { position: absolute; inset: 0; border-radius: inherit; animation: eclipse-travel 26s linear infinite; pointer-events: none; }
.eclipse-orbit::before { content: ""; position: absolute; top: -6px; left: calc(50% - 6px); width: 12px; height: 12px; border: 1px solid #c3d9e2b3; background: #0a11182e; transform: rotate(45deg); }
.eclipse-orbit-reverse { animation: eclipse-travel-reverse 34s linear infinite; }
.eclipse-orbit-reverse::before { width: 9px; height: 9px; top: -4.5px; left: calc(50% - 4.5px); border-color: #9fb2c1a6; }
@keyframes eclipse-travel { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes eclipse-travel-reverse { from { transform: rotate(145deg); } to { transform: rotate(-215deg); } }
.hero:not(.is-in-view) .eclipse-orbit, .motion-paused .eclipse-orbit, .page-hidden .eclipse-orbit { animation-play-state: paused; }
.hero-content { text-align: center; width: 100%; max-width: 1120px; padding: 180px 24px 165px; animation: emerge 1.6s ease-out both; }
.hero-eyebrow { display: flex; align-items: center; justify-content: center; gap: 20px; color: #aebcd0; font-size: .75rem; letter-spacing: .24em; }
.hero-eyebrow .hero-rule { width: 30px; height: 1px; flex-shrink: 0; background: #aebcd04d; }
h1 { font-family: var(--serif); font-weight: 400; margin: 31px 0 32px; }
/* Destinazione del focus dopo l’intro, non un controllo interattivo.
   Evita il contorno automatico di Chrome attorno alle due righe del titolo.
   I pulsanti e i link mantengono il proprio focus visibile. */
#game-title:focus { outline: none; }
.title-rem { display: block; position: relative; width: fit-content; margin-inline: auto; padding-left: .075em; font-size: clamp(8rem, 21vw, 19rem); line-height: .85; letter-spacing: .075em; color: #e9edf1; text-shadow: 0 3px 24px #111d3055; }
.title-rem::after { content: attr(data-text); position: absolute; inset: 0; padding-left: .075em; color: #b1c7de; opacity: 0; clip-path: inset(48% 0 48% 0); animation: title-flicker 2.5s linear; }
.title-sub { display: block; margin-top: 23px; padding-left: .3em; font-size: clamp(1.15rem, 3.4vw, 2.7rem); letter-spacing: .3em; line-height: 1.5; text-transform: uppercase; }
.hero-line { font: italic 1.1rem/1.8 var(--serif); color: #b7c3d3; }
.mobile-break { display: none; }
.explore-link { margin-top: 37px; display: inline-flex; align-items: center; gap: 39px; padding: 14px 22px; border: 1px solid #8298b2; font-size: .73rem; letter-spacing: .17em; text-transform: uppercase; transition: background .25s, border-color .25s; }
.explore-link > span[aria-hidden] { font-size: 1.2rem; color: var(--accent); }
.explore-link:hover { background: #3e587533; border-color: var(--accent); }
.hero-bottom { position: absolute; bottom: 35px; left: var(--gutter); right: var(--gutter); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; color: #a9b6c9; font-size: .75rem; text-transform: uppercase; letter-spacing: .16em; }
.scroll-cue { display: flex; align-items: center; gap: 12px; padding: 12px; }
.scroll-cue > span[aria-hidden] { width: 1px; height: 24px; background: linear-gradient(transparent, var(--accent)); }
.motion-toggle { justify-self: end; display: flex; gap: 9px; align-items: center; font-size: .75rem; letter-spacing: .02em; background: transparent; border: 0; padding: 10px 0 10px 10px; cursor: pointer; }
.motion-toggle:hover { color: var(--text); }
.pause-symbol { color: var(--accent); }

/* Presentazione asimmetrica: testo a sinistra, concept art a destra. */
.concept { padding-top: 72px; }
.section-index { display: flex; gap: 23px; align-items: center; color: var(--muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .17em; }
.section-index > span:first-child { color: var(--accent); }
.index-line { height: 1px; background: var(--line); flex: 1; margin-left: 12px; }
.concept-layout { display: grid; grid-template-columns: 1.08fr 1fr; gap: clamp(50px, 8vw, 130px); align-items: center; padding-top: 70px; }
h2 { font: 400 clamp(2.25rem, 3.6vw, 3.45rem)/1.2 var(--serif); letter-spacing: -.035em; text-wrap: balance; }
h2 em { font-weight: 400; color: #b8cce2; }
.concept-copy h2 { margin: 19px 0 30px; }
.concept-copy > p:not(.eyebrow) { color: var(--muted); font-size: 1rem; line-height: 1.95; margin-top: 22px; max-width: 570px; }
.concept-copy i { color: var(--text); }
.concept-copy .closing-line { padding-left: 23px; border-left: 1px solid var(--accent-dark); }
.concept-figure { position: relative; padding-top: 50px; }
.image-frame { position: relative; overflow: hidden; background: #172233; }
.image-frame img { position: relative; z-index: 1; height: 100%; object-fit: cover; opacity: 1; transition: transform 1.2s ease, filter 1.2s ease; }
.image-frame.has-image img { opacity: 1; }
.image-frame.has-image .image-placeholder { visibility: hidden; }
.concept-image { height: clamp(430px, 43vw, 610px); border: 0; }
.concept-image img { object-position: 48% 50%; }
.image-placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; color: #aebed3; gap: 24px; padding: 24px; text-align: center; font: italic 1.3rem/1.5 var(--serif); background: radial-gradient(ellipse at 67% 30%, #526a8833, transparent 65%), linear-gradient(145deg, #1a293d, #0c1625 80%); }
.placeholder-orbit { width: 82px; height: 82px; border: 1px solid #9db6d433; border-radius: 50%; position: relative; }
.placeholder-orbit::before { content: ""; position: absolute; inset: 8px; border: 1px solid #9db6d418; border-radius: 50%; }
.placeholder-orbit::after { content: ""; position: absolute; top: 50%; left: -18px; right: -18px; height: 1px; background: #9db6d433; transform: rotate(-45deg); }
.placeholder-caption { font: .75rem var(--sans); text-transform: uppercase; letter-spacing: .2em; color: var(--muted); }
.image-corner { position: absolute; z-index: 2; width: 26px; height: 26px; border-color: #b2c4db; border-style: solid; opacity: .5; }
.top-left { left: 15px; top: 15px; border-width: 1px 0 0 1px; }
.bottom-right { right: 15px; bottom: 15px; border-width: 0 1px 1px 0; }
figcaption { padding-top: 18px; display: flex; justify-content: space-between; gap: 20px; font-size: .75rem; text-transform: uppercase; letter-spacing: .13em; color: var(--muted); }
figcaption > span:last-child { color: var(--accent); }
.zodiac-divider { display: flex; align-items: center; justify-content: center; gap: clamp(14px, 2.5vw, 40px); margin-top: 105px; color: #94a7c0; }
.zodiac-divider > span:first-child, .zodiac-divider > span:last-child { flex: 1; height: 1px; background: var(--line); }
.zodiac-sign { font: 1.1rem/1.5 "Segoe UI Symbol", "Apple Symbols", var(--serif); }

/* Tre colonne su desktop, due su tablet, una su smartphone. */
.environments { padding-top: 104px; padding-bottom: 118px; }
.environments-heading { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin: 54px 0 43px; }
.environments-heading h2 { margin-top: 16px; }
.environments-heading > p { color: var(--muted); font: italic 1rem/1.75 var(--serif); text-align: right; padding-bottom: 4px; }
.environment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.environment-card { min-width: 0; }
.environment-image { display: block; width: 100%; padding: 0; border: 0; color: var(--text); text-align: left; aspect-ratio: 16 / 11; cursor: zoom-in; }
.environment-image::after { content: ""; position: absolute; inset: 0; z-index: 2; background: linear-gradient(180deg, #070b1233, transparent 50%, #070b12a6); pointer-events: none; }
.environment-number { position: absolute; top: 20px; left: 23px; z-index: 3; font: 1.2rem var(--serif); color: #e4e9eec9; }
.environment-type { position: absolute; bottom: 20px; left: 23px; z-index: 3; font-size: .75rem; text-transform: uppercase; letter-spacing: .22em; color: #cad5e2; }
.environment-image .placeholder-orbit { width: 60px; height: 60px; }
.environment-image .image-placeholder { font-size: 1.2rem; }
.basement .image-placeholder { background: radial-gradient(ellipse at 30% 35%, #465c7944, transparent 70%), #101c2b; }
.mansion .image-placeholder { background: radial-gradient(ellipse at 75% 20%, #51678233, transparent 70%), #132031; }
.hospital .image-placeholder { background: radial-gradient(ellipse at 50% 20%, #526f9244, transparent 70%), #111f32; }
.environment-copy { padding: 25px 0 0; }
h3 { font: 400 clamp(1.35rem, 1.8vw, 1.7rem)/1.3 var(--serif); }
.environment-copy p { color: var(--muted); font-size: .9rem; line-height: 1.8; max-width: 31ch; margin-top: 11px; }
@media (hover: hover) {
  .environment-card:hover img { transform: scale(1.065); filter: brightness(1.12); }
  .environment-card:hover h3 { color: #c1d6eb; }
}

.site-footer { border-top: 1px solid var(--line); min-height: 151px; display: flex; justify-content: space-between; align-items: center; gap: 35px; padding-block: 38px; }
.site-footer p { font-size: .75rem; line-height: 1.8; color: var(--muted); }
.privacy-label { font-size: .75rem; color: var(--muted); }
.back-to-top { font-size: 1.15rem; color: var(--accent); padding: 10px 15px; border: 1px solid var(--line); transition: border-color .25s; }
.back-to-top:hover { border-color: var(--accent); }

/* I contenuti sono visibili anche senza JavaScript. La classe reveal-ready
   viene aggiunta soltanto dopo aver preparato l’osservatore dello scroll. */
.reveal-ready [data-reveal] { opacity: 0; transform: translate3d(var(--reveal-x, 0), var(--reveal-y, 35px), 0) scale(var(--reveal-scale, 1)); filter: blur(4px); transition: opacity 1.1s ease, transform 1.25s cubic-bezier(.16, 1, .3, 1), filter 1.1s ease; }
[data-reveal="left"] { --reveal-x: -48px; --reveal-y: 12px; }
[data-reveal="right"] { --reveal-x: 48px; --reveal-y: -12px; }
[data-reveal="scale"] { --reveal-y: 0; --reveal-scale: .88; }
.reveal-ready [data-reveal].is-visible { opacity: 1; transform: none; filter: none; }
.reveal-ready [data-reveal]:not(.is-visible) { transition: none; }
.reveal-ready [data-reveal]:focus-within { opacity: 1; transform: none; filter: none; }
.environment-card:nth-child(2) { transition-delay: .1s; }
.environment-card:nth-child(3) { transition-delay: .2s; }
@keyframes fog-drift { from { transform: translate3d(-2%, 1%, 0); } to { transform: translate3d(3%, -2%, 0); } }
/* Distorsione brevissima e poco contrastata, senza lampeggiamenti. */
@keyframes title-flicker { 0%, 93%, 94%, 100% { opacity: 0; transform: none; } 93.3% { opacity: .35; transform: translateX(2px); } 93.7% { opacity: .15; transform: translateX(-1px); } }
.motion-paused *, .motion-paused *::before, .motion-paused *::after { animation-play-state: paused !important; }
.motion-paused { scroll-behavior: auto; }
.motion-paused [data-reveal] { opacity: 1; transform: none; filter: none; transition: none; }

@media (min-width: 1700px) { .hero-content { padding-block: 220px; } }
@media (max-width: 1024px) {
  .concept-layout { gap: 45px; }
  .concept-copy > p:not(.eyebrow) { line-height: 1.85; }
  .environment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 38px 26px; }
  .hero-note { max-width: 180px; }
  .site-footer { gap: 25px; flex-wrap: wrap; }
}
@media (max-width: 760px) {
  .site-header { display: grid; grid-template-columns: 1fr auto; min-height: 92px; padding-block: 20px; gap: 13px 16px; }
  .header-controls { display: contents; }
  .site-header > .brand { grid-column: 1; grid-row: 1; }
  .language-switch { grid-column: 2; grid-row: 1; }
  .brand { gap: 11px; }
  .brand-name { font-size: .75rem; letter-spacing: .12em; }
  .brand-name > span { font-size: .75rem; }
  .brand-symbol { width: 25px; height: 25px; }
  .brand-symbol::after { width: 22px; height: 22px; }
  .site-header nav { grid-column: 1 / -1; grid-row: 2; justify-content: center; flex-wrap: wrap; gap: 6px 14px; }
  .site-header nav a { font-size: .75rem; letter-spacing: 0; }
  .hero { min-height: max(740px, 100svh); }
  .hero-content { padding-top: 190px; }
  .eclipse { width: 85vw; max-width: 470px; top: 44%; }
  .title-rem { font-size: clamp(3rem, 28vw, 13rem); }
  .title-sub { font-size: clamp(1rem, 4vw, 1.9rem); letter-spacing: .23em; padding-left: .23em; }
  .hero-eyebrow { gap: 12px; font-size: .75rem; letter-spacing: .15em; }
  .hero-eyebrow .hero-rule { width: 15px; }
  .hero-line { font-size: 1.05rem; }
  .hero-note { display: none; }
  .hero-bottom { grid-template-columns: 1fr auto; bottom: 24px; }
  .scroll-cue { justify-self: start; padding-left: 0; }
  .concept { padding-top: 50px; }
  .concept-layout { grid-template-columns: 1fr; gap: 35px; padding-top: 45px; }
  .concept-copy > p:not(.eyebrow) { max-width: none; }
  .concept-figure { padding-top: 0; }
  .concept-image { height: auto; aspect-ratio: 4 / 3; }
  .zodiac-divider { margin-top: 62px; gap: 15px; flex-wrap: wrap; }
  .zodiac-divider > span:first-child, .zodiac-divider > span:last-child { display: none; }
  .environments { padding-top: 65px; padding-bottom: 65px; }
  .environments-heading { display: block; margin: 38px 0 30px; }
  .environments-heading > p { text-align: left; margin-top: 20px; }
  .environments-heading > p br { display: none; }
  .environment-grid { grid-template-columns: 1fr; gap: 40px; }
  .environment-image { aspect-ratio: 16 / 11; }
  .environment-copy { padding-top: 20px; }
  .environment-copy p { max-width: none; }
  .site-footer { display: grid; grid-template-columns: 1fr auto; gap: 28px 20px; }
  .footer-brand { grid-column: 1 / -1; }
  .site-footer p { grid-column: 1; }
  .privacy-label { grid-column: 1; grid-row: 3; }
  .back-to-top { grid-column: 2; grid-row: 2 / 4; }
}
@media (max-width: 400px) {
  .site-header { gap: 12px; padding-block: 19px; }
  .hero-content { padding-top: 190px; padding-bottom: 130px; }
  .hero-eyebrow .hero-rule { display: none; }
  .mobile-break { display: initial; }
  .title-sub { letter-spacing: .17em; }
  .hero-bottom { gap: 14px; }
  .motion-toggle { font-size: .75rem; }
  .section-index { gap: 15px; letter-spacing: .12em; }
}
/* Polvere, movimento lento della fotografia e orbite: nessun lampeggiamento. */
.atmosphere-dust { position: absolute; inset: 0; pointer-events: none; z-index: -1; overflow: hidden; }
.atmosphere-dust span { position: absolute; left: 12%; top: 75%; width: 2px; height: 2px; border-radius: 50%; background: #bcd8f4; box-shadow: 0 0 9px #bdd5ed; opacity: 0; animation: dust-drift 18s linear infinite; }
.atmosphere-dust span:nth-child(2) { left: 26%; top: 65%; animation-delay: -5s; animation-duration: 22s; }
.atmosphere-dust span:nth-child(3) { left: 38%; top: 86%; animation-delay: -13s; }
.atmosphere-dust span:nth-child(4) { left: 52%; top: 60%; animation-delay: -9s; animation-duration: 24s; }
.atmosphere-dust span:nth-child(5) { left: 67%; top: 80%; animation-delay: -16s; }
.atmosphere-dust span:nth-child(6) { left: 81%; top: 65%; animation-delay: -3s; animation-duration: 21s; }
.atmosphere-dust span:nth-child(7) { left: 92%; top: 90%; animation-delay: -11s; }
.atmosphere-dust span:nth-child(8) { left: 44%; top: 95%; animation-delay: -20s; animation-duration: 26s; }
@keyframes memory-drift { from { transform: scale(1.025) translateX(-.4%); } to { transform: scale(1.105) translateX(.7%); } }
@keyframes orbit-turn { to { transform: rotate(360deg); } }
@keyframes emerge { from { opacity: 0; transform: translateY(18px); filter: blur(7px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes dust-drift { 0% { opacity: 0; transform: translate(0, 0); } 20%, 75% { opacity: .42; } 100% { opacity: 0; transform: translate(45px, -300px); } }
.motion-paused .hero-content, .motion-paused .studio-title, .motion-paused .image-dialog[open] { animation: none; opacity: 1; transform: none; filter: none; }
.motion-paused .image-frame img { transition: none; }
.image-expand { position: absolute; right: 18px; bottom: 15px; z-index: 3; color: var(--text); font-size: 1.4rem; transition: transform .35s; }
.environment-image:hover .image-expand { transform: translate(3px, -3px); }
.environment-image:focus-visible { outline-offset: 6px; }
.environment-image:focus-visible img { transform: scale(1.04); }

/* Un player visibile e autonomo rispetto al filmato decorativo della hero. */
.video-section { padding-top: 100px; }
.video-stage { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: var(--bg-deep); border: 0; }
.video-cover { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.video-stage video { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; }
.video-stage video.is-unavailable { visibility: hidden; }
.video-status { position: absolute; z-index: 2; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 25px; gap: 14px; text-align: center; background: linear-gradient(#0b10189e, #0b1018da); }
.video-status > p:last-child { font: italic clamp(1.1rem, 2.2vw, 1.9rem)/1.5 var(--serif); }
.signal-mark { width: 42px; height: 42px; border: 1px solid #8faecb66; border-radius: 50%; margin-bottom: 15px; position: relative; }
.signal-mark::after { content: ""; position: absolute; inset: 8px; border: 1px solid #8faecb33; border-radius: 50%; }
.video-caption { display: flex; justify-content: space-between; gap: 20px; padding-top: 17px; color: var(--muted); text-transform: uppercase; font-size: .75rem; letter-spacing: .12em; }

/* La galleria conserva le proporzioni complete degli screenshot originali. */
.dialog-open { overflow: hidden; }
.image-dialog { width: min(1200px, calc(100% - 40px)); max-height: 94svh; padding: 66px 24px 22px; color: var(--text); background: #0b1018; border: 0; overflow-y: auto; }
.image-dialog::backdrop { background: #030710e8; backdrop-filter: blur(12px); }
.image-dialog[open] { animation: emerge .35s ease-out; }
.lightbox-image { width: 100%; height: auto; max-height: 66svh; object-fit: contain; }
.image-dialog figcaption { text-transform: none; letter-spacing: .04em; font-size: .9rem; }
.dialog-close { position: absolute; right: 18px; top: 10px; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; font-size: 2rem; }
.gallery-controls { display: flex; justify-content: center; gap: 15px; margin-top: 18px; }
.gallery-controls button { min-width: 58px; min-height: 44px; border: 1px solid var(--line); background: transparent; cursor: pointer; }
.gallery-controls button:hover, .dialog-close:hover { color: var(--accent); border-color: var(--accent); }

/* Collegamento a una seconda pagina dedicata alle persone dello studio. */
.studio-teaser { display: flex; align-items: center; justify-content: space-between; gap: 55px; padding-block: 65px 95px; border-top: 1px solid var(--line); }
.studio-teaser h2 { max-width: 700px; margin-top: 20px; }
.text-link { display: inline-flex; flex-shrink: 0; align-items: center; gap: 30px; font-size: .85rem; padding-block: 16px; border-bottom: 1px solid var(--accent); }
.studio-intro { padding-top: calc(var(--header-height, 110px) + 100px); padding-bottom: 90px; position: relative; isolation: isolate; overflow: clip; }
.studio-title { font-size: clamp(3rem, 7.6vw, 7.2rem); line-height: 1.06; letter-spacing: -.045em; font-weight: 400; margin: 35px 0 42px; max-width: 1160px; animation: emerge 1.2s ease-out; }
.studio-title em { display: block; font-weight: 400; color: #a9c1dc; }
.studio-intro-bottom { display: flex; align-items: end; justify-content: space-between; gap: 40px; }
.studio-intro-bottom > p { font-size: 1.1rem; max-width: 620px; color: var(--muted); }
.studio-intro-bottom .motion-toggle { flex-shrink: 0; }
.studio-orbit { position: absolute; z-index: -1; width: 640px; height: 640px; right: -160px; top: 50px; border: 1px solid #b4d7eb22; border-radius: 50%; background: radial-gradient(ellipse, #92bed318, transparent 70%); animation: eclipse-arrival 3s ease-out both; }
.studio-orbit::after { content: ""; position: absolute; inset: 35px; border: 1px solid #8faecb0e; border-radius: 50%; }
.studio-orbit span { position: absolute; left: 28%; top: 4.5%; width: 8px; height: 8px; background: #8faecb77; transform: rotate(45deg); }
.team-section { padding-bottom: 105px; }
.team-section h2 { margin: 52px 0 40px; }
.team-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px; }
.team-member { padding: 30px 0; border-top: 1px solid var(--line); }
.member-monogram { position: relative; height: 180px; display: flex; align-items: center; justify-content: space-between; padding: 24px 30px; background: linear-gradient(135deg, #b9def314, #b9def302); border: 1px solid var(--line); overflow: hidden; margin-bottom: 30px; }
.member-monogram > span:first-child { font: 5.8rem/1 var(--serif); letter-spacing: -.06em; color: #97afcc6e; transition: color .5s, transform .8s; }
.member-number { align-self: start; font-size: .75rem; color: #9eb0c5; }
.member-monogram::after { content: ""; position: absolute; right: -45px; top: -25px; width: 240px; height: 240px; border: 1px solid #8faecb22; border-radius: 50%; }
.member-role { font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); margin-bottom: 13px; }
.team-member h3 { font-size: clamp(1.7rem, 2.6vw, 2.7rem); }
.member-line { display: block; width: 48px; height: 1px; background: var(--accent); margin-top: 25px; transition: width .7s; }
.team-member:hover .member-line { width: 100px; }
.team-member:hover .member-monogram > span:first-child { color: #b1cbe8; transform: translateX(8px); }
.studio-outro { position: relative; isolation: isolate; min-height: 450px; display: grid; align-items: center; padding-block: 80px; text-align: center; }
.studio-outro > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.studio-outro::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(#0b1018eb, #0b10188a, #0b1018f5); }
.studio-outro h2 { max-width: 850px; margin-top: 20px; }

@media (max-width: 980px) {
  .site-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 16px; padding-block: 17px; }
  .header-controls { display: contents; }
  .site-header > .brand { grid-column: 1; grid-row: 1; }
  .language-switch { grid-column: 2; grid-row: 1; }
  .site-header nav { grid-column: 1 / -1; grid-row: 2; justify-content: center; flex-wrap: wrap; gap: 5px 18px; }
  .studio-teaser { align-items: start; flex-direction: column; gap: 28px; }
}
@media (max-width: 760px) {
  .video-section { padding-top: 65px; }
  .video-stage { aspect-ratio: 4 / 3; }
  .video-status { gap: 9px; }
  .signal-mark { margin-bottom: 5px; }
  .site-header nav { gap: 5px 12px; }
  .studio-teaser { padding-block: 45px 60px; }
  .studio-intro { padding-top: calc(var(--header-height, 125px) + 65px); padding-bottom: 65px; }
  .studio-intro-bottom { align-items: start; flex-direction: column; gap: 20px; }
  .studio-intro-bottom .motion-toggle { padding-left: 0; }
  .studio-intro-bottom > p { font-size: 1rem; }
  .studio-orbit { right: -450px; }
  .team-grid { grid-template-columns: 1fr; gap: 20px; }
  .team-section { padding-bottom: 55px; }
  .team-section h2 { margin: 36px 0 20px; }
  .member-monogram { height: 150px; }
  .member-monogram > span:first-child { font-size: 4.5rem; }
  .studio-outro { min-height: 380px; }
  .image-dialog { width: calc(100% - 20px); padding-inline: 12px; }
}

/* Superfici fredde e traslucide. Il canvas rimane decorativo e non intercetta click. */
main { overflow: clip; }
.star-field { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 4; pointer-events: none; }
.hero-media { transform: translate3d(var(--hero-shift-x, 0px), var(--hero-shift-y, 0px), 0); }
.hero-content .hero-eyebrow { animation: slide-in-left 1.5s ease-out both; }
.hero-content .title-sub { animation: slide-in-right 1.8s ease-out both; }
.hero-content .explore-link { animation: emerge 2.2s ease-out both; background: #acd6ed08; backdrop-filter: blur(6px); }
.game-chapters { display: flex; align-items: center; gap: 34px; margin-top: 60px; padding-block: 23px; border-block: 1px solid var(--line); }
.game-chapters a { display: flex; gap: 28px; align-items: center; font-size: .85rem; }
.game-chapters a:hover { color: var(--accent); }
.development-note { margin-left: auto; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.development-note::before { content: ""; display: inline-block; width: 4px; height: 4px; border-radius: 50%; background: var(--accent); margin-right: 10px; vertical-align: middle; }
.gameplay { padding-block: 110px 80px; }
.gameplay-layout { display: grid; grid-template-columns: .85fr 1.3fr; gap: clamp(35px, 6vw, 90px); margin-top: 58px; align-items: start; }
.gameplay-intro h2 { margin: 20px 0 25px; }
.gameplay-intro > p:not(.eyebrow) { max-width: 36ch; color: var(--muted); }
.gameplay-tabs { margin-top: 40px; }
.gameplay-tabs button { width: 100%; display: grid; grid-template-columns: 24px 1fr 22px; align-items: center; gap: 16px; text-align: left; padding: 21px 14px; border: 0; border-bottom: 1px solid var(--line); background: transparent; cursor: pointer; color: var(--muted); transition: background .4s, color .4s; }
.gameplay-tabs button:first-child { border-top: 1px solid var(--line); }
.gameplay-tabs button > span:first-child { font-size: .7rem; color: var(--accent); }
.gameplay-tabs button > span:last-child { transition: transform .4s; color: var(--accent); }
.gameplay-tabs button[aria-selected="true"] { color: var(--text); background: linear-gradient(90deg, #acd6ed15, #acd6ed03); box-shadow: inset 2px 0 var(--accent); }
.gameplay-tabs button[aria-selected="true"] > span:last-child { transform: rotate(45deg); }
.gameplay-tabs button:hover { color: var(--text); background: #acd6ed09; }
.gameplay-panel { border: 0; background: linear-gradient(125deg, #b8dff20e, #b8dff202); margin-bottom: 24px; }
.gameplay-image { position: relative; overflow: hidden; aspect-ratio: 16 / 9; }
.gameplay-image img { height: 100%; object-fit: cover; }
.gameplay-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 55%, #060b1155); }
.gameplay-image > span { position: absolute; z-index: 1; left: 24px; bottom: 20px; font-size: .65rem; letter-spacing: .18em; }
.gameplay-panel-copy { padding: clamp(22px, 3vw, 40px); }
.gameplay-panel-copy h3 { font-size: clamp(1.5rem, 2vw, 2rem); margin: 13px 0 17px; text-wrap: balance; }
.gameplay-panel-copy > p:last-child { color: var(--muted); font-size: .95rem; }
.gameplay-ready .gameplay-panel { margin-bottom: 0; }
.gameplay-ready .gameplay-panel:not([hidden]) .gameplay-image img { animation: panel-image .8s cubic-bezier(.2, 1, .3, 1); }
.gameplay-ready .gameplay-panel:not([hidden]) .gameplay-panel-copy { animation: panel-copy .6s ease-out; }
.astral-section { position: relative; padding-block: 50px 90px; }
.astral-layout { display: grid; grid-template-columns: 1fr 1.12fr; align-items: center; gap: clamp(40px, 7vw, 100px); padding-block: 70px; border-block: 1px solid var(--line); }
.astral-art { position: relative; aspect-ratio: 1; display: grid; place-items: center; background: radial-gradient(ellipse, #a8d7ef09, transparent 65%); }
.astral-diagram { width: 100%; max-width: 530px; stroke: #b8dcec26; stroke-width: 1; transform: rotate(var(--astral-rotation, 0deg)); }
.astral-halo { stroke-dasharray: 1 13; stroke: #b8dcec6e; }
.astral-inner { stroke-dasharray: 2 9; }
.constellation-path { stroke: #bedfee66; stroke-dasharray: 1500; stroke-dashoffset: 0; }
.reveal-ready .astral-art:not(.is-visible) .constellation-path { stroke-dashoffset: 1500; }
.astral-art.is-visible .constellation-path { transition: stroke-dashoffset 2.5s ease .15s; }
.constellation-stars { fill: #c8e6f1; stroke: none; }
.astral-core { fill: #090f16; stroke: #c6e7f040; }
.astral-crescent { fill: #badfee1a; stroke: #badfee7a; }
.astral-coordinate { position: absolute; bottom: -10px; font-size: .6rem; letter-spacing: .25em; color: var(--muted); }
.astral-copy h2 { margin: 20px 0 25px; }
.astral-copy > p:not(.eyebrow) { color: var(--muted); max-width: 50ch; }
.feature-notes { margin: 32px 0 0; }
.feature-notes > div { padding: 20px 0; border-top: 1px solid var(--line); }
.feature-notes dt { font-size: .95rem; color: var(--text); }
.feature-notes dd { margin: 8px 0 0; font-size: .88rem; color: var(--muted); max-width: 53ch; }
.environments { padding-top: 25px; padding-bottom: 35px; }
.video-section { padding-bottom: 100px; }
.video-stage { box-shadow: none; }
.video-status { background: linear-gradient(#0a141b90, #09111bd9); }
.member-bio { margin-top: 22px; max-width: 54ch; color: var(--muted); font-size: .95rem; line-height: 1.9; }
@keyframes memory-arrival { from { transform: scale(1.13) translateX(-1%); filter: blur(4px); } to { transform: scale(1.025); filter: none; } }
@keyframes eclipse-arrival { from { opacity: 0; transform: rotate(-30deg) scale(.82); } to { opacity: 1; transform: none; } }
@keyframes slide-in-left { from { opacity: 0; transform: translateX(-36px); } to { opacity: 1; transform: none; } }
@keyframes slide-in-right { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: none; } }
@keyframes panel-image { from { opacity: .5; transform: scale(1.04) translateX(-10px); } to { opacity: 1; transform: none; } }
@keyframes panel-copy { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.motion-paused .hero-content *, .motion-paused .gameplay-panel *, .motion-paused .hero-poster, .motion-paused .eclipse, .motion-paused .studio-orbit { animation: none !important; }
.motion-paused .hero-media, .motion-paused .astral-diagram { transform: none; }
.motion-paused .constellation-path { stroke-dashoffset: 0 !important; transition: none !important; }
@media (max-width: 1024px) {
  .gameplay-layout { grid-template-columns: .85fr 1.15fr; gap: 32px; }
  .astral-layout { gap: 35px; }
}
@media (max-width: 760px) {
  [data-reveal="left"] { --reveal-x: -22px; }
  [data-reveal="right"] { --reveal-x: 22px; }
  .game-chapters { flex-wrap: wrap; gap: 16px 25px; margin-top: 38px; }
  .game-chapters a { gap: 15px; }
  .development-note { flex-basis: 100%; margin-left: 0; }
  .gameplay { padding-block: 65px 35px; }
  .gameplay-layout { grid-template-columns: 1fr; margin-top: 40px; gap: 30px; }
  .gameplay-intro > p:not(.eyebrow) { max-width: none; }
  .gameplay-tabs { margin-top: 25px; }
  .gameplay-tabs button { padding-block: 15px; }
  .gameplay-panel-copy { min-height: 225px; }
  .astral-section { padding-block: 25px 55px; }
  .astral-layout { display: flex; flex-direction: column; gap: 35px; padding-block: 40px; }
  .astral-art { width: min(85%, 350px); }
  .astral-copy { width: 100%; }
  .video-section { padding-bottom: 60px; }
}

/* Le sequenze ripartono ad ogni ingresso, senza far lampeggiare elementi già visibili. */
.entrance-ready .hero:not(.is-in-view) .hero-content,
.entrance-ready .hero:not(.is-in-view) .hero-content *,
.entrance-ready .hero:not(.is-in-view) .hero-poster,
.entrance-ready .hero:not(.is-in-view) .title-rem::after,
.entrance-ready .hero:not(.is-in-view) .eclipse,
.entrance-ready .hero:not(.is-in-view)::after,
.entrance-ready .studio-intro:not(.is-in-view) .studio-title,
.entrance-ready .studio-intro:not(.is-in-view) .studio-orbit,
.reveal-ready .gameplay-panels:not(.is-visible) .gameplay-panel * { animation: none; }

/* Ritratto della protagonista: tipografia, senza inventare il suo aspetto. */
.protagonist { padding-block: 95px 25px; }
.protagonist-layout { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(50px, 8vw, 115px); margin-top: 65px; align-items: center; }
.protagonist-identity { position: relative; padding-block: 38px 80px; isolation: isolate; }
.protagonist-identity h2 { font-size: clamp(4rem, 7.5vw, 7.6rem); margin: 25px 0 18px; letter-spacing: -.06em; }
.protagonist-identity h2 > span { color: var(--accent); }
.scarlett-line { font: italic 1.15rem/1.65 var(--serif); color: var(--muted); }
.identity-echo { position: absolute; inset: 0; z-index: -1; display: flex; justify-content: space-between; align-items: end; color: #b4d7eb08; pointer-events: none; }
.identity-echo > span:first-child { font: 25rem/.8 var(--serif); }
.protagonist-copy > p { color: var(--muted); line-height: 1.95; margin-top: 20px; }

/* Carte astrali vettoriali: dodici settori, case, assi e segno solare.
   Sono ritratti grafici: per una carta calcolata servirebbero i dati completi di nascita. */
/* La composizione in scala di grigi evita anche i bordi cromatici dei glifi. */
.natal-chart { display: block; width: 100%; height: auto; overflow: visible; stroke-width: .9; filter: grayscale(1); }
.chart-orbit { stroke: #cdcdcd25; stroke-dasharray: 1 9; transform: rotate(var(--astral-rotation, 0deg)); transform-origin: 300px 300px; }
.chart-ticks { stroke: #cdcdcd60; stroke-width: .65; }
.chart-rings, .chart-sectors { stroke: #cdcdcd53; }
.chart-houses { stroke: #cdcdcd25; }
.chart-axes { stroke: #cdcdcd65; }
.chart-asc-arrow { fill: #d4d4d4; }
/* Anche simboli, numeri e iniziali sono tracciati SVG: nessun font o emoji
   viene rasterizzato dal browser all’interno delle carte. Colori solo neutri. */
.chart-symbols { fill: #b3b3b3; }
.chart-symbols .sun-sign { fill: #f4f4f4; }
.chart-symbols .rising-sign { fill: #e0e0e0; }
.chart-house-numbers { fill: #949494; }
.chart-axis-labels { fill: #d2d2d2; }
.chart-aspects path { stroke: #cfcfcf73; stroke-width: .85; stroke-dasharray: 1; stroke-dashoffset: 0; }
.chart-aspects path:nth-child(2n) { stroke: #acacac42; }
.chart-center { fill: #0e0e0e; stroke: #cfcfcf20; }
.chart-sun { stroke: #eaeaea; stroke-width: 1.2; fill: #0e0e0e; }
.chart-sun-center { fill: #eaeaea; }
.chart-initials { fill: #d8d8d8; }
.chart-moon { stroke: #d5d5d58c; fill: #d5d5d50d; }
.chart-planet { fill: #e5e5e5; paint-order: stroke; stroke: #0e0e0e; stroke-width: 5px; stroke-linejoin: round; }
.reveal-ready [data-reveal]:not(.is-visible) .chart-aspects path { stroke-dashoffset: 1; transition: none; }
.reveal-ready [data-reveal].is-visible .chart-aspects path { transition: stroke-dashoffset 1.8s ease .15s; }
.member-chart { margin: 0 0 34px; background: radial-gradient(ellipse, #b9def308, transparent 67%); }
.member-chart .natal-chart { max-width: 510px; margin-inline: auto; }
.member-chart figcaption { align-items: center; padding-top: 15px; font-size: .68rem; letter-spacing: .11em; }
.member-sign { color: var(--text); }
.member-sign > span:first-child { color: var(--accent); padding-right: 7px; }
.member-role { font-size: .68rem; line-height: 1.9; letter-spacing: .1em; }
.motion-paused .chart-aspects path { stroke-dashoffset: 0 !important; transition: none !important; }
/* Su desktop i tratti molto sottili possono cadere fra i pixel allo zoom
   del browser. Usiamo spessore stabile, grigi opachi e un minimo ammorbidimento
   dei bordi al posto del filtro cromatico. Il disegno mobile resta invariato. */
@media (min-width: 761px) {
  .natal-chart { filter: blur(.2px); }
  .chart-orbit, .chart-ticks, .chart-rings > circle, .chart-sectors,
  .chart-houses, .chart-axes, .chart-aspects > path, .chart-center,
  .chart-sun, .chart-moon {
    vector-effect: non-scaling-stroke;
    stroke-width: 1.75px;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .chart-orbit { stroke: #303030; }
  .chart-ticks { stroke: #474747; }
  .chart-rings, .chart-sectors { stroke: #404040; }
  .chart-houses { stroke: #2b2b2b; }
  .chart-axes { stroke: #4d4d4d; }
  .chart-aspects path { stroke: #555555; }
  .chart-aspects path:nth-child(2n) { stroke: #383838; }
  .chart-center { stroke: #282828; }
  .chart-moon { stroke: #838383; fill: #191919; }
}
@media (max-width: 760px) {
  .protagonist { padding-block: 65px 10px; }
  .protagonist-layout { grid-template-columns: 1fr; gap: 10px; margin-top: 35px; }
  .protagonist-identity { padding-block: 25px 35px; }
  .protagonist-identity h2 { font-size: clamp(4rem, 16vw, 6rem); }
  .identity-echo > span:first-child { font-size: 16rem; }
  .protagonist-copy > p { font-size: .95rem; }
  .member-chart figcaption { font-size: .65rem; letter-spacing: .04em; gap: 12px; }
  .astral-art { width: 100%; }
  .astral-coordinate { font-size: .56rem; letter-spacing: .12em; }
}

/* Nessuna animazione, distorsione o transizione per chi richiede meno movimento. */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal-ready [data-reveal] { opacity: 1; transform: none; filter: none; }
  .hero-media, .astral-diagram { transform: none; }
  .constellation-path { stroke-dashoffset: 0 !important; }
  .chart-aspects path { stroke-dashoffset: 0 !important; }
}

/* Footer comune: icone SVG locali, volutamente prive di collegamenti. */
.site-footer.universal-footer { position: relative; z-index: 5; isolation: isolate; display: block; padding: 0; border-top: 0; background: #04080d; transition: none; }
.site-footer.universal-footer:hover { background: #04080d; }
.footer-inner { padding-block: 72px 38px; }
.footer-top { display: flex; flex-direction: column; align-items: center; gap: 13px; width: fit-content; margin: 0 auto 46px; padding: 10px 24px; font-size: .75rem; letter-spacing: .17em; text-transform: uppercase; }
.footer-chevron { display: block; width: 27px; height: 27px; border-top: 1px solid var(--text); border-left: 1px solid var(--text); transform: rotate(45deg); transition: translate .3s ease; }
.footer-top:hover .footer-chevron { translate: 0 -5px; }
.footer-main { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 40px 70px; padding-block: 39px; border-top: 1px solid var(--line); }
.social-icons { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; padding: 0; margin: 0 0 13px; list-style: none; direction: ltr; }
.social-icon { display: block; width: 23px; height: 23px; color: #ccd5dd; }
.social-icon svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.site-footer .footer-social p { font-size: .65rem; letter-spacing: .04em; color: #93a2b1; }
.footer-social { min-width: 0; }
.site-footer .footer-social .footer-email { margin-top: 14px; font-size: .875rem; letter-spacing: 0; }
.footer-email a { display: inline-block; padding-block: 10px; max-width: 100%; overflow-wrap: anywhere; text-underline-offset: 5px; }
.footer-email a:hover { text-decoration: underline; }
.footer-nav { display: flex; justify-content: flex-end; flex-wrap: wrap; align-items: center; gap: 8px 27px; }
.footer-nav a { display: inline-flex; align-items: center; min-height: 44px; margin-top: -10px; padding-block: 10px; font-size: .75rem; line-height: 1.6; color: var(--muted); text-underline-offset: 7px; }
.footer-nav a { min-width: 0; overflow-wrap: anywhere; }
.footer-nav a:hover, .footer-nav a[aria-current="page"] { color: var(--muted); text-decoration: underline; text-decoration-color: var(--accent-dark); }
.footer-bottom { text-align: center; padding-top: 8px; }
.site-footer .footer-bottom p { margin-top: 5px; font-size: .65rem; }
.site-footer .footer-bottom p:last-child { opacity: .8; }

/* Pagine informative: titoli ampi e una colonna di lettura raccolta. */
.service-page main { overflow: clip; }
.service-hero { padding-top: calc(var(--header-height, 120px) + 47px); padding-bottom: 52px; }
.service-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: clamp(40px, 7vw, 90px); font-size: .7rem; color: var(--muted); }
.service-breadcrumb a { padding-block: 10px; text-decoration: underline; text-underline-offset: 5px; }
.service-breadcrumb > span:last-child { color: var(--text); }
.service-hero h1 { font-size: clamp(2.8rem, 6.5vw, 6.8rem); line-height: 1.12; letter-spacing: -.045em; margin: 20px 0 26px; max-width: 100%; overflow-wrap: anywhere; }
.service-intro-row { display: flex; align-items: end; justify-content: space-between; gap: 28px; }
.service-intro-row > p { max-width: 650px; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.15rem); }
.service-intro-row .motion-toggle { flex-shrink: 0; }
.service-content { padding-bottom: 90px; }
.journal-entry { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: clamp(32px, 6vw, 85px); border-block: 1px solid var(--line); padding-block: 45px 60px; }
.journal-image { overflow: hidden; }
.journal-image img { aspect-ratio: 5 / 4; object-fit: cover; height: auto; filter: brightness(.82); }
.journal-copy h2 { font: 400 clamp(2rem, 3.4vw, 3.1rem)/1.2 var(--serif); margin: 23px 0; letter-spacing: -.025em; }
.journal-copy > p:not(.eyebrow), .journal-note p { color: var(--muted); }
.journal-note { margin-top: 28px; }
.journal-note summary { font-size: .8rem; color: var(--accent); cursor: pointer; padding-block: 12px; }
.journal-note p { font-size: .9rem; margin-top: 10px; }
summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }
.service-tail { max-width: 680px; padding-block: 55px 0; }
.service-tail h2 { font: 400 clamp(1.65rem, 2.5vw, 2.3rem)/1.35 var(--serif); margin-bottom: 16px; }
.service-tail p { color: var(--muted); }
.faq-list { max-width: 960px; border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { position: relative; list-style: none; padding: 26px 0; padding-inline-end: 48px; cursor: pointer; font: 400 clamp(1.1rem, 2vw, 1.5rem)/1.5 var(--serif); }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; inset-inline-end: 8px; top: 24px; font: 300 1.6rem/1.4 var(--sans); color: var(--accent); }
.faq-item[open] summary::after { content: "−"; }
.faq-item[open] summary { color: var(--accent); }
.faq-item p { max-width: 76ch; padding-bottom: 28px; padding-inline-end: 35px; color: var(--muted); }
.draft-note { border-inline-start: 2px solid #829aaf; background: #a5cde808; padding: 23px 28px; margin-bottom: 30px; max-width: 960px; }
.draft-note .eyebrow { font-size: .66rem; margin-bottom: 9px; }
.draft-note > p:last-child { color: var(--muted); font-size: .86rem; max-width: 82ch; }
.reading-layout { max-width: 1060px; }
.reading-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 38px; padding-block: 36px; border-bottom: 1px solid var(--line); }
.reading-section h2, .contact-layout h2 { font: 400 clamp(1.45rem, 2.4vw, 2rem)/1.35 var(--serif); letter-spacing: -.02em; }
.reading-section p { color: var(--muted); font-size: .95rem; max-width: 70ch; }
.contact-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; margin: 40px 0 10px; max-width: 1060px; }
.contact-facts > div { padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.contact-facts dt { color: var(--muted); font-size: .72rem; margin-bottom: 10px; }
.contact-facts dd { margin: 0; font-size: .9rem; overflow-wrap: anywhere; }
.pending-field { color: #b2c3d3; font-style: italic; }
.document-date { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; font-size: .7rem; color: var(--muted); }
.contact-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(35px, 6vw, 95px); padding-top: 20px; }
.contact-layout h2 { margin-bottom: 22px; }
.contact-layout section > p { color: var(--muted); max-width: 62ch; }
.contact-address, .contact-question { border-top: 1px solid var(--line); margin-top: 33px; padding-top: 26px; }
.contact-address .eyebrow { margin-bottom: 12px; }
.contact-email { overflow-wrap: anywhere; }
.contact-question p { color: var(--muted); font-size: .85rem; margin-bottom: 10px; }
.service-return { margin-top: 55px; }

/* Lingue: font di sistema e proprietà logiche per la lettura da destra. */
.language-switch select { min-width: 117px; direction: ltr; letter-spacing: .02em; }
:lang(ja) { --sans: "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif; --serif: "Yu Mincho", "Hiragino Mincho ProN", serif; }
:lang(zh) { --sans: "Microsoft YaHei", "PingFang SC", sans-serif; --serif: "Songti SC", "SimSun", serif; }
:lang(ar) { --sans: Tahoma, "Segoe UI", Arial, sans-serif; --serif: "Times New Roman", Tahoma, serif; }
:is(:lang(ar), :lang(ja), :lang(zh)) :is(.eyebrow, .section-index, .site-header nav a, .footer-nav, .footer-top, .member-chart figcaption, .service-hero h1, .team-member h3) { letter-spacing: normal; text-transform: none; }
:lang(ar) p { line-height: 2; }
:lang(ar) .brand, :lang(ar) #game-title { --serif: Georgia, "Times New Roman", serif; --sans: "Segoe UI", Arial, sans-serif; }
[dir="rtl"] .site-header::after { transform-origin: right; }
[dir="rtl"] .gallery-controls button { transform: scaleX(-1); }
[dir="rtl"] .gameplay-tabs button { text-align: start; }
[dir="rtl"] .gameplay-tabs button[aria-selected="true"] { background: linear-gradient(270deg, #acd6ed15, #acd6ed03); box-shadow: inset -2px 0 var(--accent); }
[dir="rtl"] .development-note { margin-left: 0; margin-inline-start: auto; }
[dir="rtl"] .concept-closing { border-left: 0; border-inline-start: 1px solid var(--accent-dark); padding-left: 0; padding-inline-start: 22px; }
[dir="rtl"] .social-icons { justify-content: flex-end; }
[dir="rtl"] .text-link > span[aria-hidden] { transform: scaleX(-1); }
@media (max-width: 1100px) {
  .footer-main { grid-template-columns: 1fr; gap: 28px; }
  .footer-nav { justify-content: flex-start; }
}
@media (max-width: 760px) {
  .footer-inner { padding-block: 54px 30px; }
  .footer-top { margin-bottom: 28px; }
  .footer-main { padding-block: 30px; }
  .footer-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
  .footer-nav a { margin-top: 0; }
  .footer-bottom { text-align: start; }
  .service-hero { padding-top: calc(var(--header-height, 145px) + 20px); padding-bottom: 35px; }
  .service-breadcrumb { margin-bottom: 35px; }
  .service-intro-row { flex-direction: column; align-items: start; gap: 17px; }
  .service-intro-row .motion-toggle { padding-inline-start: 0; }
  .service-content { padding-bottom: 65px; }
  .journal-entry, .reading-section, .contact-layout { grid-template-columns: 1fr; }
  .journal-entry { gap: 30px; padding-block: 30px 40px; }
  .journal-image img { aspect-ratio: 3 / 2; }
  .reading-section { gap: 16px; padding-block: 28px; }
  .contact-facts { grid-template-columns: 1fr; gap: 18px; }
  .draft-note { padding: 20px; }
  .faq-item summary { padding-block: 23px; }
  .faq-item p { padding-inline-end: 0; font-size: .94rem; }
}
@media (max-width: 390px) {
  .brand { gap: 9px; }
  .brand-symbol { width: 25px; height: 25px; }
  .brand-symbol::after { width: 22px; height: 22px; }
  .brand-name { font-size: .58rem; letter-spacing: .09em; }
  .brand-name > span { font-size: .58rem; letter-spacing: .22em; }
  .language-switch select { min-width: 100px; width: 100px; font-size: .72rem; padding-left: 8px; }
  .site-header nav { column-gap: 12px; }
  .site-header nav a { font-size: .69rem; letter-spacing: .02em; }
}

/* Dissolvenza tra documenti; nessuna animazione della pagina che sta ferma. */
html { background: var(--bg); }
html::after { content: ""; position: fixed; inset: 0; z-index: 10000; background: var(--bg); opacity: 0; pointer-events: none; transition: opacity 380ms ease; }
html.page-entering::after { opacity: 1; transition: none; }
html.page-leaving::after { opacity: 1; transition: opacity 240ms ease; }
@media (prefers-reduced-motion: reduce) {
  html::after { display: none; }
}

/* HOME TEASER — fotografie ampie, pause narrative e pochi indizi.
   Le regole sono limitate alla home: carte dello studio e pagine informative
   mantengono la propria composizione. Nessuna immagine remota o font aggiunto. */
.teaser-home { --page-width: 1440px; background: #080e14; }
.teaser-home .hero { min-height: max(780px, 100svh); }
.teaser-home .hero-overlay { background: linear-gradient(180deg, #050a10a6, #050a1030 28%, #050a1060 65%, #080e14 100%), linear-gradient(90deg, #050a105e, transparent 30%, transparent 70%, #050a105e); }
.teaser-home .hero-content { padding-block: 185px 155px; }
.hero-development { display: inline-flex; align-items: center; gap: 12px; font-size: .65rem; letter-spacing: .23em; text-transform: uppercase; color: var(--accent); margin-bottom: 26px; }
.hero-development::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; box-shadow: 0 0 12px #c6e2ef66; }
.teaser-home .hero-eyebrow { font-size: .66rem; letter-spacing: .22em; }
.teaser-home .title-rem { font-size: clamp(7rem, 19vw, 17rem); letter-spacing: .09em; }
.teaser-home .title-sub { font-size: clamp(1.1rem, 2.9vw, 2.3rem); letter-spacing: .32em; margin-top: 26px; }
.teaser-home .eclipse { width: min(58vw, 660px); top: 50%; border-color: #bdced32e; }
.teaser-home .hero-line { color: #d0dbe3; }
.teaser-home .explore-link { padding: 15px 28px; border-color: #aabcc957; margin-top: 30px; }
.teaser-home .hero-bottom { bottom: 30px; font-size: .65rem; }
.teaser-home .concept { padding-top: 60px; }
.teaser-home .section-index { letter-spacing: .22em; font-size: .65rem; }
.teaser-introduction { max-width: 1000px; margin: 110px auto 78px; text-align: center; }
.teaser-introduction h2 { font-size: clamp(2.5rem, 4.5vw, 4.7rem); margin: 27px 0 30px; line-height: 1.18; }
.teaser-premise { max-width: 620px; margin-inline: auto; font-size: 1rem; line-height: 1.95; color: var(--muted); text-wrap: pretty; }
.memory-panorama { --reveal-scale: .96; }
.memory-window { position: relative; overflow: hidden; aspect-ratio: 2.35; background: var(--bg-deep); }
.memory-window::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, #080e1410, transparent 70%, #080e1466); pointer-events: none; }
.memory-window img { height: 110%; object-fit: cover; object-position: 50% 49%; transform: translateY(var(--memory-drift, -3%)); }
.memory-panorama figcaption { font-size: .65rem; letter-spacing: .16em; padding-top: 20px; }
.teaser-home .game-chapters { margin-top: 42px; justify-content: center; gap: clamp(30px, 7vw, 100px); border-top: 0; padding-block: 0 32px; }
.teaser-home .game-chapters a { font-size: .75rem; gap: 20px; }
.teaser-home .protagonist { padding-block: 55px 20px; }
.teaser-home .protagonist-layout { max-width: 1100px; margin: 20px auto 0; gap: 12%; }
.teaser-home .protagonist-identity { padding-block: 20px 55px; }
.teaser-home .protagonist-identity h2 { font-size: clamp(4rem, 6vw, 6.5rem); }
.teaser-home .identity-echo > span:first-child { font-size: 17rem; }
.teaser-home .protagonist-copy { border-inline-start: 1px solid var(--line); padding-inline-start: 36px; }
.teaser-home .protagonist-copy p { font-size: 1.05rem; margin: 0; max-width: 39ch; }
.teaser-home .gameplay { padding-block: 90px 100px; }
.experience-heading { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin: 45px 0 55px; }
.experience-heading h2 { font-size: clamp(2.5rem, 4vw, 4rem); }
.experience-heading > p { font: italic 1.05rem/1.7 var(--serif); color: var(--muted); text-align: end; }
.experience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(28px, 4vw, 70px); }
.experience-fragment { position: relative; padding-block: 30px 5px; border-top: 1px solid var(--line); }
.fragment-number { display: block; font: 2.5rem/1 var(--serif); color: #8296a0; margin-bottom: 35px; }
.experience-fragment .eyebrow { font-size: .65rem; }
.experience-fragment h3 { font-size: clamp(1.4rem, 2.1vw, 2rem); margin-block: 20px 18px; max-width: 21ch; text-wrap: balance; }
.fragment-copy { color: var(--muted); font-size: .9rem; max-width: 37ch; line-height: 1.9; }
.teaser-home .astral-section { padding-block: 0 70px; }
.teaser-home .astral-layout { grid-template-columns: .95fr 1fr; gap: clamp(50px, 9vw, 130px); border-block: 0; padding-block: 45px 60px; }
.teaser-home .astral-art { max-width: 560px; }
.teaser-home .astral-copy h2 { font-size: clamp(2.2rem, 3.5vw, 3.5rem); }
.teaser-home .astral-copy > p:not(.eyebrow) { max-width: 38ch; }
.teaser-home .feature-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin-top: 32px; }
.teaser-home .feature-notes dt { font-size: .88rem; }
.teaser-home .feature-notes dd { font-size: .8rem; margin-inline: 0; }
.teaser-home .environments { padding-bottom: 50px; }
.teaser-home .environments-heading { margin-block: 46px 40px; }
.teaser-home .environments-heading h2 { font-size: clamp(2.5rem, 4vw, 4rem); }
.teaser-home .environment-grid { grid-template-columns: 1.18fr 1fr; gap: 38px 45px; }
.teaser-home .environment-card:first-child { grid-row: span 2; display: flex; flex-direction: column; }
.teaser-home .environment-card:first-child .environment-image { flex: 1; aspect-ratio: auto; min-height: 440px; }
.teaser-home .environment-image { aspect-ratio: 2.25; }
.teaser-home .environment-copy { padding-top: 18px; }
.teaser-home .environment-copy h3 { font-size: 1.45rem; }
.teaser-home .environment-copy p { max-width: none; margin-top: 6px; font-size: .82rem; }
.teaser-home .environment-type { font-size: .6rem; }
.teaser-home .video-section { padding-block: 70px 110px; }
.media-ready .teaser-home .video-stage.is-pending { aspect-ratio: 2.2; }
.media-ready .teaser-home .video-stage.is-pending video { visibility: hidden; }
.teaser-home .video-status { background: linear-gradient(90deg, #080e14e0, #080e14ae 50%, #080e14e0); }
.teaser-home .video-status > p:last-child { max-width: 27ch; font-size: clamp(1.4rem, 2.7vw, 2.5rem); color: #c7d5df; }
.teaser-home .signal-mark { width: 58px; height: 58px; margin-bottom: 12px; }
.teaser-home .studio-teaser { padding-block: 65px 105px; align-items: center; }
.teaser-home .studio-teaser h2 { font-size: clamp(2.3rem, 3.4vw, 3.3rem); max-width: 680px; }
.teaser-links { display: flex; flex-direction: column; gap: 12px; align-items: start; }
.teaser-links .text-link { font-size: .8rem; border-color: var(--line); }
.motion-paused .memory-window img { transform: none; }
@media (max-width: 980px) {
  .teaser-home .astral-layout { gap: 35px; }
  .teaser-home .environment-grid { gap: 30px; }
  .teaser-home .feature-notes { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 760px) {
  .teaser-home .hero { min-height: max(730px, 100svh); }
  .teaser-home .hero-content { padding: 205px 24px 155px; }
  .teaser-home .title-rem { font-size: clamp(6rem, 27vw, 12rem); }
  .teaser-home .title-sub { font-size: clamp(.93rem, 3.5vw, 1.8rem); letter-spacing: .23em; }
  .teaser-home .eclipse { width: 87vw; top: 50%; }
  .hero-development { font-size: .6rem; margin-bottom: 20px; }
  .teaser-home .hero-eyebrow { font-size: .6rem; letter-spacing: .12em; }
  .teaser-home .hero-eyebrow .hero-rule { width: 12px; }
  .teaser-home .hero-line { font-size: 1rem; }
  .teaser-home .concept { padding-top: 38px; }
  .teaser-introduction { margin: 60px auto 42px; }
  .teaser-introduction h2 { font-size: clamp(2rem, 7vw, 3.4rem); margin-block: 24px; }
  .teaser-premise { font-size: .95rem; }
  .memory-panorama { margin-inline: calc(var(--gutter) * -1); }
  .memory-window { aspect-ratio: 1.3; }
  .memory-panorama figcaption { padding-inline: var(--gutter); font-size: .58rem; }
  .teaser-home .game-chapters { flex-wrap: wrap; gap: 18px 26px; margin-top: 28px; }
  .teaser-home .game-chapters a { gap: 12px; font-size: .72rem; }
  .teaser-home .protagonist { padding-block: 38px 20px; }
  .teaser-home .protagonist-layout { grid-template-columns: 1fr; gap: 0; margin: 0; }
  .teaser-home .protagonist-identity { padding-block: 25px; }
  .teaser-home .protagonist-identity h2 { font-size: clamp(3.6rem, 16vw, 6rem); }
  .teaser-home .protagonist-copy { padding-inline-start: 22px; margin-top: 12px; }
  .teaser-home .protagonist-copy p { font-size: .95rem; max-width: none; }
  .teaser-home .identity-echo > span:first-child { font-size: 14rem; }
  .teaser-home .gameplay { padding-block: 75px 45px; }
  .experience-heading { display: block; margin-block: 34px; }
  .experience-heading h2 { font-size: 2.65rem; }
  .experience-heading > p { text-align: start; margin-top: 20px; }
  .experience-grid { grid-template-columns: 1fr; gap: 28px; }
  .experience-fragment { padding-inline-start: 60px; padding-block: 24px 4px; }
  .fragment-number { position: absolute; inset-inline-start: 0; top: 22px; font-size: 1.7rem; }
  .experience-fragment h3 { font-size: 1.55rem; max-width: none; margin-block: 14px 12px; }
  .fragment-copy { max-width: none; }
  .teaser-home .astral-section { padding-block: 10px 50px; }
  .teaser-home .astral-layout { grid-template-columns: 1fr; padding-block: 0; gap: 35px; }
  .teaser-home .astral-art { max-width: 400px; width: 100%; margin-inline: auto; }
  .teaser-home .astral-copy h2 { font-size: 2.25rem; }
  .teaser-home .feature-notes { grid-template-columns: 1fr 1fr; gap: 18px; }
  .teaser-home .environments { padding-bottom: 20px; }
  .teaser-home .environments-heading { margin-block: 32px; }
  .teaser-home .environments-heading h2 { font-size: 2.65rem; }
  .teaser-home .environment-grid { grid-template-columns: 1fr; gap: 36px; }
  .teaser-home .environment-card:first-child { grid-row: auto; }
  .teaser-home .environment-card:first-child .environment-image { aspect-ratio: 4 / 3; min-height: 0; flex: auto; }
  .teaser-home .environment-image { aspect-ratio: 4 / 3; }
  .teaser-home .video-section { padding-block: 55px 65px; }
  .media-ready .teaser-home .video-stage.is-pending { aspect-ratio: 4 / 3; }
  .teaser-home .video-status { gap: 12px; }
  .teaser-home .video-status > p:last-child { font-size: 1.4rem; }
  .teaser-home .signal-mark { width: 38px; height: 38px; margin-bottom: 4px; }
  .teaser-home .studio-teaser { padding-block: 42px 65px; align-items: start; }
  .teaser-home .studio-teaser h2 { font-size: 2.3rem; }
}
@media (prefers-reduced-motion: reduce) {
  .memory-window img { transform: none; }
}

/* Personaggi: concept locali in tre ritratti, senza cornici colorate.
   Le proporzioni sono riservate prima del caricamento per evitare salti. */
.characters { padding-block: 25px 100px; }
.characters-heading { display: flex; align-items: end; justify-content: space-between; gap: 45px; margin-block: 45px 48px; }
.characters-heading h2 { font-size: clamp(2.5rem, 4vw, 4rem); margin-top: 18px; }
.characters-heading > p { max-width: 34ch; color: var(--muted); font: italic 1rem/1.8 var(--serif); text-align: end; }
.characters-heading .eyebrow { font-size: .75rem; }
.character-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 3vw, 44px); }
.character-card { min-width: 0; scroll-margin-top: 20px; }
.character-portrait { display: block; position: relative; width: 100%; aspect-ratio: 2 / 3; padding: 0; border: 0; background: transparent; overflow: hidden; cursor: zoom-in; }
/* Il WebP mantiene la trasparenza: le figure appaiono sullo sfondo della pagina. */
.character-portrait img { width: 100%; height: 100%; object-fit: contain; object-position: center; mask-image: linear-gradient(#000 92%, transparent); transition: transform 1.2s cubic-bezier(.16, 1, .3, 1); }
.character-number { position: absolute; inset-inline-start: 20px; bottom: 18px; z-index: 1; font: 1rem/1 var(--serif); color: var(--text); }
.character-portrait .image-expand { font-size: 1.3rem; }
.character-copy { padding-top: 27px; }
.character-role { font-size: .75rem; letter-spacing: .13em; text-transform: uppercase; color: var(--accent); margin-bottom: 12px; }
.character-copy h3 { font: 400 clamp(1.7rem, 2.5vw, 2.8rem)/1.25 var(--serif); letter-spacing: -.025em; }
.character-description { font-size: 1rem; color: var(--muted); line-height: 1.85; margin-top: 20px; max-width: 38ch; text-wrap: pretty; }
.character-whisper { font: italic 1.1rem/1.6 var(--serif); color: var(--accent); margin-top: 14px; }
.character-portrait:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; }
.character-portrait:focus-visible img { transform: scale(1.025); }
@media (hover: hover) {
  .character-portrait:hover img { transform: scale(1.025); }
  .character-portrait:hover .image-expand { transform: translate(3px, -3px); }
}
@media (max-width: 760px) {
  .characters { padding-block: 15px 65px; }
  .characters-heading { display: block; margin-block: 34px; }
  .characters-heading h2 { font-size: 2.65rem; }
  .characters-heading > p { margin-top: 20px; text-align: start; max-width: none; }
  .character-grid { grid-template-columns: minmax(0, 1fr); gap: 52px; max-width: 480px; margin-inline: auto; }
  .character-copy { padding-top: 22px; }
  .character-copy h3 { font-size: 2.35rem; }
  .character-description { margin-top: 16px; max-width: none; }
}
:is(:lang(ar), :lang(ja), :lang(zh)) .character-role { letter-spacing: normal; text-transform: none; }
.motion-paused .character-portrait img { transform: none; transition: none; }
@media (prefers-reduced-motion: reduce) {
  .character-portrait img { transform: none; transition: none; }
}

/* Il significato resta un accenno poetico, separato dalla presentazione della trama. */

/* Quattro momenti video autonomi: trailer e tre capitoli con ordine alternato. */
.media-whisper { display: block; padding: 0; margin-top: 18px; font: italic 1.1rem/1.6 var(--serif); text-transform: none; letter-spacing: normal; color: var(--muted); }
.trailer-whisper { text-align: center; font-size: clamp(1.2rem, 2.2vw, 1.7rem); margin-top: 25px; }
.video-chapters { padding-top: 20px; }
.video-chapter { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); align-items: center; gap: clamp(30px, 5vw, 80px); margin-top: clamp(80px, 10vw, 150px); }
.video-chapter-copy { grid-column: 2; grid-row: 1; }
.video-chapter-media { grid-column: 1; grid-row: 1; min-width: 0; }
.video-chapter-copy .eyebrow { font-size: .875rem; letter-spacing: .12em; line-height: 1.8; display: flex; gap: 18px; }
.video-chapter h3 { font: 400 clamp(2rem, 3vw, 3.25rem)/1.15 var(--serif); letter-spacing: -.025em; margin-block: 25px; text-wrap: balance; }
.video-chapter-description { color: var(--muted); font-size: 1rem; line-height: 1.9; max-width: 38ch; }
.video-chapter-reverse { grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); }
.video-chapter-reverse .video-chapter-copy { grid-column: 1; }
.video-chapter-reverse .video-chapter-media { grid-column: 2; }
.teaser-home .video-chapter .video-stage, .media-ready .teaser-home .video-chapter .video-stage.is-pending { aspect-ratio: 16 / 10; }
.video-chapter .video-status { justify-content: end; align-items: start; padding: 18px 22px; background: linear-gradient(transparent 50%, #04080ddd); }
.video-chapter .video-status > p:last-child { font: 400 .75rem/1.5 var(--sans); letter-spacing: .12em; }
.lightbox-description { text-align: center; color: var(--muted); font: italic 1.05rem/1.6 var(--serif); margin-top: 12px; }
.journal-image figcaption { font: italic 1rem/1.65 var(--serif); text-transform: none; letter-spacing: normal; color: var(--muted); margin-top: 18px; }
@media (max-width: 900px) {
  .video-chapter, .video-chapter-reverse { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .video-chapter-copy, .video-chapter-reverse .video-chapter-copy { grid-column: 1; grid-row: 1; }
  .video-chapter-media, .video-chapter-reverse .video-chapter-media { grid-column: 1; grid-row: 2; }
  .video-chapter-description { max-width: 60ch; }
  .video-chapter h3 { max-width: 22ch; }
}
@media (max-width: 760px) {
  .video-chapters { padding-top: 0; }
  .video-chapter { margin-top: 72px; }
  .video-chapter h3 { font-size: 2.2rem; }
  .video-chapter-copy .eyebrow { font-size: .8rem; }
  .media-whisper { font-size: 1rem; }
}

/* Cursori piccoli, trasparenti e nativi: il simbolo resta di lato al punto attivo.
   Si attivano soltanto con un mouse; touch e focus da tastiera restano nativi. */
@media (hover: hover) and (pointer: fine) {
  :is(a[href], button:not(:disabled), select:not(:disabled), summary)[data-zodiac-cursor],
  :is(a[href], button:not(:disabled), select:not(:disabled), summary)[data-zodiac-cursor] * {
    cursor: var(--zodiac-cursor, pointer);
  }
}
/* Firma d’apertura. Il fumo è un canvas locale: nessun download aggiuntivo.
   Il dialogo non aperto non occupa spazio e non nasconde il sito senza JS. */
html.intro-pending, .intro-pending body { overflow: hidden; }
html.intro-pending:not(.intro-mounted)::before { content: ""; position: fixed; inset: 0; z-index: 10002; background: #050606; }
.opening-screen { position: fixed; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; overflow: hidden; color: #e8e9e8; background: #050606; opacity: 1; transition: opacity 2.3s ease, background-color 2.3s ease; }
.opening-screen::backdrop { background: transparent; }
.opening-smoke { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.opening-screen::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 50% 46%, transparent 15%, #0007 70%, #000b), linear-gradient(0deg, #0008, transparent 28%); transition: opacity 1.8s ease; }
.opening-screen.has-smoke { background: transparent; }
.opening-trigger { position: relative; z-index: 1; display: grid; place-items: center; width: 100%; height: 100%; min-height: 280px; padding: 60px 6vw 110px; color: inherit; background: none; border: 0; cursor: pointer; text-align: center; -webkit-tap-highlight-color: transparent; }
.opening-trigger:focus-visible { outline: none; }
.opening-trigger:focus-visible .opening-hint { text-decoration: underline; text-underline-offset: 6px; text-decoration-color: #d0d0d060; }
.opening-signature { display: block; width: 100%; text-shadow: 0 2px 24px #0009; transition: opacity .5s ease, transform .9s ease, filter .6s ease; }
.opening-prefix, .opening-suffix { display: block; font: 400 clamp(1.05rem, 1.65vw, 1.55rem)/1.5 var(--sans); letter-spacing: .55em; padding-left: .55em; }
.opening-prefix { margin-bottom: clamp(23px, 4vh, 48px); }
.opening-suffix { margin-top: clamp(24px, 4vh, 48px); }
.opening-brand { display: block; font: 400 clamp(2.1rem, 7.1vw, 8.7rem)/1.06 var(--serif); letter-spacing: .055em; padding-left: .055em; }
.opening-hint { position: absolute; bottom: max(42px, env(safe-area-inset-bottom)); inset-inline: 24px; color: #c5c8c8; font: 400 .68rem/1.7 var(--sans); letter-spacing: .14em; text-transform: uppercase; transition: opacity .3s; }
.opening-screen.is-dissolving { opacity: 0; background-color: transparent; }
.opening-screen.has-smoke.is-dissolving { opacity: 1; }
.opening-screen.is-dissolving::after { opacity: 0; }
.is-dissolving .opening-signature { opacity: 0; transform: translateY(-10px); filter: blur(7px); }
.is-dissolving .opening-hint { opacity: 0; }
.intro-pending:not(.intro-revealing) .hero *, .intro-pending:not(.intro-revealing) .hero::after { animation-play-state: paused !important; }
@media (max-width: 480px) {
  .opening-trigger { padding-inline: 5vw; }
  .opening-brand { font-size: clamp(1.9rem, 7.25vw, 2.4rem); letter-spacing: .035em; }
  .opening-hint { font-size: .61rem; letter-spacing: .09em; }
}
@media (prefers-reduced-motion: reduce) {
  .opening-screen { transition-duration: .15s; }
  .opening-screen.has-smoke.is-dissolving { opacity: 0; }
  .opening-smoke, .opening-signature, .opening-hint { transition: none; }
  .is-dissolving .opening-smoke, .is-dissolving .opening-signature { transform: none; filter: none; }
}

/* Lettura: testi secondari più grandi, senza ingrandire i titoli scenografici. */
.teaser-premise, .video-chapter-description, .character-description,
.teaser-home .environment-copy p, .member-bio { font-size: var(--reading-size); line-height: 1.8; }
.teaser-home .feature-notes dt { font-size: 1rem; }
.teaser-home .feature-notes dd, .experience-note, .game-facts dd { font-size: var(--detail-size); line-height: 1.75; }
.game-facts dt, .eyebrow, .characters-heading .eyebrow, .character-role, .member-role,
.teaser-home .section-index, .teaser-home .hero-bottom, .hero-development,
.teaser-home .hero-eyebrow, .teaser-home .environment-type { font-size: .85rem; }
.site-header nav a, .language-switch select, .teaser-home .game-chapters a,
.teaser-links .text-link, .explore-link { font-size: .9rem; }
.memory-panorama figcaption, .video-caption { font-size: .85rem; line-height: 1.7; letter-spacing: .1em; }
.site-footer p, .site-footer .footer-nav a { font-size: .875rem; }
.opening-hint { font-size: .8rem; }
.experience-films .video-chapter:first-child { margin-top: 55px; }
.experience-films .video-chapter { padding-top: 32px; border-top: 1px solid var(--line); }
.experience-films .video-chapter-description { max-width: 42ch; }
.experience-films .video-chapter h3 { max-width: 22ch; }
.experience-films .video-chapter-copy .eyebrow { color: var(--accent); }
.video-chapter .video-status > p:last-child { font-size: .85rem; }

/* Marchio ufficiale locale: proporzioni originali, bianco pieno e spazio libero. */
.engine-signature { margin-top: 35px; padding: 20px 0 52px; text-align: center; }
.engine-signature p { color: var(--muted); font-size: .9rem; }
.engine-signature img { width: 180px; height: auto; margin: 48px auto 0; }
.engine-attribution { margin-top: 22px; }

/* Un solo gruppo per audio e movimento: i comandi non occupano più la hero. */
.sound-panel { display: grid; grid-template-columns: auto auto 44px; gap: 0; max-width: calc(100vw - 28px); }
.sound-panel .motion-toggle, .sound-panel .sound-toggle { justify-self: stretch; justify-content: center; padding: 10px 14px; min-height: 44px; font: 400 .875rem/1.4 var(--sans); letter-spacing: 0; color: var(--muted); }
.sound-panel .motion-toggle { border-inline-end: 1px solid var(--line); }
.sound-panel .motion-toggle:hover, .sound-panel .sound-toggle:hover { color: var(--text); }
.sound-panel .pause-symbol { width: 18px; text-align: center; flex-shrink: 0; }
.sound-panel .sound-volume { font-size: .9rem; }
.sound-panel:has(.motion-toggle[hidden]) { grid-template-columns: minmax(0,1fr) 44px; }
.cookie-consent { position: fixed; z-index: 1001; inset-inline-start: max(18px, env(safe-area-inset-left)); bottom: calc(82px + env(safe-area-inset-bottom)); width: min(620px, calc(100vw - 36px)); color: var(--text); border: 1px solid color-mix(in srgb, var(--accent) 46%, var(--line)); background: linear-gradient(135deg, #0d1521f5, #080d13fa); box-shadow: 0 20px 70px #000b; backdrop-filter: blur(16px); }
.cookie-consent[hidden] { display: none; }
.cookie-consent__content { padding: 22px 24px 20px; }
.cookie-consent .eyebrow { margin-bottom: 8px; font-size: .7rem; color: var(--accent); }
.cookie-consent h2 { margin: 0; font: 400 clamp(1.35rem, 2vw, 1.8rem)/1.2 var(--serif); }
.cookie-consent p:not(.eyebrow) { max-width: 62ch; margin: 10px 0 18px; color: var(--muted); font-size: .94rem; line-height: 1.6; }
.cookie-consent__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.cookie-consent button { min-height: 43px; padding: 9px 14px; border: 1px solid var(--line); font: 500 .86rem/1.2 var(--sans); }
.cookie-consent .button-quiet { color: var(--text); background: transparent; }
.cookie-consent .button-primary { color: #071018; border-color: var(--accent); background: var(--accent); }
.cookie-consent button:hover, .cookie-consent button:focus-visible { outline: none; border-color: var(--text); filter: brightness(1.1); }
.cookie-consent .text-link, .cookie-settings-button { color: var(--muted); font-size: .82rem; }
.cookie-settings-button { padding: 0; border: 0; background: transparent; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.footer-cookie-settings { padding: 0; border: 0; color: var(--muted); background: transparent; font-size: .875rem; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.footer-cookie-settings:hover, .footer-cookie-settings:focus-visible { color: var(--text); }
.footer-development { max-width: 58ch; margin-inline: auto; color: var(--muted); font-size: .78rem !important; }
.studio-manifesto { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(24px, 4vw, 62px); padding-block: 26px 92px; border-top: 1px solid var(--line); color: var(--muted); }
.studio-manifesto p { font-size: var(--detail-size); line-height: 1.8; }
.studio-manifesto strong { color: var(--text); font-weight: 500; }
.member-bio { max-width: 46ch; margin-top: 22px; color: var(--muted); font-size: var(--detail-size); line-height: 1.8; }
.site-footer .footer-inner { padding-bottom: 125px; }
@media (max-width: 1100px) {
  .sound-panel { grid-template-columns: minmax(0,1fr) 44px; }
  .sound-panel .motion-toggle { grid-column: 1 / -1; border-inline-end: 0; border-bottom: 1px solid var(--line); }
  .site-footer .footer-inner { padding-bottom: 160px; }
}
@media (max-width: 760px) {
  .teaser-home .hero-content { padding-bottom: 205px; }
  .teaser-home .hero-bottom { bottom: 135px; grid-template-columns: 1fr; justify-items: center; }
  .teaser-home .hero-bottom > p { display: none; }
  .teaser-home .hero-eyebrow { font-size: .8rem; letter-spacing: .09em; }
  .memory-panorama figcaption { font-size: .8rem; flex-wrap: wrap; gap: 8px; }
  .game-facts { gap: 24px 18px; }
  .game-facts dd { font-size: .95rem; }
  .experience-films .video-chapter { margin-top: 64px; }
  .experience-films .video-chapter-description { max-width: none; }
  .opening-hint { font-size: .75rem; }
}
@media (max-width: 600px) {
  .site-header nav { flex-wrap: wrap; justify-content: center; row-gap: 3px; }
  .site-header nav a { font-size: .875rem; }
  .sound-panel .motion-toggle, .sound-panel .sound-toggle { font-size: .85rem; }
  .cookie-consent { bottom: calc(92px + env(safe-area-inset-bottom)); width: calc(100vw - 28px); }
  .cookie-consent__content { padding: 18px; }
  .cookie-consent p:not(.eyebrow) { font-size: .88rem; }
  .cookie-consent__actions { display: grid; grid-template-columns: 1fr; }
  .cookie-consent button { width: 100%; }
  .studio-manifesto { grid-template-columns: 1fr; gap: 18px; padding-block: 22px 58px; }
}

/* Su touch i controlli diventano una colonna compatta e il documento conserva
   spazio sufficiente in basso: non coprono titoli, testi o pulsanti della pagina. */
@media (max-width: 600px) {
  body { padding-bottom: calc(164px + env(safe-area-inset-bottom)); }
  .sound-panel { display: flex !important; flex-direction: column; align-items: stretch; width: 48px; max-width: 48px; padding: 3px; inset-inline-end: 12px; bottom: max(12px, env(safe-area-inset-bottom)); gap: 2px; }
  .sound-panel .motion-toggle, .sound-panel .sound-toggle { width: 40px; min-height: 40px; padding: 8px; border: 0; }
  .sound-panel .motion-toggle { border-bottom: 1px solid var(--line); }
  .sound-panel .sound-toggle { border-bottom: 1px solid var(--line); }
  .sound-panel .motion-label, .sound-panel [data-audio-label] { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  .sound-panel .sound-settings { width: 40px; }
  .sound-panel .sound-settings summary { width: 40px; height: 40px; border: 0; }
  .sound-panel .sound-volume { width: min(240px, calc(100vw - 84px)); bottom: 0; inset-inline-end: calc(100% + 10px); }
  .site-footer .footer-inner { padding-bottom: 34px; }
}

/* Il ritratto resta vicino al testo: contano sia larghezza sia altezza disponibile.
   L'immagine originale completa rimane apribile nel dialogo con un tocco. */
.character-portrait { height: clamp(240px, 42svh, 460px); aspect-ratio: auto; }
.character-copy h3 { font-size: clamp(1.65rem, 1.1rem + 1.4vw, 2.8rem); }
.character-whisper { font-size: clamp(1rem, .92rem + .3vw, 1.1rem); line-height: 1.6; }
@media (max-width: 1100px), (max-height: 800px) {
  .character-grid { grid-template-columns: minmax(0,1fr); max-width: 980px; gap: clamp(40px,6vw,76px); margin-inline: auto; }
  .character-card { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); align-items: start; gap: clamp(18px,4vw,52px); padding-block: 28px; border-top: 1px solid var(--line); }
  .character-portrait { position: sticky; top: calc(var(--header-height, 130px) + 16px); align-self: start; height: clamp(100px, calc((100svh - var(--header-height, 130px) - var(--controls-height, 100px) - 48px) * .75), 360px); }
  .character-portrait img { object-fit: cover; object-position: 50% 14%; }
  .character-copy { min-width: 0; padding-top: 0; }
  .character-copy h3 { font-size: clamp(1.6rem, 1.1rem + 2vw, 2.6rem); overflow-wrap: anywhere; }
  .character-role { font-size: clamp(.75rem, .7rem + .2vw, .85rem); letter-spacing: .1em; line-height: 1.6; margin-bottom: 8px; }
  .character-whisper { margin-top: 12px; }
  .character-description { margin-top: 16px; max-width: 46ch; line-height: 1.7; }
  .character-number { inset-inline-start: 10px; bottom: 12px; font-size: .875rem; }
  .character-portrait .image-expand { inset-inline-end: 8px; bottom: 8px; font-size: 1.1rem; }
}
@media (max-width: 760px) {
  .teaser-introduction h2, .teaser-home .astral-copy h2,
  .characters-heading h2, .teaser-home .environments-heading h2,
  .teaser-home .studio-teaser h2, .video-section h2 { font-size: clamp(1.9rem, 1.45rem + 2.2vw, 2.8rem); line-height: 1.2; }
  .experience-intro h3, .video-chapter h3 { font-size: clamp(1.65rem, 1.3rem + 1.9vw, 2.25rem); line-height: 1.2; }
  .characters-heading > p { font-size: 1rem; line-height: 1.65; }
  .character-card { gap: clamp(16px,4vw,28px); padding-block: 22px 32px; }
  .character-grid { gap: 30px; }
  .character-copy h3 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.1rem); line-height: 1.2; }
  .character-description { font-size: 1rem; line-height: 1.65; }
  .character-whisper { font-size: 1rem; line-height: 1.5; }
  .media-whisper { font-size: 1rem; }
  .game-facts dd { font-size: var(--detail-size); }
}
@media (max-width: 380px) {
  .characters { padding-inline: 18px; }
  .character-card { grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: 16px; }
}
@media (max-height: 520px) {
  .site-header { min-height: 70px; padding-block: 8px; row-gap: 4px; }
  .character-portrait { top: calc(var(--header-height, 100px) + 10px); }
}
@media (max-height: 520px) and (min-width: 600px) {
  .sound-panel { grid-template-columns: auto auto 44px; }
  .sound-panel .motion-toggle { grid-column: auto; border-bottom: 0; border-inline-end: 1px solid var(--line); }
}

/* L'orbita appartiene solo al titolo. Frase e pulsante seguono nel flusso:
   nessuna sovrapposizione anche con lingue lunghe o caratteri ingranditi. */
.teaser-home .hero-content {
  --emblem-size: min(52vw, 54svh, 600px);
  padding: calc(var(--header-height, 100px) + 28px) 24px calc(var(--controls-height, 60px) + 76px);
}
.hero-emblem { position: relative; display: grid; place-items: center; min-height: var(--emblem-size); isolation: isolate; }
.hero-identity { padding-block: 22px; width: 100%; }
.teaser-home .hero-emblem .eclipse { width: var(--emblem-size); top: 50%; }
.hero-emblem .hero-development { margin-block: 0 22px; }
.hero-emblem h1 { margin-bottom: 0; }
.teaser-home .hero-content > .hero-line { margin: 24px auto 0; max-width: 42ch; text-wrap: balance; }
.teaser-home .hero-content > .explore-link { margin-top: 22px; }
@media (max-width: 760px) {
  .teaser-home .hero-content { --emblem-size: min(86vw, 540px); padding-inline: 20px; padding-bottom: calc(var(--controls-height, 90px) + 110px); }
  .hero-emblem .hero-development { margin-bottom: 16px; }
  .teaser-home .hero-bottom { bottom: calc(var(--controls-height, 90px) + 24px); gap: 10px; }
}
