/* MAESTRIA V24.4 — stabilità, memoria e controlli senza corse di caricamento. */
html,body{max-width:100%;overflow-x:hidden}
button,a,input,select{touch-action:manipulation}
img,canvas{max-width:100%}

/* Home: nessun comando apre o richiude l’intero sito. */
.epicAllAccess{display:none!important}
.heroActions #storiesBtn,.heroActions #visionsBtn{display:none}
.hero{min-height:360px;padding:38px 32px 32px}
.hero h1{font-size:clamp(56px,7.4vw,88px);line-height:.88}
.heroContent{max-width:850px}
.epicGateway{margin:16px 0;padding:28px 30px;border-radius:32px}
.epicGatewayIntro{grid-template-columns:minmax(0,1fr) minmax(260px,.62fr);gap:18px;margin-bottom:20px}
.epicGatewayIntro .sectionEyebrow{margin-bottom:-4px}
.epicGatewayIntro h2{font-size:clamp(34px,4vw,54px);line-height:.96}
.epicGatewayGrid{gap:10px}
/* Contenuto nel flusso: icone e testi non possono più sovrapporsi. */
.epicGatewayGrid button,
.experienceCard,
.journeyCard,
.epicJourneyGrid>button{
  display:grid;
  grid-template-rows:auto auto 1fr;
  align-content:start;
  justify-content:stretch;
  gap:9px;
  height:auto;
}
.epicGatewayGrid button{min-height:166px;padding:16px}
.epicGatewayGrid span,
.experienceCard>span,
.journeyCard span,
.epicJourneyGrid>button>span{
  position:static;
  inset:auto;
  margin:0;
}
.epicGatewayGrid b,.experienceCard b,.journeyCard b,.epicJourneyGrid b{margin:0;line-height:1.08}
.epicGatewayGrid b{font-size:20px}
.epicGatewayGrid small,.experienceCard small,.journeyCard small{margin:0;font-size:12px;line-height:1.42}
.experienceCard,.journeyCard{min-height:166px}
.epicJourneyGrid>button{min-height:178px}
.epicJourneyGrid>button{grid-template-rows:auto auto auto 1fr}
.epicJourneyGrid>button small{font-size:11px;line-height:1.35}
.epicJourneyGrid>button em{margin:0;font-size:12px;line-height:1.4}

/* Testi operativi leggibili anche su schermi piccoli e ad alta densità. */
.sectionEyebrow{font-size:11px;line-height:1.35}
.storyCardTag,.visionCardTag{font-size:10px}
.storyCardContent small,.visionCardContent small{font-size:12px}
.epicJourneyStep small{font-size:10px}
.epicJourneyStep em{font-size:11px}
.epicMuseumStats small{font-size:11px;line-height:1.35}
.epicMuseumWork small{font-size:10px}
#epicConstellationList button{min-height:44px;font-size:11px}
.compassResult small{font-size:10px}
.compassResult span span{font-size:12px}
.completionEchoes>p:not(.sectionEyebrow){font-size:12px}
.completionEcho small{font-size:11px}

