:root {
  --bg-main: #050506;
  --bg-secondary: #0A0807;
  --panel-1: #111318;
  --panel-2: #17130F;
  --panel-3: #1C1712;
  --panel-4: #14100D;
  --text-main: #EDE6D8;
  --text-secondary: #AFA79A;
  --text-meta: #7A7268;
  --text-dim: #4A4440;
  --red-logicus: #A71920;
  --red-highlight: #C42028;
  --red-dark: #641014;
  --red-glow: rgba(167,25,32,0.18);
  --amber: #B7833B;
  --amber-dim: rgba(183,131,59,0.12);
  --carta: #B9A174;
  --success-bg: #0D1A14;
  --success-border: #2A5C40;
  --success-text: #5A9A74;
  --error: #A71920;
  --warning: #B7833B;
  --border-gold: rgba(185,161,116,0.18);
  --border-white: rgba(185,161,116,0.12);
  --border-white-soft: rgba(185,161,116,0.07);
  --border-red: rgba(167,25,32,0.28);
  --font-serif: 'Cormorant Garamond', Georgia, serif;
  --font-sans: 'Inter', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;
  --glow-red: 0 0 24px rgba(167,25,32,0.2), 0 0 48px rgba(167,25,32,0.08);
  --shadow-deep: 0 8px 48px rgba(0,0,0,0.85), 0 2px 12px rgba(0,0,0,0.6);
  --shadow-panel: 0 4px 24px rgba(0,0,0,0.6);
  --transition: all 0.22s cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-sans);background:var(--bg-main);color:var(--text-main);min-height:100vh;overflow-x:hidden;font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;}
body.no-scroll{overflow:hidden}
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='0.055'/%3E%3C/svg%3E");pointer-events:none;z-index:1;mix-blend-mode:overlay;}
body::after{content:'';position:fixed;inset:0;background:radial-gradient(ellipse 90% 90% at 50% 50%, transparent 40%, rgba(0,0,0,0.55) 100%);pointer-events:none;z-index:1;}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:400}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:var(--bg-main)}
::-webkit-scrollbar-thumb{background:rgba(185,161,116,0.1);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:rgba(185,161,116,0.2)}
.app-section{display:none}.app-section.active{display:block}
.hidden{display:none!important}

/* BUTTONS */
.btn-primary{background:var(--red-logicus);color:var(--text-main);border:none;padding:.9rem 1.75rem;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:var(--transition);display:inline-block;touch-action:manipulation;user-select:none;}
.btn-primary:hover{background:var(--red-highlight);box-shadow:var(--glow-red)}
.btn-primary:disabled{opacity:.4;cursor:not-allowed}
.btn-primary.full{width:100%;display:block;text-align:center}
.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-white);padding:.6rem 1.2rem;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:var(--transition);}
.btn-secondary:hover{border-color:rgba(255,255,255,0.18);color:var(--text-main)}
.btn-ghost{background:transparent;color:var(--text-meta);border:1px solid rgba(255,255,255,.06);padding:.5rem .95rem;font-family:var(--font-mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:var(--transition);}
.btn-ghost:hover{color:var(--text-secondary);border-color:var(--border-white)}

/* SCHERMATA ACCESSO (classic) */
.access-screen{position:fixed;inset:0;z-index:1000;background:var(--bg-main);display:flex;align-items:center;justify-content:center;padding:1.5rem;flex-direction:column;}
.access-screen.hidden{display:none}
.access-screen::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--red-dark),transparent);}
.access-screen::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 50% 0%,rgba(179,18,23,0.07) 0%,transparent 70%);pointer-events:none;}
.access-eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.45em;color:var(--red-logicus);text-transform:uppercase;margin-bottom:.75rem;text-align:center;position:relative;z-index:1;}
.access-title{font-size:clamp(2.4rem,6vw,4rem);font-weight:300;letter-spacing:.02em;color:var(--text-main);line-height:1.05;margin-bottom:.4rem;text-align:center;position:relative;z-index:1;}
.access-subtitle{font-family:var(--font-serif);font-style:italic;font-size:clamp(1rem,2.5vw,1.2rem);color:var(--text-secondary);font-weight:300;text-align:center;margin-bottom:.4rem;position:relative;z-index:1;}
.access-act{font-family:var(--font-mono);font-size:9px;letter-spacing:.3em;color:var(--text-dim);text-transform:uppercase;text-align:center;margin-bottom:2.5rem;position:relative;z-index:1;}
.access-box{background:var(--panel-1);border:1px solid var(--border-gold);border-top:2px solid var(--red-dark);max-width:420px;width:100%;padding:2.25rem;position:relative;box-shadow:var(--shadow-deep);z-index:1;}
.access-box::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--red-logicus),transparent);}
.access-classification{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.32em;color:var(--red-logicus);border:1px solid var(--border-red);padding:3px 10px;display:inline-block;margin-bottom:1.25rem;text-transform:uppercase;background:rgba(179,18,23,0.06);}
.access-box p{color:var(--text-secondary);font-size:13.5px;margin-bottom:1.5rem;line-height:1.7;}
.access-field{margin-bottom:1rem}
.access-field label{display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:.28em;color:var(--text-meta);text-transform:uppercase;margin-bottom:.5rem;}
.access-input{width:100%;background:rgba(0,0,0,.55);border:1px solid rgba(185,161,116,.12);color:var(--text-main);padding:.85rem 1rem;font-family:var(--font-mono);font-size:14px;letter-spacing:.18em;outline:none;transition:var(--transition);-webkit-appearance:none;border-radius:0;text-transform:uppercase;}
.access-input:focus{border-color:var(--red-dark);box-shadow:0 0 14px rgba(179,18,23,.14);}
.access-error{font-family:var(--font-mono);font-size:11px;color:var(--red-highlight);margin-top:.5rem;display:none;letter-spacing:.04em;}
.access-error.visible{display:block}
.access-hint{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--text-meta);margin-top:.35rem;line-height:1.5;}
#nickname-input{text-transform:none;letter-spacing:.06em;}
.access-footer{margin-top:2rem;text-align:center;font-size:11px;color:var(--text-dim);max-width:420px;width:100%;font-style:italic;line-height:1.6;position:relative;z-index:1;}

/* HEADER */
.app-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-gold);padding:0 1.5rem;height:54px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:200;flex-shrink:0;box-shadow:0 2px 20px rgba(0,0,0,0.6);}
.header-left{display:flex;align-items:center;gap:1.25rem}
.header-brand{font-family:var(--font-mono);font-size:11px;letter-spacing:.28em;color:var(--red-logicus);text-transform:uppercase;}
.header-sep{width:1px;height:18px;background:var(--border-white)}
.header-case-info{font-family:var(--font-sans);font-size:12.5px;color:var(--text-meta);display:none;}
@media(min-width:600px){.header-case-info{display:block}}
.header-status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--amber);margin-right:.4rem;animation:pulse-dot 2s infinite;}
@keyframes pulse-dot{0%,100%{opacity:1}50%{opacity:.35}}
.header-act-badge{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.25em;color:var(--amber);text-transform:uppercase;border:1px solid rgba(183,131,59,0.28);padding:2px 8px;display:none;}
@media(min-width:800px){.header-act-badge{display:block}}
.header-right{display:flex;align-items:center;gap:.75rem}
.indice-badge{font-family:var(--font-mono);font-size:10.5px;color:var(--text-main);background:var(--panel-2);border:1px solid var(--border-white);padding:4px 10px;letter-spacing:.08em;display:flex;align-items:center;gap:.4rem;}
.indice-label{color:var(--text-meta);font-size:9px;letter-spacing:.2em;display:none}
@media(min-width:500px){.indice-label{display:inline}}
.indice-value{color:var(--red-highlight);font-size:13px}
/* Presence badge: visibile solo per licenze team (max_devices > 1), mostrato dal
   client tramite #presence-badge[hidden] toggle. Stesso linguaggio visivo di
   .indice-badge (font-mono, panel-2 bg) per coerenza cross-skin. */
