:root{
  --ink:#102b3c; --ink-2:#173f56; --river:#2e8fb7; --river-2:#7ec5dc;
  --sand:#e6c985; --sand-2:#f7efd9; --clay:#a85642; --papyrus:#f8f4e8;
  --green:#6b9c73; --violet:#7b6bb2; --white:#fff; --muted:#60717b;
  --line:#d9e2e6; --shadow:0 20px 60px rgba(16,43,60,.12); --radius:24px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#fbfaf5 0,#f4f8f8 55%,#fbfaf5 100%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.58}
a{color:inherit} img{max-width:100%;display:block}
button,input{font:inherit}
.skip{position:fixed;left:12px;top:-60px;z-index:200;background:#fff;padding:.7rem 1rem;border-radius:10px;box-shadow:var(--shadow)}.skip:focus{top:12px}
.topbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:24px;min-height:66px;padding:10px clamp(18px,4vw,64px);background:rgba(251,250,245,.88);backdrop-filter:blur(15px);border-bottom:1px solid rgba(16,43,60,.09)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:.03em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--ink);color:#fff;font-size:.9rem}
.nav{display:flex;gap:8px;margin-left:auto}.nav a{text-decoration:none;padding:.52rem .78rem;border-radius:999px;font-size:.92rem;font-weight:700;color:#365363}.nav a:hover,.nav a:focus-visible{background:#e8f2f5;color:var(--ink)}
.install,.button{border:0;cursor:pointer;border-radius:999px;padding:.78rem 1.12rem;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:.2s transform,.2s box-shadow,.2s background}.install{background:var(--ink);color:#fff}.button:hover,.install:hover{transform:translateY(-2px)}
.section{padding:clamp(64px,8vw,110px) clamp(20px,6vw,92px);max-width:1500px;margin:auto}.hero{min-height:calc(100svh - 66px);display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(35px,6vw,90px);overflow:hidden}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.78rem;font-weight:900;color:var(--clay);margin:0 0 12px}.hero h1{font-size:clamp(3.4rem,8vw,7.4rem);line-height:.88;letter-spacing:-.065em;margin:.05em 0 .22em}.hero h1 span{color:var(--river)}.lead{font-size:clamp(1.1rem,2vw,1.35rem);max-width:760px;color:#385463}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0}.primary{background:var(--ink);color:#fff;box-shadow:0 12px 30px rgba(16,43,60,.18)}.ghost{border:1px solid #b9c9cf;background:rgba(255,255,255,.55)}
.keychain,.flow,.model{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.keychain{margin-top:30px}.keychain span,.flow span,.model span{padding:.45rem .65rem;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:.83rem;font-weight:800}.keychain b,.flow b,.model b{color:var(--river)}
.hero-art{position:relative;min-height:560px;border-radius:42px;background:radial-gradient(circle at 77% 22%,rgba(230,201,133,.5) 0 11%,transparent 12%),linear-gradient(155deg,#e6f2f3 0%,#f5ead0 54%,#efe0b7 100%);box-shadow:var(--shadow);overflow:hidden;border:1px solid #e3ddca}.sun{position:absolute;width:100px;height:100px;border-radius:50%;right:14%;top:11%;background:#e2af49;box-shadow:0 0 0 24px rgba(226,175,73,.12)}.river{position:absolute;width:48px;height:610px;background:linear-gradient(#5fb0ce,#287fa8);border-radius:50%;transform:rotate(14deg);left:38%;top:-40px;box-shadow:0 0 0 16px rgba(95,176,206,.16)}.r2{left:48%;transform:rotate(5deg);width:31px;opacity:.85}.ziggurat{position:absolute;left:7%;bottom:12%;width:210px;height:210px}.ziggurat i{position:absolute;left:50%;transform:translateX(-50%);bottom:0;background:#b67548;border-radius:5px 5px 0 0}.ziggurat i:nth-child(1){width:210px;height:65px}.ziggurat i:nth-child(2){width:150px;height:120px}.ziggurat i:nth-child(3){width:85px;height:170px}.pyramid{position:absolute;bottom:11%;width:0;height:0;border-left:110px solid transparent;border-right:110px solid transparent;border-bottom:200px solid #d6aa5e;filter:drop-shadow(0 20px 15px rgba(75,52,38,.1))}.p1{right:3%}.p2{right:23%;border-left-width:75px;border-right-width:75px;border-bottom-width:140px;bottom:9%;opacity:.88}.hero-label{position:absolute;padding:.5rem .75rem;border-radius:999px;background:rgba(255,255,255,.86);font-weight:900;font-size:.8rem}.meso{left:7%;top:8%}.egypt{right:9%;top:45%}
.section-heading{max-width:950px;margin:0 auto 42px;text-align:center}.section-heading h2{font-size:clamp(2.2rem,5vw,4.6rem);line-height:1;letter-spacing:-.045em;margin:.2em 0}.section-heading h2 small{display:block;font-size:.34em;letter-spacing:.01em;margin-top:10px;color:var(--muted);font-weight:700}.section-heading>p:not(.eyebrow){color:#47606c;font-size:1.08rem}.big-question{font-family:Georgia,serif;font-style:italic;color:var(--ink)!important;font-size:clamp(1.2rem,2vw,1.55rem)!important}
.method-section{background:var(--ink);color:#fff;max-width:none}.method-section .section-heading p{color:#c7d7de}.method-grid{max-width:1320px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.method-card{background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.15);padding:25px;border-radius:22px;min-height:230px}.method-card span{font-size:2.8rem;font-weight:900;color:#72bdd7}.method-card h3{margin:.25rem 0 .5rem;letter-spacing:.08em}.method-card p{color:#d6e3e8}
.civilization{position:relative}.mesopotamia::before,.egypt::before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:260px;pointer-events:none;background:linear-gradient(180deg,rgba(232,205,147,.14),transparent)}.egypt::before{background:linear-gradient(180deg,rgba(89,170,200,.12),transparent)}
.story-grid,.visual-grid,.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1260px;margin:0 auto 22px}.story-card,.context-card,.fact-card,.recompose,.timeline,.schema,.irreducible,.compare-wrap,.conclusion{background:rgba(255,255,255,.88);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 14px 35px rgba(16,43,60,.07)}.story-card,.context-card,.fact-card{padding:clamp(22px,3vw,34px)}.story-card h3,.context-card h3,.fact-card h3,.recompose h3,.timeline h3,.irreducible h3{font-size:1.45rem;margin:.2rem 0 .7rem}.tag{display:inline-flex;padding:.32rem .55rem;border-radius:8px;background:#e8f1f3;color:var(--ink);font-size:.72rem;font-weight:950;letter-spacing:.12em}.visual-grid{grid-template-columns:1.1fr .9fr}.visual-grid.reverse{grid-template-columns:.9fr 1.1fr}.map-card{margin:0;overflow:hidden;display:grid;grid-template-rows:1fr auto;min-height:500px}.map-card img{width:100%;height:100%;object-fit:cover}.map-card figcaption,.schema figcaption{padding:13px 18px;background:#f5f7f7;color:#526873;font-size:.88rem}.context-card ul,.irreducible ul{padding-left:1.2rem}.context-card li,.irreducible li{margin:.65rem 0}.note{margin-top:20px;padding:15px;border-left:4px solid var(--river);background:#eef7fa;border-radius:0 12px 12px 0}.recompose{padding:clamp(25px,4vw,44px);max-width:1260px;margin:22px auto}.recompose p{font-size:1.08rem;max-width:1000px}.flow{margin-top:24px}.fact-card dl{display:grid;grid-template-columns:auto 1fr;gap:10px 18px}.fact-card dt{font-weight:900;color:var(--clay)}.fact-card dd{margin:0}.fact-card blockquote{margin:20px 0 0;border-left:4px solid var(--sand);padding:12px 16px;background:#fbf6e9;font-family:Georgia,serif;font-style:italic}
.timeline{padding:28px;max-width:1260px;margin:22px auto}.timeline-track{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;position:relative}.time-node{border:1px solid #cbd9de;background:#fff;border-radius:16px;padding:13px 10px;text-align:left;color:var(--ink);cursor:pointer;min-height:84px}.time-node b,.time-node span{display:block}.time-node span{font-size:.82rem;color:var(--muted);margin-top:2px}.time-node.active{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-3px);box-shadow:0 10px 25px rgba(16,43,60,.18)}.time-node.active span{color:#d6e5ea}.timeline-text{padding:17px 18px;margin:16px 0 0;background:#eef5f6;border-radius:14px;font-weight:700}
.schema{max-width:1260px;margin:22px auto;overflow:hidden}.zoomable{border:0;background:none;padding:0;width:100%;cursor:zoom-in}.zoomable img{width:100%}.irreducible{max-width:1260px;margin:22px auto;padding:28px 34px;background:linear-gradient(135deg,#fff,#f8f3e5)}.irreducible .button{margin-top:10px}
.compare-section{max-width:none;background:linear-gradient(180deg,#edf5f6,#fbfaf5)}.compare-wrap{max-width:1260px;margin:auto;overflow:auto}.compare-wrap table{border-collapse:collapse;width:100%;min-width:780px}.compare-wrap th,.compare-wrap td{padding:17px 20px;border-bottom:1px solid #e0e7e9;text-align:left}.compare-wrap thead th{background:var(--ink);color:#fff}.compare-wrap tbody th{background:#f1f5f5;width:20%}.model{max-width:1260px;margin:26px auto;justify-content:center}.model span{font-size:.9rem;background:#fff8e8;border-color:#ead8ac}.conclusion{max-width:1000px;margin:30px auto 0;padding:32px 38px;font-family:Georgia,serif;font-size:1.25rem;line-height:1.7;border-left:6px solid var(--sand)}
.quiz-section{max-width:1320px}.quiz-switcher{display:flex;gap:10px;justify-content:center;margin-bottom:22px}.quiz-tab{border:1px solid #b9cbd2;background:#fff;border-radius:999px;padding:.78rem 1.15rem;font-weight:900;color:var(--ink);cursor:pointer}.quiz-tab.active{background:var(--ink);color:#fff;border-color:var(--ink)}.quiz-panel{display:none}.quiz-panel.active{display:block}.quiz-shell{max-width:980px;margin:auto;background:#fff;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.quiz-head{padding:24px 28px;background:linear-gradient(120deg,var(--ink),#1d526e);color:#fff;display:flex;justify-content:space-between;gap:18px;align-items:center}.quiz-head h3{margin:0;font-size:1.5rem}.quiz-progress{font-weight:900;white-space:nowrap}.quiz-body{padding:clamp(22px,4vw,40px)}.question-number{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:900;color:var(--clay)}.question-text{font-size:clamp(1.25rem,2vw,1.65rem);font-weight:850;line-height:1.35;margin:.35rem 0 1.2rem}.answers{display:grid;gap:10px}.answer{border:1px solid #cbd9df;border-radius:16px;background:#fbfcfc;padding:15px 18px;text-align:left;cursor:pointer;font-weight:700;color:#254556;transition:.15s}.answer:hover{border-color:var(--river);background:#f1f8fa}.answer.selected{border:2px solid var(--river);background:#e8f5f9}.quiz-actions{display:flex;justify-content:space-between;gap:10px;margin-top:24px}.quiz-actions button{border:0;border-radius:999px;padding:.75rem 1rem;font-weight:900;cursor:pointer}.next-btn{background:var(--ink);color:#fff}.prev-btn{background:#eaf0f2;color:var(--ink)}.next-btn:disabled{opacity:.4;cursor:not-allowed}.quiz-dots{display:flex;gap:5px;flex-wrap:wrap}.quiz-dot{width:9px;height:9px;border-radius:50%;background:#cbd9df}.quiz-dot.done{background:var(--river)}.report{padding:30px}.score-card{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;background:#edf7f8;border-radius:22px;padding:22px}.score-circle{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:2.1rem;font-weight:950}.score-card h3{font-size:1.8rem;margin:0}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.metric{padding:14px;border:1px solid var(--line);border-radius:14px}.metric b{display:block;font-size:1.55rem}.recovery{margin-top:26px}.recovery-item{border:1px solid #e1d6c0;background:#fffbf1;border-radius:16px;padding:18px;margin:12px 0}.recovery-item h4{margin:0 0 8px;color:#8c513f}.recovery-item .correct{font-weight:900;color:#2e6a50}.report-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.report-actions button{border:0;border-radius:999px;padding:.75rem 1rem;font-weight:900;cursor:pointer}.print-btn{background:var(--ink);color:#fff}.retry-btn{background:#e8eef0}
.image-dialog{border:0;padding:0;border-radius:20px;max-width:min(94vw,1400px);max-height:92vh;background:#111;box-shadow:0 30px 100px #0007}.image-dialog::backdrop{background:#06121bcc;backdrop-filter:blur(6px)}.image-dialog img{max-height:88vh;width:auto}.image-dialog button{position:absolute;right:10px;top:8px;width:42px;height:42px;border:0;border-radius:50%;background:#fff;color:#111;font-size:1.6rem;cursor:pointer}
footer{max-width:1500px;margin:auto;padding:32px clamp(20px,6vw,92px);display:flex;gap:18px;justify-content:space-between;border-top:1px solid var(--line);color:#556b75}footer a{font-weight:800}
.reveal{opacity:0;transform:translateY(18px);transition:.6s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1000px){.nav{display:none}.hero{grid-template-columns:1fr;min-height:auto;padding-top:80px}.hero-art{min-height:430px}.method-grid{grid-template-columns:1fr 1fr}.visual-grid,.visual-grid.reverse,.story-grid,.two-col{grid-template-columns:1fr}.timeline-track{grid-template-columns:repeat(3,1fr)}.map-card{min-height:380px}}
@media(max-width:640px){.section{padding-left:16px;padding-right:16px}.topbar{padding-left:14px;padding-right:14px}.brand span:last-child{font-size:.84rem}.hero h1{font-size:3.55rem}.hero-art{min-height:340px;border-radius:28px}.ziggurat{transform:scale(.72);transform-origin:left bottom}.pyramid{transform:scale(.72);transform-origin:right bottom}.method-grid{grid-template-columns:1fr}.timeline-track{grid-template-columns:1fr 1fr}.time-node{min-height:72px}.irreducible{padding:22px}.quiz-head{align-items:flex-start;flex-direction:column}.report-grid{grid-template-columns:1fr}.score-card{grid-template-columns:1fr;text-align:center}.score-circle{margin:auto}footer{flex-direction:column}.keychain,.flow,.model{gap:5px}.keychain span,.flow span,.model span{font-size:.72rem}.compare-wrap{border-radius:16px}}
@media print{.topbar,.hero-actions,.quiz-switcher,.report-actions,footer{display:none!important}.section{padding:20px}.quiz-section .section-heading{display:none}.quiz-shell{box-shadow:none}.recovery-item{break-inside:avoid}.report{padding:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button,.install{transition:none}}


/* Schemi-mappa adattati alla PWA */
.concept-map{margin:clamp(2rem,5vw,4.8rem) 0;border:1px solid rgba(16,43,60,.14);border-radius:28px;background:rgba(255,255,255,.82);box-shadow:0 22px 70px rgba(18,43,57,.08);overflow:hidden}
.concept-map-head{padding:1.5rem 1.7rem .7rem}.concept-map-head .eyebrow{margin:0 0 .25rem}.concept-map-head h3{margin:0;font-size:clamp(1.5rem,3vw,2.2rem)}
.concept-row{display:grid;grid-template-columns:minmax(120px,190px) 1fr;min-height:112px;border-top:1px solid rgba(16,43,60,.09)}
.concept-label{display:flex;align-items:center;justify-content:center;padding:1rem;font-weight:900;letter-spacing:.06em;font-size:clamp(1.05rem,2.1vw,1.55rem);position:relative}
.concept-label::after{content:'→';position:absolute;right:-.7rem;font-size:1.5rem;z-index:1}
.concept-content{padding:1.15rem 1.55rem 1.15rem 2rem;display:flex;gap:.35rem .9rem;flex-wrap:wrap;align-content:center;align-items:center}
.concept-content strong{flex-basis:100%;font-size:1.04rem}.concept-content span:not(.pill){padding:.25rem 0;color:var(--ink-soft)}
.concept-content .pill{margin-left:auto;padding:.42rem .72rem;border-radius:999px;background:rgba(16,43,60,.08);font-weight:800;white-space:nowrap}
.concept-row.time .concept-label{background:#ffe8e3;color:#9c2f27}.concept-row.time .concept-content{background:#fff7f5}
.concept-row.place .concept-label{background:#e3f3ff;color:#175f8e}.concept-row.place .concept-content{background:#f5fbff}
.concept-row.society .concept-label{background:#e6f7e9;color:#236b36}.concept-row.society .concept-content{background:#f5fcf6}
.concept-row.economy .concept-label{background:#eee9ff;color:#4f408e}.concept-row.economy .concept-content{background:#faf8ff}
.concept-special{border-top:1px solid rgba(16,43,60,.09);background:#fff6d9;padding:1.25rem 1.45rem;display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.concept-special strong{color:#755313;margin-right:.25rem}.concept-special span{background:#fff;border:1px solid rgba(176,127,24,.22);border-radius:12px;padding:.48rem .7rem;font-weight:700}
@media (max-width:720px){.concept-row{grid-template-columns:1fr}.concept-label{justify-content:flex-start;min-height:58px}.concept-label::after{content:'↓';right:1.1rem}.concept-content{padding:1rem 1.2rem}.concept-content .pill{margin-left:0}.concept-special{align-items:flex-start}.concept-special strong{flex-basis:100%}}
