/* Gnut · Adventure edition. UI separata dal motore narrativo originale. */
:root {
  --font-display:'Outfit','Nunito',system-ui,sans-serif;
  --font-body:'Outfit','Nunito',system-ui,sans-serif;
  --game-deep:#0b292b; --game-teal:#163e40; --game-gold:#ffcf78;
  --paper:#fff9ef; --ink:#183936; --ink-2:#50675d;
  --header-h:64px; --timeline-h:80px; --nav-h:72px;
}
body { background:var(--game-deep); font-family:var(--font-body); font-weight:400; }
button,input { font-family:inherit; }
button { touch-action:manipulation; }
button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible { outline:3px solid #ffcf78; outline-offset:4px; }
button:active { transform:translateY(1px); }
[hidden] { display:none!important; }

/* Un vero title screen, non una pagina di introduzione. */
#splash { display:block; overflow:auto; background:#0b292b url('title-world.webp') center/cover no-repeat; color:#fff8ed; padding:0; }
#splash::before { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,22,24,.86),rgba(3,22,24,.18) 54%,transparent 72%); pointer-events:none; }
#splash .hero { display:none; }
.splash-topbar { position:relative; top:auto; left:auto; display:inline-flex; padding:26px 4vw; margin:0; width:auto; background:none; border:none; box-shadow:none; color:#fff8ed; font-size:14px; }
.splash-topbar small { opacity:.7; }
#splash .panel { position:relative; max-width:620px; width:49%; margin:clamp(14px,6vh,80px) 0 45px 7vw; padding:0; border:0; background:none; box-shadow:none; color:inherit; text-align:left; align-items:flex-start; }
#splash .logo-img { display:none; }
#splash .kicker { color:#c9e5d7; font-size:11px; letter-spacing:.18em; margin-bottom:16px; padding:0; background:none; border:0; font-weight:500; box-shadow:none; backdrop-filter:none; }
.adventure-title { margin:0!important; padding:0!important; font-family:var(--font-display); line-height:.95; text-align:left; text-shadow:0 8px 40px #001c1c; }
#splash h1.adventure-title { font-family:var(--font-display); text-shadow:0 8px 40px #001c1c; }
#splash h1.adventure-title b { display:block; font-size:clamp(88px,10vw,150px); font-weight:900; letter-spacing:-.065em; color:#ffd38a; }
.adventure-title span { display:block; font-size:clamp(24px,3vw,44px); font-weight:600; letter-spacing:-.025em; margin-top:14px; color:#fff8ed; }
#splash .sotto { color:#e2ece2; font-size:clamp(16px,1.4vw,20px); font-weight:400; max-width:36ch; line-height:1.55; margin:24px 0; }
#splash .launch-stats { justify-content:flex-start; gap:30px; padding:0; margin:0 0 28px; background:none; border:0; border-radius:0; box-shadow:none; color:#d6e7dc; font-size:11px; width:auto; }
#splash .launch-stats span { flex:none; border:0; background:none; padding:0; color:#cfe1d4; font-weight:400; }
#splash .launch-stats span+span { border:0; }
#splash .launch-stats strong { color:#fff8ed; font-size:24px; line-height:1.2; display:block; font-weight:600; }
.name-label { display:block; font-size:12px; color:#edf2e5; margin-bottom:8px; }
.name-label span { color:#c7d9d0; }
#splash .nome-box { display:block; width:min(100%,370px); background:rgba(10,35,36,.8); border:1px solid #83a694; border-radius:12px; padding:14px 17px; height:50px; color:#fff; text-align:left; font-size:16px; box-shadow:none; margin:0 0 14px; }
#splash .nome-box::placeholder { color:#bcd1c5; }
#btn-gioca { display:flex; justify-content:center; align-items:center; gap:12px; width:min(100%,370px); min-height:58px; padding:14px 20px; border-radius:14px; border:1px solid #ffe1a7; font-size:18px; font-weight:700; color:#123537; background:linear-gradient(135deg,#ffdd94,#efb85e); box-shadow:0 5px 0 #785b2e,0 14px 32px rgba(0,0,0,.3); animation:none; }
#btn-gioca:hover { filter:brightness(1.08); }
#splash .credit { color:#c8d9d0; font-size:11px; text-align:left; margin:22px 0 12px; }
#splash .game-evidence-links { justify-content:flex-start; }
#splash .game-evidence-links a { color:#d8e7dc; font-size:11px; }
#splash .splash-topbar { position:relative; top:auto; left:auto; right:auto; background:none; border:0; color:#fff8ed; padding:26px 4vw; font-size:14px; font-weight:500; }
#splash .splash-topbar small { color:#c2d5ca; font-weight:400; }

/* Console di gioco: le informazioni non devono occupare tutta la scena. */
body > header { height:var(--header-h); background:#0b292b; border-bottom:1px solid #44675b; color:#edf3e7; padding:0 24px; box-shadow:none; }
header .logo { color:#fff8ee; font-size:14px; }
#logo-sub { color:#b7cfc1; font-weight:400; }
.game-progress { color:#fff8ee; min-width:105px; }
.game-progress-label { color:#bfd5c9; font-size:9px; }
.game-progress-track { background:#416358; }
.game-progress strong { color:#f8e7bb; }
#hud-tappa-fill { background:#ffd384; }
#hud { gap:8px; }
#hud .pill { border:1px solid #44675b; background:#163e40; color:#fff3d9; box-shadow:none; font-size:13px; }
.menu-btn { background:#214e4c; border:1px solid #648775; color:#fff8e9; min-height:44px; min-width:44px; border-radius:12px; }
#menu { background:#fff9ef; border:1px solid #d2ddce; box-shadow:0 18px 65px #0005; border-radius:16px; top:calc(var(--header-h) + 8px); right:18px; }
#menu button { min-height:48px; }
#timeline-wrap { top:var(--header-h); height:var(--timeline-h); background:#103334; border:0; padding:10px 24px 8px; color:#e8f1e8; }
#timeline-wrap .tl-labels { position:static; color:#c6d9cc; font-size:9px; margin-bottom:4px; opacity:1; }
.tl-track { display:none; }
#tl-dots { display:flex; justify-content:flex-start; gap:7px; overflow-x:auto; padding:2px 2px 6px; scrollbar-width:thin; position:static; margin-top:0; }
#tl-dots .chapter-node { flex:1 0 44px; height:44px; min-height:44px; border-radius:9px; border:1px solid #55766a; background:#224948; color:#cde0d1; font-size:12px; font-weight:700; }
#tl-dots .chapter-node.current { color:#0b292b; background:#ffd384; border-color:#ffe1a7; box-shadow:0 0 20px #efbb4935; }
#tl-dots .chapter-node.done { background:#397563; color:#fff; }
#tl-dots .chapter-node.future { opacity:.66; }
#nav { background:#0b292b; border-top:1px solid #49695b; height:calc(var(--nav-h) + env(safe-area-inset-bottom)); padding:6px 20px env(safe-area-inset-bottom); gap:8px; }
#nav button { color:#c3d8cd; min-width:0; background:transparent; min-height:54px; border-radius:12px; font-size:11px; font-weight:500; }
#nav button.active { background:#274f4c; color:#ffe0a0; border:1px solid #6d8069; }
#nav button .ic { width:23px; height:23px; }
#nav button::before { display:none; }

/* Mondo 2.5D: un paesaggio simbolico, distinto dalla mappa vera. */
#adventure { position:fixed; top:calc(var(--header-h) + var(--timeline-h)); bottom:calc(var(--nav-h) + env(safe-area-inset-bottom)); inset-inline:0; display:flex; flex-direction:column; background:#0b292b; color:#fff9ed; }
.world-heading { min-height:106px; padding:18px clamp(18px,3vw,50px); display:flex; align-items:center; justify-content:space-between; gap:24px; flex-shrink:0; }
.world-eyebrow { display:block; font-size:10px; letter-spacing:.16em; color:#dfc493; font-weight:600; }
.world-heading h2 { font-size:clamp(19px,2.2vw,31px); font-weight:600; letter-spacing:-.025em; margin:3px 0; line-height:1.1; }
.world-heading p { font-size:13px; font-weight:400; color:#c0d8ca; margin:5px 0 0; }
.world-mission,#world-action,#world-resume { border:1px solid #baac7c; border-radius:12px; background:#f6d08d; color:#143635; padding:13px 20px; min-height:46px; font-size:14px; font-weight:700; white-space:nowrap; }
.world-mission { background:#234c47; color:#ffe1a7; }
.world-viewport { position:relative; flex:1; min-height:180px; overflow:hidden; background:#547967; isolation:isolate; touch-action:pan-y; }
.world-scene { position:absolute; width:1800px; height:850px; left:0; top:0; transform-origin:0 0; background:#719681 url('lake-world.webp') center/100% 100% no-repeat; }
.world-scene::before { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#08362b28,transparent 40%); pointer-events:none; }
.world-scene.era-medioevo::before { background:linear-gradient(100deg,#26134723,transparent 60%); }
.world-scene.era-preistoria::before { background:linear-gradient(100deg,#23573330,transparent 60%); }
#world-canvas { position:absolute; width:1800px; height:850px; inset:0; pointer-events:none; }
#world-player { position:absolute; left:0; top:0; width:120px; height:150px; transform-origin:center bottom; pointer-events:none; }
#world-player > img { position:absolute; width:98px; height:98px; object-fit:cover; border:4px solid #ffd78a; border-radius:50%; left:11px; top:28px; box-shadow:0 7px 24px #072d3b75; }
#world-player model-viewer { width:100%; height:100%; visibility:hidden; --poster-color:transparent; background:none; }
#world-player.model-ready model-viewer { visibility:visible; }
#world-player.model-ready > img { display:none; }
@media(prefers-reduced-motion:no-preference) {
  #world-player.walking model-viewer { animation:gnut-step .28s ease-in-out infinite alternate; }
  @keyframes gnut-step { from{transform:translateY(0) rotate(-2deg)} to{transform:translateY(-6px) rotate(2deg)} }
}
.world-portal { position:absolute; left:1590px; top:530px; width:128px; height:180px; border-radius:70% 70% 10% 10%; border:7px solid #f6d490; color:#fffbd7; background:radial-gradient(ellipse,#ffd075b0,#237c79ae 60%,#084849d9); box-shadow:0 0 40px #fff2bc8f,inset 0 0 40px #ffd979; display:flex; justify-content:center; align-items:center; padding:0; }
.world-portal .ic { width:70px; height:70px; }
.world-portal span { position:absolute; left:50%; top:-62px; transform:translateX(-50%); padding:12px 18px; white-space:nowrap; background:#153d37; color:#fff2d9; border-radius:12px; font-size:16px; border:1px solid #e4c98c; }
.world-portal.ready { background:radial-gradient(ellipse,#fffbd2,#ffd8689c 56%,#12635aa6); box-shadow:0 0 60px #fff2bce0,inset 0 0 35px #fffbd2; }
.world-fragments { position:absolute; top:16px; left:20px; display:flex; gap:9px; align-items:center; padding:12px 16px; background:#092e2cdd; color:#fff3d8; border:1px solid #d5c78a; border-radius:12px; box-shadow:0 8px 30px #0003; font-size:12px; }
.world-fragments > span:first-child { color:#ffd578; font-size:23px; }
.world-fragments b { font-size:20px; }
.world-pause { position:absolute; right:20px; top:16px; width:46px; height:46px; border:1px solid #c1d1bc; border-radius:12px; color:white; background:#103834d9; font-size:20px; }
.world-caption { position:absolute; bottom:12px; left:20px; background:#0b292bc7; color:#f3f5e9; padding:5px 10px; border-radius:5px; font-size:10px; }
.world-controls { display:flex; justify-content:space-between; align-items:center; gap:15px; padding:12px clamp(18px,3vw,50px); flex-shrink:0; min-height:76px; }
.world-pad { display:flex; gap:8px; }
.world-pad button { height:48px; min-width:52px; border:1px solid #6b8b78; border-radius:12px; background:#284f49; color:#fff7e8; font-size:21px; font-weight:600; touch-action:none; user-select:none; -webkit-user-select:none; }
#world-jump { font-size:14px; padding:0 18px; }
.world-controls p { font-size:11px; color:#d3e2d5; margin:0; font-weight:400; line-height:1.5; }
.world-controls p span { color:#b6cdbf; }
#world-paused { position:absolute; inset:0; background:#0b292be8; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:15px; z-index:10; }
#world-paused strong { font-size:32px; }
#world-paused span { color:#d4e1d5; }
body[data-game-tab="avventura"] #map,body[data-game-tab="avventura"] #map-frame,body[data-game-tab="avventura"] #map-loader,body[data-game-tab="avventura"] #map-chips,body[data-game-tab="avventura"] #btn-locate,body[data-game-tab="avventura"] #quest,body[data-game-tab="avventura"] #mascotte { display:none!important; }
body:not([data-game-tab="avventura"]) #adventure { display:none; }
#map,#map-frame,#map-loader { top:calc(var(--header-h) + var(--timeline-h)); bottom:calc(var(--nav-h) + env(safe-area-inset-bottom)); }
body[data-game-tab="zaino"] #map,body[data-game-tab="zaino"] #map-frame,body[data-game-tab="zaino"] #map-loader { visibility:hidden; }
#album { top:calc(var(--header-h) + var(--timeline-h)); bottom:calc(var(--nav-h) + env(safe-area-inset-bottom)); background:linear-gradient(135deg,#fcf3df,#e5efdf); padding:28px max(20px,calc((100vw - 960px)/2)); }
#album .ricordo { border-radius:20px; box-shadow:0 5px 20px #22452b15; }
#album .griglia-ricordi { grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:14px; }
#album .card-ricordo { position:relative; overflow:hidden; border-radius:16px; padding:0 12px 18px; background:#fffaf0; box-shadow:0 5px 20px #22452b15; animation:none; }
body[data-game-tab="zaino"] #mascotte,body[data-game-tab="zaino"] #fumetto { display:none; }
.album-photo { display:block; width:calc(100% + 24px); margin:0 -12px 16px; height:112px; object-fit:cover; filter:saturate(.8); }
#album .card-ricordo::before { content:attr(data-chapter); position:absolute; top:12px; left:10px; background:#153e35db; color:#ffdf9f; border-radius:6px; padding:4px 8px; font-size:10px; z-index:1; }
#gnut3d { background:radial-gradient(ellipse at 50% 55%,#337d6e,#0b292b 75%); }
#fumetto { bottom:calc(var(--nav-h) + 88px); max-width:350px; border:1px solid #e4c98c; border-radius:18px; background:#fff8e9; color:#173d36; box-shadow:0 12px 38px #0003; font-size:14px; }
body[data-game-tab="avventura"] #fumetto { right:24px; bottom:calc(var(--nav-h) + 100px); left:auto; }
#fumetto::after { display:none; }

/* Missione = un capitolo: fotografia vera, racconto, una prova alla volta. */
#overlay-bg { background:rgba(3,21,22,.76); backdrop-filter:blur(6px); }
#sheet { width:min(760px,calc(100vw - 48px)); left:50%; right:auto; bottom:50%; transform:translate(-50%,calc(50% + 110vh)); max-height:calc(100dvh - 64px); border-radius:26px; background:#fff9ef; padding:0 24px 24px; border:1px solid #c9d7c6; box-shadow:0 30px 90px #0006; font-family:var(--font-body); }
#sheet.open { transform:translate(-50%,50%); }
#sheet .banda { position:relative; min-height:178px; margin:0 -24px 20px; padding:36px 26px 23px; color:#fff6df; background-image:linear-gradient(0deg,#092c2de6,#092c2d40),var(--mission-image); background-position:center; background-size:cover; border-radius:25px 25px 0 0; }
#sheet .banda .grip { display:none; }
#sheet .banda h2 { font-size:clamp(24px,3vw,35px); color:#fff9ec; line-height:1.08; font-weight:600; letter-spacing:-.03em; margin:7px 45px 0 0; }
.badge-epoca { background:#092e2ace; border:1px solid #dac793; color:#ffdfa1; font-size:11px; border-radius:6px; padding:5px 9px; }
#sheet .chiudi { top:14px; right:14px; width:44px; height:44px; color:#fff; background:#092e2dc7; border:1px solid #dce5cc; border-radius:50%; }
#sheet .racconto { background:#edf2e7; color:#254c41; border:0; font-size:16px; font-weight:400; line-height:1.65; padding:18px; margin:0 0 16px; border-radius:14px; }
.racconto-av { width:48px; height:48px; border:2px solid #ddbd7b; }
.mission-intro { font-size:12px; color:#526959; text-align:center; margin:18px 0 9px; }
#sheet .btn { border:0; border-radius:12px; min-height:50px; margin:10px 0 0; font-size:15px; font-weight:600; box-shadow:none; }
#sheet .btn-arancio { background:linear-gradient(135deg,#ffc777,#eda945); color:#183c37; border-bottom:3px solid #b98739; }
#sheet .btn-viola,#sheet .btn-bosco { background:#1f5b51; color:#fff8eb; }
#sheet #btn-ar { background:transparent; color:#49624e; border:1px solid #b3c5af; min-height:44px; font-size:12px; }
#sheet .btn-salta { background:none; color:#53634f; font-size:12px; }
#sheet .btn-salta small { font-size:10px; }
#sheet.playing .banda { min-height:110px; padding-top:25px; margin-bottom:16px; }
#sheet.playing .racconto,#sheet.playing #btn-ar,#sheet.playing .mission-intro,#sheet.playing #btn-salta { display:none; }
.game-board { background:linear-gradient(145deg,#edf2e7,#fff8e5); padding:20px; border-radius:18px; border:1px solid #d3decc; }
.game-board .gioco-titolo { text-align:left; font-size:14px; font-weight:700; color:#406247; letter-spacing:.015em; margin:0 0 8px; }
.game-board .gioco-istruzioni { font-size:20px; font-weight:600; line-height:1.35; text-align:left; color:#173f38; margin:0 0 20px; }
.opzione { display:flex; align-items:center; gap:14px; text-align:left; background:#fffcf5; color:#254639; border:1px solid #b8c7b1; border-bottom:3px solid #b4c3aa; border-radius:13px; min-height:58px; font-size:16px; font-weight:500; padding:15px 18px; margin:10px 0; box-shadow:none; }
.opzione::before { content:'↗'; display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; background:#eef0d9; color:#617d4c; border-radius:8px; }
.opzione:hover { background:#f3e6c6; border-color:#9e8f57; }
.opzione.giusta { background:#d8eecb; border-color:#438544; }
.memory-grid { gap:10px; }
.mcard { height:104px; border-radius:13px; background:none; border:0; }
.mcard .faccia { border-radius:13px; box-shadow:none; }
.mcard .retro { background:radial-gradient(circle at 25% 25%,#467669,#163f3d); border:2px solid #93a57a; color:#ffe0a0; font-size:32px; }
.mcard .retro::after { content:'✦'; position:absolute; inset:0; display:grid; place-items:center; background:inherit; border-radius:inherit; }
.mcard .fronte { background:#fff8df; border:2px solid #c1b87c; font-size:40px; }
.mcard.trovata .fronte { background:#d9ecc8; border-color:#4c7841; }
.intruso-grid { gap:10px; }
.intruso-item { border:1px solid #bfcbad; border-bottom:3px solid #afbda0; background:#fffdf1; border-radius:13px; padding:14px 8px; min-height:104px; color:#25483a; font-size:14px; font-weight:500; }
.intruso-item .em { font-size:38px; }
.oggetto { border:1px solid #bfcbad; border-bottom:3px solid #afbda0; background:#fffdf1; border-radius:13px; padding:14px 8px; min-height:104px; }
.oggetto .em { font-size:38px; }
.oggetto .n { font-size:14px; font-weight:500; color:#25483a; }
.ordina-chip { border:1px solid #b9c5a7; border-radius:12px; background:#fffdf0; box-shadow:none; font-size:14px; min-height:55px; }
.ordina-slot { border-radius:10px; border-color:#8f9f72; background:#e4ead8; min-height:54px; }
.ordina-slot.pieno { background:#cfe6bd; }
.acchiappa-area { background:linear-gradient(145deg,#285c53,#123d3a); border:1px solid #78947b; height:250px; border-radius:16px; overflow:hidden; position:relative; }
.acchiappa-area::before { content:''; position:absolute; inset:0; background:url('lake-world.webp') center/cover; opacity:.22; pointer-events:none; }
.acchiappa-item { display:grid; place-items:center; width:52px; height:52px; min-height:52px; border-radius:12px; border:1px solid #d8ce9d; background:#fff5d1; font-size:32px; position:absolute; cursor:pointer; padding:0; color:#172e22; touch-action:manipulation; box-shadow:0 4px 15px #0004; }
.acchiappa-hud { font-size:13px; color:#305641; margin-bottom:10px; }
.catch-choices { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.catch-choices button { min-height:78px; border:1px solid #aaaf7a; border-radius:13px; background:#fff8e1; padding:16px; color:#25463a; font-size:15px; font-weight:600; }
.catch-choices small { display:block; font-size:11px; margin-top:5px; font-weight:400; }
.acchiappa-area.relaxed { display:flex; flex-wrap:wrap; align-content:center; justify-content:center; gap:12px; padding:15px; }
.acchiappa-area.relaxed .acchiappa-item { position:static; width:62px; height:62px; }
.catch-message { font-size:12px; color:#546950; margin-top:8px; }
.acchiappa-area:not(.relaxed) .acchiappa-item::after { content:attr(data-key); position:absolute; bottom:-6px; right:-6px; font-size:12px; font-weight:700; border-radius:50%; background:#183e34; color:#fff; width:22px; height:22px; display:grid; place-items:center; }
body.mission-open #fumetto { display:none; }
#sheet.won .banda { min-height:112px; margin-bottom:15px; }
#sheet.won > .racconto { display:none; }
.stelle-earned { font-size:48px; text-align:center; margin:18px 0; letter-spacing:7px; filter:drop-shadow(0 4px 7px #c19b3928); }
.reward-heading { color:#234c3e; text-align:center; font-size:24px; font-weight:700; margin:0 0 5px; }
.curiosita { border:1px solid #d1cc9c; background:#fff1cb; color:#44553d; border-radius:13px; font-size:14px; line-height:1.6; }
#timeportal { background:radial-gradient(ellipse,#1e6864,#082b2e 75%); }
#portal-anno { font-family:var(--font-display); font-size:clamp(28px,6vw,65px); letter-spacing:-.03em; color:#ffdfa3; }
#portal-skip { display:block; cursor:pointer; background:#234e48; color:#fff4dd; border:1px solid #b7bb92; border-radius:10px; padding:12px 20px; min-height:44px; }
#finale { background:radial-gradient(ellipse at top,#dcebd6,#fff3d9); }
#finale h1 { font-family:var(--font-display); color:#254e3d; letter-spacing:-.03em; }

@media(max-width:760px) {
  :root { --header-h:58px; --timeline-h:78px; --nav-h:64px; }
  #splash { background-position:67% top; background-size:auto 78%; background-color:#092a2c; }
  #splash::before { position:fixed; background:linear-gradient(0deg,#092a2c 7%,#092a2cf2 24%,#092a2c66 58%,#092a2c26); }
  .splash-topbar { padding:18px 22px; font-size:12px; background:linear-gradient(#0b292baa,transparent); }
  .splash-topbar small { display:none; }
  #splash .panel { width:auto; margin:clamp(140px,26vh,235px) 24px 28px; max-width:none; }
  #splash .kicker { font-size:9px; margin-bottom:10px; }
  #splash h1.adventure-title b { font-size:86px; }
  .adventure-title span { font-size:30px; margin-top:5px; }
  #splash .sotto { font-size:15px; max-width:36ch; margin:18px 0; }
  #splash .launch-stats { gap:24px; margin-bottom:20px; }
  #splash .launch-stats strong { font-size:21px; }
  #splash .splash-topbar { padding:18px 22px; font-size:12px; }
  #splash .nome-box,#btn-gioca { width:100%; max-width:none; }
  #splash .credit { font-size:10px; margin:20px 0 10px; }
  body > header { padding:0 12px; gap:8px; }
  header .logo { font-size:12px; }
  #logo-sub,#pill-livello,#pill-salti,.game-progress-label { display:none; }
  .game-progress { min-width:65px; max-width:90px; gap:6px; }
  #hud { gap:5px; }
  #hud .pill { font-size:11px; padding:5px 8px; }
  #timeline-wrap { padding:8px 12px; }
  .tl-labels { font-size:8px; }
  #tl-dots { gap:6px; }
  #tl-dots .chapter-node { flex-basis:44px; min-width:44px; height:44px; }
  #nav { padding-inline:10px; gap:5px; }
  #nav button { font-size:10px; min-height:50px; }
  .world-heading { padding:14px 16px; gap:10px; min-height:107px; align-items:flex-start; }
  .world-heading h2 { font-size:21px; line-height:1.13; }
  .world-heading p { font-size:11px; line-height:1.4; max-width:27ch; }
  .world-eyebrow { font-size:8px; letter-spacing:.12em; }
  .world-mission { font-size:11px; padding:12px; white-space:normal; width:86px; min-width:86px; }
  .world-viewport { min-height:190px; }
  .world-fragments { top:12px; left:12px; padding:8px 12px; gap:6px; }
  .world-fragments b { font-size:16px; }
  .world-fragments > span:last-child { font-size:10px; }
  .world-pause { top:12px; right:12px; }
  .world-caption { font-size:8px; left:12px; bottom:10px; }
  .world-controls { padding:10px 12px; gap:10px; min-height:106px; flex-wrap:wrap; }
  .world-pad { gap:6px; }
  .world-pad button { min-width:46px; height:46px; }
  #world-jump { padding:0 12px; }
  .world-controls p { order:3; width:100%; text-align:center; font-size:9px; }
  .world-controls p br { display:none; }
  .world-controls p span { display:none; }
  #world-action { font-size:11px; padding:10px 12px; max-width:130px; white-space:normal; min-height:46px; }
  #sheet { width:calc(100vw - 20px); max-height:calc(100dvh - 24px); border-radius:22px; padding:0 16px 20px; }
  #sheet .banda { margin:0 -16px 16px; padding:34px 18px 20px; min-height:165px; border-radius:21px 21px 0 0; }
  #sheet .banda h2 { font-size:26px; }
  #sheet .racconto { font-size:15px; line-height:1.6; padding:15px; }
  .game-board { padding:15px; }
  .game-board .gioco-istruzioni { font-size:18px; margin-bottom:16px; }
  .opzione { padding:14px 12px; font-size:15px; }
  .memory-grid { gap:7px; }
  .mcard { height:78px; }
  .mcard .fronte { font-size:32px; }
  .intruso-grid { gap:8px; }
  .oggetto { min-height:98px; }
  #fumetto,body[data-game-tab="avventura"] #fumetto { bottom:calc(var(--nav-h) + 118px); right:16px; left:16px; max-width:none; font-size:12px; }
  .catch-choices { grid-template-columns:1fr; }
}
@media(max-height:660px) and (min-width:761px) {
  #splash .panel { margin-top:0; }
  .adventure-title b { font-size:90px; }
  #splash .sotto { margin:14px 0; }
  .launch-stats { margin-bottom:14px; }
  .world-heading { min-height:78px; padding-block:10px; }
}
@media(max-height:540px) and (orientation:landscape) {
  :root { --header-h:48px; --timeline-h:0px; --nav-h:52px; }
  #timeline-wrap { display:none; }
  .world-heading { min-height:64px; padding:8px 18px; }
  .world-heading p,.world-controls p { display:none; }
  .world-heading h2 { font-size:19px; }
  .world-controls { min-height:59px; padding:5px 18px; flex-wrap:nowrap; }
  .world-viewport { min-height:70px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; }
  #sheet,#world-player,.world-portal { transition:none!important; animation:none!important; }
  #overlay-bg { backdrop-filter:none; }
}
@media print { #adventure,#world-controls-help { display:none!important; } }