.presence-badge[hidden]{display:none!important}
.presence-badge{font-family:var(--font-mono);font-size:10.5px;color:var(--text-main);background:var(--panel-2);border:1px solid var(--border-white);padding:4px 10px;letter-spacing:.08em;display:flex;align-items:center;gap:.4rem;}
.presence-badge .presence-dot{color:var(--success-text,#5A9A74);font-size:11px;line-height:1;animation:pulse-dot 2.4s infinite;}
.presence-badge .presence-count{color:var(--text-main);font-size:11px}
.presence-badge.at-limit{border-color:rgba(183,131,59,0.32);}
.presence-badge.at-limit .presence-dot{color:var(--amber);}
.game-over-access-btn{border-color:var(--border-red)!important;color:var(--red-highlight)!important}
@media(max-width:520px){.game-over-access-btn{font-size:8px;letter-spacing:.12em;padding:4px 7px}.header-right{gap:.45rem}}

/* Remote jump banner: avviso non invasivo per device del team che si trova
   ancora sull'atto N quando un altro device chiude l'atto. Linka direttamente
   ad atto{N+1}.html. Visibile solo per licenze team (gate lato client). */
.remote-jump-banner[hidden]{display:none!important}
.remote-jump-banner{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;background:rgba(183,131,59,0.08);border-bottom:1px solid rgba(183,131,59,0.32);padding:.55rem 1rem;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--text-main);position:sticky;top:54px;z-index:40;}
.remote-jump-banner .rjb-text{color:var(--text-secondary)}
.remote-jump-banner .rjb-cta{color:var(--amber);text-decoration:none;border:1px solid rgba(183,131,59,0.4);padding:3px 10px;letter-spacing:.08em;transition:var(--transition);}
.remote-jump-banner .rjb-cta:hover{background:rgba(183,131,59,0.12);color:var(--text-main)}
.remote-jump-banner .rjb-close{background:none;border:none;color:var(--text-meta);font-size:18px;line-height:1;cursor:pointer;padding:0 .35rem;transition:var(--transition);}
.remote-jump-banner .rjb-close:hover{color:var(--text-main)}
@media(max-width:600px){.remote-jump-banner{font-size:10.5px;padding:.5rem .75rem;gap:.6rem}}
.consultation-banner[hidden]{display:none!important}
.consultation-banner{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;background:rgba(90,154,116,.08);border-bottom:1px solid rgba(90,154,116,.28);padding:.58rem 1rem;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.055em;color:var(--text-secondary);position:sticky;top:54px;z-index:39;}
.consultation-cta{color:var(--success-text);text-decoration:none;border:1px solid rgba(90,154,116,.4);padding:3px 10px;letter-spacing:.08em;text-transform:uppercase;transition:var(--transition)}
.consultation-cta:hover{background:rgba(90,154,116,.12);color:var(--text-main)}
.act-switcher-link{display:flex;align-items:center;gap:.55rem;padding:.52rem 1.2rem;color:var(--text-secondary);font-size:12px;text-decoration:none;transition:var(--transition)}
.act-switcher-link:hover{background:rgba(255,255,255,.028);color:var(--text-main)}
.act-switcher-link.current{color:var(--amber);pointer-events:none}
.act-switcher-dot{width:4px;height:4px;border-radius:50%;background:var(--success-text);flex-shrink:0}
.mnav-act-link{text-decoration:none}
.consultation-feedback{border-color:rgba(90,154,116,.45)!important;background:rgba(90,154,116,.08)!important;color:var(--text-secondary)!important;white-space:normal}
body.consultation-mode .terminal-submit{display:none!important}
body.consultation-mode [data-action="reset-confirm"]{display:none!important}
@media(max-width:600px){.consultation-banner{font-size:10px;padding:.55rem .75rem;gap:.55rem}.consultation-cta{width:100%;text-align:center}}

/* MOBILE NAV */
.mobile-nav{display:none;background:var(--bg-secondary);border-bottom:1px solid var(--border-white);padding:0 .75rem;overflow-x:auto;scrollbar-width:none;flex-shrink:0;}
.mobile-nav::-webkit-scrollbar{display:none}
@media(max-width:900px){.mobile-nav{display:flex}}
.mnav-item{padding:.7rem .9rem;font-family:var(--font-mono);font-size:9px;letter-spacing:.15em;color:var(--text-meta);text-transform:uppercase;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;transition:var(--transition);flex-shrink:0;background:none;border-left:none;border-right:none;border-top:none;}
.mnav-item:hover{color:var(--text-secondary)}
.mnav-item.active{color:var(--text-main);border-bottom-color:var(--amber)}
.mnav-item.locked{opacity:.3;cursor:not-allowed}

/* SIDEBAR / LAYOUT */
.app-body{display:flex;flex:1;min-height:calc(100vh - 54px);position:relative}
.nav-sidebar{width:210px;background:var(--bg-secondary);border-right:1px solid var(--border-white);padding:1.25rem 0;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:54px;height:calc(100vh - 54px);overflow-y:auto;}
@media(max-width:900px){.nav-sidebar{display:none}}
.nav-section-label{font-family:var(--font-mono);font-size:7.5px;letter-spacing:.3em;color:var(--amber);text-transform:uppercase;padding:0 1.2rem .6rem;margin:.9rem 0 .35rem;border-bottom:1px solid var(--border-gold);}
.nav-item{display:flex;align-items:center;gap:.65rem;padding:.58rem 1.2rem;cursor:pointer;transition:var(--transition);font-size:12.5px;color:var(--text-secondary);border-left:2px solid transparent;font-family:var(--font-sans);background:none;border-top:none;border-right:none;border-bottom:none;width:100%;text-align:left;}
.nav-item:hover{background:rgba(255,255,255,.028);color:var(--text-main)}
.nav-item.active{background:rgba(183,131,59,.07);color:var(--carta);border-left-color:var(--amber)}
.nav-item.locked{opacity:.28;cursor:not-allowed}
.nav-item.locked:hover{background:transparent;color:var(--text-secondary)}
.nav-dot{width:4px;height:4px;border-radius:50%;background:var(--text-dim);flex-shrink:0;transition:var(--transition)}
.nav-item.active .nav-dot{background:var(--amber);box-shadow:0 0 5px var(--amber)}
.nav-sidebar-footer{margin-top:auto;padding:1rem 1.2rem;border-top:1px solid var(--border-white)}

/* MAIN */
.main-content{flex:1;overflow-y:auto;overflow-x:hidden;min-width:0}
.section-wrapper{padding:2.25rem 2.5rem;max-width:820px}
@media(max-width:640px){.section-wrapper{padding:1.5rem 1rem}}

/* INVESTIGATION PANEL */
.investigation-panel{width:260px;background:var(--bg-secondary);border-left:1px solid var(--border-gold);padding:0;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:54px;height:calc(100vh - 54px);overflow-y:auto;}
@media(max-width:1180px){.investigation-panel{display:none}}
.inv-panel-header{padding:1rem 1.25rem .75rem;border-bottom:1px solid var(--border-white);display:flex;align-items:center;gap:.6rem;}
.inv-panel-title{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.3em;color:var(--text-meta);text-transform:uppercase;}
.inv-section{padding:.9rem 1.25rem;border-bottom:1px solid var(--border-gold)}
.inv-label{font-family:var(--font-mono);font-size:7.5px;letter-spacing:.28em;color:var(--amber);text-transform:uppercase;margin-bottom:.55rem;}
.inv-status-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem;}
.inv-status-label{font-size:11.5px;color:var(--text-secondary)}
.inv-status-val{font-family:var(--font-mono);font-size:10.5px;color:var(--text-meta);letter-spacing:.05em}
.inv-status-val.active{color:var(--amber)}
.inv-status-val.done,.inv-status-val.ok{color:var(--success-text)}
.inv-status-val.blocked{color:var(--text-dim)}
.inv-status-val.err{color:var(--red-highlight)}
.inv-case-status{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;color:var(--amber);text-transform:uppercase;}
.inv-case-status::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--amber);animation:pulse-dot 1.8s infinite}
.inv-indice-bar{margin:.6rem 0 .3rem;height:3px;background:rgba(255,255,255,.05);position:relative;overflow:hidden}
.inv-indice-fill{height:100%;background:var(--red-logicus);transition:width .5s ease}
.inv-indice-fill.high{background:var(--success-border)}
.inv-indice-fill.mid{background:var(--warning)}
.inv-indice-fill.low{background:var(--red-logicus)}

