:root{--ink:#15171a;--muted:#6c7074;--paper:#fafaf8;--line:#dddeda;--blue:#2469da;--article-size:20px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:110px}*{box-sizing:border-box}body{margin:0;font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #327ce5;outline-offset:6px}img{display:block;width:100%;height:auto}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600;letter-spacing:-.055em;line-height:1.05}h1,h2{text-wrap:balance}p{text-wrap:pretty}.section-wrap{width:min(1240px,calc(100% - 112px));margin-inline:auto}.eyebrow{font-size:13px;font-weight:650;letter-spacing:.12em;text-transform:uppercase;line-height:1.5}.skip{position:fixed;z-index:1000;top:8px;left:8px;background:#fff;color:#111;padding:12px 20px;transform:translateY(-160%)}.skip:focus{transform:translateY(0)}.comparison{height:35px;background:#eeefec;color:#60645f;font-size:12px;letter-spacing:.03em}.comparison-inner{height:100%;width:min(1240px,calc(100% - 112px));margin:auto;display:flex;align-items:center;justify-content:space-between}.comparison nav{display:flex;align-items:center;gap:4px}.comparison a{padding:3px 12px;border-radius:12px;font-size:14px}.comparison a[aria-current]{background:#dfe1da;color:#30342f}.comparison a:hover{background:#dfe1da}.site-header{position:sticky;z-index:100;top:0;background:rgba(250,250,248,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(50,60,55,.07)}.nav-inner{width:min(1240px,calc(100% - 112px));height:74px;display:flex;align-items:center;justify-content:space-between;margin:auto}.wordmark{font-weight:710;font-size:24px;letter-spacing:-1.1px;line-height:1;white-space:nowrap}.wordmark>span:not(.wordmark-dot){font-weight:350;margin-inline:1px}.wordmark-dot{color:#74929a}.desktop-nav{display:flex;align-items:center;gap:38px;font-size:14px;font-weight:500}.desktop-nav a:hover{color:#49636e}.search-link{margin-left:14px}.search-link span{display:inline-block;margin-left:12px;font-size:18px}.menu-toggle{display:none;border:0;background:none;padding:12px 0}.mobile-nav[hidden]{display:none}.mobile-nav{padding:8px 24px 28px;border-top:1px solid var(--line)}.mobile-nav a{display:flex;justify-content:space-between;padding:15px 0;border-bottom:1px solid var(--line);font-size:22px}.hero{position:relative;min-height:690px;height:calc(100svh - 109px);max-height:1000px;overflow:hidden;background:#213742;color:#fff}.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{inset:-9% 0;will-change:transform}.hero-image img{height:100%;object-fit:cover;object-position:center 68%}.hero-shade{background:linear-gradient(180deg,rgba(7,26,42,.4),rgba(7,26,42,.12) 57%,rgba(7,18,26,.5))}.hero-content{position:relative;z-index:1;text-align:center;padding-top:clamp(70px,10vh,140px);padding-inline:24px}.hero .eyebrow{color:#e4e8ec}.hero h1{font-size:clamp(72px,7.6vw,124px);line-height:1.015;letter-spacing:-.057em;margin:23px auto 23px;max-width:1250px;font-weight:620}.hero-description{font-size:clamp(18px,1.6vw,23px);line-height:1.4;color:#edf0f2;font-weight:400;margin-bottom:29px}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:50px;padding:13px 24px;border-radius:100px;font-size:14px;font-weight:600;letter-spacing:-.015em;transition:background .2s,transform .2s;white-space:nowrap}.button span{font-size:19px;font-weight:400;line-height:1}.button-light{background:#f9faf7;color:#1e282d}.button-light:hover{background:#fff;transform:translateY(-2px)}.button-dark{background:#1f2729;color:#fff}.button-dark:hover{background:#3c4b50;transform:translateY(-2px)}.hero-bottom{position:absolute;z-index:1;bottom:34px;left:56px;right:56px;display:flex;align-items:center;justify-content:space-between;color:#e0e6e5;font-size:12px}.hero-bottom a{font-size:14px;display:flex;gap:20px;align-items:center}.hero-bottom a span{font-size:20px}.introduction{padding-block:145px 150px;text-align:center}.introduction h2{font-size:clamp(42px,5vw,76px);margin:24px auto 32px;letter-spacing:-.045em}.introduction h2 span{color:#91958f}.intro-detail{max-width:630px;margin:auto}.intro-detail p{color:#676c69;line-height:1.6;font-size:21px}.text-link{display:inline-flex;align-items:center;gap:15px;font-size:15px;font-weight:600;letter-spacing:-.01em}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.text-link span{font-size:22px;font-weight:400}.intro-detail .text-link{margin-top:25px;color:#31535e}.zion-feature{position:relative;overflow:hidden;isolation:isolate;background:#e8dece;min-height:600px;height:80vh;max-height:850px}.zion-image{position:absolute;z-index:-1;inset:-8% 0;will-change:transform}.zion-image img{height:100%;object-fit:cover;object-position:center}.zion-copy{position:relative;padding-top:clamp(80px,10vw,155px);pointer-events:none}.zion-copy>*{pointer-events:auto}.zion-copy h2{font-size:clamp(48px,5.4vw,82px);max-width:730px;margin-top:25px;letter-spacing:-.05em}.zion-copy>p:not(.eyebrow){font-size:23px;line-height:1.4;margin-top:25px;color:#474a41}.round-button{height:53px;width:53px;background:#1d2521;color:#fff;display:grid;place-items:center;border-radius:50%;font-size:25px;margin-top:26px;transition:transform .2s,background .2s}.round-button:hover{transform:translateY(-3px);background:#3a4a40}.image-caption{position:absolute;bottom:31px;right:56px;font-size:12px;color:#48493d}.featured-detail{display:grid;grid-template-columns:1.25fr 1fr;gap:120px;padding-block:90px 110px}.featured-title h2{font-size:39px;line-height:1.15;letter-spacing:-.045em;margin-top:23px;max-width:590px}.featured-summary{padding-top:38px}.featured-summary>p{font-size:20px;line-height:1.5;color:#6a6f6a;margin-bottom:25px;max-width:420px}.reading-time{display:block;font-size:12px;color:#737a73;margin-top:15px}.library{background:#151b20;color:#f6f7f4;padding-block:120px 100px}.library-heading h2{font-size:clamp(48px,5.4vw,80px);margin-top:24px}.library-heading h2 span{color:#909b9e}.library-heading>p:last-child{color:#acb5b5;font-size:20px;margin-top:24px}.library-links{margin-top:78px}.library-row{display:grid;grid-template-columns:55px 1fr 170px 34px;align-items:center;gap:20px;border-top:1px solid #3e474b;padding-block:35px;transition:padding .25s,background .25s}.library-row:last-child{border-bottom:1px solid #3e474b}.library-row:hover{padding-left:15px;background:rgba(255,255,255,.025)}.library-number{font-size:12px;color:#9ca9ab;align-self:start;margin-top:9px}.library-row h3{font-size:35px;letter-spacing:-.04em}.library-row p{font-size:16px;line-height:1.5;color:#a4afb1;margin-top:12px}.library-count{font-size:12px;color:#c2cbcb}.library-arrow{font-size:28px;font-weight:300}.latest{padding-block:135px 130px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:49px}.section-heading h2{font-size:clamp(36px,3.5vw,50px);max-width:600px;margin-top:21px;letter-spacing:-.045em}.section-heading>.text-link{white-space:nowrap;margin-bottom:4px}.article-row{display:grid;grid-template-columns:160px 1fr 42px;gap:45px;align-items:center;border-top:1px solid var(--line);padding-block:34px}.article-row:last-child{border-bottom:1px solid var(--line)}.article-date{font-size:12px;line-height:1.4;color:#71776e}.article-row h3{font-size:27px;line-height:1.2;letter-spacing:-.035em;max-width:740px;transition:color .2s}.article-row:hover h3{color:#47717a}.circle-arrow{display:grid;place-items:center;border:1px solid #d6d9d1;border-radius:50%;width:42px;height:42px;font-size:20px;transition:background .2s}.article-row:hover .circle-arrow{background:#e8eeea}.closing{position:relative;isolation:isolate;overflow:hidden;height:520px;color:white;display:grid;place-items:center;text-align:center}.closing:after{content:"";position:absolute;z-index:-1;inset:0;background:rgba(11,29,38,.43)}.closing>img{position:absolute;inset:0;z-index:-2;height:100%;object-fit:cover;object-position:center 75%}.closing-content{padding:30px}.closing h2{font-size:clamp(48px,6vw,86px);margin:23px 0 33px}.site-footer{padding:60px 56px 26px;background:#f1f2ee}.footer-top{display:flex;gap:65px;align-items:flex-start;max-width:1240px;margin:0 auto 55px}.footer-top p{color:#757a71;font-size:16px;line-height:1.4;margin-top:-4px}.top-link{margin-left:auto;font-size:14px;display:flex;gap:30px;align-items:center}.top-link span{font-size:20px}.footer-bottom{max-width:1240px;margin:auto;border-top:1px solid #d9ddd4;padding-top:23px;display:flex;align-items:center;justify-content:space-between;gap:25px;color:#737a70;font-size:12px}.footer-bottom nav{font-size:14px;display:flex;gap:23px}.footer-bottom a:hover{color:#15271d}.reading-progress{display:none;position:absolute;left:0;bottom:0;height:2px;width:100%;background:#76989d;transform-origin:left;transform:scaleX(0)}.article-page .reading-progress{display:block}.article-hero{background:#1c333f;position:relative;overflow:hidden;isolation:isolate;color:#fff;padding-bottom:70px}.article-hero>img{position:absolute;inset:0;z-index:-2;height:100%;object-fit:cover;object-position:center 66%}.article-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(13,30,40,.84),rgba(11,26,38,.38))}.article-hero-content{padding-top:34px}.back-link{display:inline-block;font-size:14px;color:#e3ebec}.back-link:hover{text-decoration:underline;text-underline-offset:5px}.article-hero .eyebrow{color:#dce5e5;margin-top:68px}.article-hero h1{font-size:clamp(44px,5.2vw,78px);max-width:990px;line-height:1.07;letter-spacing:-.048em;margin:24px 0 34px}.article-byline{display:flex;gap:27px;flex-wrap:wrap;font-size:13px;color:#e0e6e7}.article-byline span+span{position:relative}.article-byline span+span:before{content:"·";position:absolute;left:-16px}.article-jump{display:flex;align-items:center;gap:22px;width:max-content;font-size:14px;margin-top:43px}.article-jump span{font-size:23px}.article-layout{display:grid;grid-template-columns:230px minmax(0,740px);column-gap:90px;justify-content:center;padding-block:90px 100px}.sidebar-sticky{position:sticky;top:119px}.article-sidebar .eyebrow{font-size:12px;color:#696f68}.article-sidebar nav{display:flex;flex-direction:column;gap:17px;border-left:1px solid #d6dbd3;padding:4px 0 4px 17px;margin-top:24px}.article-sidebar nav a{font-size:14px;color:#69756d;line-height:1.35}.article-sidebar nav a:hover,.article-sidebar nav a.active{color:#172d27}.reader-tools{margin-top:37px;border-top:1px solid #d6dbd3;padding-top:22px;display:flex;justify-content:space-between;align-items:center;max-width:194px}.reader-tools>span{font-size:14px;color:#6e756c}.reader-tools>div{display:flex;gap:7px}.reader-tools button{border:1px solid #d6dbd3;background:transparent;border-radius:7px;min-width:35px;min-height:35px;font-size:14px}.reader-tools button:hover{background:#e4eae3}.reader-tools button:disabled{opacity:.35;cursor:default}.source-link{display:inline-flex;gap:30px;margin-top:30px;color:#6e796e;font-size:14px}.article-body{font-size:var(--article-size);line-height:1.75;color:#333b36;min-width:0}.article-body>p{margin:0 0 1.4em;scroll-margin-top:110px;text-wrap:pretty}.article-body>p:first-child{font-size:1.22em;font-weight:600;line-height:1.4;color:#171e18;margin-bottom:1.5em}.article-body strong{font-weight:650;color:#202a22}.article-body .article-point{margin-top:1.7em;color:#274132}.article-body a{color:#2c5c70;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.article-body em{font-style:italic}.article-end{border-top:1px solid #d6dbd3;margin-top:54px;padding-top:28px;display:flex;align-items:center;gap:16px;font-size:16px;line-height:1.5}.article-end p span{color:#747f75;font-size:12px}.end-dot{height:30px;width:30px;border:1px solid #91a69c;border-radius:50%;background:#dfe7df}.article-next{border-top:1px solid #d6dbd3;padding-block:70px 100px}.article-next h2{font-size:clamp(36px,4vw,58px);margin-top:20px}.next-links{display:flex;gap:35px;align-items:center;flex-wrap:wrap;margin-top:33px}.sr-only{position:absolute;overflow:hidden;clip:rect(0,0,0,0);width:1px;height:1px;white-space:nowrap}.motion-ready .reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,.68,0,1.1)}.motion-ready .reveal.is-visible{opacity:1;transform:translateY(0)}
@media(min-width:1800px){.hero-content{padding-top:125px}.zion-copy{padding-top:150px}}
@media(max-width:1000px){.section-wrap,.nav-inner,.comparison-inner{width:calc(100% - 72px)}.hero{min-height:660px;max-height:850px}.hero h1{font-size:9vw}.hero-bottom{left:36px;right:36px}.introduction{padding-block:100px}.featured-detail{gap:50px;padding-block:70px 90px}.featured-title h2{font-size:33px}.library-row{grid-template-columns:35px 1fr 125px 24px;gap:15px}.library-row h3{font-size:30px}.article-row{grid-template-columns:125px 1fr 42px;gap:25px}.site-footer{padding-inline:36px}.footer-bottom{flex-wrap:wrap}.article-layout{grid-template-columns:175px minmax(0,690px);gap:40px}.article-hero h1{max-width:870px}.reader-tools{flex-wrap:wrap;gap:13px}}
@media(max-width:700px){:root{scroll-padding-top:86px}.section-wrap,.nav-inner,.comparison-inner{width:calc(100% - 44px)}.comparison{height:32px}.comparison a{padding:3px 11px}.nav-inner{height:64px}.wordmark{font-size:23px}.desktop-nav{display:none}.menu-toggle{display:flex;align-items:center;gap:17px;font-size:14px}.menu-toggle>span{font-size:23px;line-height:1;transition:transform .2s}.menu-toggle[aria-expanded=true]>span{transform:rotate(45deg)}.hero{height:calc(100svh - 96px);min-height:680px;max-height:900px}.hero-content{padding-top:92px;padding-inline:17px}.hero .eyebrow{font-size:12px;letter-spacing:.115em}.hero h1{font-size:clamp(43px,10.5vw,72px);line-height:1.045;letter-spacing:-.059em;margin-top:26px;margin-bottom:27px}.hero-description{font-size:17px;line-height:1.45;max-width:335px;margin:0 auto 29px}.hero-description br{display:none}.hero-image{inset:-7% -50%}.hero-image img{object-position:49% center}.hero-shade{background:linear-gradient(180deg,rgba(7,26,42,.4),rgba(7,26,42,.08) 60%,rgba(7,18,26,.55))}.hero-bottom{left:22px;right:22px;bottom:28px;gap:20px;align-items:end;font-size:12px}.hero-bottom>span{max-width:136px}.hero-bottom>a{font-size:14px;gap:12px;max-width:175px;line-height:1.35}.hero-bottom>a span{font-size:24px}.button{min-height:49px;font-size:14px;padding:13px 22px;gap:23px}.introduction{padding-block:85px 91px}.introduction .eyebrow{font-size:12px}.introduction h2{font-size:39px;line-height:1.08;margin:21px auto 26px;letter-spacing:-.05em}.intro-detail p{font-size:18px;line-height:1.65}.intro-detail .text-link{font-size:14px;margin-top:22px}.zion-feature{height:760px;min-height:0;max-height:none}.zion-image{inset:0 -50%}.zion-image img{object-position:70% center}.zion-feature:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(244,234,217,.6),rgba(244,234,217,0) 60%)}.zion-copy{padding-top:57px}.zion-copy .eyebrow{font-size:12px}.zion-copy h2{font-size:46px;line-height:1.06;max-width:420px;margin-top:22px}.zion-copy>p:not(.eyebrow){font-size:20px;margin-top:24px}.round-button{width:46px;height:46px;font-size:23px}.image-caption{right:23px;bottom:23px;font-size:12px}.featured-detail{display:block;padding-block:55px 66px}.featured-title .eyebrow{font-size:12px}.featured-title h2{font-size:34px;line-height:1.13;margin-top:18px}.featured-summary{padding-top:24px}.featured-summary>p{font-size:18px;margin-bottom:24px}.library{padding-block:80px 70px}.library-heading .eyebrow{font-size:12px}.library-heading h2{font-size:44px;line-height:1.05;margin-top:21px}.library-heading>p:last-child{font-size:17px;margin-top:22px}.library-links{margin-top:45px}.library-row{grid-template-columns:23px 1fr 23px;column-gap:13px;row-gap:13px;padding-block:28px}.library-row:hover{padding-left:0}.library-row h3{font-size:28px;line-height:1.14}.library-row p{font-size:16px;margin-top:12px;max-width:300px}.library-count{grid-column:2;grid-row:2;font-size:12px}.library-arrow{grid-column:3;grid-row:1;font-size:25px;align-self:start;margin-top:2px}.library-number{font-size:12px;margin-top:7px}.latest{padding-block:80px 78px}.section-heading{display:block;margin-bottom:33px}.section-heading h2{font-size:38px;line-height:1.07;max-width:340px;margin-top:18px}.section-heading .eyebrow{font-size:12px}.section-heading>.text-link{margin-top:23px;font-size:14px}.article-row{grid-template-columns:1fr 38px;column-gap:20px;row-gap:11px;padding-block:26px}.article-date{grid-column:1;grid-row:1;font-size:12px}.article-row h3{grid-column:1;grid-row:2;font-size:24px;line-height:1.2;letter-spacing:-.04em}.article-row .circle-arrow{grid-column:2;grid-row:1 / 3;width:38px;height:38px;font-size:18px}.closing{height:450px}.closing .eyebrow{font-size:12px}.closing h2{font-size:51px;line-height:1.05;max-width:310px;margin-inline:auto}.closing>img{object-position:center;height:100%;width:220%;max-width:none;left:-60%}.site-footer{padding:45px 22px 26px}.footer-top{flex-wrap:wrap;gap:25px;margin-bottom:36px}.footer-top .wordmark{flex-basis:100%}.footer-top p{font-size:16px}.top-link{font-size:14px;gap:18px}.footer-bottom{font-size:12px;gap:20px}.footer-bottom>span:first-child{flex-basis:100%}.footer-bottom nav{gap:20px}.footer-bottom>span:last-child{flex-basis:100%}.article-hero{padding-bottom:48px}.article-hero-content{padding-top:24px}.back-link{font-size:14px}.article-hero .eyebrow{font-size:12px;margin-top:52px}.article-hero h1{font-size:43px;line-height:1.075;letter-spacing:-.055em;margin:22px 0 27px}.article-byline{font-size:12px;gap:22px}.article-byline span+span:before{left:-13px}.article-jump{margin-top:32px;font-size:14px}.article-layout{display:block;padding-block:39px 60px}.article-sidebar{margin-bottom:35px}.sidebar-sticky{position:static}.article-sidebar .eyebrow{font-size:12px}.article-sidebar nav{display:none}.reader-tools{margin-top:15px;padding-top:15px;max-width:none;justify-content:start;gap:23px}.reader-tools>span{font-size:14px}.reader-tools button{min-height:36px;min-width:36px}.source-link{position:absolute;right:23px;margin-top:-28px;font-size:14px;gap:10px}.article-body{font-size:calc(var(--article-size) - 1px);line-height:1.75}.article-body>p{scroll-margin-top:90px}.article-body>p:first-child{font-size:1.15em}.article-body .article-point{margin-top:1.5em}.article-next{padding-block:50px 70px}.article-next .eyebrow{font-size:12px}.article-next h2{font-size:39px;line-height:1.08}.next-links{display:flex;flex-direction:column;align-items:flex-start;gap:24px;margin-top:27px}}
@media(max-width:360px){.hero h1{font-size:40px}.hero{min-height:645px}.hero-content{padding-top:76px}.hero-description{font-size:16px}.introduction h2{font-size:35px}.zion-copy h2{font-size:42px}.article-hero h1{font-size:37px}.article-byline{gap:13px}.article-byline span+span:before{display:none}.source-link{position:static;margin-top:15px}.library-heading h2{font-size:39px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal{opacity:1;transform:none}.hero-image,.zion-image{transform:none!important;will-change:auto}}
@media print{.comparison,.site-header,.article-sidebar,.site-footer,.article-next,.article-jump,.back-link{display:none}.article-hero{background:white;color:#111;padding:0}.article-hero>img,.article-hero-shade{display:none}.article-hero .eyebrow,.article-byline{color:#333}.article-hero h1{font-size:32px}.article-hero .eyebrow{margin-top:10px}.article-layout{display:block;padding-top:30px}.section-wrap{width:100%}.article-body{font-size:12pt;line-height:1.5}.article-body p{break-inside:avoid}}

/* Full-site extension. Design: 03-Projects/DonKPreston Website.md;
   approved Apple concept: design-samples-2026-09-09/source/sample1. */
[hidden] { display: none !important; }
input, select, textarea { font: inherit; }
button { color: inherit; }
.button { border: 0; }
.desktop-nav a[aria-current="page"], .mobile-nav a[aria-current="page"] { color: #244e5b; font-weight: 650; }
.desktop-nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 8px; text-decoration-thickness: 1px; }
.footer-bottom nav { flex-wrap: wrap; }
.reader-tools button { min-width: 40px; min-height: 40px; }
.page-hero { padding-block: 94px 72px; }
.page-hero h1 { max-width: 1080px; margin-top: 24px; font-size: clamp(52px, 6.5vw, 94px); line-height: 1.03; letter-spacing: -.055em; overflow-wrap: break-word; }
.page-hero > p:not(.eyebrow) { max-width: 750px; margin-top: 28px; color: #69726d; font-size: 22px; line-height: 1.55; }
.page-hero .back-link { margin-bottom: 30px; color: #42636a; }
.page-hero .text-link { margin-top: 24px; }
.catalog { padding-bottom: 110px; }
.filter-bar { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-end; padding: 30px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.filter-bar label { display: flex; flex: 1 1 180px; min-width: 0; flex-direction: column; gap: 9px; font-size: 14px; font-weight: 500; line-height: 1.4; color: #56645b; }
.filter-bar label:has([data-query]) { flex: 2 1 280px; }
.filter-bar input, .filter-bar select { width: 100%; min-width: 0; min-height: 50px; padding: 12px 14px; border: 1px solid #cdd5cf; border-radius: 9px; background-color: #fff; color: #28372e; font-size: 16px; line-height: 1.5; box-shadow: 0 1px 2px rgba(21,39,30,.025); }
.filter-bar input::placeholder { color: #78817b; opacity: 1; }
.filter-bar select { padding-right: 32px; text-overflow: ellipsis; }
.filter-bar input:focus, .filter-bar select:focus { outline: 2px solid #507d8b; outline-offset: 2px; }
.filter-bar select:disabled { color: #7c847d; background: #f0f2ee; }
[data-clear] { border: 1px solid #ccd4cd; border-radius: 9px; min-height: 50px; padding: 12px 18px; background: transparent; font-size: 14px; }
[data-clear]:hover { background: #e9eeea; }
[data-clear]:disabled { opacity: .5; cursor: default; }
.catalog [data-count] { display: block; margin-block: 26px; color: #617066; font-size: 14px; }
.filter-bar [data-count] { margin: 0; }
.tag-filters { margin-top: 23px; padding-bottom: 7px; color: #5d6b62; }
.tag-filters summary { width: fit-content; cursor: pointer; font-size: 14px; padding-block: 8px; }
.tag-filters summary:focus-visible { outline: 2px solid #327ce5; outline-offset: 4px; }
.tag-filters > div, .tag-list { display: flex; gap: 8px; flex-wrap: wrap; padding-block: 14px 5px; }
.tag-filters [data-tag] { display: inline-flex; align-items: center; min-height: 39px; padding: 8px 13px; border: 1px solid #d2dad3; border-radius: 30px; margin: 4px 4px 4px 0; background: transparent; color: #415647; font-size: 14px; line-height: 1.3; }
.tag-filters [data-tag]:hover { background: #edf1ec; }
.tag-filters [data-tag][aria-pressed="true"] { color: #fff; background: #304c40; border-color: #304c40; }
.catalog-list { padding: 0; margin: 0; list-style: none; }
.catalog-item:where(:not(.commerce-book)) { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 45px; column-gap: 40px; row-gap: 13px; width: 100%; padding: 33px 0 36px; margin: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; text-align: left; color: var(--ink); }
.catalog-item:where(:not(.commerce-book)):first-child { border-top: 1px solid var(--line); }
.catalog-item:where(:not(.commerce-book)) > :not(.item-arrow):not(.item-image):not(.video-thumbnail) { grid-column: 1; }
.catalog-item:where(:not(.commerce-book)) > .item-meta { grid-row: 1; }
.catalog-item:where(:not(.commerce-book)) h2, .catalog-item:where(:not(.commerce-book)) h3 { max-width: 1010px; font-size: clamp(26px, 2.65vw, 36px); line-height: 1.17; letter-spacing: -.035em; overflow-wrap: break-word; text-wrap: pretty; transition: color .18s; }
.catalog-item:where(:not(.commerce-book)) h2 a, .catalog-item:where(:not(.commerce-book)) h3 a { text-decoration: none; }
.catalog-item:where(:not(.commerce-book)):hover h2, .catalog-item:where(:not(.commerce-book)):hover h3 { color: #3e6874; }
.catalog-item:where(:not(.commerce-book)) p { max-width: 870px; color: #69776e; font-size: 17px; line-height: 1.6; overflow-wrap: break-word; }
.item-meta { display: flex; align-items: center; gap: 10px 19px; flex-wrap: wrap; color: #6b7b70; font-size: 12px; line-height: 1.5; letter-spacing: .015em; }
.item-meta a { font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
.item-meta + h2, .item-meta + h3, .item-copy > h2, .item-copy > h3, .item-content > h2, .item-content > h3 { margin-top: 4px; }
.item-copy > p, .item-content > p { margin-top: 14px; }
.item-copy .item-meta, .item-content .item-meta { margin-bottom: 12px; }
.item-arrow { grid-column: 2; grid-row: 1 / span 3; align-self: center; justify-self: end; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #d2dbd4; border-radius: 50%; color: #4d6659; font-size: 23px; line-height: 1; transition: background .18s, color .18s; }
.catalog-item:where(:not(.commerce-book)):hover .item-arrow { color: #183e31; background: #e6ece7; }
.catalog-item:where(:not(.commerce-book)) .item-image, .catalog-item:where(:not(.commerce-book)) .video-thumbnail { max-width: 245px; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; margin-top: 10px; }
.catalog-item:where(:not(.commerce-book)) > .item-image, .catalog-item:where(:not(.commerce-book)) > .video-thumbnail { grid-column: 1; }
[data-load-more] { display: flex; width: fit-content; align-items: center; justify-content: center; margin: 42px auto 0; min-height: 50px; padding: 13px 27px; border: 1px solid #bacbc1; border-radius: 40px; background: #fff; font-size: 15px; color: #294c3b; }
[data-load-more]:hover { background: #e9efeb; }
.catalog [data-empty] { padding: 64px 24px; margin: 24px 0; border-bottom: 1px solid var(--line); text-align: center; color: #68756c; font-size: 18px; }
.catalog [data-empty] h2 { font-size: 30px; color: #2d4236; margin-bottom: 15px; }
.catalog [data-empty] p { max-width: 520px; margin: auto; }
.catalog-pagination { text-align: center; padding-top: 12px; }
.catalog-pagination p { margin-top: 18px; color: #6e7c71; font-size: 14px; }
.topic-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 70px; padding-bottom: 100px; }
.topic-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-height: 320px; padding: 38px 58px 39px 0; border-top: 1px solid var(--line); }
.topic-number { position: absolute; top: 38px; right: 4px; font-size: 12px; color: #78877b; }
.topic-card .eyebrow { color: #657e6b; font-size: 12px; margin-bottom: 17px; }
.topic-card h2 { font-size: clamp(31px, 3.2vw, 46px); line-height: 1.08; letter-spacing: -.045em; overflow-wrap: break-word; }
.topic-card p:not(.eyebrow) { font-size: 17px; color: #6a786d; line-height: 1.55; max-width: 430px; margin-top: 19px; }
.topic-count { font-size: 14px; color: #546e5c; padding-top: 28px; margin-top: auto; }
.topic-arrow { position: absolute; right: 4px; bottom: 38px; font-size: 29px; color: #546e5c; transition: transform .2s; }
.topic-card:hover h2 { color: #3c6570; }
.topic-card:hover .topic-arrow { transform: translate(3px,-3px); }
.timeline-section { padding-block: 110px; background: #edf0e9; scroll-margin-top: 74px; }
.timeline-section > .eyebrow, .timeline-section > h2, .timeline-section > p, .timeline-section > .timeline-list { width: min(1240px, calc(100% - 112px)); margin-inline: auto; }
.timeline-section h2 { font-size: clamp(42px, 5.2vw, 74px); margin-top: 22px; max-width: 900px; }
.timeline-section > p:not(.eyebrow), .timeline-section .section-wrap > p:not(.eyebrow) { max-width: 700px; color: #68746a; font-size: 20px; line-height: 1.55; margin-top: 25px; }
.timeline-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 40px; counter-reset: timeline-step; padding: 0; margin-top: 62px; list-style: none; }
.timeline-list > li { display: contents; }
.timeline-list a { position: relative; display: block; min-width: 0; padding: 27px 0 36px; border-top: 1px solid #c3cec1; font-size: 20px; line-height: 1.4; counter-increment: timeline-step; }
.timeline-list a:before { content: counter(timeline-step, decimal-leading-zero); display: block; font-size: 12px; color: #6b8070; margin-bottom: 28px; }
.timeline-list h3, .timeline-list h2 { font-size: 30px; line-height: 1.1; letter-spacing: -.035em; margin: 0; }
.timeline-list p { color: #6c7c6e; font-size: 16px; margin-top: 14px; line-height: 1.55; }
.timeline-list a:hover { color: #2a5d4c; }
.book-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 64px 48px; padding-bottom: 105px; }
.book-card { min-width: 0; }
.book-card img { max-width: 100%; width: auto; max-height: 350px; height: auto; object-fit: contain; margin-inline: auto; }
.book-cover { display: grid; place-items: center; min-height: 395px; padding: 24px 32px; background: #edf0e9; border-radius: 8px; margin-bottom: 25px; }
.book-card h2, .book-card h3 { margin-top: 23px; font-size: 27px; line-height: 1.15; letter-spacing: -.035em; }
.book-card p { font-size: 16px; line-height: 1.55; color: #69766b; margin-top: 14px; }
.book-card .button, .book-card .text-link { margin-top: 23px; }
.book-card .book-price { color: #334f3b; font-size: 16px; }
#video-dialog { width: min(1100px, calc(100% - 48px)); max-height: calc(100svh - 48px); padding: 0; border: 0; border-radius: 15px; background: #fafaf8; color: var(--ink); overflow-x: hidden; overflow-y: auto; box-shadow: 0 28px 120px rgba(0,0,0,.24); }
#video-dialog::backdrop { background: rgba(11,23,27,.77); backdrop-filter: blur(8px); }
#video-dialog > header, .video-dialog-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 25px 30px; }
#video-title { font-size: clamp(21px,2.5vw,29px); line-height: 1.2; letter-spacing: -.025em; margin: 24px 82px 24px 28px; }
#video-dialog header #video-title, .video-dialog-header #video-title { margin: 0; }
#video-frame { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; border: 0; background: #111b22; }
#video-dialog [data-close-video] { position: absolute; top: 17px; right: 18px; min-width: 43px; min-height: 43px; padding: 9px; border: 1px solid #cdd6cf; border-radius: 50%; background: #fff; font-size: 15px; z-index: 1; }
#video-dialog [data-close-video]:hover { background: #e5ece5; }
#video-dialog p { margin: 22px 28px 26px; font-size: 16px; color: #627065; }
#video-dialog a { color: #2b5763; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
body.video-is-open { overflow: hidden; }
.article-body { overflow-wrap: break-word; }
.article-body p, .article-body ul, .article-body ol, .article-body dl { margin-block: 0 1.4em; }
.article-body li { margin-bottom: .6em; }
.article-body li > p { margin-bottom: .65em; }
.article-body h1, .article-body h2, .article-body h3, .article-body h4, .article-body h5, .article-body h6 { line-height: 1.2; letter-spacing: -.028em; color: #253d2e; margin: 1.9em 0 .85em; scroll-margin-top: 110px; }
.article-body h1 { font-size: 2em; }
.article-body h2 { font-size: 1.65em; }
.article-body h3 { font-size: 1.35em; }
.article-body h4, .article-body h5, .article-body h6 { font-size: 1.1em; }
.article-body :is(p,span,div,li,font)[style*="font-size"], .article-body font[size] { font-size: inherit !important; }
.article-body blockquote { margin: 1.8em 0; padding: 5px 0 5px 25px; border-left: 3px solid #a9bdb0; color: #455e4d; }
.article-body blockquote p:last-child { margin-bottom: 0; }
.article-body img { display: block; max-width: 100% !important; width: auto; height: auto !important; margin-block: 25px; }
.article-body figure, .article-body .wp-caption { max-width: 100% !important; margin: 1.7em 0; }
.article-body figcaption, .article-body .wp-caption-text { color: #6f7c70; font-size: 14px; line-height: 1.5; margin-top: 12px; }
.article-body .aligncenter, .article-body img.aligncenter { margin-inline: auto; }
.article-body .alignleft { float: left; max-width: 45% !important; margin: 8px 25px 20px 0; }
.article-body .alignright { float: right; max-width: 45% !important; margin: 8px 0 20px 25px; }
.article-body .alignnone { float: none; }
.article-body::after { content: ""; display: block; clear: both; }
.article-body table { display: block; width: max-content; max-width: 100% !important; overflow-x: auto; border-collapse: collapse; margin-block: 28px; font-size: max(16px,.86em); line-height: 1.5; -webkit-overflow-scrolling: touch; }
.article-body th, .article-body td { min-width: 110px; padding: 12px 15px; border: 1px solid #cdd7ce; vertical-align: top; text-align: left; }
.article-body th { background: #edf1e9; color: #2c4934; font-weight: 650; }
.article-body tr:nth-child(even) td { background: #f2f4ee; }
.article-body pre { max-width: 100%; overflow-x: auto; padding: 20px; background: #edf1e9; border-radius: 8px; font-size: 16px; line-height: 1.6; }
.article-body code { font-size: max(16px,.9em); overflow-wrap: anywhere; }
.article-body iframe, .article-body video, .article-body embed, .article-body object { max-width: 100% !important; border: 0; margin-block: 25px; }
.article-body iframe[src*="youtube"], .article-body iframe[src*="vimeo"], .article-body video { width: 100%; height: auto; aspect-ratio: 16 / 9; }
.article-body audio { max-width: 100%; width: 100%; margin-block: 22px; }
.article-body hr { border: 0; border-top: 1px solid var(--line); margin-block: 2em; }
.article-body [id] { scroll-margin-top: 110px; }
.article-body > p:first-child { font-size: inherit; font-weight: 400; line-height: inherit; }
.article-body > p:first-child:has(> strong:only-child) { font-size: 1.22em; font-weight: 600; line-height: 1.4; }
.article-hero h1 { overflow-wrap: break-word; }
body:not(:has(.comparison)) .hero { height: calc(100svh - 74px); }
@media (max-width: 1100px) {
  .desktop-nav { gap: 24px; }
  .search-link { margin-left: 0; }
  .topic-grid { column-gap: 42px; }
  .timeline-list { gap: 0 28px; }
  .book-grid { gap: 50px 28px; }
  .book-cover { min-height: 330px; padding: 25px; }
  .book-card img { max-height: 290px; }
}
@media (max-width: 1000px) {
  .timeline-section > .eyebrow, .timeline-section > h2, .timeline-section > p, .timeline-section > .timeline-list { width: calc(100% - 72px); }
  .filter-bar label { flex-basis: 160px; }
  .filter-bar label:has([data-query]) { flex-basis: 100%; }
  .topic-card { padding-right: 34px; }
}
@media (max-width: 760px) {
  .desktop-nav { gap: 17px; }
  .desktop-nav a { font-size: 14px; }
}
@media (max-width: 700px) {
  body:not(:has(.comparison)) .hero { height: calc(100svh - 64px); }
  .page-hero { padding-block: 59px 46px; }
  .page-hero h1 { margin-top: 20px; font-size: clamp(42px,11vw,61px); line-height: 1.04; }
  .page-hero > p:not(.eyebrow) { font-size: 18px; line-height: 1.6; margin-top: 23px; }
  .page-hero .eyebrow { font-size: 12px; }
  .catalog { padding-bottom: 72px; }
  .filter-bar { gap: 18px 12px; padding-block: 24px; }
  .filter-bar label { flex: 1 1 calc(50% - 12px); font-size: 14px; }
  .filter-bar label:has([data-query]) { flex-basis: 100%; }
  .filter-bar input, .filter-bar select { min-height: 49px; font-size: 16px; padding: 11px 10px; }
  .filter-bar select { padding-right: 25px; }
  [data-clear] { min-height: 44px; padding: 10px 16px; font-size: 14px; }
  .tag-filters { margin-top: 17px; }
  .catalog [data-count] { margin-block: 22px; }
  .catalog-item:where(:not(.commerce-book)) { padding-block: 27px 29px; grid-template-columns: minmax(0,1fr) 34px; column-gap: 15px; row-gap: 12px; }
  .catalog-item:where(:not(.commerce-book)) h2, .catalog-item:where(:not(.commerce-book)) h3 { font-size: 25px; line-height: 1.18; }
  .catalog-item:where(:not(.commerce-book)) p { font-size: 16px; line-height: 1.6; }
  .item-meta { gap: 5px 12px; font-size: 12px; }
  .item-arrow { width: 33px; height: 33px; font-size: 20px; align-self: start; margin-top: 34px; }
  [data-load-more] { margin-top: 32px; font-size: 14px; }
  .catalog [data-empty] { padding: 44px 0; font-size: 16px; }
  .topic-grid { display: block; padding-bottom: 65px; }
  .topic-card { min-height: 0; padding: 31px 40px 34px 0; }
  .topic-number { top: 34px; right: 1px; }
  .topic-card h2 { font-size: 37px; }
  .topic-card p:not(.eyebrow) { font-size: 16px; margin-top: 17px; }
  .topic-card .eyebrow { margin-bottom: 16px; }
  .topic-count { padding-top: 25px; font-size: 14px; }
  .topic-arrow { font-size: 25px; right: 2px; bottom: 31px; }
  .timeline-section { padding-block: 72px; scroll-margin-top: 64px; }
  .timeline-section > .eyebrow, .timeline-section > h2, .timeline-section > p, .timeline-section > .timeline-list { width: calc(100% - 44px); }
  .timeline-section h2 { font-size: 42px; }
  .timeline-section > p:not(.eyebrow), .timeline-section .section-wrap > p:not(.eyebrow) { font-size: 18px; }
  .timeline-list { display: block; margin-top: 42px; }
  .timeline-list a { padding: 25px 0 30px 38px; font-size: 21px; }
  .timeline-list a:before { position: absolute; top: 29px; left: 0; font-size: 12px; }
  .timeline-list h3, .timeline-list h2 { font-size: 28px; }
  .timeline-list p { font-size: 16px; }
  .book-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 44px 20px; padding-bottom: 72px; }
  .book-cover { min-height: 240px; padding: 18px; margin-bottom: 17px; }
  .book-card img { max-height: 215px; }
  .book-card h2, .book-card h3 { font-size: 22px; margin-top: 17px; }
  .book-card p { font-size: 16px; margin-top: 12px; }
  .book-card .button { white-space: normal; gap: 12px; padding-inline: 18px; }
  #video-dialog { width: calc(100% - 24px); max-height: calc(100svh - 24px); border-radius: 12px; }
  #video-title { font-size: 21px; margin: 24px 68px 22px 20px; }
  #video-dialog > header, .video-dialog-header { padding: 24px 66px 23px 20px; }
  #video-dialog [data-close-video] { right: 12px; top: 15px; }
  #video-dialog p { margin: 20px; font-size: 16px; }
  .article-body h1 { font-size: 1.7em; }
  .article-body h2 { font-size: 1.45em; }
  .article-body h3 { font-size: 1.25em; }
  .article-body blockquote { padding-left: 19px; margin-block: 1.5em; }
  .article-body .alignleft, .article-body .alignright { float: none; max-width: 100% !important; margin: 25px auto; }
  .article-body [id] { scroll-margin-top: 90px; }
  .article-body table { font-size: 16px; }
  .article-body > p:first-child:has(> strong:only-child) { font-size: 1.15em; }
  .article-sidebar nav { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px 20px; padding: 0; border: 0; margin-top: 17px; }
  .article-sidebar nav a { font-size: 14px; }
  .source-link { position: static; margin-top: 22px; }
}
@media (max-width: 420px) {
  .book-grid { grid-template-columns: 1fr; gap: 47px; }
  .book-cover { min-height: 350px; padding: 25px; }
  .book-card img { max-height: 320px; }
  .book-card h2, .book-card h3 { font-size: 28px; }
  .filter-bar label { flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .topic-arrow, .item-arrow { transition: none; }
}
@media print {
  .filter-bar, .tag-filters, [data-load-more], .catalog-pagination, #video-dialog { display: none !important; }
  .catalog-item:where(:not(.commerce-book))[hidden] { display: grid !important; }
  .catalog, .page-hero { padding-block: 20px; }
  .article-body table { max-width: 100%; font-size: 12pt; }
  .article-body h2, .article-body h3 { break-after: avoid; }
  .article-body iframe, .article-body video, .article-body audio { display: none; }
}

/* Without JavaScript, the full collection remains readable; only inactive controls disappear. */
.catalog:not([data-catalog-ready]) .filter-bar, .catalog:not([data-catalog-ready]) .tag-filters, .catalog:not([data-catalog-ready]) [data-load-more] { display: none; }

/* The homepage timeline uses section-wrap on its outer section. */
.timeline-section.section-wrap { width: 100%; margin-inline: 0; padding-inline: max(56px, calc((100% - 1240px) / 2)); }
.timeline-section.section-wrap > .section-heading, .timeline-section.section-wrap > .timeline-list { width: 100%; margin-inline: 0; }
.timeline-section.section-wrap > .timeline-list { margin-top: 60px; }
#video-dialog > header, .video-dialog-header { padding-right: 114px; }
#video-dialog [data-close-video] { min-width: 75px; padding-inline: 14px; border-radius: 30px; }
[data-catalog]:not([data-catalog-ready]) .commerce-filters, [data-catalog]:not([data-catalog-ready]) [data-load-more] { display: none; }
@media (max-width: 1000px) { .timeline-section.section-wrap { padding-inline: 36px; } }
@media (max-width: 700px) {
  .timeline-section.section-wrap { padding-inline: 22px; }
  .timeline-section.section-wrap > .timeline-list { margin-top: 39px; }
  #video-dialog > header, .video-dialog-header { padding-right: 105px; }
}
