:root{--bg-canvas:#f7f5f0;--bg-surface:#fff;--bg-surface-hover:#fff;--text-primary:#111;--text-muted:#555;--accent-primary:#d62828;--accent-secondary:#111;--border-subtle:rgba(17,17,17,.1);--ease-kinetic:cubic-bezier(.16,1,.3,1);--shadow-elevation:0 12px 32px -4px rgba(0,0,0,.18);--glow-accent:0 0 24px -4px rgba(214,40,40,.35);--glass-backdrop:blur(16px) saturate(180%);--r:20px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font:1.125rem/1.7 Charter,"Bitstream Charter",Cambria,Georgia,serif;overflow-wrap:anywhere;hyphens:auto}
h1,h2,h3{line-height:1.2;font-weight:700;overflow-wrap:anywhere;hyphens:auto;margin:0 0 .6em}
h1{font-size:clamp(2.1rem,5vw,3.6rem)}h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-top:2.2rem}h3{font-size:1.3rem}
a{color:var(--accent-primary);text-underline-offset:3px}
a:hover{color:#111}
:focus-visible{outline:3px solid var(--accent-primary);outline-offset:3px}
img{max-width:100%;height:auto;display:block}
.sc{font-variant:small-caps;letter-spacing:.06em}
.kicker{font-variant:small-caps;letter-spacing:.1em;color:var(--accent-primary);font-size:1rem;margin:0 0 .4rem;display:block}
.muted{color:var(--text-muted)}
.col{max-width:64ch;margin:0 auto;padding:0 22px}
.wide{max-width:1200px;margin:0 auto;padding:0 22px}
.section{padding:4.5rem 0}
.site-header{position:relative;z-index:30;margin:16px;background:#fff;border-radius:999px;box-shadow:0 6px 24px -8px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:10px 14px 10px 22px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:#111;font-weight:700;font-size:1.1rem;margin-right:auto}
.mark{width:34px;height:34px;border-radius:50%;background:var(--accent-primary);color:#fff;display:grid;place-items:center;font-size:1.05rem;font-style:italic}
.nav{display:flex;align-items:center;gap:.3rem}
.nav>a,.dd summary{color:#111;text-decoration:none;padding:.45rem .8rem;border-radius:999px;cursor:pointer;font-size:1.05rem;list-style:none}
.dd summary::-webkit-details-marker{display:none}
.dd summary::after{content:" ▾";color:var(--accent-primary)}
.nav>a:hover,.dd summary:hover{background:var(--bg-canvas);color:var(--accent-primary)}
.dd{position:relative}
.dd-menu{position:absolute;right:0;top:calc(100% + 10px);background:#fff;border-radius:var(--r);box-shadow:var(--shadow-elevation);padding:.6rem;min-width:250px;display:grid}
.dd-menu a{padding:.5rem .8rem;border-radius:12px;color:#111;text-decoration:none}
.dd-menu a:hover{background:var(--bg-canvas);color:var(--accent-primary)}
.menu-btn{display:none;background:none;border:0;font-size:1.7rem;line-height:1;width:44px;height:44px;border-radius:50%;cursor:pointer;color:#111}
.menu-btn:hover{background:var(--bg-canvas)}
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;justify-content:center;color:#fff;text-align:center;margin-top:-82px;padding:120px 22px 12vh}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(10,8,8,.92) 0%,rgba(10,8,8,.55) 45%,rgba(10,8,8,.1) 85%)}
.hero{isolation:isolate}
.hero h1{max-width:20ch;margin:0 auto .5em}
.standfirst{font-size:clamp(1.15rem,2vw,1.4rem);max-width:56ch;margin:0 auto 2rem;font-style:italic}
.hero .kicker{color:#ffb3b3}
.btn{display:inline-block;background:var(--accent-primary);color:#fff;text-decoration:none;font-weight:700;padding:.85rem 1.5rem;border:0;border-radius:6px;box-shadow:4px 4px 0 #111;cursor:pointer;font:inherit;font-weight:700;transition:transform .25s var(--ease-kinetic),box-shadow .25s var(--ease-kinetic)}
.btn:hover{transform:translate(4px,4px);box-shadow:0 0 0 #111;color:#fff}
.btn.ghost{background:#fff;color:#111}
.btn.ghost:hover{color:#111}
.page-head{padding:3.5rem 0 1rem}
.page-head .standfirst{margin:0 0 1rem;max-width:none;color:var(--text-muted)}
.meta{font-variant:small-caps;letter-spacing:.08em;color:var(--text-muted);font-size:.95rem}
.breakout{max-width:min(1100px,94vw);margin:2.8rem auto}
.breakout img,.fig img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r)}
figcaption{font-size:.92rem;color:var(--text-muted);margin-top:.6rem;text-align:center;font-style:italic}
.pull{max-width:min(900px,92vw);margin:3rem auto;padding:0 22px;font-size:clamp(1.4rem,3vw,2rem);line-height:1.35;font-style:italic;text-align:center}
.pull::before{content:"“";display:block;color:var(--accent-primary);font-size:4rem;line-height:.6}
.pull cite{display:block;font-size:1rem;font-style:normal;font-variant:small-caps;letter-spacing:.08em;margin-top:1rem;color:var(--text-muted)}
.band{background:var(--accent-primary);color:#fff;padding:5rem 0}
.band a{color:#fff}
.band .pull::before{color:#fff}
.band .pull cite{color:#ffe0e0}
.band .kicker{color:#ffe0e0}
.contents{list-style:none;padding:0;margin:2rem 0;counter-reset:part}
.contents li{counter-increment:part;display:grid;grid-template-columns:3.2rem 1fr;gap:1rem;padding:1.3rem 0;border-bottom:1px solid var(--border-subtle)}
.contents li::before{content:counter(part,upper-roman);font-size:1.8rem;color:var(--accent-primary);font-weight:700}
.contents a{font-size:1.35rem;font-weight:700;color:#111;text-decoration:none}
.contents a:hover{color:var(--accent-primary)}
.contents p{margin:.3rem 0 0;color:var(--text-muted)}
.index-list{columns:2 240px;column-gap:2.5rem;padding:0;list-style:none;margin:1.5rem 0}
.index-list li{break-inside:avoid;padding:.35rem 0;border-bottom:1px dotted #ccc}
.index-list .letter{font-variant:small-caps;color:var(--accent-primary);font-weight:700;border:0;padding-top:1rem}
.qa-band{display:grid;gap:1.6rem;margin-top:2rem}
.qa-band article{border-left:3px solid #fff;padding-left:1.2rem}
.qa-band h3{margin-bottom:.3rem}
.qa{background:#fff;border-radius:var(--r);padding:1.6rem 1.8rem;margin:1.4rem 0;box-shadow:0 4px 18px -8px rgba(0,0,0,.15)}
.qa h2{font-size:1.3rem;margin:0 0 .5rem}
.qa p:last-child{margin-bottom:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.6rem;margin:2rem 0}
.card{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:0 6px 20px -10px rgba(0,0,0,.18);text-decoration:none;color:#111;display:flex;flex-direction:column;transition:transform .4s var(--ease-kinetic),box-shadow .4s var(--ease-kinetic)}
.card:hover{transform:translateY(-5px) scale(1.015);box-shadow:var(--shadow-elevation),var(--glow-accent);color:#111}
.card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.card div{padding:1.2rem 1.4rem 1.5rem}
.card h3{margin:.2rem 0 .4rem}
.card p{margin:0;color:var(--text-muted);font-size:1rem}
.related{padding:3rem 0 4rem}
.letterpad{background:#fff;border-radius:var(--r);box-shadow:var(--shadow-elevation);padding:2rem;margin:2rem 0}
.letterpad label{display:block;font-variant:small-caps;letter-spacing:.08em;color:var(--text-muted);margin-top:1.1rem}
.letterpad input,.letterpad textarea{width:100%;border:0;border-bottom:1px solid #e3cfc6;background:transparent;font:inherit;padding:.3rem 0;color:#111}
.letterpad textarea{min-height:256px;line-height:32px;border:0;background:repeating-linear-gradient(transparent 0 31px,#e3cfc6 31px 32px);resize:vertical;padding:0}
.letterpad input:focus,.letterpad textarea:focus{outline:none;border-color:var(--accent-primary)}
.actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.6rem}
.output{white-space:pre-wrap;background:var(--bg-canvas);border-radius:14px;padding:1.2rem;margin-top:1.4rem;font-size:1rem;min-height:3rem}
.status{min-height:1.5em;color:var(--accent-primary);font-style:italic}
.site-footer{background:#111;color:#e8e4dc;text-align:center;padding:4rem 0 3rem;margin-top:2rem}
.site-footer a{color:#fff;text-decoration:none}
.site-footer a:hover{color:#ff8a8a}
.f-brand{font-size:1.4rem;font-weight:700;margin:0 0 .5rem}
.f-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.4rem;margin:1rem 0}
.f-legal{font-size:.92rem;color:#bdb7ad}
.js .reveal{opacity:0;transform:translateY(28px)}
.js .reveal.reveal-visible{opacity:1;transform:translateY(0);transition:all .7s var(--ease-kinetic)}
table{border-collapse:collapse;width:100%;font-size:1rem}
th,td{text-align:left;padding:.6rem;border-bottom:1px solid #ddd}
@media (max-width:1024px){.hero{padding-bottom:9vh}}
@media (max-width:768px){
.site-header{border-radius:var(--r)}
.menu-btn{display:block}
.nav{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);background:#fff;border-radius:var(--r);box-shadow:var(--shadow-elevation);flex-direction:column;align-items:stretch;padding:.8rem;animation:slide .35s var(--ease-kinetic)}
.nav.open{display:flex}
.dd-menu{position:static;box-shadow:none;padding:0 0 0 1rem}
@keyframes slide{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
}
@media (max-width:480px){body{font-size:1.05rem}.brand span:last-child{font-size:.95rem}.letterpad{padding:1.3rem}.qa{padding:1.3rem}.contents li{grid-template-columns:2.4rem 1fr}}
@media (min-width:481px) and (max-width:768px){.hero h1{font-size:2.6rem}}
@media (min-width:1025px){.section{padding:5.5rem 0}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}}