/* SECTION HEADER */
.section-header{margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--border-white)}
.section-eyebrow{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.32em;color:var(--carta);text-transform:uppercase;margin-bottom:.5rem;display:flex;align-items:center;gap:.6rem;}
.section-eyebrow::before{content:'';width:16px;height:1px;background:var(--amber)}
.section-title{font-size:clamp(1.7rem,3.5vw,2.7rem);font-weight:300;letter-spacing:.01em;color:var(--text-main);line-height:1.1}
.section-subtitle{font-family:var(--font-serif);font-style:italic;font-size:1rem;color:var(--text-secondary);margin-top:.3rem;font-weight:300}
.section-desc{font-size:13.5px;color:var(--text-secondary);margin-top:.75rem;line-height:1.7}

/* INTRO */
.intro-transmission{display:flex;align-items:center;gap:.6rem;margin-bottom:1.5rem}
.intro-transmission-label{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.28em;color:var(--amber);text-transform:uppercase}
.intro-transmission-line{flex:1;height:1px;background:linear-gradient(90deg,var(--amber),transparent)}
.intro-panel{background:var(--panel-1);border:1px solid var(--border-gold);border-left:2px solid var(--amber);padding:2.25rem 2.25rem 2rem;position:relative;margin-bottom:2rem;box-shadow:var(--shadow-panel);}
.intro-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--amber),rgba(183,131,59,.1),transparent);}
.intro-text{font-family:var(--font-serif);font-size:clamp(1.08rem,2.2vw,1.28rem);color:var(--text-main);line-height:1.82;font-weight:300;font-style:italic;}
.intro-text p{margin-bottom:1rem}
.intro-text p:last-child{margin-bottom:0}
.intro-signature{margin-top:1.75rem;padding-top:1.1rem;border-top:1px solid var(--border-white);font-family:var(--font-mono);font-size:10.5px;color:var(--text-meta);letter-spacing:.12em;}

/* FACT GRID INTRO */
.fact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--border-white-soft);border:1px solid var(--border-white-soft);margin:1.5rem 0 2rem;}
.fact-cell{background:var(--panel-1);padding:1rem 1.2rem;}
.fact-label{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.28em;color:var(--text-dim);text-transform:uppercase;margin-bottom:.4rem;}
.fact-value{font-size:13px;color:var(--text-secondary);}

/* FASCICOLO META */
.fascicolo-meta{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;border-top:1px solid var(--border-gold);border-bottom:1px solid var(--border-gold);background:rgba(185,161,116,0.03);padding:.85rem 1.25rem;margin-bottom:1.5rem;}
.fascicolo-meta-item{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:10px;color:var(--text-meta);letter-spacing:.1em}
.fascicolo-meta-item .val{color:var(--text-secondary)}
.fascicolo-meta-sep{width:1px;height:14px;background:var(--border-white)}

/* UNLOCK BANNER (classic) */
.unlock-banner{display:none;background:rgba(42,92,64,0.12);border:1px solid var(--success-border);padding:.7rem 1rem;margin:1rem 0;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:10px;color:var(--success-text);letter-spacing:.12em;}
.unlock-banner.show{display:flex}
.unlock-banner-dot{width:6px;height:6px;border-radius:50%;background:var(--success-text);box-shadow:0 0 8px var(--success-text);animation:pulse-dot 1.8s infinite;}
.unlock-banner-text{text-transform:uppercase}
.docs-section-label{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.3em;color:var(--carta);text-transform:uppercase;margin:1.25rem 0 .9rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-white);}

/* DOCS GRID */
.docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:.9rem}
@media(max-width:600px){.docs-grid{grid-template-columns:1fr}}
.doc-card{background:linear-gradient(160deg,var(--panel-1),var(--panel-2));border:1px solid var(--border-gold);cursor:pointer;transition:var(--transition);position:relative;overflow:hidden;display:flex;flex-direction:column;}
.doc-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:transparent;transition:var(--transition)}
.doc-card:hover{border-color:rgba(167,25,32,.35);background:var(--panel-2);box-shadow:0 4px 28px rgba(0,0,0,.55),0 0 0 1px rgba(167,25,32,.1);transform:translateY(-1px)}
.doc-card:hover::before{background:linear-gradient(90deg,var(--red-logicus),transparent)}
.doc-card:focus-visible{outline:1px solid var(--red-logicus);outline-offset:2px}
.doc-card.consulted{border-color:rgba(42,92,64,.4)}
.doc-card.consulted::before{background:linear-gradient(90deg,var(--success-border),transparent)!important}
.doc-card-audio{border-color:rgba(167,25,32,.34);background:linear-gradient(160deg,rgba(16,13,14,.98),rgba(9,12,15,.98))}
.doc-card-audio:hover{border-color:rgba(183,131,59,.46);box-shadow:0 4px 30px rgba(0,0,0,.58),0 0 0 1px rgba(183,131,59,.12)}
.doc-thumb{width:100%;aspect-ratio:16/7;overflow:hidden;position:relative;background:var(--panel-4);border-bottom:1px solid var(--border-white-soft)}
.doc-thumb img{width:100%;height:100%;object-fit:cover;filter:contrast(1.08) brightness(.7) saturate(.5) sepia(.12);transition:var(--transition)}
.doc-card:hover .doc-thumb img{filter:contrast(1.08) brightness(.8) saturate(.6) sepia(.08)}
.doc-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--panel-3),var(--panel-4))}
.doc-thumb-placeholder span{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.25em;color:var(--text-dim);text-transform:uppercase;text-align:center;line-height:1.8}
.doc-thumb-audio{display:flex;flex-direction:column;justify-content:space-between;padding:.8rem .95rem;background:linear-gradient(180deg,rgba(3,5,7,.94),rgba(18,9,10,.96));border-bottom-color:rgba(167,25,32,.22)}
.doc-thumb-audio::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 10px),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 12px);pointer-events:none}
.audio-thumb-top,.audio-thumb-bottom{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-family:var(--font-mono);font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim)}
.audio-thumb-top span:first-child{color:var(--red-highlight)}
.audio-thumb-bottom span:last-child{color:var(--carta)}
.audio-wave{position:relative;z-index:1;display:flex;align-items:center;gap:4px;width:100%;height:42px}
.audio-wave i{display:block;flex:1;min-width:2px;background:linear-gradient(180deg,var(--red-highlight),rgba(183,131,59,.72));opacity:.82}
.audio-wave i:nth-child(1){height:18%}.audio-wave i:nth-child(2){height:42%}.audio-wave i:nth-child(3){height:28%}.audio-wave i:nth-child(4){height:66%}.audio-wave i:nth-child(5){height:36%}.audio-wave i:nth-child(6){height:74%}.audio-wave i:nth-child(7){height:48%}.audio-wave i:nth-child(8){height:88%}.audio-wave i:nth-child(9){height:54%}.audio-wave i:nth-child(10){height:76%}.audio-wave i:nth-child(11){height:34%}.audio-wave i:nth-child(12){height:62%}.audio-wave i:nth-child(13){height:46%}.audio-wave i:nth-child(14){height:82%}.audio-wave i:nth-child(15){height:30%}.audio-wave i:nth-child(16){height:58%}.audio-wave i:nth-child(17){height:22%}.audio-wave i:nth-child(18){height:40%}
.doc-card-body{padding:1.1rem 1.2rem 1.25rem;flex:1;display:flex;flex-direction:column}
.doc-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.6rem}
.doc-code{font-family:var(--font-mono);font-size:10.5px;color:var(--amber);letter-spacing:.2em;font-weight:500}
.doc-status-badge{font-family:var(--font-mono);font-size:7.5px;letter-spacing:.2em;text-transform:uppercase;padding:2px 7px;border:1px solid}
.doc-status-badge.available{color:var(--text-dim);border-color:rgba(255,255,255,.08)}
.doc-status-badge.consulted{color:var(--success-border);border-color:var(--success-border);background:rgba(28,97,84,.1)}
.doc-category{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.22em;color:var(--text-dim);text-transform:uppercase;margin-bottom:.55rem}
.doc-title{font-family:var(--font-serif);font-size:1.15rem;font-weight:400;color:var(--text-main);margin-bottom:.5rem;line-height:1.25}
.doc-summary{font-size:12.5px;color:var(--text-secondary);line-height:1.6;margin-bottom:auto;flex:1;padding-bottom:.9rem}
.doc-cta{font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--carta);display:flex;align-items:center;gap:.4rem;margin-top:.5rem;padding-top:.85rem;border-top:1px solid var(--border-white-soft)}
.doc-cta::after{content:'→';transition:var(--transition)}
.doc-card:hover .doc-cta::after{transform:translateX(3px)}
.doc-cta.consulted-cta{color:var(--success-border)}