/* La galleria viene presentata in gruppi leggibili, non in una pagina infinita. */
.galleryMore{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:24px 0 8px}
.galleryMore[hidden]{display:none!important}
.galleryMore button{min-height:50px;border:0;border-radius:16px;padding:11px 20px;background:#30253f;color:#fff;font-weight:950;box-shadow:0 9px 24px #281e3228}
.galleryMore button[hidden]{display:none!important}
.galleryMore span{color:var(--muted);font-size:12px;font-weight:850}

/* Tavola: quattro fasce esplicite, senza sovrapposizioni o righe implicite. */
.game .gameCanvasArea{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);min-height:0;overflow:hidden}
.game .gameTop{grid-row:1}
.game .artworkNavigator{grid-row:2}
.game .epicAwakening{grid-row:3}
.game .gameBody{grid-row:4;height:auto;min-height:0;overflow:hidden}
.game .boardColumn{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0}
.game .boardInstruction{grid-row:1;min-height:0}
.game .boardShell{grid-row:2;height:100%!important;min-height:0}
.game .boardViewport{height:100%!important;min-height:0}
.game .boardViewport:not(.zoomed) .boardStage{margin:auto!important}
.game .boardViewport.zoomed .boardStage{margin:auto 24px!important}
.game .boardCaption{grid-row:3;min-height:32px}
.game .gameTopActions{min-width:0}
.artworkNavigator[aria-busy="true"] output::after{content:' · carico';font-size:9px;letter-spacing:.04em;opacity:.72}
.artworkNavigator[aria-busy="true"] button{cursor:wait;opacity:.45}
.boardLoader{max-width:min(360px,calc(100% - 32px));padding:13px 16px;border:1px solid #e5dbe8;border-radius:16px;background:#fff;color:#3b3043;box-shadow:0 10px 30px #2c21351f;text-align:center;font-weight:900}

/* Vista essenziale: navigatore, comandi, tavola e colori. */
.game.boardFocus .gameCanvasArea{grid-template-rows:auto auto minmax(0,1fr)}
.game.boardFocus .artworkNavigator{grid-row:1}
.game.boardFocus .epicAwakening{display:none}
.game.boardFocus .boardFocusBar{position:relative;inset:auto;grid-row:2}
.game.boardFocus .gameBody{grid-row:3}
.game.boardFocus .boardColumn{grid-template-rows:minmax(0,1fr)}
.game.boardFocus .boardShell{grid-row:1}
.game.boardFocus .boardCaption{display:none}

/* Dialoghi: intestazione e chiusura restano sempre raggiungibili. */
.epicDialogCard>header{position:sticky;z-index:8;top:-1px;padding-top:10px;padding-bottom:12px;background:#1b1127f2;backdrop-filter:blur(14px)}
.epicJourneyDetail{scroll-margin-top:90px}
.epicImmersionWords{overscroll-behavior:contain}

@media(min-width:1180px){
  .gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}
}

@media(max-width:900px){
  .epicGatewayIntro{grid-template-columns:1fr}
  .hero{min-height:330px}
  .hero h1{font-size:clamp(54px,10vw,78px)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
}

@media(max-width:800px){
  .game .gameTopActions #nextColorTop{display:none}
  .game .gameTopActions{display:grid;grid-template-columns:repeat(5,44px);justify-content:end;gap:4px}
  .epicAwakening{grid-template-columns:auto minmax(180px,1fr);gap:7px 10px;min-height:0;padding-block:6px}
  .epicAwakeningHead{min-width:0}
  .epicAwakening>p{grid-column:1/-1;text-align:left}
}

@media(max-width:640px){
  .app{padding-right:max(10px,env(safe-area-inset-right));padding-left:max(10px,env(safe-area-inset-left))}
  .topbar{gap:7px;padding-inline:0}
  .brand{font-size:23px;letter-spacing:.045em}
  .brand small{font-size:7px}
  .topNav{gap:1px}
  .topNav a{min-height:40px;padding:6px 9px;font-size:10px}
  .hero{min-height:0;border-radius:28px;padding:27px 19px 22px}
  .hero h1{font-size:clamp(46px,15vw,67px);line-height:.9}
  .hero p{margin:15px 0 18px;font-size:16px;line-height:1.45}
  .heroActions button{min-height:48px;padding:11px 13px;border-radius:15px;font-size:12px}
  .eva-lab-link{margin-bottom:14px;font-size:10px;letter-spacing:.1em}
  .epicGateway{margin-inline:0;padding:22px 17px;border-radius:27px}
  .epicGatewayIntro h2{font-size:36px}
  .epicGatewayGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .epicGatewayGrid button{min-height:184px}
  .stat{padding:15px;border-radius:20px}.stat b{font-size:27px}.stat span{font-size:11px}
  .sectionTitle{align-items:flex-start}.sectionTitle h2{font-size:28px}.sectionTitle>span{font-size:11px;text-align:right}
  .galleryTools{gap:8px!important}
  .progressTools{gap:7px}
  .epicDialogCard>header h2{font-size:clamp(30px,9vw,42px)}
  .epicJourneyGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .epicJourneyGrid>button{min-height:168px}
  .game .gameTop{grid-template-columns:44px minmax(58px,1fr) auto;gap:5px}
  .game .gameTop button{width:42px;min-width:42px;min-height:42px;padding:0}
  .game .gameTop .backBtn{width:44px;min-width:44px}
  .game .gameTop .toolbarLabel{display:none}
  .game .gameTopActions{grid-template-columns:repeat(4,42px);gap:3px}
  .game .gameTopActions #hintBtn{display:none}
  .game .brushChip{min-width:0;padding:6px 8px;font-size:10px;white-space:nowrap}
  .game .brushChip .brushDot{width:22px;height:22px}
  .boardInstruction{width:auto;max-width:calc(100% - 18px);gap:6px;padding:5px 6px}
  .boardInstruction .instructionSecondary{display:none}
  .boardInstruction .instructionPrimary,.boardInstruction .focusBoardBtn{min-height:40px}
}

@media(max-width:520px){
  .topActions #continueTop{min-width:74px;padding-inline:10px;font-size:11px}
  .heroActions{display:grid;grid-template-columns:1fr 1fr}
  .heroActions button{width:100%}
  .epicAwakening{grid-template-columns:auto minmax(0,1fr)}
  .epicAwakeningHead>span{display:none}
  .epicAwakening>p{display:none}
  .epicThresholds{gap:4px}
  .epicThresholds i{padding:6px 5px}
  .epicAwakeningHead button{white-space:nowrap}
  .game .boardCaption{padding:5px 9px}
  .gallery{grid-template-columns:1fr}
  .card{border-width:3px;border-radius:24px}
  .galleryMore{padding-top:18px}
  .galleryMore button{width:100%}
  .galleryMore span{width:100%;text-align:center}
  .epicDialogCard{padding-right:14px;padding-left:14px}
  .epicDialogCard>header{top:-1px;margin-inline:-2px}
  .epicGatewayGrid button{min-height:188px;padding:15px}
  .epicGatewayGrid b{font-size:19px}
  .epicGatewayGrid small{font-size:12px}
  .experienceCard,.journeyCard{min-height:156px}
  .epicJourneyGrid>button{min-height:174px}
  .epicMuseumStage{padding-inline:16px}
  .epicConstellation{padding:14px}
  .epicConstellation canvas{height:280px}
  .allColorsBtn{height:44px;min-height:44px;font-size:10px}
}

@media(orientation:landscape) and (max-height:560px){
  .game .epicAwakening{display:none}
  .game .gameCanvasArea{grid-template-rows:auto auto minmax(0,1fr)}
  .game .gameBody{grid-row:3}
  .game .boardCaption{display:none}
}

@media(max-width:380px){
  .epicGatewayGrid{grid-template-columns:1fr}
  .epicGatewayGrid button{min-height:134px}
  .epicGatewayGrid span{font-size:23px}
  .epicGatewayGrid b{font-size:18px}
  .epicJourneyGrid{grid-template-columns:1fr}
  .epicJourneyGrid>button{min-height:142px}
  .stats{gap:8px}
  .sectionTitle{display:block}.sectionTitle>span{display:block;margin-top:5px;text-align:left}
}

@media(orientation:landscape) and (max-height:620px){
  .game .gameCanvasArea{grid-template-rows:auto auto minmax(0,1fr)}
  .game .epicAwakening{display:none}
  .game .gameBody{grid-row:3}
  .game.boardFocus .gameCanvasArea{grid-template-rows:auto auto minmax(0,1fr)}
  .epicImmersionWords{padding-top:58px}
}

@media(prefers-reduced-motion:reduce){
  .galleryMore button,.epicGatewayGrid button{transition:none!important}
}

/* V24 — modalità leggibili, curatela operativa e viewer mobile compatto. */
.epicGatewayGrid{grid-template-columns:repeat(4,minmax(0,1fr))}
.modeIdentity{gap:12px}
.modeIdentity button{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;text-align:left;border:2px solid transparent;overflow:hidden}
.modeIdentity button>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;font-size:23px;font-weight:950}
.modeIdentity button>b{align-self:end}
.modeIdentity button>small{align-self:start;line-height:1.4}
.modeIdentity .modeRelaxChoice>span{background:#d9f7ef;color:#176b5d}
.modeIdentity .modeChallengeChoice>span{background:#f3ddff;color:#682d85}
.modeIdentity .modeStudyChoice>span{background:#dcecff;color:#205c92}
.modeIdentity .modeRelaxChoice[aria-pressed="true"]{border-color:#3da58e;background:#effbf7}
.modeIdentity .modeChallengeChoice[aria-pressed="true"]{border-color:#8e4baa;background:#faf2ff}
.modeIdentity .modeStudyChoice[aria-pressed="true"]{border-color:#4f8fc8;background:#f1f7ff}
.modeIdentity .modeRelaxChoice[aria-pressed="true"],.modeIdentity .modeRelaxChoice[aria-pressed="true"] small{color:#174f46}
.modeIdentity .modeChallengeChoice[aria-pressed="true"],.modeIdentity .modeChallengeChoice[aria-pressed="true"] small{color:#56266d}
.modeIdentity .modeStudyChoice[aria-pressed="true"],.modeIdentity .modeStudyChoice[aria-pressed="true"] small{color:#194b76}
.appearanceControl{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:13px;padding:13px 15px;border:1px solid #e7dde9;border-radius:18px;background:#f8f4f9}
.appearanceControl b,.appearanceControl small{display:block}.appearanceControl small{margin-top:3px;color:var(--muted);font-size:12px}
.appearanceControl button{min-height:44px;border:0;border-radius:14px;padding:9px 14px;background:#30253f;color:#fff;font-weight:900;white-space:nowrap}
.compassGuide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0 18px}
.compassGuide span{display:block;padding:13px;border:1px solid #e5dbe8;border-radius:16px;background:#fff}
.compassGuide b,.compassGuide small{display:block}.compassGuide b{font-size:13px}.compassGuide small{margin-top:5px;color:var(--muted);font-size:12px;line-height:1.4}
.compassResult>span{display:grid;gap:4px}.compassResult em{display:block;margin-top:3px;color:#67596f;font-size:11px;font-style:normal;line-height:1.38}.compassResult em strong{color:#3e3047}
body.themeEvening .appearanceControl,body.themeEvening .compassGuide span{border-color:#514459;background:#352c3d;color:#fff}
body.themeEvening .appearanceControl small,body.themeEvening .compassGuide small,body.themeEvening .compassResult em{color:#d9cedd}
body.themeEvening .compassResult em strong{color:#fff}
body.themeEvening .modeIdentity button{border-color:#514459;background:#352c3d;color:#fff}body.themeEvening .modeIdentity button small{color:#d8cedc}
body.themeEvening .modeIdentity .modeRelaxChoice[aria-pressed="true"]{border-color:#5fd0b7;background:#244b45;color:#fff}body.themeEvening .modeIdentity .modeChallengeChoice[aria-pressed="true"]{border-color:#c98be0;background:#52335d;color:#fff}body.themeEvening .modeIdentity .modeStudyChoice[aria-pressed="true"]{border-color:#79b4e7;background:#29465f;color:#fff}
body.themeEvening .modeIdentity button[aria-pressed="true"] small{color:#fff}

.viewerModePicker{display:flex;align-items:center;justify-content:center;gap:4px;pointer-events:auto}
.viewerModePicker button{min-width:56px;min-height:38px;border:1px solid #ffffff3a;border-radius:10px;padding:6px 8px;background:#493c52;color:#fff;font-size:11px;font-weight:900}
.viewerModePicker button[aria-pressed="true"]{border-color:#fff;background:#fff;color:#30253f;box-shadow:0 2px 9px #0003}
.game.modeRelax .boardInstruction{background:#173f3bea}.game.modeRelax .viewerModePicker button[aria-pressed="true"]{color:#176b5d}
.game.modeChallenge .boardInstruction{background:#2d2536ed}.game.modeChallenge .viewerModePicker button[aria-pressed="true"]{color:#682d85}
.game.modeStudy .boardInstruction{background:#173852ed}.game.modeStudy .viewerModePicker button[aria-pressed="true"]{color:#205c92}
.soundControls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.soundControls .silenceAll,[data-silence-all]{border-color:#c7b9cb!important}
[data-silence-all][aria-pressed="true"]{background:#30253f!important;color:#fff!important}

.game .boardColumn{overflow:hidden}
.game .boardShell,.game .boardViewport{max-width:100%;max-height:100%}
.game .boardViewport:not(.zoomed) .boardStage{max-width:calc(100% - 16px)}
.game .boardViewport.zoomed .boardStage{margin:auto 16px!important}
.game .boardInstruction{display:flex;align-items:center;justify-content:center;gap:8px}
.game .instructionSecondary{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis}
.game.boardFocus .boardViewport:not(.zoomed) .boardStage{max-width:calc(100% - 12px)}

@media(max-width:900px){
  .epicGatewayGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .compassResult{align-items:start}
}

@media(max-width:640px){
  .epicGatewayGrid{grid-template-columns:1fr 1fr}
  .epicGatewayGrid button{min-height:154px}
  .modeIdentity button{min-height:96px!important}
  .appearanceControl{align-items:flex-start;flex-direction:column}.appearanceControl button{width:100%}
  .compassGuide{grid-template-columns:1fr}.compassGuide span{padding:11px 13px}
  .game .boardInstruction{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:5px;padding-inline:max(6px,env(safe-area-inset-left)) max(6px,env(safe-area-inset-right))}
  .game .instructionSecondary{display:none}
  .viewerModePicker{min-width:0;gap:3px}
  .viewerModePicker button{min-width:0;width:100%;min-height:40px;padding:5px 6px;font-size:10px}
  .game .instructionPrimary,.game .focusBoardBtn{min-height:40px;padding-inline:7px;font-size:10px}
  .game .boardViewport:not(.zoomed) .boardStage{max-width:calc(100% - 10px)}
  .game .boardViewport.zoomed .boardStage{margin:auto 10px!important}
}

@media(max-width:380px){
  .epicGatewayGrid{grid-template-columns:1fr}.epicGatewayGrid button{min-height:126px}
  .viewerModePicker button{font-size:9px;padding-inline:3px}
  .game .instructionPrimary,.game .focusBoardBtn{padding-inline:5px}
}
