:root{
  --ink:#07141c;--ink-2:#0b202b;--ink-3:#102e3a;--paper:#f2ead8;--paper-2:#e7dcc2;
  --gold:#c8943f;--gold-2:#efc875;--ice:#9dc6d2;--violet:#9584ca;--green:#84ad8a;
  --line:rgba(200,148,63,.34);--muted:rgba(242,234,216,.67);--shadow:0 24px 70px rgba(0,0,0,.34);
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;
  --sans:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--ink)}body{margin:0;color:var(--ink);background:#f4efe4;font-family:var(--sans);line-height:1.6}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:200;padding:.7rem 1rem;color:var(--ink);background:var(--gold-2);border-radius:.4rem}.skip-link:focus{top:1rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{position:sticky;top:0;z-index:60;height:calc(72px + var(--safe-top));padding:var(--safe-top) clamp(.75rem,2vw,1.6rem) 0;display:flex;align-items:center;gap:.9rem;color:var(--paper);background:rgba(4,15,21,.91);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}
.round-button,.icon-button,.index-button{border:1px solid var(--line);color:var(--gold-2);background:rgba(255,255,255,.035)}.round-button,.icon-button{width:42px;aspect-ratio:1;border-radius:50%;font-size:1.2rem}.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;min-width:0}.brand-mark{width:43px;aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;color:var(--gold-2);font:700 .78rem var(--serif);letter-spacing:.08em}.brand span:last-child{display:grid;line-height:1.08}.brand strong{font:500 1.03rem var(--serif);letter-spacing:.08em}.brand small{margin-top:.22rem;color:var(--muted);font-size:.7rem}.top-actions{margin-left:auto;display:flex;gap:.55rem}.index-button{min-height:42px;padding:0 1rem;border-radius:99px;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}
.hero{position:relative;min-height:calc(100svh - 72px);overflow:hidden;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);grid-template-rows:1fr auto;padding:clamp(2rem,5vw,5.5rem) clamp(1rem,5vw,5.5rem) clamp(2rem,4vw,3.5rem);color:var(--paper);background:radial-gradient(circle at 35% 30%,#274957,#07141c 64%,#030a0e);isolation:isolate}.hero-image{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.88) contrast(1.05)}.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(3,11,16,.25),rgba(3,11,16,.42) 52%,rgba(3,11,16,.82)),linear-gradient(0deg,rgba(3,11,16,.92),transparent 45%,rgba(3,11,16,.2))}.orbit{position:absolute;z-index:-1;border:1px solid rgba(239,200,117,.34);border-radius:50%;pointer-events:none}.orbit-one{width:42vw;aspect-ratio:1;left:2%;top:4%;transform:rotate(-16deg)}.orbit-two{width:27vw;aspect-ratio:1;left:9%;top:13%;border-color:rgba(157,198,210,.3)}
.hero-copy{align-self:center;grid-column:2;padding:1rem 0 3rem;max-width:670px}.eyebrow{margin:0 0 .6rem;color:var(--gold);font-size:.72rem;font-weight:750;letter-spacing:.19em;text-transform:uppercase}.hero h1{margin:0;font:500 clamp(4.4rem,9.2vw,9.5rem)/.76 var(--serif);letter-spacing:-.055em;text-shadow:0 4px 30px #0007}.hero h1 em{display:inline-block;color:var(--gold-2);font-style:normal}.hero-lead{max-width:580px;margin:2rem 0 1.5rem;color:#f4ead3;font:400 clamp(1.2rem,2vw,1.8rem)/1.35 var(--serif)}blockquote{max-width:540px;margin:0;padding-left:1.1rem;border-left:1px solid var(--gold);color:rgba(242,234,216,.82);font:italic 1rem/1.55 var(--serif)}blockquote cite{display:block;margin-top:.45rem;color:var(--gold-2);font:normal .68rem var(--sans);letter-spacing:.1em;text-transform:uppercase}
.path-chooser{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(250px,440px));justify-content:center;gap:1rem}.path-card{position:relative;min-height:165px;padding:1.25rem 1.35rem 1.15rem;text-align:left;color:var(--paper);background:linear-gradient(135deg,rgba(8,28,38,.88),rgba(4,13,18,.94));border:1px solid var(--line);border-radius:1.15rem;box-shadow:0 12px 35px #0005;overflow:hidden;transition:.2s}.path-card:hover,.path-card:focus-visible,.path-card.active{transform:translateY(-3px);border-color:var(--gold-2);box-shadow:0 15px 40px #0007,0 0 0 3px rgba(200,148,63,.1)}.path-card.active:after{content:"Percorso attivo";position:absolute;right:1rem;top:1rem;color:var(--gold-2);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase}.path-number{color:rgba(239,200,117,.56);font-size:.68rem;letter-spacing:.16em}.path-icon{float:right;color:var(--gold-2);font-size:1.4rem}.path-card strong{display:block;margin:.45rem 0 .18rem;font:500 1.75rem var(--serif)}.path-card small{display:block;max-width:320px;color:var(--muted);line-height:1.45}.path-action{display:block;margin-top:.85rem;color:var(--gold-2);font-size:.75rem;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.hero-hint{grid-column:1/-1;margin:1rem 0 0;text-align:center;color:rgba(242,234,216,.5);font-size:.74rem}
.hero-hotspot{position:absolute;z-index:3;width:64px;aspect-ratio:1;border:1px solid var(--gold-2);border-radius:50%;color:var(--paper);background:rgba(5,20,28,.7);box-shadow:0 0 0 8px rgba(200,148,63,.08),0 0 34px rgba(239,200,117,.28);animation:pulse 3s ease-in-out infinite}.hero-hotspot span{position:absolute;left:50%;top:calc(100% + .45rem);transform:translateX(-50%);white-space:nowrap;color:var(--gold-2);font-size:.59rem;line-height:1.25;text-transform:uppercase;letter-spacing:.08em}.hotspot-space{left:33%;top:18%}.hotspot-reason{left:44%;top:42%;animation-delay:-1s}.hotspot-sky{left:15%;top:8%;animation-delay:-2s}@keyframes pulse{50%{box-shadow:0 0 0 14px rgba(200,148,63,0),0 0 42px rgba(239,200,117,.42)}}
.section-shell{width:min(1220px,calc(100% - 2rem));margin:auto;padding:clamp(4rem,8vw,7.5rem) 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}.section-heading h2,.finale h2{max-width:760px;margin:0;font:500 clamp(2.5rem,5vw,4.7rem)/.98 var(--serif);letter-spacing:-.035em}.section-heading>p{max-width:480px;color:rgba(242,234,216,.68)}.mode-switch{display:flex;padding:.25rem;background:#e3d9c5;border-radius:99px}.mode-switch button{padding:.65rem 1rem;border:0;border-radius:99px;color:#536069;background:transparent;font-size:.75rem}.mode-switch button.active{color:var(--paper);background:var(--ink);box-shadow:0 6px 15px #07141c33}.progress-card{padding:1.1rem 1.25rem;margin-bottom:1.3rem;border:1px solid #b79a652f;border-radius:1rem;background:#fbf8f0}.progress-card>div:first-child{display:flex;justify-content:space-between;gap:1rem;font-size:.82rem}.progress-card strong{color:#826126}.progress-track{height:6px;margin:.7rem 0;border-radius:99px;background:#ded7c8;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--ink-3),var(--gold));transition:width .35s}.progress-card p{margin:0;color:#657078;font-size:.78rem}.question-triad{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-bottom:1.5rem}.question-triad button{display:grid;grid-template-columns:auto 1fr;column-gap:.8rem;padding:1rem;text-align:left;border:1px solid #c7b99966;border-radius:1rem;color:var(--ink);background:#efe7d7}.question-triad span{grid-row:1/3;color:var(--gold);font:500 1.8rem var(--serif)}.question-triad strong{font:600 1rem var(--serif)}.question-triad small{color:#768086}
.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.module-card{position:relative;min-height:260px;padding:1.35rem;display:flex;flex-direction:column;border:1px solid #c9b99070;border-radius:1.15rem;background:#fffdf8;box-shadow:0 10px 30px rgba(41,34,21,.05);overflow:hidden;transition:.2s}.module-card:hover{transform:translateY(-4px);box-shadow:0 18px 35px rgba(41,34,21,.11)}.module-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent,var(--gold))}.module-card.complete{border-color:#85a98c}.module-card.complete:after{content:"✓";position:absolute;right:1rem;top:1rem;width:1.7rem;aspect-ratio:1;display:grid;place-items:center;color:#fff;background:#75997d;border-radius:50%;font-size:.75rem}.module-index{color:var(--accent,var(--gold));font-size:.7rem;font-weight:800;letter-spacing:.16em}.module-card h3{margin:.65rem 0 .4rem;font:600 1.6rem/1.08 var(--serif)}.module-card p{margin:0 0 1rem;color:#5e696f;font-size:.88rem}.module-card footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between}.module-card footer span{color:#7f6840;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}.module-card button{width:42px;aspect-ratio:1;border:1px solid #baa66f;border-radius:50%;color:var(--ink);background:#f5eedf;font-size:1.2rem}
.map-section{color:var(--paper);background:radial-gradient(circle at 85% 10%,#1d4350,#0a202a 42%,#051217 78%)}.section-heading.light h2{color:var(--paper)}.map-layout{display:grid;grid-template-columns:280px 1fr;gap:1.25rem;align-items:start}.map-tabs{max-height:720px;overflow:auto;padding-right:.35rem;display:grid;gap:.5rem}.map-tabs button{padding:.8rem 1rem;text-align:left;color:rgba(242,234,216,.65);background:rgba(255,255,255,.025);border:1px solid rgba(200,148,63,.15);border-radius:.75rem}.map-tabs button span{display:block;color:var(--gold);font-size:.58rem;letter-spacing:.13em;text-transform:uppercase}.map-tabs button.active,.map-tabs button:hover{color:var(--paper);border-color:var(--gold);background:rgba(200,148,63,.09)}.concept-map{min-height:640px;padding:clamp(1.2rem,3vw,2.2rem);border:1px solid var(--line);border-radius:1.3rem;background:linear-gradient(145deg,rgba(14,46,58,.78),rgba(4,16,22,.93));box-shadow:var(--shadow)}.concept-map header{max-width:760px}.concept-map h3{margin:.2rem 0;font:500 clamp(2rem,4vw,3.5rem)/1 var(--serif)}.concept-map header>p:last-child{color:var(--muted)}.map-flow{display:flex;align-items:stretch;justify-content:center;gap:2.1rem;margin:2.6rem 0 1.5rem;padding:.5rem;overflow-x:auto}.map-node{position:relative;flex:1 0 140px;max-width:190px;min-height:128px;padding:1rem;border:1px solid rgba(239,200,117,.35);border-radius:1rem;color:var(--paper);background:rgba(255,255,255,.045);text-align:left;transition:.2s}.map-node:not(:last-child):after{content:"→";position:absolute;left:calc(100% + .62rem);top:50%;transform:translateY(-50%);color:var(--gold);font-size:1.2rem}.map-node span{display:block;color:var(--gold);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}.map-node strong{display:block;margin:.38rem 0;font:500 1.18rem/1.15 var(--serif)}.map-node small{color:var(--muted);line-height:1.3}.map-node.active,.map-node:hover{border-color:var(--gold-2);background:rgba(200,148,63,.12);transform:translateY(-3px)}.map-detail{min-height:135px;padding:1.15rem 1.25rem;border-left:3px solid var(--gold);background:rgba(0,0,0,.17);border-radius:0 .8rem .8rem 0}.map-detail h4{margin:0 0 .4rem;color:var(--gold-2);font:500 1.45rem var(--serif)}.map-detail p{margin:.2rem 0;color:rgba(242,234,216,.8)}.map-detail .map-example{margin-top:.7rem;color:var(--ice);font-size:.82rem}
.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.tool-grid button{min-height:200px;padding:1.3rem;display:grid;align-content:start;text-align:left;border:1px solid #c6b3845c;border-radius:1rem;color:var(--ink);background:linear-gradient(145deg,#fffdf8,#eee5d3);transition:.2s}.tool-grid button:hover{transform:translateY(-4px);border-color:var(--gold)}.tool-grid button>span{width:48px;aspect-ratio:1;display:grid;place-items:center;margin-bottom:1rem;border:1px solid var(--gold);border-radius:50%;color:#8a6527;font:500 1.1rem var(--serif)}.tool-grid strong{font:600 1.35rem var(--serif)}.tool-grid small{margin-top:.35rem;color:#69757b;line-height:1.45}.finale{color:var(--paper);background:linear-gradient(120deg,#07141c,#123441)}.finale-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}.finale p{color:var(--muted);font:400 1.15rem/1.65 var(--serif)}.primary-button,.secondary-button{padding:.75rem 1.05rem;border:1px solid var(--gold);border-radius:99px}.primary-button{color:var(--ink);background:var(--gold-2)}.secondary-button{color:var(--gold-2);background:transparent}
.drawer{position:fixed;inset:0;z-index:100;display:none}.drawer.open{display:block}.drawer-backdrop{position:absolute;inset:0;background:#000b;backdrop-filter:blur(4px)}.drawer-panel{position:relative;width:min(92vw,440px);height:100%;overflow:auto;padding:calc(2rem + var(--safe-top)) 1.4rem calc(2rem + var(--safe-bottom));color:var(--paper);background:linear-gradient(150deg,#102f3b,#06141b 70%);border-right:1px solid var(--line);box-shadow:var(--shadow)}.close-button{float:right;width:40px;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;color:var(--gold-2);background:rgba(0,0,0,.2);font-size:1.4rem}.drawer-panel h2{margin:.2rem 0 1.4rem;font:500 2.6rem/1 var(--serif)}.drawer-panel nav{display:grid;gap:.55rem}.drawer-panel nav a{display:grid;grid-template-columns:2rem 1fr;padding:.78rem;text-decoration:none;border:1px solid rgba(200,148,63,.16);border-radius:.75rem}.drawer-panel nav a span{color:var(--gold)}.drawer-panel nav a small{display:block;color:var(--muted)}.drawer-state{display:flex;align-items:baseline;gap:.6rem;margin-top:1.4rem;padding:1rem;border-top:1px solid var(--line)}.drawer-state strong{color:var(--gold-2);font:500 2rem var(--serif)}.drawer-state span{color:var(--muted);font-size:.74rem}
dialog{border:1px solid var(--line);border-radius:1.2rem;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(0,0,0,.76);backdrop-filter:blur(7px)}.content-dialog,.search-dialog{width:min(94vw,850px);max-height:90vh;overflow:auto;padding:clamp(1.2rem,3vw,2.2rem);color:var(--paper);background:linear-gradient(145deg,#12333f,#07171f 72%)}.content-dialog h2,.search-dialog h2{margin:.2rem 0 1rem;font:500 clamp(2.2rem,5vw,4rem)/1 var(--serif)}.content-dialog h3{margin:1.5rem 0 .4rem;color:var(--gold-2);font:500 1.5rem var(--serif)}.content-dialog p,.content-dialog li{color:rgba(242,234,216,.79)}.dialog-question{padding:1rem;border-left:3px solid var(--gold);background:rgba(0,0,0,.15);font:italic 1.08rem var(--serif)}.dialog-example,.dialog-warning,.source-card{padding:1rem;border-radius:.8rem}.dialog-example{background:rgba(157,198,210,.1);border:1px solid rgba(157,198,210,.25)}.dialog-warning{background:rgba(149,132,202,.1);border:1px solid rgba(149,132,202,.28)}.source-card{background:rgba(200,148,63,.1);border:1px solid var(--line)}.lesson-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.5rem}.lesson-actions button{padding:.7rem 1rem;border:1px solid var(--gold);border-radius:99px;color:var(--gold-2);background:transparent}.lesson-actions button.complete{color:var(--ink);background:var(--gold-2)}.search-dialog input{width:100%;padding:1rem;border:1px solid var(--line);border-radius:.8rem;color:var(--paper);background:rgba(0,0,0,.24);outline:none}.search-dialog input:focus{border-color:var(--gold-2)}.search-results{display:grid;gap:.6rem;margin-top:1rem}.search-results button{padding:.9rem;text-align:left;border:1px solid rgba(200,148,63,.18);border-radius:.7rem;color:var(--paper);background:rgba(255,255,255,.035)}.search-results button strong{display:block;color:var(--gold-2)}.search-results button small{color:var(--muted)}
.notes-fab{position:fixed;right:1.1rem;bottom:calc(1.1rem + var(--safe-bottom));z-index:55;display:flex;align-items:center;gap:.55rem;padding:.7rem 1rem;border:1px solid var(--gold);border-radius:99px;color:var(--ink);background:var(--gold-2);box-shadow:0 10px 28px #0004}.notes-panel{position:fixed;right:0;top:0;z-index:110;width:min(94vw,440px);height:100%;padding:calc(1.4rem + var(--safe-top)) 1.2rem calc(1.4rem + var(--safe-bottom));color:var(--paper);background:#07171f;box-shadow:var(--shadow);transform:translateX(105%);transition:.25s}.notes-panel.open{transform:none}.notes-panel header{display:flex;justify-content:space-between}.notes-panel h2{margin:0;font:500 2.2rem var(--serif)}.notes-panel textarea{width:100%;height:calc(100% - 160px);margin:1rem 0;padding:1rem;resize:none;border:1px solid var(--line);border-radius:.8rem;color:var(--paper);background:#0d2731;outline:none}.notes-panel>div:last-child{display:flex;align-items:center;gap:1rem}.notes-panel #notesStatus{color:var(--green);font-size:.72rem}.toast{position:fixed;left:50%;bottom:calc(1.2rem + var(--safe-bottom));z-index:150;max-width:90vw;padding:.7rem 1rem;color:var(--paper);background:#183944;border:1px solid var(--gold);border-radius:99px;box-shadow:var(--shadow);opacity:0;transform:translate(-50%,20px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
.tool-content-list{display:grid;gap:.8rem}.tool-item{padding:1rem;border:1px solid rgba(200,148,63,.22);border-radius:.8rem;background:rgba(255,255,255,.035)}.tool-item h3{margin:0}.tool-item button{color:var(--paper)}.glossary-filter{display:flex;gap:.5rem;margin-bottom:1rem;overflow:auto}.glossary-filter button{min-width:2.1rem;aspect-ratio:1;border:1px solid var(--line);border-radius:50%;color:var(--paper);background:transparent}.glossary-filter button.active{color:var(--ink);background:var(--gold-2)}.timeline{position:relative;padding-left:1.5rem}.timeline:before{content:"";position:absolute;left:.36rem;top:.5rem;bottom:.5rem;width:1px;background:var(--gold)}.timeline .tool-item{position:relative}.timeline .tool-item:before{content:"";position:absolute;left:-1.42rem;top:1.3rem;width:.65rem;aspect-ratio:1;border-radius:50%;background:var(--gold-2);box-shadow:0 0 0 5px #c8943f1f}.case-options,.quiz-options{display:grid;gap:.5rem;margin-top:.7rem}.case-options button,.quiz-options button{padding:.75rem;text-align:left;border:1px solid rgba(200,148,63,.25);border-radius:.7rem;color:var(--paper);background:rgba(255,255,255,.035)}.case-options button.correct,.quiz-options button.correct{border-color:#83b08a;background:#83b08a24}.case-options button.wrong,.quiz-options button.wrong{border-color:#c77b72;background:#c77b7224}.feedback{margin-top:.6rem;color:var(--ice)}
@media(max-width:980px){.hero{grid-template-columns:1fr;padding-top:4rem}.hero-copy{grid-column:1;justify-self:end;width:min(100%,630px)}.hero-hotspot{display:none}.module-grid,.tool-grid{grid-template-columns:repeat(2,1fr)}.map-layout{grid-template-columns:1fr}.map-tabs{display:flex;max-height:none;overflow:auto;padding-bottom:.4rem}.map-tabs button{min-width:210px}.finale-grid{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column}.question-triad{grid-template-columns:1fr}}
@media(max-width:680px){.topbar{height:calc(62px + var(--safe-top))}.brand small,.index-button span{display:none}.round-button,.icon-button{width:38px}.brand-mark{width:38px}.hero{min-height:auto;padding:7rem 1rem 2rem;display:block}.hero-image{object-position:35% center}.hero-shade{background:linear-gradient(0deg,#041018 15%,rgba(4,16,24,.48) 67%,rgba(4,16,24,.54))}.hero-copy{padding:0}.hero h1{font-size:clamp(4rem,21vw,6.4rem)}.hero-lead{font-size:1.15rem}.path-chooser{display:grid;grid-template-columns:1fr;margin-top:3rem}.path-card{min-height:145px}.section-shell{width:min(100% - 1.2rem,1220px);padding:4rem 0}.module-grid,.tool-grid{grid-template-columns:1fr}.module-card{min-height:220px}.mode-switch{width:100%}.mode-switch button{flex:1}.map-section .section-shell{width:100%;padding-left:.6rem;padding-right:.6rem}.concept-map{min-height:0}.map-flow{justify-content:start;gap:1.6rem}.map-node{flex-basis:145px}.map-node:not(:last-child):after{left:calc(100% + .35rem)}.notes-fab span{display:none}.content-dialog,.search-dialog{width:100%;max-width:none;max-height:94vh;margin-bottom:0}.tool-grid button{min-height:170px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