/* TERMINAL PANELS (classic) */
.terminal-panel{background:var(--panel-1);border:1px solid var(--border-gold);border-left:2px solid var(--red-dark);padding:1.5rem;box-shadow:var(--shadow-panel);position:relative;max-width:760px;}
.terminal-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--red-dark),transparent);}
.terminal-eyebrow{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.28em;color:var(--carta);text-transform:uppercase;margin-bottom:.6rem;}
.terminal-desc{font-size:13px;color:var(--text-secondary);line-height:1.65;margin-bottom:1.5rem;}
.terminal-fields{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:1rem;}
.terminal-field{background:rgba(0,0,0,.18);border:1px solid var(--border-white-soft);padding:1rem 1.1rem;}
.terminal-field-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.55rem}
.terminal-field-id{font-family:var(--font-mono);font-size:8.5px;color:var(--red-dark);letter-spacing:.2em}
.terminal-field-state{font-family:var(--font-mono);font-size:8px;letter-spacing:.15em;text-transform:uppercase;padding:2px 7px;border:1px solid}
.terminal-field-state.pending{color:var(--text-dim);border-color:rgba(255,255,255,.07)}
.terminal-field-state.ok{color:var(--success-border);border-color:var(--success-border);background:rgba(28,97,84,.1)}
.terminal-field-state.error{color:var(--error);border-color:rgba(169,50,50,.35);background:rgba(169,50,50,.07)}
.terminal-field-state.ambiguous{color:#c8922a;background:rgba(200,146,42,.12);border-color:rgba(200,146,42,.3)}
.terminal-q{font-family:var(--font-mono);font-size:11.5px;color:var(--text-secondary);margin-bottom:.55rem;line-height:1.55;letter-spacing:.02em}
.terminal-input{width:100%;background:rgba(0,0,0,.55);border:1px solid rgba(179,18,23,.18);color:var(--text-main);padding:.72rem 1rem;font-family:var(--font-mono);font-size:13px;outline:none;transition:var(--transition);-webkit-appearance:none;letter-spacing:.05em;resize:vertical;min-height:62px;line-height:1.55;border-radius:0;}
.terminal-input:focus{border-color:var(--red-dark);box-shadow:0 0 14px rgba(179,18,23,.14)}
.terminal-input:read-only{opacity:.6;cursor:not-allowed}
.terminal-feedback-line{font-family:var(--font-mono);font-size:10.5px;margin-top:.38rem;letter-spacing:.05em;display:none}
.terminal-feedback-line.ok{color:var(--success-text);display:block}
.terminal-feedback-line.error{color:var(--error);display:block}
.terminal-feedback-line.ambiguous{color:#c8922a;background:rgba(200,146,42,.07);border-left:2px solid #c8922a;padding:.4rem .6rem;margin-top:.3rem;font-size:11.5px;display:block}
.terminal-global-feedback{margin-top:1rem;padding:1.1rem 1.25rem;border-left:2px solid;font-family:var(--font-mono);font-size:11px;line-height:1.7;letter-spacing:.04em;display:none;white-space:pre-line;overflow-wrap:anywhere;word-break:normal;}
.terminal-global-feedback.show{display:block}
.terminal-global-feedback.ok{color:var(--success-text);border-color:var(--success-border);background:rgba(18,58,50,.12)}
.terminal-global-feedback.warn{color:var(--carta);border-color:var(--amber);background:rgba(183,131,59,.06)}
.terminal-global-feedback.ambiguous{background:rgba(200,146,42,.06);border-color:rgba(200,146,42,.45);color:#c8922a;font-size:12px;line-height:1.6;}
.terminal-global-feedback.score-exhausted-feedback{border-color:var(--red-logicus);background:rgba(167,25,32,.1);color:var(--text-secondary);white-space:normal;max-width:100%}
.terminal-global-feedback.score-exhausted-feedback strong{color:var(--red-highlight);font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.terminal-global-feedback.score-game-over-feedback{border-color:var(--red-logicus);background:rgba(167,25,32,.14);color:var(--text-secondary);white-space:normal;max-width:100%}
.terminal-global-feedback.score-game-over-feedback strong{color:var(--red-highlight);font-weight:500;letter-spacing:.08em;text-transform:uppercase}
.terminal-global-feedback.score-low-feedback{border-color:var(--amber);background:rgba(183,131,59,.09);color:var(--text-secondary);white-space:normal;max-width:100%}
.terminal-global-feedback.score-low-feedback strong{color:var(--warning);font-weight:500;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:520px){.terminal-global-feedback.score-exhausted-feedback{font-size:10.5px;line-height:1.75;letter-spacing:.02em;padding:.95rem 1rem}.terminal-global-feedback.score-exhausted-feedback strong{display:block;margin-bottom:.25rem;letter-spacing:.06em}}
@media(max-width:520px){.terminal-global-feedback.score-game-over-feedback{font-size:10.5px;line-height:1.75;letter-spacing:.02em;padding:.95rem 1rem}.terminal-global-feedback.score-game-over-feedback strong{display:block;margin-bottom:.25rem;letter-spacing:.06em}}
@media(max-width:520px){.terminal-global-feedback.score-low-feedback{font-size:10.5px;line-height:1.75;letter-spacing:.02em;padding:.95rem 1rem}.terminal-global-feedback.score-low-feedback strong{display:block;margin-bottom:.25rem;letter-spacing:.06em}}
.terminal-submit{width:100%;background:var(--red-dark);color:var(--text-main);border:1px solid var(--red-logicus);padding:.95rem 1.5rem;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:var(--transition);margin-top:.5rem;}
.terminal-submit:hover{background:var(--red-logicus);box-shadow:0 0 24px rgba(179,18,23,.28)}
.terminal-submit:disabled{opacity:.4;cursor:not-allowed}
.terminal-support-link{width:100%;background:rgba(183,131,59,.06);color:var(--carta);border:1px solid rgba(183,131,59,.38);padding:.78rem 1.2rem;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:var(--transition);margin-top:1rem;}
.terminal-support-link:hover{border-color:var(--amber);background:rgba(183,131,59,.12);color:var(--text-main)}
.terminal-confirmed{background:rgba(18,58,50,.2);border:1px solid var(--success-border);padding:1.25rem;margin-top:.75rem;text-align:center;display:none;}
.terminal-confirmed.visible{display:block}
.terminal-confirmed-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.28em;color:var(--success-border);text-transform:uppercase;margin-bottom:.4rem}
.terminal-confirmed-msg{font-size:12.5px;color:var(--text-secondary)}

/* LOCK BANNER (terminale bloccato) */
.lock-banner{background:var(--panel-2);border:1px solid var(--border-red);border-left:3px solid var(--red-dark);padding:1.25rem 1.5rem;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--text-meta);margin-bottom:1.5rem;line-height:1.7;}
.lock-banner strong{color:var(--red-highlight);display:block;margin-bottom:.4rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;}

/* VIEWER */
.viewer-overlay{position:fixed;inset:0;background:rgba(5,5,6,0.88);backdrop-filter:blur(4px);z-index:500;display:none;align-items:flex-start;justify-content:center;padding:1rem;overflow-y:auto;}
.viewer-overlay.open{display:flex}
.viewer-card{background:var(--panel-2);border:1px solid var(--border-gold);max-width:700px;width:100%;max-height:calc(100vh - 2rem);display:flex;flex-direction:column;box-shadow:var(--shadow-deep);margin:auto;}
.viewer-back-bar{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1.25rem;border-bottom:1px solid var(--border-white);flex-shrink:0;gap:.5rem;flex-wrap:wrap;}
.viewer-doc-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.viewer-doc-code{font-family:var(--font-mono);font-size:10px;color:var(--amber);letter-spacing:.2em}
.viewer-doc-cat{font-family:var(--font-mono);font-size:9px;color:var(--text-dim);letter-spacing:.15em;text-transform:uppercase}
.viewer-class-badge{font-family:var(--font-mono);font-size:8px;letter-spacing:.22em;color:var(--red-logicus);border:1px solid var(--border-red);padding:2px 7px;text-transform:uppercase}
.viewer-consulted{font-family:var(--font-mono);font-size:9px;color:var(--success-border);letter-spacing:.15em}
.viewer-close-btn{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.2em;color:var(--text-meta);cursor:pointer;background:var(--panel-1);border:1px solid var(--border-white);padding:4px 12px;text-transform:uppercase;transition:var(--transition);}
.viewer-close-btn:hover{color:var(--text-main)}
.viewer-body{overflow-y:auto;padding:1.75rem;flex:1}
.viewer-title{font-size:clamp(1.5rem,3.5vw,2.3rem);font-weight:300;margin-bottom:1.5rem;color:var(--text-main)}
.evidence-frame{position:relative;display:block;width:100%;margin-bottom:1.5rem;border:1px solid rgba(185,161,116,.22);box-shadow:0 6px 36px rgba(0,0,0,.65);}
.evidence-frame img{width:100%;display:block;filter:contrast(1.06) brightness(.88) saturate(.65) sepia(.1)}
.evidence-frame-label{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(5,7,11,.92));padding:.75rem 1rem;font-family:var(--font-mono);font-size:8px;letter-spacing:.2em;color:var(--text-dim);text-transform:uppercase;display:flex;align-items:center;justify-content:space-between;}
.evidence-no-image{background:var(--panel-2);border:1px dashed rgba(185,161,116,.1);padding:1.5rem;text-align:center;margin-bottom:1.5rem;}
.evidence-no-image p{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.2em;color:var(--text-dim);text-transform:uppercase;margin-bottom:.35rem}
.evidence-no-image small{font-size:12px;color:var(--text-dim)}
.audio-file-hero{position:relative;margin-bottom:1rem;background:linear-gradient(180deg,rgba(4,6,9,.96),rgba(15,9,10,.98));border:1px solid rgba(167,25,32,.26);border-left:3px solid var(--red-logicus);padding:1.15rem;box-shadow:0 6px 32px rgba(0,0,0,.48);overflow:hidden}
.audio-file-hero::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 13px),repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 15px);pointer-events:none}
.audio-file-head{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.audio-file-kicker{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.26em;color:var(--red-highlight);text-transform:uppercase;margin-bottom:.35rem}
.audio-file-name{font-family:var(--font-serif);font-size:1.35rem;color:var(--text-main);line-height:1.25}
.audio-file-format{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;color:var(--carta);border:1px solid rgba(183,131,59,.42);padding:.35rem .5rem;background:rgba(183,131,59,.06)}
.audio-wave-large{height:78px;margin:.25rem 0 1rem}
.audio-wave-large i{box-shadow:0 0 12px rgba(167,25,32,.18)}
.audio-file-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem}
.audio-file-grid div{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.06);padding:.65rem .7rem;min-width:0}
.audio-file-grid span{display:block;font-family:var(--font-mono);font-size:7.5px;letter-spacing:.22em;color:var(--text-dim);text-transform:uppercase;margin-bottom:.3rem}
.audio-file-grid strong{display:block;font-family:var(--font-mono);font-size:9.5px;line-height:1.4;color:var(--text-secondary);font-weight:400;overflow-wrap:anywhere}
@media(max-width:720px){.audio-file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audio-file-head{flex-direction:column}.audio-wave-large{height:58px}}
.content-panel{background:var(--panel-1);border:1px solid var(--border-gold);margin-bottom:.75rem;overflow:hidden}
.content-panel-hdr{padding:.8rem 1.15rem;border-bottom:1px solid var(--border-gold);display:flex;align-items:center;justify-content:space-between;cursor:pointer;user-select:none;}
.content-panel-hdr:hover{background:rgba(255,255,255,.02)}
.content-panel-lbl{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.25em;color:var(--carta);text-transform:uppercase}
.content-panel-arrow{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);transition:var(--transition)}
.content-panel.open .content-panel-arrow{transform:rotate(180deg)}
.content-panel-body{padding:1.15rem;display:none}
.content-panel.open .content-panel-body{display:block}
.audio-evidence{display:grid;gap:.9rem}
.audio-evidence-meta{border-left:2px solid var(--red-logicus);background:rgba(167,25,32,.06);padding:.85rem 1rem}
.audio-evidence-kicker{font-family:var(--font-mono);font-size:8px;letter-spacing:.24em;color:var(--red-logicus);text-transform:uppercase;margin-bottom:.35rem}
.audio-evidence-label{font-family:var(--font-serif);font-size:1.05rem;color:var(--text-main);line-height:1.35}
.audio-evidence-detail{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);line-height:1.6;margin-top:.4rem;text-transform:uppercase;letter-spacing:.08em}
.audio-evidence-player{display:block;width:100%;accent-color:var(--amber);filter:sepia(.22) saturate(.78) contrast(1.05)}
.transcript-text{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary);line-height:1.85;white-space:pre-wrap;letter-spacing:.01em}
.fascicolo-note{border-left:2px solid var(--border-gold);background:rgba(185,161,116,.03);padding:.9rem 1.1rem;font-family:var(--font-serif);font-style:italic;font-size:.95rem;color:var(--text-secondary);line-height:1.7;}
.viewer-actions{display:flex;gap:.75rem;padding:.9rem 1.25rem;border-top:1px solid var(--border-white);flex-shrink:0;flex-wrap:wrap}

