:root {
  --navy-950:#030b18;
  --navy-900:#07162b;
  --navy-850:#081b35;
  --navy-800:#0d2648;
  --navy-700:#173b68;
  --paper:#f5ead3;
  --paper-soft:#fff8e9;
  --paper-deep:#e6d0a4;
  --gold:#d6aa5e;
  --gold-light:#f0d48f;
  --ruby:#9d2d25;
  --ruby-dark:#6c1815;
  --ink:#1c1915;
  --muted:#705f49;
  --green:#2f6b4a;
  --shadow:0 22px 64px rgba(0,0,0,.34);
  --serif:Georgia, "Times New Roman", serif;
  --sans:Arial, Helvetica, sans-serif;
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;background:var(--navy-950);color:#f8edd8;font-family:var(--serif);font-size:18px}
body::selection{background:#f2ce74;color:#17100a}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{color:inherit}
img{max-width:100%}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:8px;left:8px;z-index:9999;background:var(--paper);color:var(--ink);padding:10px 16px;border-radius:10px;transform:translateY(-150%);font:700 14px var(--sans)}
.skip-link:focus{transform:none}

.site-header{height:76px;position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:24px;padding:0 clamp(18px,4vw,64px);background:rgba(4,14,29,.94);border-bottom:1px solid rgba(214,170,94,.28);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:12px;min-width:max-content;color:var(--paper)}
.brand img{width:46px;height:46px}
.brand span{font-size:18px;font-weight:700;line-height:1}
.brand small{display:block;margin-bottom:5px;color:var(--gold-light);font:800 9px var(--sans);letter-spacing:.16em;text-transform:uppercase}
.desktop-nav{display:flex;align-items:center;justify-content:center;gap:6px;margin-left:auto}
.desktop-nav a{padding:10px 12px;border-radius:10px;color:#e9dabc;font:600 13px var(--sans)}
.desktop-nav a:hover,.desktop-nav a.active,.desktop-nav a[aria-current="page"]{color:#fff;background:rgba(214,170,94,.13)}
.header-cta{margin-left:6px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 17px;border:1px solid transparent;border-radius:9px;cursor:pointer;font:800 13px var(--sans);transition:transform .2s,box-shadow .2s,background .2s}
.button:hover{transform:translateY(-2px)}
.button:focus-visible,.icon-button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #f2ce74;outline-offset:3px}
.button-ruby{background:linear-gradient(135deg,#b23b2e,var(--ruby-dark));border-color:#c15544;color:#fff;box-shadow:0 10px 26px rgba(112,22,17,.28)}
.button-gold{background:linear-gradient(135deg,#f0d48f,#b47c2a);color:#101a28;border-color:#f4dda5;box-shadow:0 10px 25px rgba(179,123,42,.2)}
.button-ghost{background:rgba(255,255,255,.055);border-color:rgba(214,170,94,.45);color:#f6e9d0}
.icon-button{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(214,170,94,.35);border-radius:50%;background:rgba(255,255,255,.055);cursor:pointer;font:700 23px var(--sans)}
.menu-toggle{display:none}
.overline{margin:0 0 10px;color:var(--gold-light);font:800 11px var(--sans);letter-spacing:.2em;text-transform:uppercase}

/* Home */
.cover-hero{min-height:calc(100vh - 76px);position:relative;display:grid;place-items:center;overflow:hidden;background:url('../assets/img/covers/hero-restaurazione.jpg') center/cover no-repeat}
.cover-shade{position:absolute;inset:0;background:radial-gradient(circle at 50% 37%,rgba(3,11,24,.08) 0 19%,rgba(3,11,24,.45) 55%,rgba(3,11,24,.87) 100%),linear-gradient(180deg,rgba(2,8,18,.12),rgba(2,8,18,.25) 65%,#030b18 100%)}
.cover-copy{position:relative;z-index:2;width:min(820px,90vw);margin-top:-5vh;padding:42px;text-align:center;text-shadow:0 3px 20px #000}
.cover-copy::before,.cover-copy::after{content:"";display:inline-block;width:90px;height:1px;margin:0 18px 7px;background:linear-gradient(90deg,transparent,var(--gold))}
.cover-copy::after{background:linear-gradient(90deg,var(--gold),transparent)}
.cover-copy h1{margin:4px 0 2px;font-size:clamp(4rem,10vw,8.8rem);line-height:.7;letter-spacing:-.045em}
.cover-copy h1 span{display:block;color:var(--gold-light);font-weight:500;font-size:.78em}
.byline{display:inline-block;margin:25px 0 7px;padding:5px 18px;border-top:1px solid rgba(214,170,94,.6);border-bottom:1px solid rgba(214,170,94,.6);color:#fae8c0;font-size:17px}
.cover-subtitle{margin:11px 0 4px;color:#fff5de;font-size:clamp(1.25rem,3vw,1.8rem);font-weight:700}
.cover-copy blockquote{max-width:680px;margin:15px auto 24px;color:#f0dfc2;font-size:clamp(1.05rem,2vw,1.35rem);font-style:italic;line-height:1.35}
.cover-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;text-shadow:none}
.scroll-cue{position:absolute;z-index:2;bottom:24px;left:50%;display:flex;flex-direction:column;align-items:center;gap:3px;transform:translateX(-50%);color:#ead6af;font:600 11px var(--sans);letter-spacing:.08em;text-transform:uppercase}
.scroll-cue b{font-size:20px;animation:bob 1.6s infinite}
@keyframes bob{50%{transform:translateY(5px)}}
.home-section{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:84px 0}
.section-heading{margin-bottom:34px}.section-heading.centered{text-align:center}.section-heading h2{margin:0;color:#fff3d8;font-size:clamp(2.4rem,5vw,4.2rem);line-height:.95}.section-heading>p:last-child{max-width:680px;margin:14px auto 0;color:#c9b99a;font:400 16px/1.65 var(--sans)}
.split-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.text-link{color:var(--gold-light);font:800 13px var(--sans)}
.route-section{position:relative}.route-section::before{content:"";position:absolute;inset:0 -15vw;background:radial-gradient(circle at 50% 30%,rgba(24,64,109,.28),transparent 60%);pointer-events:none}
.route-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.route-card{min-height:255px;position:relative;display:flex;flex-direction:column;padding:25px;background:linear-gradient(145deg,var(--paper-soft),#e7d2a8);border:1px solid var(--gold);border-radius:16px;color:var(--ink);box-shadow:var(--shadow);overflow:hidden;transition:.25s}
.route-card::after{content:"";position:absolute;right:-45px;bottom:-55px;width:130px;height:130px;border:1px solid rgba(10,36,70,.2);border-radius:50%;background:rgba(10,36,70,.07)}
.route-card:hover{transform:translateY(-7px);box-shadow:0 28px 70px rgba(0,0,0,.48)}
.route-number{position:absolute;left:18px;top:18px;width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:var(--navy-800);color:#fff3d8;font:800 15px var(--sans)}
.route-icon{display:block;margin:12px 0 21px;text-align:center;color:#9b752e;font-size:44px}.route-card h3{margin:0;font-size:30px;line-height:.95}.route-card p{margin:10px 0 23px;color:#5f503c;font:500 13px/1.45 var(--sans)}.route-card b{margin-top:auto;color:var(--navy-700);font:900 25px var(--sans)}
.progress-panel{position:relative;display:grid;grid-template-columns:max-content 1fr max-content;align-items:center;gap:16px;margin-top:27px;padding:16px 20px;border:1px solid rgba(214,170,94,.3);border-radius:12px;background:rgba(255,255,255,.04);font:700 12px var(--sans)}
.progress-track{height:8px;background:#020915;border-radius:99px;overflow:hidden}.progress-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--ruby),var(--gold));transition:width .5s}.progress-panel strong{color:var(--gold-light)}
.people-section{border-top:1px solid rgba(214,170,94,.16)}
.portrait-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.portrait-link{text-align:center}.portrait-frame{width:100%;aspect-ratio:1;position:relative;border:2px solid #a77731;border-radius:50%;padding:5px;background:#081b35;overflow:hidden;box-shadow:0 14px 34px rgba(0,0,0,.35)}
.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 17%;border-radius:50%;filter:saturate(.82) sepia(.08)}
.portrait-link h3{margin:13px 0 2px;color:#f1d694;font-size:21px;line-height:1}.portrait-link p{margin:0;color:#b7a88d;font:500 11px var(--sans)}
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;padding-top:30px}
.feature-card{min-height:300px;position:relative;padding:36px;border:1px solid rgba(214,170,94,.55);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);transition:.25s}.feature-card:hover{transform:translateY(-5px)}
.feature-card h2{max-width:400px;margin:0 0 12px;font-size:44px;line-height:.9}.feature-card p:not(.overline){max-width:470px;font:400 15px/1.6 var(--sans)}.feature-card b{position:absolute;bottom:30px;font:800 13px var(--sans)}
.feature-symbol{position:absolute;right:30px;top:18px;color:rgba(240,212,143,.25);font-size:82px;font-weight:700}
.feature-map{background:linear-gradient(135deg,rgba(9,34,65,.88),rgba(2,11,24,.92)),url('../assets/img/maps/europa-1815.svg') center/cover}.feature-time{background:linear-gradient(145deg,#f5ead3,#dfc28a);color:var(--ink)}.feature-time .overline,.feature-time b{color:#7d1d18}.feature-time p:not(.overline){color:#544632}.feature-quiz{background:radial-gradient(circle at 82% 20%,#ba4537,transparent 37%),linear-gradient(135deg,#7e1d18,#3b0c0d)}.feature-source{background:linear-gradient(135deg,#142c4c,#091529)}
.thesis-panel{width:min(1120px,calc(100% - 36px));margin:40px auto 100px;padding:70px clamp(30px,8vw,100px);text-align:center;border:1px solid rgba(214,170,94,.5);border-radius:18px;background:radial-gradient(circle at 50% 0,rgba(214,170,94,.18),transparent 42%),linear-gradient(145deg,#0b2748,#051224);box-shadow:var(--shadow)}
.thesis-panel h2{margin:0;color:#fff1d3;font-size:clamp(3rem,7vw,6rem);line-height:.86}.thesis-panel>p:not(.overline){max-width:760px;margin:25px auto;color:#d7c7aa;font:400 17px/1.7 var(--sans)}
.site-footer{display:grid;grid-template-columns:1fr 1.5fr auto;align-items:center;gap:35px;padding:35px clamp(20px,5vw,70px);border-top:1px solid rgba(214,170,94,.22);background:#020813;color:#a99b83;font:500 11px/1.5 var(--sans)}.site-footer>div{display:flex;align-items:center;gap:12px}.site-footer p{margin:0}.site-footer strong{color:#f1dfbc;font-family:var(--serif);font-size:18px}

/* App shell */
.app-page{min-height:100vh;background:radial-gradient(circle at 50% -10%,rgba(25,65,110,.35),transparent 38%),var(--navy-950)}
#app{min-height:calc(100vh - 76px)}
.app-container{width:min(1180px,calc(100% - 36px));margin:auto;padding:42px 0 90px}
.page-hero{position:relative;min-height:330px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:34px;margin-bottom:34px;padding:clamp(28px,5vw,58px);border:1px solid rgba(214,170,94,.34);border-radius:22px;background:linear-gradient(100deg,rgba(4,16,34,.97) 5%,rgba(7,24,48,.82) 55%,rgba(7,24,48,.35)),url('../assets/img/covers/hero-restaurazione.jpg') center/cover;box-shadow:var(--shadow);overflow:hidden}
.page-hero.compact{min-height:250px;grid-template-columns:1fr}.page-hero h1{margin:0;color:#fff2d7;font-size:clamp(3.2rem,7vw,6rem);line-height:.84}.page-hero h1 span{display:block;color:var(--gold-light)}.page-hero .lead{max-width:720px;color:#e4d4b7;font:400 16px/1.65 var(--sans)}
.hero-question{align-self:end;padding:24px;border-left:3px solid var(--gold);background:rgba(4,12,25,.7);font-size:24px;line-height:1.15;font-style:italic}.hero-question small{display:block;margin-bottom:8px;color:var(--gold-light);font:800 10px var(--sans);letter-spacing:.16em;text-transform:uppercase}
.breadcrumb{display:flex;gap:8px;align-items:center;margin-bottom:14px;color:#baa98b;font:600 11px var(--sans)}.breadcrumb a{color:var(--gold-light)}
.page-title{margin:0 0 22px;color:#fff2d7;font-size:clamp(2.8rem,6vw,5rem);line-height:.88}
.intro-text{max-width:760px;color:#cbbda3;font:400 17px/1.7 var(--sans)}
.lesson-index-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.lesson-index-card{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:18px;min-height:170px;padding:24px;border:1px solid rgba(214,170,94,.42);border-radius:16px;background:linear-gradient(145deg,var(--paper-soft),#e8d4ae);color:var(--ink);box-shadow:var(--shadow);transition:.2s}.lesson-index-card:hover{transform:translateY(-4px)}
.lesson-index-card .big-num{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--navy-800);color:#fff1d0;font:800 23px var(--sans)}.lesson-index-card h2{margin:0;font-size:29px;line-height:1}.lesson-index-card p{margin:7px 0;color:#65543f;font:500 13px/1.4 var(--sans)}.lesson-index-card>span:last-child{color:var(--ruby);font:900 27px var(--sans)}
.lesson-shell{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;align-items:start}
.lesson-reader{min-width:0}.lesson-sidebar{position:sticky;top:96px;display:grid;gap:14px}
.side-card{padding:18px;border:1px solid rgba(214,170,94,.3);border-radius:14px;background:rgba(255,255,255,.045)}.side-card h2{margin:0 0 12px;color:#f3d99c;font-size:22px}.side-card a,.side-card button{display:block;width:100%;padding:10px 0;border:0;border-bottom:1px solid rgba(214,170,94,.15);background:none;text-align:left;color:#dbcdb3;cursor:pointer;font:600 12px/1.35 var(--sans)}.side-card a:last-child,.side-card button:last-child{border-bottom:0}.side-card a:hover,.side-card button:hover{color:#fff}
.lesson-tools{display:grid;grid-template-columns:repeat(4,max-content);gap:8px;margin-bottom:14px}.tool-button{padding:9px 12px;border:1px solid rgba(214,170,94,.35);border-radius:8px;background:rgba(255,255,255,.05);cursor:pointer;font:700 11px var(--sans)}.tool-button:hover{background:rgba(214,170,94,.14)}
.reader-paper{padding:clamp(24px,5vw,58px);border:1px solid #d4b87c;border-radius:18px;background:linear-gradient(100deg,rgba(92,63,24,.035),transparent 12% 88%,rgba(92,63,24,.04)),var(--paper-soft);color:var(--ink);box-shadow:var(--shadow)}
.reader-paper .lesson-section{padding:0 0 36px;margin:0 0 38px;border-bottom:1px solid rgba(116,83,36,.22)}.reader-paper .lesson-section:last-child{border-bottom:0}.reader-paper h2{margin:0 0 17px;color:#7c201b;font-size:36px;line-height:1}.reader-paper p{font-size:20px;line-height:1.7}.reader-paper mark{padding:1px 2px;background:#ffe171;color:#17120c;border-radius:3px}.section-number{display:block;margin-bottom:8px;color:#9a7432;font:800 10px var(--sans);letter-spacing:.18em;text-transform:uppercase}
.in-summary{margin-top:24px;padding:18px 20px;border-left:4px solid var(--gold);background:#efe0bf;color:#392c1d;font:700 15px/1.55 var(--sans)}.bridge{margin-top:18px;color:#7d674b;font:600 14px/1.5 var(--sans);font-style:italic}
.apparatus{margin-top:22px;padding:24px;border:1px solid rgba(214,170,94,.38);border-radius:16px;background:rgba(255,255,255,.045)}.apparatus h2{margin:0 0 15px;color:#f4dc9e;font-size:29px}.apparatus ul{margin:0;padding-left:19px;color:#d8c8ac;font:500 14px/1.65 var(--sans)}
.chip-list{display:flex;flex-wrap:wrap;gap:8px}.info-chip{padding:8px 10px;border:1px solid rgba(214,170,94,.35);border-radius:999px;background:rgba(214,170,94,.08);color:#f1dfba;font:700 11px var(--sans)}
.vocab-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.vocab-item{padding:15px;border:1px solid rgba(214,170,94,.25);border-radius:12px;background:rgba(255,255,255,.035)}.vocab-item h3{margin:0 0 5px;color:#f1d58f;font-size:19px}.vocab-item p{margin:0;color:#cfc0a5;font:500 12px/1.5 var(--sans)}
.completion-box{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:22px;padding:22px;border:1px solid rgba(95,178,122,.4);border-radius:14px;background:rgba(47,107,74,.14)}.completion-box h2{margin:0 0 4px;font-size:25px}.completion-box p{margin:0;color:#b9cdbf;font:500 12px var(--sans)}.completion-box.completed{background:rgba(47,107,74,.35)}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.pager a{padding:18px;border:1px solid rgba(214,170,94,.3);border-radius:13px;background:rgba(255,255,255,.04);font:700 12px/1.4 var(--sans)}.pager a:last-child{text-align:right}.pager span{display:block;margin-top:5px;color:var(--gold-light);font-family:var(--serif);font-size:20px}

/* Maps and visual schemes */
.map-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.map-card{padding:24px;border:1px solid rgba(214,170,94,.35);border-radius:17px;background:rgba(255,255,255,.045);overflow:hidden}.map-card.wide{grid-column:1/-1}.map-card h2{margin:0;color:#f4dda5;font-size:31px}.map-card>p{color:#c6b79d;font:500 13px/1.55 var(--sans)}
.concept-flow{display:flex;align-items:stretch;gap:10px;margin-top:22px}.concept-node{flex:1;min-width:0;display:grid;place-items:center;padding:18px 12px;border:1px solid #b78b42;border-radius:12px;background:var(--paper);color:var(--ink);text-align:center;font:800 12px/1.35 var(--sans)}.flow-arrow{display:grid;place-items:center;color:var(--gold);font-size:28px}.concept-node.ruby{background:#8c2b25;color:#fff1d9}.concept-node.blue{background:#12375f;color:#fff1d9}.concept-node.gold{background:#d6aa5e;color:#10223a}
.triangle-map{position:relative;min-height:330px;margin-top:20px}.triangle-map .concept-node{position:absolute;width:220px;min-height:100px}.triangle-map .top{left:50%;top:0;transform:translateX(-50%)}.triangle-map .left{left:5%;bottom:0}.triangle-map .right{right:5%;bottom:0}.triangle-map svg{position:absolute;inset:35px 14%;width:72%;height:72%;overflow:visible}.triangle-map path{fill:none;stroke:#d6aa5e;stroke-width:2;stroke-dasharray:7 5}
.balance-map{display:grid;grid-template-columns:1fr 70px 1fr;gap:13px;align-items:stretch;margin-top:22px}.balance-column{padding:18px;border-radius:13px;background:var(--paper);color:var(--ink)}.balance-column.limit{background:#5f1a19;color:#fff1dd}.balance-column h3{margin:0 0 10px;font-size:24px}.balance-column ul{margin:0;padding-left:18px;font:600 12px/1.6 var(--sans)}.balance-axis{display:grid;place-items:center;color:var(--gold);font-size:52px}
.map-image-wrap{position:relative;margin-top:18px;border-radius:13px;overflow:hidden;background:#e8dcc4}.map-image-wrap img{display:block;width:100%;max-height:650px;object-fit:contain}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;color:#c4b599;font:500 11px var(--sans)}
.compare-table{width:100%;margin-top:20px;border-collapse:separate;border-spacing:0;overflow:hidden;border:1px solid rgba(214,170,94,.35);border-radius:13px;font:500 13px/1.45 var(--sans)}.compare-table th,.compare-table td{padding:14px;border-right:1px solid rgba(214,170,94,.22);border-bottom:1px solid rgba(214,170,94,.22);text-align:left;vertical-align:top}.compare-table th{background:#d6aa5e;color:#101d30}.compare-table tr:last-child td{border-bottom:0}.compare-table th:last-child,.compare-table td:last-child{border-right:0}.compare-table td:first-child{color:#f1d38c;font-weight:800}

/* People */
.people-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.person-card{position:relative;min-height:390px;border:1px solid rgba(214,170,94,.46);border-radius:17px;overflow:hidden;background:#07182f;box-shadow:var(--shadow)}.person-card img{width:100%;height:265px;object-fit:cover;object-position:50% 18%;filter:saturate(.83) sepia(.08);transition:.35s}.person-card:hover img{transform:scale(1.035)}.person-card div{padding:20px}.person-card h2{margin:0;color:#f2d795;font-size:28px;line-height:1}.person-card p{margin:7px 0;color:#c7b89f;font:500 12px/1.45 var(--sans)}
.bio-layout{display:grid;grid-template-columns:350px 1fr;gap:30px}.bio-photo{position:sticky;top:96px}.bio-photo img{width:100%;max-height:580px;object-fit:cover;object-position:50% 15%;border:2px solid #b2863d;border-radius:18px;box-shadow:var(--shadow)}.bio-content{padding:35px;border:1px solid rgba(214,170,94,.35);border-radius:18px;background:rgba(255,255,255,.045)}.bio-content h1{margin:0;color:#fff1d1;font-size:55px;line-height:.9}.bio-content .years{color:var(--gold-light);font:800 13px var(--sans)}.bio-content .role{font-size:25px;color:#e0cda9}.bio-content>p{font:400 17px/1.7 var(--sans)}.idea-quote{margin:28px 0;padding:22px;border-left:4px solid var(--ruby);background:var(--paper);color:var(--ink);font-size:25px;font-style:italic}

/* Timeline */
.timeline-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:25px}.timeline-controls button{padding:9px 12px;border:1px solid rgba(214,170,94,.35);border-radius:999px;background:rgba(255,255,255,.05);cursor:pointer;font:700 11px var(--sans)}.timeline-controls button.active{background:var(--gold);color:#10203a}.timeline-list{position:relative;display:grid;gap:14px}.timeline-list::before{content:"";position:absolute;left:92px;top:0;bottom:0;width:2px;background:linear-gradient(var(--gold),rgba(214,170,94,.08))}.timeline-event{position:relative;display:grid;grid-template-columns:72px 1fr;gap:40px;align-items:start}.timeline-year{padding:11px 5px;border-radius:9px;background:var(--ruby);color:#fff;text-align:center;font:800 12px var(--sans);z-index:2}.timeline-event article{padding:20px;border:1px solid rgba(214,170,94,.28);border-radius:13px;background:rgba(255,255,255,.045)}.timeline-event h2{margin:0 0 6px;color:#f1d796;font-size:27px}.timeline-event p{margin:0 0 10px;color:#c9bba3;font:500 13px/1.55 var(--sans)}.timeline-event a{color:var(--gold-light);font:800 11px var(--sans)}

/* Sources */
.sources-grid{display:grid;gap:22px}.source-lab{overflow:hidden;border:1px solid rgba(214,170,94,.4);border-radius:18px;background:rgba(255,255,255,.04)}.source-head{padding:26px 28px;background:linear-gradient(110deg,#123356,#07162b)}.source-head h2{margin:0;color:#f5dfa7;font-size:36px}.source-head p{margin:6px 0 0;color:#c8b99f;font:600 12px var(--sans)}.source-body{display:grid;grid-template-columns:1.1fr .9fr;gap:0}.source-text{padding:30px;background:var(--paper);color:var(--ink)}.source-text blockquote{margin:0 0 20px;padding:0 0 20px;border-bottom:1px solid #c9aa6b;font-size:24px;line-height:1.4;font-style:italic}.source-analysis{padding:30px}.source-facts{display:grid;gap:12px}.source-fact{padding-bottom:12px;border-bottom:1px solid rgba(214,170,94,.18)}.source-fact span{display:block;color:var(--gold-light);font:800 9px var(--sans);letter-spacing:.14em;text-transform:uppercase}.source-fact p{margin:4px 0 0;color:#d5c6ac;font:500 12px/1.5 var(--sans)}.source-question{margin-top:22px;padding:18px;border-left:3px solid var(--ruby);background:rgba(157,45,37,.14);font:700 14px/1.5 var(--sans)}

/* Quiz */
.quiz-shell{max-width:850px;margin:auto}.quiz-progress{display:flex;align-items:center;gap:14px;margin-bottom:16px;color:#d4c5aa;font:700 12px var(--sans)}.quiz-progress .progress-track{flex:1}.quiz-card{padding:clamp(24px,5vw,46px);border:1px solid rgba(214,170,94,.5);border-radius:19px;background:var(--paper-soft);color:var(--ink);box-shadow:var(--shadow)}.quiz-card h2{margin:0 0 24px;font-size:36px;line-height:1.05}.quiz-options{display:grid;gap:11px}.quiz-option{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:12px;padding:14px;border:1px solid #cfb57f;border-radius:11px;background:#fffaf0;color:#231b13;cursor:pointer;text-align:left;font:600 14px/1.45 var(--sans)}.quiz-option span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#0d2b50;color:#fff}.quiz-option:hover{background:#f2dfb6}.quiz-option.correct{border-color:#41845b;background:#dff0e4}.quiz-option.wrong{border-color:#a64b3b;background:#f3d1c8}.quiz-feedback{margin-top:17px;padding:15px;border-radius:10px;background:#efe2c7;font:600 13px/1.55 var(--sans)}.quiz-next{margin-top:16px}.result-score{text-align:center}.result-score strong{display:block;color:var(--ruby);font-size:88px;line-height:1}.result-list{display:grid;gap:12px;margin-top:25px}.result-item{padding:15px;border:1px solid #ceb57e;border-radius:11px;background:#fffaf0;font:600 12px/1.5 var(--sans)}.result-item.bad{border-left:5px solid var(--ruby)}.result-item.good{border-left:5px solid var(--green)}

/* Search, notes, modal */
.search-drawer{position:fixed;z-index:110;top:76px;left:0;right:0;max-height:calc(100vh - 76px);overflow:auto;padding:24px;background:#07172e;border-bottom:1px solid rgba(214,170,94,.4);box-shadow:0 20px 50px rgba(0,0,0,.45)}.search-inner{width:min(900px,100%);margin:auto}.search-inner label{display:block;margin-bottom:8px;color:#f2d89b;font:800 11px var(--sans);letter-spacing:.1em;text-transform:uppercase}.search-line{display:grid;grid-template-columns:1fr 42px;gap:10px}.search-line input{width:100%;padding:14px 17px;border:1px solid rgba(214,170,94,.5);border-radius:10px;background:#fff8e9;color:#17120c;font:500 15px var(--sans)}.search-results{display:grid;gap:8px;margin-top:14px}.search-result{padding:13px;border:1px solid rgba(214,170,94,.22);border-radius:10px;background:rgba(255,255,255,.045)}.search-result h3{margin:0;color:#f2d796;font-size:20px}.search-result p{margin:4px 0;color:#cdbfa7;font:500 11px/1.45 var(--sans)}
.notes-drawer{position:fixed;z-index:130;top:0;right:0;width:min(440px,100%);height:100vh;padding:26px;background:#081b35;border-left:1px solid rgba(214,170,94,.4);box-shadow:-20px 0 60px rgba(0,0,0,.55)}.notes-head{display:flex;align-items:start;justify-content:space-between}.notes-head h2{margin:0;color:#f3dc9f;font-size:36px}.notes-drawer>p{color:#c5b69b;font:500 12px/1.5 var(--sans)}.notes-drawer textarea{width:100%;height:calc(100vh - 245px);resize:none;padding:16px;border:1px solid #c39b53;border-radius:12px;background:#fff8e9;color:#1b1711;font:500 15px/1.6 var(--sans)}.notes-actions{display:flex;gap:9px;margin-top:12px}
.modal{position:fixed;z-index:200;inset:0;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.82)}.modal-card{width:min(1180px,96vw);max-height:94vh;display:flex;flex-direction:column;border:1px solid var(--gold);border-radius:17px;background:#07172d;box-shadow:0 30px 100px #000;overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 17px;border-bottom:1px solid rgba(214,170,94,.35)}.modal-head h2{margin:0;color:#f3d996;font-size:23px}.modal-body{overflow:auto;padding:15px}.modal-body img{display:block;max-width:100%;max-height:80vh;margin:auto}.toast{position:fixed;z-index:300;left:50%;bottom:24px;max-width:90vw;padding:11px 17px;border-radius:99px;background:#f0d48f;color:#131d2a;box-shadow:var(--shadow);font:800 12px var(--sans);transform:translate(-50%,120px);transition:.3s}.toast.show{transform:translate(-50%,0)}

@media (max-width:1050px){
  .desktop-nav a{padding:9px 7px;font-size:11px}.header-cta{display:none}.portrait-strip{grid-template-columns:repeat(3,1fr)}.people-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  html{scroll-padding-top:70px}.site-header{height:68px;padding:0 16px}.brand img{width:40px;height:40px}.brand span{font-size:16px}.app-header .desktop-nav{position:absolute;top:68px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;padding:12px 18px;background:#06142a;border-bottom:1px solid rgba(214,170,94,.3)}.app-header .desktop-nav.open{display:flex}.app-header .desktop-nav a{padding:12px}.menu-toggle{display:grid;width:42px;height:42px;margin-left:auto;place-content:center;gap:4px;border:0;background:none}.menu-toggle span:not(.visually-hidden){display:block;width:20px;height:2px;background:#f0d89f}.app-header .icon-button{margin-left:0}.install-button{display:none}.home-page .desktop-nav{display:none}.home-page .header-cta{display:inline-flex;margin-left:auto;padding:9px 11px;font-size:11px}
  .cover-hero{min-height:calc(100svh - 68px);background-image:url('../assets/img/covers/hero-restaurazione-mobile.jpg')}.cover-copy{padding:25px 10px}.cover-copy::before,.cover-copy::after{width:45px;margin:0 8px 6px}.cover-copy h1{font-size:clamp(3.6rem,18vw,6.5rem)}.cover-copy blockquote{font-size:1rem}.scroll-cue{display:none}
  .home-section{padding:60px 0}.route-grid,.feature-grid,.lesson-index-grid,.map-grid{grid-template-columns:1fr}.route-card{min-height:225px}.portrait-strip{grid-template-columns:repeat(2,1fr)}.feature-card{min-height:290px}.feature-card h2{font-size:38px}.split-heading{align-items:start;flex-direction:column}.site-footer{grid-template-columns:1fr;text-align:center}.site-footer>div{justify-content:center}
  .page-hero{min-height:360px;grid-template-columns:1fr;padding:26px}.hero-question{font-size:20px}.lesson-shell{grid-template-columns:1fr}.lesson-sidebar{position:static;grid-template-columns:repeat(2,1fr)}.lesson-tools{grid-template-columns:repeat(2,1fr)}.tool-button{width:100%}.reader-paper p{font-size:18px}.vocab-grid{grid-template-columns:1fr}.people-grid{grid-template-columns:1fr}.bio-layout{grid-template-columns:1fr}.bio-photo{position:static}.source-body{grid-template-columns:1fr}.map-card.wide{grid-column:auto}.triangle-map{min-height:auto;display:grid;gap:10px}.triangle-map .concept-node{position:static;width:auto;min-height:0;transform:none}.triangle-map svg{display:none}.concept-flow{display:grid;grid-template-columns:1fr}.flow-arrow{transform:rotate(90deg)}.balance-map{grid-template-columns:1fr}.balance-axis{transform:rotate(90deg)}
}
@media (max-width:520px){
  body{font-size:16px}.brand small{display:none}.home-page .header-cta{font-size:0}.home-page .header-cta span{font-size:20px}.cover-actions{display:grid}.cover-actions .button{width:100%}.route-grid{gap:13px}.route-card{min-height:210px}.portrait-strip{gap:12px}.portrait-link h3{font-size:18px}.portrait-link p{font-size:9px}.feature-card{padding:27px}.thesis-panel{padding:45px 22px}.app-container{width:min(100% - 24px,1180px);padding-top:25px}.lesson-index-card{grid-template-columns:48px 1fr auto;padding:17px}.lesson-index-card .big-num{width:45px;height:45px;font-size:16px}.lesson-index-card h2{font-size:24px}.reader-paper{padding:22px 17px}.reader-paper h2{font-size:30px}.reader-paper p{font-size:17px;line-height:1.65}.lesson-sidebar{grid-template-columns:1fr}.pager{grid-template-columns:1fr}.pager a:last-child{text-align:left}.completion-box{align-items:flex-start;flex-direction:column}.page-hero{border-radius:14px}.people-grid{gap:13px}.compare-table{font-size:10px}.compare-table th,.compare-table td{padding:9px 7px}.timeline-list::before{left:58px}.timeline-event{grid-template-columns:48px 1fr;gap:22px}.timeline-year{font-size:9px}.source-text blockquote{font-size:20px}.notes-actions{flex-direction:column}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

@media print{
  body{background:#fff;color:#111;font-size:12pt}.site-header,.lesson-sidebar,.lesson-tools,.pager,.completion-box,.site-footer,.search-drawer,.notes-drawer,.toast{display:none!important}.app-container{width:100%;padding:0}.page-hero{min-height:0;display:block;margin:0 0 20px;padding:20px;border:0;background:#fff;color:#111;box-shadow:none}.page-hero h1,.page-hero .lead{color:#111;text-shadow:none}.hero-question{color:#111;background:#f3ead8}.lesson-shell{display:block}.reader-paper{padding:0;border:0;box-shadow:none}.reader-paper .lesson-section{break-inside:avoid}.apparatus{color:#111;background:#fff;border-color:#999}.apparatus h2,.vocab-item h3{color:#6f1d18}.apparatus ul,.vocab-item p{color:#222}.button{display:none}
}
