:root{--forest:#18342d;--forest-deep:#10251f;--cream:#f7f3e9;--paper:#fffdf6;--ink:#24342d;--muted:#64746b;--line:#d9dfd0;--red:#b74f32;--gold:#d8ba6b;--serif:"Cormorant Garamond",Georgia,serif;--sans:Inter,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7}a{color:inherit}button{font:inherit}.skip-link{position:absolute;left:12px;top:-60px;padding:8px 14px;background:white;z-index:100}.skip-link:focus{top:12px}.shell{max-width:1180px;margin:auto;padding-left:34px;padding-right:34px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px max(34px,calc((100vw - 1112px)/2));background:var(--forest-deep);color:var(--cream);position:relative;z-index:5}.brand{text-decoration:none;display:inline-flex;flex-direction:column;line-height:1.1;white-space:nowrap}.brand span{font-family:var(--serif);font-size:29px;font-weight:700;letter-spacing:.14em}.brand b{font-size:9px;letter-spacing:.32em;font-weight:600;margin-top:6px}.site-header nav{display:flex;gap:30px}.site-header nav a{text-decoration:none;font-size:12px;letter-spacing:.11em;text-transform:uppercase}.site-header nav a:hover,.site-footer>a:last-child:hover{text-decoration:underline}.hero{min-height:640px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--forest);color:#fff;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;pointer-events:none;inset:0;background:linear-gradient(90deg,transparent 45%,#18342d12),repeating-linear-gradient(0deg,transparent 0 4px,#fff1 5px 6px)}.hero-image{background:url('/le-ventre-de-paris/images/halles-baltard.jpg') center/cover no-repeat;filter:sepia(.15) saturate(.75);min-height:640px}.hero-content{align-self:center;padding:72px min(7vw,100px);z-index:1}.kicker,.section-no,.place{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.kicker{color:var(--gold)}.kicker span{padding:0 8px;color:#fff8}.hero h1{font-family:var(--serif);font-size:clamp(76px,8vw,138px);font-weight:600;line-height:.81;letter-spacing:-.045em;margin:35px 0}.hero h1 em{color:#e0bb75;font-weight:500}.hero-lead{font-family:var(--serif);font-size:clamp(24px,2.3vw,33px);line-height:1.16;max-width:530px;margin:0 0 36px}.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.hero-actions>span{font-size:11px;color:#ddd9cd;letter-spacing:.06em}.button{display:inline-flex;gap:30px;align-items:center;text-decoration:none;text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.12em;padding:16px 20px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--red);color:#fff}.primary:hover{background:#cc6040}.hero-caption{position:absolute;bottom:15px;left:22px;margin:0;color:#fff;background:#142720a8;padding:4px 8px;font-size:10px;z-index:2}.opening{display:grid;grid-template-columns:190px 1fr;gap:70px;padding-top:95px;padding-bottom:95px}.section-no{color:var(--red);margin:0;padding-top:16px}.opening h2,.route-intro h2,.afterword h2,.sources h2{font:600 clamp(42px,5vw,69px)/.98 var(--serif);margin:0 0 28px;max-width:780px}.opening h2 em,.route-intro h2 em,.afterword h2 em{color:var(--red);font-weight:500}.opening p:not(.section-no),.route-intro p:not(.section-no),.afterword p:not(.section-no),.sources p:not(.section-no){max-width:780px}.opening>div>p{font-size:16px}.route-intro{border-top:1px solid var(--line);padding-top:64px;padding-bottom:55px;display:grid;grid-template-columns:1fr 270px;gap:60px;align-items:end}.route-intro h2{margin-top:10px;margin-bottom:14px}.progress-card{background:var(--forest);color:#fff;padding:24px 26px;display:flex;flex-direction:column;gap:4px}.progress-number{font-family:var(--serif);font-size:37px;line-height:1}.progress-number b{font-weight:600;color:var(--gold)}.progress-card>span:nth-child(2){font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#e3e3d3}.progress-track{height:4px;background:#ffffff30;margin-top:15px}.progress-track span{display:block;width:0;height:100%;background:var(--gold);transition:width .25s}.progress-card button{border:0;background:none;color:#e6d4a8;text-decoration:underline;text-align:left;cursor:pointer;padding:9px 0 0;font-size:11px}.steps{padding-bottom:80px}.step{display:grid;grid-template-columns:minmax(0,47%) minmax(0,53%);background:var(--paper);border:1px solid var(--line);margin-bottom:28px;scroll-margin-top:20px;box-shadow:0 12px 35px #1a33230a}.step:nth-child(even) .step-visual{order:2}.step-visual{position:relative;min-height:640px;background:#d1ccba;overflow:hidden}.step-visual img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;filter:saturate(.75) sepia(.1)}.step-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#10251f65,transparent 35%);pointer-events:none}.step-visual span{position:absolute;bottom:23px;left:24px;color:#fff;font-size:11px;font-weight:700;letter-spacing:.18em;z-index:1}.step-copy{padding:55px min(6vw,76px) 45px}.place{color:var(--red);margin:0 0 22px}.step h2{font:600 clamp(42px,4.3vw,61px)/.94 var(--serif);margin:0 0 23px;color:var(--forest)}.step .intro{font:500 24px/1.22 var(--serif);margin:0 0 20px;color:#2f4438}.step-copy>p:not(.place):not(.intro):not(.credit){font-size:14px}.step blockquote{margin:22px 0;padding-left:20px;border-left:3px solid var(--red);font:italic 500 25px/1.13 var(--serif);color:#7b382c}.step blockquote cite{display:block;font:600 10px/1.5 var(--sans);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-top:7px}.trace{background:#eaf0e4;padding:17px 19px;margin:24px 0}.trace strong{display:block;color:#2f5f43;text-transform:uppercase;letter-spacing:.1em;font-size:11px}.trace p{margin:6px 0 0;font-size:13px;line-height:1.55}.reveal{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 0;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent;text-align:left;cursor:pointer;color:var(--forest);font-size:12px;text-transform:uppercase;font-weight:700;letter-spacing:.1em}.reveal span{font-size:22px;line-height:1;color:var(--red)}.reveal-panel{background:#f5ebd8;border-bottom:1px solid #e5d8b9;padding:15px 20px;font-size:13px;line-height:1.55}.reveal-panel p{margin:0}.step-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:23px 0 0}.step-links a{font-size:12px;color:var(--red);font-weight:700;text-decoration:none}.step-links a:hover{text-decoration:underline}.credit{border-top:1px solid var(--line);padding-top:14px;margin:28px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.afterword{background:var(--forest);color:#fff;max-width:none;padding-top:80px;padding-bottom:85px;display:grid;grid-template-columns:minmax(190px,calc((100vw - 1112px)/2)) minmax(0,750px);gap:70px}.afterword .section-no{color:var(--gold);justify-self:end}.afterword h2 em{color:var(--gold)}.afterword p:not(.section-no){font-size:16px}.secondary{background:var(--gold);color:var(--forest);margin-top:20px}.sources{padding-top:80px;padding-bottom:90px;display:grid;grid-template-columns:190px 1fr;gap:70px}.sources h2{font-size:49px}.sources ul{padding-left:18px;line-height:1.7}.sources li{margin-bottom:8px;font-size:13px}.sources li a{font-weight:700;color:#9d412c}.sources .rights{font-size:12px;color:var(--muted);margin-top:26px}.site-footer{background:var(--forest-deep);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:25px;padding:34px max(34px,calc((100vw - 1112px)/2));font-size:12px}.site-footer .brand span{font-size:25px}.site-footer>a:last-child{text-decoration:none;color:var(--gold)}
.overview{padding-bottom:75px;scroll-margin-top:20px}
.overview-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.7fr);gap:14px 44px;align-items:end;margin-bottom:27px}
.overview-heading .section-no{grid-column:1/-1;padding:0}
.overview-heading h2{font:600 clamp(43px,5vw,68px)/.95 var(--serif);margin:0}
.overview-heading h2 em{color:var(--red);font-weight:500}
.overview-heading>p:last-child{max-width:390px;margin:0 0 3px;font-size:14px}
.overview-body{display:grid;grid-template-columns:minmax(290px,.75fr) minmax(0,1.25fr);gap:16px}
.overview-map{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:12px;background:#e6eadf;border:1px solid #cbd5c6}
.overview-map svg{display:block;width:100%;height:auto}
.overview-map>span{color:#52695a;font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 2px 10px}
.map-street{fill:none;stroke:#f9f6eb;stroke-width:23}
.map-street.thin{stroke-width:11}
.map-market{fill:#cfddc7;stroke:#9cad8f;stroke-width:2;stroke-dasharray:5 5}
.map-caption,.map-place{fill:#4e6755;font:700 12px var(--sans);letter-spacing:1.8px}
.map-place{fill:#6f8a71;font-size:10px;letter-spacing:1.5px}
.map-pin circle{fill:var(--red);stroke:#fff8e9;stroke-width:3}
.map-pin text{fill:#fff;font:700 15px var(--sans);text-anchor:middle}
.overview-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.overview-list a{display:flex;align-items:center;gap:12px;min-height:103px;padding:13px;color:var(--forest);background:var(--paper);border:1px solid var(--line);text-decoration:none;transition:background .2s,border-color .2s}
.overview-list a:hover,.overview-list a:focus-visible{background:#eaf0e4;border-color:var(--red)}
.overview-number{align-self:flex-start;color:var(--red);font:600 26px/1 var(--serif)}
.overview-list a>span:nth-child(2){min-width:0}
.overview-list strong{display:block;font:600 21px/1.06 var(--serif)}
.overview-list small{display:block;margin-top:6px;color:var(--muted);font:500 10px/1.4 var(--sans)}
.overview-arrow{align-self:flex-start;margin-left:auto;color:var(--red);font-size:14px}
@media(max-width:950px){.hero{grid-template-columns:42% 58%}.hero-content{padding:55px 7vw}.hero h1{font-size:clamp(66px,8vw,100px)}.step-copy{padding:40px 35px}.step-visual{min-height:620px}.opening,.sources{gap:35px;grid-template-columns:130px 1fr}.afterword{grid-template-columns:130px 1fr;padding-left:34px;padding-right:34px;gap:35px}}
@media(max-width:760px){.overview-heading{display:block}.overview-heading h2{margin:12px 0}.overview-body{grid-template-columns:1fr}.overview-map{max-width:550px}.overview-list a{min-height:90px}}
@media(max-width:490px){.overview-list{grid-template-columns:1fr}.overview-list a{min-height:73px}.overview{padding-bottom:55px}}
@media(max-width:720px){.shell{padding-left:20px;padding-right:20px}.site-header{padding:17px 20px}.brand span{font-size:24px}.site-header nav{gap:16px}.site-header nav a{font-size:10px}.hero{display:flex;flex-direction:column}.hero-image{min-height:300px;background-position:center 47%}.hero-content{padding:46px 20px 65px}.hero h1{font-size:clamp(72px,15vw,118px);margin:24px 0}.hero-lead{font-size:28px}.hero-caption{top:269px;bottom:auto;left:9px;font-size:9px}.opening,.sources{display:block;padding-top:63px;padding-bottom:65px}.opening .section-no,.sources .section-no{margin-bottom:22px}.opening h2,.route-intro h2,.afterword h2{font-size:52px}.route-intro{display:block;padding-top:50px}.progress-card{margin-top:30px;max-width:330px}.step{display:flex;flex-direction:column}.step:nth-child(even) .step-visual{order:0}.step-visual{min-height:340px;aspect-ratio:4/3}.step-copy{padding:32px 24px 30px}.step h2{font-size:51px}.step .intro{font-size:23px}.afterword{display:block;padding:65px 20px}.afterword .section-no{margin-bottom:20px}.site-footer{padding:33px 20px;flex-wrap:wrap}.site-footer p{width:100%;order:2}}
@media(max-width:380px){.site-header nav a:last-child{display:none}.hero h1{font-size:67px}.opening h2,.route-intro h2,.afterword h2{font-size:45px}.step h2{font-size:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.progress-track span{transition:none}}