/* SUPPORT */
.support-intro-panel{background:rgba(183,131,59,.04);border:1px solid var(--border-gold);border-left:2px solid var(--amber);padding:1.1rem 1.25rem;margin-bottom:1.5rem;}
.support-intro-panel p{font-size:13.5px;color:var(--text-secondary);line-height:1.7}
.support-intro-panel strong{color:var(--warning);font-weight:500}

/* HINTS */
.hint-accordion{background:var(--panel-1);border:1px solid var(--border-gold);margin-bottom:.75rem;}
.hint-accordion.open{border-color:rgba(183,131,59,.28)}
.hint-hdr{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.15rem;cursor:pointer;user-select:none;transition:var(--transition);}
.hint-hdr:hover{background:rgba(255,255,255,.025)}
.hint-hdr-left{display:flex;flex-direction:column;gap:.25rem}
.hint-puzzle-id{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.22em;color:var(--amber);text-transform:uppercase}
.hint-puzzle-name{font-size:13.5px;color:var(--text-main);font-family:var(--font-serif)}
.hint-cost-total{font-family:var(--font-mono);font-size:9px;color:var(--text-dim);letter-spacing:.1em}
.hint-cost-total .spent{color:var(--warning)}
.hint-hdr-right{display:flex;align-items:center;gap:.75rem}
.hint-arrow{font-family:var(--font-mono);font-size:10px;color:var(--text-dim);transition:var(--transition)}
.hint-accordion.open .hint-arrow{transform:rotate(180deg)}
.hint-body{padding:0 1.15rem 1.1rem;border-top:1px solid var(--border-white-soft);display:none;}
.hint-accordion.open .hint-body{display:block}
.hint-scope{font-family:var(--font-serif);font-style:italic;font-size:.95rem;color:var(--text-meta);line-height:1.6;padding:.75rem 0;border-bottom:1px solid var(--border-white-soft);margin-bottom:.5rem;}
.hint-levels-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem}
.hint-level-row{display:flex;gap:.85rem;align-items:flex-start;padding:.65rem .85rem;background:rgba(0,0,0,.18);border:1px solid var(--border-white-soft);}
.hint-level-row.used{border-color:rgba(183,131,59,.2);background:rgba(183,131,59,.04)}
.hint-level-meta{display:flex;flex-direction:column;gap:.25rem;min-width:80px;flex-shrink:0}
.hint-level-name{font-family:var(--font-mono);font-size:7.5px;letter-spacing:.15em;color:var(--text-dim);text-transform:uppercase;line-height:1.4}
.hint-level-cost{font-family:var(--font-mono);font-size:10px;color:var(--amber);letter-spacing:.05em}
.hint-level-content{flex:1}
.hint-reveal-btn{background:rgba(183,131,59,.08);border:1px solid rgba(183,131,59,.2);color:var(--text-meta);padding:.42rem .9rem;font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:var(--transition);width:100%;text-align:left;}
.hint-reveal-btn:hover{color:var(--text-secondary);background:rgba(183,131,59,.13)}
.hint-text{font-family:var(--font-serif);font-size:1rem;font-style:italic;color:var(--text-secondary);line-height:1.65;display:none;padding:.35rem 0}
.hint-text.revealed{display:block}
.hint-used-label{font-family:var(--font-mono);font-size:8px;letter-spacing:.18em;color:var(--warning);text-transform:uppercase;margin-top:.3rem;display:none}
.hint-used-label.visible{display:block}
.hints-group-label{font-family:var(--font-mono);font-size:8px;letter-spacing:.28em;color:var(--red-logicus);text-transform:uppercase;padding:.5rem 0 .75rem;border-bottom:1px solid var(--border-white-soft);margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;}
.hints-group-wrapper{margin-bottom:.25rem}
.hints-group-badge{font-family:var(--font-mono);font-size:7px;letter-spacing:.22em;padding:2px 7px;text-transform:uppercase;}
.hints-group-badge.unlocked{background:rgba(90,180,100,.12);color:var(--success-text);border:1px solid rgba(90,180,100,.25)}
.hints-group-badge.locked{background:rgba(167,25,32,.1);color:var(--red-logicus);border:1px solid rgba(167,25,32,.25)}

