:root{--night:#071327;--navy:#0d2042;--ink:#18283c;--paper:#faf9f6;--muted:#526073;--line:#d5d9df;--amber:#eda74b;--teal:#256f75;--coral:#d24f39;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:8rem}
body{margin:0;color:var(--ink);background:var(--paper);font:400 1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:.24em}
button{font:inherit;cursor:pointer}
img{max-width:100%;display:block;height:auto}
figure{margin:0}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--serif);font-weight:700}
h1{font-size:clamp(2.7rem,4.3vw,4.7rem);line-height:1.07;letter-spacing:-.04em;margin-bottom:1.5rem}
h2{font-size:clamp(2.15rem,3.2vw,3.5rem);line-height:1.12;letter-spacing:-.035em;margin-bottom:1.5rem}
h3{font-size:1.45rem;line-height:1.25}
em{font-weight:400}
p{margin-bottom:1.25rem}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:5px}
button[hidden]{display:none}
.section{max-width:1280px;margin-inline:auto;padding-inline:clamp(1.3rem,5vw,4rem)}
.eyebrow{font:750 .78rem/1.55 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--teal);margin-bottom:1.3rem}
.lead{font-size:1.18rem;line-height:1.75}
.small,figcaption{font-size:.875rem;line-height:1.65;color:var(--muted)}
.skip{position:fixed;left:1rem;top:-100px;z-index:100;padding:.7rem 1rem;background:white;color:var(--night)}
.skip:focus{top:1rem}
.masthead{position:sticky;top:0;z-index:20;background:rgba(250,249,246,.98);border-bottom:1px solid var(--line)}
.header-inner{max-width:1280px;margin:auto;padding:1rem clamp(1.3rem,5vw,4rem);display:flex;align-items:center;gap:1.7rem;flex-wrap:wrap}
.brand{font:750 1.42rem/1 var(--serif);text-decoration:none;white-space:nowrap}
.brand span{color:var(--coral)}
.language{display:flex;gap:4px;margin-left:auto;padding:3px;border:1px solid #a6afba;border-radius:5px}
.language a{font-size:.875rem;line-height:1.5;padding:.3rem .65rem;text-decoration:none;border-radius:2px}
.language a[aria-current]{background:var(--night);color:white}
.navigation{display:flex;justify-content:flex-end;gap:1.3rem;font-size:.875rem}
.navigation a{text-decoration:none;white-space:nowrap}
.navigation a:hover{text-decoration:underline}
.menu-toggle{background:none;border:1px solid var(--line);padding:.35rem .65rem;color:var(--ink)}

.hero-stage{position:relative;overflow:hidden;background:var(--night);color:#f8f6f1}
.hero-stage:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,19,39,.98) 0%,rgba(7,19,39,.94) 42%,rgba(7,19,39,.48) 100%),url("assets/hero-rings.png") 70% 50%/cover no-repeat;opacity:.62}
.hero{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,6vw,6rem);padding-block:4.5rem 4rem;align-items:center}
.hero .eyebrow{color:var(--amber)}
.hero h1 em{color:var(--amber)}
.hero .lead{max-width:42rem;color:#e0e5ed}
.book-title{font:700 1.25rem/1.3 var(--serif);margin:1.7rem 0 .5rem;color:white}
.subtitle{max-width:38rem;font-size:.95rem;color:#aeb9c9}
.cover{position:relative;max-width:380px;margin-left:auto}
.cover img{width:100%;height:auto;box-shadow:14px 24px 42px -12px #000b;border:1px solid #36445b}
.cover figcaption{margin-top:1.2rem;text-align:center;font-size:.8rem;color:#aeb9c9}
.hero .button{background:var(--coral);border-color:var(--coral)}
.hero .button:hover{background:#b74431}
.hero .text-link{color:white}
.actions{display:flex;align-items:center;gap:1.3rem;flex-wrap:wrap;margin-top:1.9rem}
.button{display:inline-flex;justify-content:center;align-items:center;gap:1rem;padding:.9rem 1.3rem;background:var(--night);color:white;border:1px solid var(--night);text-decoration:none;font-size:.95rem;font-weight:650;border-radius:2px;transition:background .18s,transform .18s}
.button:hover{background:#234a6b;transform:translateY(-1px)}
.button:active{transform:translateY(1px)}
.button.secondary{background:var(--paper);color:var(--night)}
.button.outline{background:transparent;color:inherit;border-color:currentColor}
.button.outline:hover{background:#ffffff15}
.text-link,.text-button{font-size:.95rem;font-weight:650}
.text-button{border:0;border-bottom:1px solid currentColor;padding:.25rem 0;background:none;color:var(--teal)}
.facts{display:grid;grid-template-columns:repeat(4,1fr);padding-block:1.8rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{display:flex;align-items:center;justify-content:center;gap:1rem;border-right:1px solid var(--line)}
.facts div:last-child{border:0}
.facts strong{font:500 2.5rem/1 var(--serif);font-variant-numeric:tabular-nums}
.facts span{font-size:.85rem;max-width:7rem;color:var(--muted)}

.thesis{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding-block:6rem}
.thesis h2 em{color:var(--teal)}
.audience{font-size:.95rem;border-left:3px solid var(--amber);padding-left:1.2rem;margin-top:1.5rem;color:var(--muted)}
.benefits{padding-block:0 6rem}
.benefits>h2{max-width:20ch}
.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);margin-top:2.7rem;border-top:2px solid var(--navy)}
.benefit-grid article{padding:2rem 2rem 0 0}
.benefit-grid article+article{padding-left:2rem;border-left:1px solid var(--line)}
.benefit-number{display:block;font:300 2.4rem/1 var(--sans);color:transparent;-webkit-text-stroke:1px var(--coral);margin-bottom:1rem}
.benefit-grid h3{font-size:1.28rem;margin-bottom:.7rem}
.benefit-grid p{font-size:.95rem;color:var(--muted);margin:0}
.ideas{background:#edf0f2;border-block:1px solid var(--line)}
.idea{display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem;padding-block:4.5rem;align-items:center}
.idea+.idea{border-top:1px solid #cbd2d9}
.idea:nth-child(even) .idea-copy{order:2}
.idea:nth-child(even) .diagram{order:1}
.diagram{padding:1.8rem;background:var(--paper);border:1px solid #cbd2d9;box-shadow:0 12px 24px -22px #07132780}
.diagram ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.diagram li{min-width:0;position:relative;padding:1rem 0 0;border-top:2px solid var(--teal)}
.node-number{display:block;font:750 .8rem/1.3 var(--sans);letter-spacing:.1em;color:var(--teal);margin-bottom:.8rem}
.diagram h3{font-size:1.35rem;margin-bottom:.45rem}
.diagram li p{font-size:.94rem;line-height:1.55;margin:0;color:var(--muted)}
.diagram-conclusion{padding:1rem;margin:1.5rem 0 1rem;background:var(--navy);color:white;font-size:.95rem;line-height:1.5;border-left:3px solid var(--amber)}
.diagram figcaption{font-size:.82rem;margin-top:1rem}
.loop li .node-number:after{content:" →";color:var(--coral)}
.loop li:last-child .node-number:after{content:" ↺"}
.decision ol{gap:1.3rem}
.decision li{border-color:var(--amber)}
.apr ol{grid-template-columns:1fr;gap:0}
.apr li{display:grid;grid-template-columns:2rem 1fr;gap:.8rem;padding:.9rem 0;border-top:0;border-bottom:1px solid var(--line)}
.apr .node-number{display:grid;place-items:center;width:2rem;height:2rem;margin:0;background:var(--navy);color:white;border-radius:50%;position:relative}
.apr li:not(:last-child) .node-number:after{content:"";position:absolute;top:2rem;bottom:-3.5rem;left:calc(50% - .5px);width:1px;background:#8c9cab}
.apr h3{font-size:1.15rem}
.apr li:last-child{border:0}
.evidence ol{grid-template-columns:1fr;gap:.6rem}
.evidence li{border:0;border-left:5px solid var(--teal);padding:.6rem 0 .6rem 1rem;display:grid;grid-template-columns:1.7rem 1fr;gap:.5rem}
.evidence li:nth-child(2){border-color:#3c6988}
.evidence li:nth-child(3){border-color:#b47b29}
.evidence li:nth-child(4){border-color:#977989}
.evidence h3{font-size:1.2rem}
.evidence .node-number{padding-top:.2rem}

.example{padding-block:5rem}
.example>h2{max-width:54rem}
.example-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;margin-top:2.7rem}
.example-grid>div{border-top:2px solid var(--amber);padding-top:1.4rem}
.example-grid h3{font-size:1.25rem}
.example>.small{max-width:60rem;margin:1rem 0 0}
.contents{padding-block:4rem 5rem;border-top:1px solid var(--line)}
.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:end;margin-bottom:2.3rem}
.section-heading p:last-of-type{color:var(--muted)}
details>summary{cursor:pointer;list-style:none}
details>summary::-webkit-details-marker{display:none}
details>summary:after{content:"+";font:400 1.4rem/1 var(--sans);margin-left:auto;flex-shrink:0}
details[open]>summary:after{content:"−"}
.toc-part{border-top:1px solid #b7c0ca}
.toc-part:last-child{border-bottom:1px solid #b7c0ca}
.toc-part summary{display:flex;align-items:center;gap:1.5rem;padding:1.25rem 0;font:600 1.25rem/1.4 var(--serif)}
.part-number{min-width:2.6rem;font:600 .85rem/1 var(--sans);color:var(--teal)}
.toc ol{list-style:none;padding:0 3rem 1.2rem 4.1rem;margin:0}
.toc li{display:grid;grid-template-columns:2rem 1fr;gap:1rem;font-size:.95rem;padding:.6rem 0;border-top:1px solid #e0e2e4}
.toc li>span{color:var(--teal);font-size:.8rem;padding-top:.15rem}
.contents>.small{margin:1.4rem 0 0}
.toolkit{display:grid;grid-template-columns:.8fr 1.2fr;gap:6rem;align-items:center;padding-block:5rem;border-top:1px solid var(--line)}
.kit-cover{max-width:310px;justify-self:center}
.kit-cover img{width:100%;height:auto;box-shadow:5px 12px 30px -12px #07132770}
.kit-cover figcaption{margin-top:1.2rem}
.kit-features{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:2rem 0}
.kit-features>div{padding-top:.8rem;border-top:2px solid var(--teal)}
.kit-features dt{font:700 1.1rem/1.3 var(--serif);margin-bottom:.5rem}
.kit-features dd{margin:0;font-size:.9rem;color:var(--muted)}
.author{display:grid;grid-template-columns:.8fr 1.2fr;gap:6rem;padding-block:4.5rem;border-top:1px solid var(--line)}
.author-signature{font:italic 5rem/1 var(--serif);color:#b4bfc7;margin:1.7rem 0 0}
.author-signature span{color:var(--amber)}
.review{display:grid;grid-template-columns:.5fr 1.05fr .85fr;gap:2.7rem;padding-block:4rem;background:#e8eeed;border-block:1px solid #c6d2d2;align-items:start}
.dossier-preview{max-width:240px}
.dossier-preview img{width:100%;box-shadow:5px 14px 30px -14px #07132780}
.review aside{background:var(--paper);padding:2rem;border-top:3px solid var(--teal)}
.review aside p{font-size:.95rem}
.review aside h3{font-size:1.3rem}
.review hr{border:0;border-top:1px solid var(--line);margin:1.5rem 0}
.institution{background:var(--night);color:white}
.institution>.section{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding-block:4rem;align-items:center}
.institution .eyebrow{color:var(--amber)}
.institution h2{font-size:clamp(2rem,3vw,3rem);margin:0}
.institution p{color:#cfd6e2;max-width:43rem}
.institution .button{margin-top:.8rem}
.faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:4rem;padding-block:5rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;gap:1rem;font-size:1rem;font-weight:650;padding:1.1rem 0}
.faq details p{font-size:.95rem;color:var(--muted);max-width:43rem}
.closing{padding-block:4.5rem;background:var(--night);color:var(--paper)}
.closing .eyebrow{color:var(--amber)}
.closing h2{max-width:58rem}
.closing>p:not(.eyebrow){max-width:55rem;color:#ccd4df}
.edition-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2.8rem}
.edition-grid article{display:grid;grid-template-columns:145px 1fr;gap:1.5rem;align-items:center;padding:1.5rem;border:1px solid #ffffff35;background:#0c1d39}
.edition-cover{height:210px;overflow:hidden;background:#030b18}
.edition-cover img{width:100%;height:100%;object-fit:cover;object-position:center top}
.edition-grid article p:not(.eyebrow){font-size:.9rem;line-height:1.55;color:#b8c3d4}
.edition-grid .button:not(.outline){background:var(--amber);border-color:var(--amber);color:var(--night)}
.edition-grid .button:not(.outline):hover{background:#ffbc62}
.closing-status{font-size:.875rem;margin:2.5rem 0 0;padding-top:1.5rem;border-top:1px solid #ffffff35}
.closing a:focus-visible{outline-color:var(--amber)}
footer.section{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:space-between;padding-block:2rem}
footer p,footer>a:last-child{font-size:.8rem;color:var(--muted);margin:0}

.menu-toggle{display:none}

@media(max-width:1100px){.navigation{width:100%;justify-content:center}
.hero{gap:2.5rem}
.idea{gap:2rem}
.thesis,.section-heading{gap:2.5rem}
.toolkit,.author{gap:3rem}
.review{grid-template-columns:.38fr 1fr}
.review aside{grid-column:1/-1}
.facts div{gap:.7rem}
.facts strong{font-size:2.1rem}
}

@media(max-width:760px){html{scroll-padding-top:6rem}
.header-inner{gap:.7rem;padding-block:.8rem}
.brand{font-size:1.2rem}
.language a{font-size:.8rem;padding:.25rem .4rem}
.menu-toggle{display:block}
.navigation{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;justify-content:flex-start}
.js .navigation:not(.is-open){display:none}
.hero-stage:before{background:linear-gradient(rgba(7,19,39,.9),rgba(7,19,39,.98)),url("assets/hero-rings.png") 66% top/auto 65% no-repeat;opacity:.55}
.hero{grid-template-columns:1fr;padding-block:2.7rem;gap:2.5rem}
.hero h1{font-size:clamp(2.5rem,7vw,3.6rem)}
.hero .lead{font-size:1.08rem}
.cover{max-width:300px;margin:auto}
.facts{grid-template-columns:1fr 1fr;gap:1.5rem;padding-block:1.5rem}
.facts div{justify-content:flex-start}
.facts div:nth-child(2){border:0}
.facts strong{font-size:2.2rem}
.thesis,.idea,.section-heading,.toolkit,.author,.review,.faq,.institution>.section{grid-template-columns:1fr;gap:2rem;padding-block:3rem}
.thesis h2{margin-bottom:0}
.benefits{padding-block:0 3rem}
.benefit-grid{grid-template-columns:1fr}
.benefit-grid article,.benefit-grid article+article{padding:1.5rem 0;border-left:0;border-bottom:1px solid var(--line)}
.idea:nth-child(even) .idea-copy,.idea:nth-child(even) .diagram{order:initial}
.diagram{padding:1.3rem}
.example{padding-block:3rem}
.example-grid{grid-template-columns:1fr;gap:1.5rem}
.example-grid h3{margin-bottom:.7rem}
.example-grid p{margin:0}
.contents{padding-block:3rem}
.section-heading{padding-block:0;gap:.5rem}
.toc-part summary{font-size:1.15rem;gap:.75rem}
.part-number{min-width:2rem}
.toc ol{padding:0 0 1rem 0}
.toc li{gap:.4rem}
.toolkit>figure{order:2}
.kit-cover{max-width:250px}
.author-signature{display:none}
.review .dossier-preview{max-width:180px}
.review aside{padding:1.5rem}
.edition-grid{grid-template-columns:1fr}
.closing{padding-block:3rem}
.closing h2{font-size:2.5rem}
.closing .actions{align-items:stretch;flex-direction:column;max-width:26rem}
.faq{gap:.5rem}
footer.section{gap:1rem}
}

@media(max-width:380px){.header-inner{column-gap:.5rem}
.brand{font-size:1.05rem}
.menu-toggle{font-size:.8rem;padding:.3rem}
.language a{font-size:.75rem}
.diagram.loop ol,.diagram.decision ol{grid-template-columns:1fr}
.kit-features{grid-template-columns:1fr}
.hero h1{font-size:2.35rem}
.facts span{font-size:.8rem}
.actions{gap:1rem}
.edition-grid article{grid-template-columns:100px 1fr;padding:1rem}
.edition-cover{height:150px}
.edition-grid .button{font-size:.8rem;padding:.7rem}
}

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

@media print{.masthead{position:static}
.menu-toggle,.skip,.navigation,.text-button{display:none!important}
.section{padding-inline:1cm}
.hero,.thesis,.idea,.toolkit,.author,.review,.faq,.institution>.section{gap:1cm;padding-block:1cm}
.hero h1{font-size:30pt}
h2{font-size:24pt}
p{font-size:10pt}
.diagram,.cover,.kit-cover,details{break-inside:avoid}
.cover{max-width:6cm}
.ideas{background:white}
.closing{color:var(--ink);background:white}
.closing>p:not(.eyebrow){color:var(--ink)}
.button{background:white!important;color:var(--ink)!important;border-color:var(--ink)!important}
footer{display:none!important}
}