/* SCORE / ESITO */
.score-card{max-width:560px}
.score-main-panel{background:var(--panel-1);border:1px solid var(--border-white);padding:2.5rem;text-align:center;position:relative;margin-bottom:.9rem;}
.score-main-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--red-logicus),transparent)}
.score-number{font-family:var(--font-serif);font-size:clamp(4rem,10vw,7rem);font-weight:300;color:var(--carta);line-height:1;margin-bottom:.2rem}
.score-number.good{color:var(--success-text)}
.score-classlabel{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--text-meta);margin-bottom:.2rem}
.score-classname{font-family:var(--font-serif);font-size:clamp(1.3rem,3vw,1.8rem);font-style:italic;color:var(--red-highlight);margin-bottom:1.5rem}
.score-classname.good{color:var(--success-text)}
.score-breakdown{background:var(--panel-2);border:1px solid var(--border-white);padding:1.15rem;margin-bottom:.9rem}
.bd-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem 0;font-size:13px;color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.03);}
.bd-row:last-child{border-bottom:none}
.bd-row.total{font-family:var(--font-mono);font-size:13.5px;color:var(--text-main);padding-top:.7rem;margin-top:.2rem;border-top:1px solid var(--border-white);border-bottom:none}
.bd-val{font-family:var(--font-mono)}
.bd-val.penalty{color:var(--error)}

/* FINAL SCENE */
.final-scene{background:var(--panel-1);border:1px solid var(--border-gold);border-top:1px solid var(--amber);padding:2.5rem;position:relative;text-align:center;box-shadow:0 0 50px rgba(167,25,32,.08),var(--shadow-deep);margin-bottom:1.25rem;}
.final-scene::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--amber),transparent)}
.final-tag{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.35em;color:var(--success-text);text-transform:uppercase;margin-bottom:1.25rem;display:flex;align-items:center;justify-content:center;gap:.6rem;}
.final-tag::before,.final-tag::after{content:'';width:30px;height:1px;background:var(--success-border)}
.final-headline{font-size:clamp(1.6rem,4vw,2.8rem);font-weight:300;color:var(--text-main);line-height:1.1;margin-bottom:.9rem}
.final-body{font-family:var(--font-serif);font-style:italic;font-size:1.05rem;color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.75;max-width:520px;margin-left:auto;margin-right:auto}
.final-divider{width:48px;height:1px;background:var(--border-white);margin:0 auto 1.5rem}
.final-narrative{margin:1.5rem auto;max-width:560px;text-align:left;}
.final-narrative-label{font-family:var(--font-mono);font-size:8px;letter-spacing:.3em;color:var(--carta);text-transform:uppercase;margin-bottom:.75rem;text-align:center;}
.final-narrative-text{font-family:var(--font-serif);font-style:italic;font-size:1.05rem;color:var(--text-secondary);line-height:1.8;}
.final-tease{margin:1.5rem auto;max-width:520px;text-align:left;background:rgba(5,7,11,.6);border:1px solid rgba(167,25,32,.18);padding:1.5rem 1.75rem;position:relative;}
.final-tease::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(167,25,32,.4),transparent)}
.final-tease-label{font-family:var(--font-mono);font-size:8px;letter-spacing:.3em;color:var(--red-highlight);text-transform:uppercase;margin-bottom:.85rem;text-align:center;}
.final-tease-text{font-family:var(--font-serif);font-style:italic;font-size:1rem;color:var(--text-secondary);line-height:1.75;}
.final-tease-firm{font-family:var(--font-mono);font-size:9.5px;color:var(--text-meta);letter-spacing:.18em;text-align:right;margin-top:1.25rem;padding-top:.85rem;border-top:1px solid var(--border-white-soft);text-transform:uppercase;}
.final-actions{margin-top:1.5rem;display:flex;justify-content:center;gap:.75rem;flex-wrap:wrap;}

/* MISC */
.divider{border:none;border-top:1px solid var(--border-white);margin:1.5rem 0}
.app-footer{background:var(--bg-secondary);border-top:1px solid var(--border-gold);padding:.9rem 2rem;font-size:11px;color:var(--text-dim);text-align:center;line-height:1.5;font-style:italic;flex-shrink:0}
.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%) translateY(16px);background:var(--panel-2);border:1px solid var(--border-white);padding:.7rem 1.4rem;font-family:var(--font-mono);font-size:10.5px;line-height:1.55;letter-spacing:.06em;color:var(--text-main);z-index:2000;opacity:0;transition:all .3s ease;pointer-events:none;text-align:center;white-space:normal;overflow-wrap:anywhere;width:max-content;max-width:min(560px,90vw);}
.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.success{border-color:rgba(90,180,100,0.4);color:var(--success-text)}
.toast.error{border-color:var(--border-red);color:var(--red-highlight)}
@media(max-width:520px){.toast{bottom:1rem;width:calc(100vw - 2rem);max-width:calc(100vw - 2rem);padding:.75rem 1rem;font-size:10px;line-height:1.6;letter-spacing:.03em}}
#confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:900;display:none;align-items:center;justify-content:center;padding:1rem;}
#confirm-overlay.visible{display:flex}
.confirm-box{background:var(--panel-1);border:1px solid rgba(179,18,23,.28);padding:2rem;max-width:400px;width:100%;box-shadow:var(--shadow-deep)}
.confirm-box h3{font-size:1.25rem;margin-bottom:.65rem;color:var(--text-main)}
.confirm-box p{font-size:13px;color:var(--text-secondary);margin-bottom:1.4rem;line-height:1.65}
.confirm-actions{display:flex;gap:.7rem;justify-content:flex-end}
.game-over-overlay{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:1100;display:none;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(3px)}
.game-over-overlay.visible{display:flex}
.game-over-box{width:min(520px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;background:var(--panel-1);border:1px solid var(--border-red);border-left:3px solid var(--red-logicus);box-shadow:var(--shadow-deep);padding:2rem}
.game-over-kicker{font-family:var(--font-mono);font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--red-highlight);margin-bottom:.7rem}
.game-over-box h3{font-size:1.35rem;line-height:1.25;color:var(--text-main);margin-bottom:.8rem}
.game-over-box p{font-size:13px;line-height:1.75;color:var(--text-secondary);margin-bottom:1.5rem;overflow-wrap:anywhere}
.game-over-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap}
.game-over-actions .btn-ghost,.game-over-actions .btn-primary{white-space:normal;text-align:center;min-height:42px}
@media(max-width:520px){.game-over-overlay{align-items:center;padding:.85rem}.game-over-box{padding:1.25rem;max-height:calc(100vh - 1.7rem)}.game-over-box h3{font-size:1.08rem}.game-over-box p{font-size:11.5px;line-height:1.75}.game-over-actions{flex-direction:column}.game-over-actions .btn-ghost,.game-over-actions .btn-primary{width:100%;font-size:9px;letter-spacing:.12em;padding:.75rem .9rem}}

/* MOBILE INV DRAWER */
.mobile-inv-btn{display:none;position:fixed;bottom:1.25rem;right:1.25rem;z-index:90;background:var(--red-logicus);color:var(--text-main);border:none;padding:.7rem 1rem;cursor:pointer;font-family:var(--font-mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;box-shadow:var(--glow-red);}
@media(max-width:1180px){.mobile-inv-btn{display:block}}
.mobile-inv-drawer{display:none;position:fixed;inset:0;z-index:150;background:rgba(5,5,6,.75);backdrop-filter:blur(3px);}
.mobile-inv-drawer.open{display:block}
.mobile-inv-panel{position:absolute;right:0;top:0;bottom:0;width:min(320px,90vw);background:var(--bg-secondary);border-left:1px solid var(--border-gold);overflow-y:auto}
.mobile-inv-close{display:flex;justify-content:flex-end;padding:.75rem 1rem;border-bottom:1px solid var(--border-white)}

@keyframes fadeInUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.anim-in{animation:fadeInUp .32s ease forwards}

/* ============================================================
   RICH SKIN — atto2 + atto3
   Override e nuovi blocchi attivi solo con <body class="skin-rich">.
   ============================================================ */

/* Schermata accesso — variante rich (amber, layout statico, no overlay decorativi) */
body.skin-rich .access-screen{position:relative;inset:auto;z-index:2;background:transparent;min-height:100vh;padding:2rem 1rem;text-align:center;}
body.skin-rich .access-screen::before,
body.skin-rich .access-screen::after{content:none;display:none;}
body.skin-rich .access-eyebrow{letter-spacing:.32em;margin-bottom:1.25rem;text-align:inherit;position:static;z-index:auto;}
body.skin-rich .access-title{font-family:var(--font-serif);font-size:clamp(2.5rem,6vw,4rem);line-height:normal;text-align:inherit;position:static;z-index:auto;}
body.skin-rich .access-subtitle{font-family:var(--font-mono);font-style:normal;font-size:11px;letter-spacing:.28em;color:var(--carta);text-transform:uppercase;margin-bottom:.6rem;text-align:inherit;position:static;z-index:auto;}
body.skin-rich .access-act{font-family:var(--font-serif);font-style:italic;font-size:1.15rem;letter-spacing:normal;color:var(--text-secondary);text-transform:none;margin-bottom:2.5rem;text-align:inherit;position:static;z-index:auto;}
body.skin-rich .access-box{border-top:2px solid var(--amber);padding:2rem 2.25rem;text-align:left;box-shadow:var(--shadow-panel);z-index:auto;}
body.skin-rich .access-box::before{content:none;display:none;}
body.skin-rich .access-classification{color:var(--amber);border:none;background:none;padding:0;margin-bottom:1rem;text-align:center;letter-spacing:.3em;}
body.skin-rich .access-box p{font-size:13px;line-height:1.65;margin-bottom:1.25rem;}
body.skin-rich .access-field label{font-size:8.5px;letter-spacing:.22em;margin-bottom:.45rem;}
body.skin-rich .access-input{border:1px solid var(--border-white);padding:.7rem 1rem;font-size:13px;letter-spacing:.06em;text-transform:none;}
body.skin-rich .access-input:focus{border-color:var(--amber);box-shadow:0 0 14px rgba(183,131,59,.14);}
body.skin-rich .access-error{font-size:10px;letter-spacing:.06em;margin:.4rem 0 .8rem;min-height:14px;}
body.skin-rich .access-hint{font-size:10px;letter-spacing:.04em;margin-top:.3rem;}
body.skin-rich .access-footer{font-family:var(--font-mono);font-size:9px;font-style:normal;letter-spacing:.12em;text-transform:uppercase;max-width:none;text-align:inherit;position:static;z-index:auto;}

/* Indice label — rich la mostra sempre, senza media query */
body.skin-rich .indice-label{display:inline;}

/* Doc card hover — rich usa l'amber al posto del red */
body.skin-rich .doc-card:hover{border-color:rgba(183,131,59,.35);box-shadow:0 4px 28px rgba(0,0,0,.55),0 0 0 1px rgba(183,131,59,.1);}
body.skin-rich .doc-card:hover::before{background:linear-gradient(90deg,var(--amber),transparent);}

/* Docs section label — rich usa text-meta invece del carta accentato */
body.skin-rich .docs-section-label{font-size:8px;letter-spacing:.28em;color:var(--text-meta);text-transform:uppercase;margin:.5rem 0 .85rem;padding-bottom:0;border-bottom:none;}

/* Banner / barre di stato terminale (solo rich) */
body.skin-rich .locked-banner{background:var(--panel-2);border:1px solid var(--border-red);padding:1.25rem 1.5rem;margin:1.5rem 0;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
body.skin-rich .locked-banner-icon{font-size:1.2rem;color:var(--text-dim);flex-shrink:0;}
body.skin-rich .locked-banner-text{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;color:var(--text-secondary);line-height:1.6;}
body.skin-rich .locked-banner-text strong{color:var(--carta);}
body.skin-rich .terminal-unlock-bar{margin-top:1.5rem;background:rgba(18,58,50,.15);border:1px solid var(--success-border);padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;}
body.skin-rich .terminal-unlock-msg{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--success-text);}

/* Promemoria card (solo rich) */
body.skin-rich .promemoria-card{background:var(--panel-2);border:1px solid var(--border-gold);border-top:2px solid var(--amber);padding:1.75rem 2rem;position:relative;margin:2rem 0;}
body.skin-rich .promemoria-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--amber),transparent);}
body.skin-rich .promemoria-label{font-family:var(--font-mono);font-size:8px;letter-spacing:.32em;color:var(--amber);text-transform:uppercase;margin-bottom:1rem;}
body.skin-rich .promemoria-text{font-family:var(--font-serif);font-style:italic;font-size:1.1rem;color:var(--text-secondary);line-height:1.8;}
body.skin-rich .promemoria-text p{margin-bottom:.8rem;}
body.skin-rich .promemoria-text p:last-child{margin-bottom:0;}
body.skin-rich .promemoria-sig{font-family:var(--font-mono);font-size:10px;color:var(--text-meta);letter-spacing:.12em;text-align:right;margin-top:1.25rem;padding-top:.9rem;border-top:1px solid var(--border-white-soft);}

/* Terminale rich (frame + topbar + body separati) */
body.skin-rich .terminal-frame{background:rgba(4,3,2,0);border:1px solid rgba(167,25,32,.3);position:relative;box-shadow:0 0 50px rgba(179,18,23,.06),var(--shadow-deep);max-width:700px;}
body.skin-rich .terminal-frame::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--red-dark),var(--red-logicus),var(--red-dark));}
body.skin-rich .terminal-topbar{display:flex;align-items:center;gap:.6rem;padding:.9rem 1.25rem;border-bottom:1px solid rgba(179,18,23,.12);background:rgba(0,0,0,.3);}
body.skin-rich .terminal-pulse{width:7px;height:7px;border-radius:50%;background:var(--red-dark);box-shadow:0 0 7px var(--red-dark);animation:pulse-dot 2s infinite;}
body.skin-rich .terminal-sys-label{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.25em;color:var(--carta);text-transform:uppercase;}
body.skin-rich .terminal-body{padding:1.5rem;}
/* In rich, .terminal-field è solo spaziatura: nessun pannello dedicato */
body.skin-rich .terminal-field{background:none;border:none;padding:0;margin-bottom:1.5rem;}
/* In rich .terminal-input è un input semplice (no textarea) */
body.skin-rich .terminal-input{resize:none;min-height:0;line-height:normal;border-radius:0;}
body.skin-rich .terminal-textarea{width:100%;background:rgba(0,0,0,.55);border:1px solid rgba(179,18,23,.18);color:var(--text-main);padding:.8rem 1rem;font-family:var(--font-mono);font-size:11.5px;outline:none;transition:var(--transition);resize:vertical;min-height:100px;line-height:1.65;-webkit-appearance:none;}
body.skin-rich .terminal-textarea:focus{border-color:var(--red-dark);box-shadow:0 0 14px rgba(179,18,23,.14);}
body.skin-rich .terminal-feedback-line.ambiguous{font-size:12px;border-radius:2px;}
body.skin-rich .terminal-global-feedback.ambiguous{background:rgba(200,146,42,.06);border:1px solid rgba(200,146,42,.25);color:#c8922a;padding:1rem 1.25rem;margin-top:1rem;font-size:13px;line-height:1.6;border-radius:2px;}

/* Viewer rich — centrato e con max-height fissa */
body.skin-rich .viewer-overlay{align-items:center;overflow-y:visible;}
body.skin-rich .viewer-card{max-height:90vh;margin:0;}
body.skin-rich .viewer-back-bar{gap:0;flex-wrap:nowrap;}

/* Hint scope rich — semplice italic senza separator inferiore */
body.skin-rich .hint-scope{font-family:var(--font-mono);font-style:italic;font-size:12px;color:var(--text-meta);line-height:1.55;margin-top:.7rem;padding:0;border-bottom:none;margin-bottom:0;}

/* Hints group label/badge rich — niente layout flex */
body.skin-rich .hints-group-label{display:block;}
body.skin-rich .hints-group-badge{border-radius:2px;vertical-align:middle;margin-left:.6rem;}

/* Ipotesi finale (solo rich) */
body.skin-rich .final-ipotesi-box{background:rgba(183,131,59,.05);border:1px solid var(--border-gold);padding:1.25rem 1.5rem;margin:0 auto 1.5rem;max-width:520px;text-align:left;}
body.skin-rich .final-ipotesi-label{font-family:var(--font-mono);font-size:8px;letter-spacing:.28em;color:var(--amber);text-transform:uppercase;margin-bottom:.6rem;}
body.skin-rich .final-ipotesi-text{font-size:13.5px;color:var(--text-secondary);line-height:1.7;}

/* ============================================================
   ATTO 3 — sezioni esclusive (casella, email, verifica)
   ============================================================ */
body.atto-3 .casella-panel{background:var(--panel-2);border:1px solid var(--border-gold);border-top:2px solid var(--red-dark);padding:1.5rem;margin:1.5rem 0;position:relative;}
body.atto-3 .casella-eyebrow{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.28em;color:var(--red-highlight);text-transform:uppercase;margin-bottom:.6rem;}
body.atto-3 .casella-title{font-family:var(--font-serif);font-size:1.4rem;color:var(--text-main);margin-bottom:.5rem;font-weight:400;}
body.atto-3 .casella-desc{font-size:13.5px;color:var(--text-secondary);line-height:1.65;margin-bottom:1rem;}
body.atto-3 .casella-format-info{font-family:var(--font-mono);font-size:10.5px;color:var(--text-meta);line-height:1.7;background:rgba(0,0,0,.25);border-left:2px solid var(--amber);padding:.7rem 1rem;margin-bottom:1rem;}
body.atto-3 .casella-input-row{display:flex;gap:.6rem;margin-bottom:.6rem;flex-wrap:wrap;}
body.atto-3 .casella-input{flex:1;min-width:160px;background:rgba(0,0,0,.55);border:1px solid var(--border-red);color:var(--text-main);padding:.7rem 1rem;font-family:var(--font-mono);font-size:14px;letter-spacing:.2em;outline:none;text-align:center;transition:var(--transition);}
body.atto-3 .casella-input:focus{border-color:var(--red-logicus);box-shadow:0 0 14px var(--red-glow);}
body.atto-3 .casella-input:disabled{opacity:.5;}
body.atto-3 .casella-msg{font-family:var(--font-mono);font-size:11px;line-height:1.6;padding:.5rem 0;min-height:1.4em;}
body.atto-3 .casella-msg.success{color:var(--success-text);}
body.atto-3 .casella-msg.error{color:var(--error);}
body.atto-3 .casella-msg.blocked{color:var(--text-dim);font-style:italic;}
body.atto-3 .casella-hint{font-family:var(--font-mono);font-size:10px;color:var(--amber);letter-spacing:.05em;margin-top:.5rem;font-style:italic;}
body.atto-3 .casella-note{font-family:var(--font-mono);font-size:9.5px;color:var(--text-dim);font-style:italic;margin-top:.8rem;padding-top:.6rem;border-top:1px solid var(--border-white-soft);}
body.atto-3 .email-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem;margin-top:.5rem;}
body.atto-3 .email-card{background:var(--panel-1);border:1px solid var(--border-gold);padding:1rem 1.1rem;cursor:pointer;transition:var(--transition);position:relative;}
body.atto-3 .email-card:hover{border-color:rgba(183,131,59,.35);background:var(--panel-2);}
body.atto-3 .email-card.consulted{border-color:var(--amber);opacity:.85;}
body.atto-3 .email-card-id{font-family:var(--font-mono);font-size:9.5px;color:var(--amber);letter-spacing:.2em;margin-bottom:.45rem;}
body.atto-3 .email-card-obj{font-family:var(--font-serif);font-size:1.05rem;color:var(--text-main);margin-bottom:.4rem;line-height:1.3;}
body.atto-3 .email-card-cat{font-family:var(--font-mono);font-size:8.5px;color:var(--text-dim);letter-spacing:.22em;text-transform:uppercase;}
body.atto-3 .email-card-consulted{font-family:var(--font-mono);font-size:9px;color:var(--amber);letter-spacing:.12em;margin-top:.4rem;text-transform:uppercase;}
body.atto-3 .verifica-notes{display:flex;flex-direction:column;gap:1rem;}
body.atto-3 .verifica-note-card{background:var(--panel-1);border:1px solid var(--border-gold);border-left:2px solid var(--amber);padding:1.25rem 1.5rem;position:relative;}
body.atto-3 .verifica-note-id{font-family:var(--font-mono);font-size:8.5px;letter-spacing:.25em;color:var(--amber);text-transform:uppercase;margin-bottom:.45rem;}
body.atto-3 .verifica-note-title{font-family:var(--font-serif);font-size:1.15rem;color:var(--text-main);margin-bottom:.65rem;font-weight:400;}
body.atto-3 .verifica-note-text{font-family:var(--font-mono);font-size:11.5px;color:var(--text-secondary);line-height:1.75;white-space:pre-wrap;background:rgba(0,0,0,.18);border-left:1px solid var(--border-white-soft);padding:.8rem 1rem;margin-bottom:.75rem;}
body.atto-3 .verifica-note-nota{font-family:var(--font-serif);font-style:italic;font-size:.95rem;color:var(--text-meta);line-height:1.65;border-top:1px solid var(--border-white-soft);padding-top:.6rem;}
