@font-face{font-family:"DM Serif";src:url("./assets/dm-serif.ttf") format("truetype");font-display:swap}
@font-face{font-family:"DM Sans";src:url("./assets/dm-sans.ttf") format("truetype");font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("./assets/ibm-plex-mono.ttf") format("truetype");font-display:swap}
:root{--paper:#f8f6ef;--ink:#183a35;--ink-soft:#52615b;--line:#d8d9ca;--lime:#e7efb2;--orange:#ed704f;--white:#fffefa;font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--paper);scroll-behavior:smooth}
*{box-sizing:border-box}
html{scroll-padding-top:24px}
body{margin:0;min-width:320px;overflow-x:hidden}
button,input,select{font:inherit}
button,a,select,input{touch-action:manipulation;-webkit-tap-highlight-color:rgba(237,112,79,.18)}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
img{display:block;max-width:100%}
svg{display:block}
:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
section[id],h1[id],h2[id]{scroll-margin-top:28px}
[hidden]{display:none!important}
.page-width{width:min(1328px,calc(100% - 80px));margin-inline:auto}
.skip-link{position:absolute;z-index:100;top:-70px;left:20px;padding:12px 18px;background:var(--ink);color:white}
.skip-link:focus{top:12px}
.utility-bar{min-height:36px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.075em;text-transform:uppercase}
.masthead{height:147px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand{font-family:"DM Serif",Georgia,serif;font-size:clamp(68px,7.3vw,108px);line-height:1;letter-spacing:-.055em;white-space:nowrap;display:inline-flex;align-items:baseline;gap:.17em}
.brand span:first-child{font-style:italic}
.brand-dot{font-family:"DM Sans",sans-serif;font-size:.34em;color:var(--orange);align-self:flex-start;margin-top:.12em;letter-spacing:0}
.brand:hover{color:#2e6253}
.masthead p{font-size:15px;line-height:1.45;font-weight:600;margin:0;border-left:1px solid var(--line);padding-left:24px;min-width:204px}
.main-nav{background:var(--ink);color:var(--paper)}
.nav-inner{height:54px;display:flex;align-items:center;gap:40px;font-size:13px;font-weight:700}
.nav-inner a{height:100%;display:inline-flex;align-items:center;gap:8px;transition:color .18s ease}
.nav-inner a:hover{color:var(--lime)}
.nav-current{color:var(--lime);border-bottom:3px solid var(--lime)}
.nav-edition{margin-left:auto;font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.05em;text-transform:uppercase}
.section-intro{padding:47px 0 45px;display:grid;grid-template-columns:minmax(0,1fr) 270px;align-items:end;column-gap:40px}
.eyebrow,.control-label,.footer-kicker{font-family:"IBM Plex Mono",monospace;font-size:10px;font-weight:600;letter-spacing:.105em;text-transform:uppercase}
.section-intro .eyebrow{grid-column:1/-1;display:flex;align-items:center;gap:11px;margin-bottom:19px}
.eyebrow-line{height:6px;width:24px;background:var(--orange);display:inline-block}
.section-intro h1{font-family:"DM Serif",Georgia,serif;font-size:clamp(38px,4.5vw,66px);font-weight:400;line-height:1.08;letter-spacing:-.027em;max-width:890px;margin:0;text-wrap:balance}
.period{color:var(--orange)}
.section-intro p{font-size:16px;line-height:1.55;max-width:270px;margin:0 0 5px;color:var(--ink-soft)}
.browse-tools{display:flex;justify-content:space-between;align-items:end;gap:28px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:19px 0 20px}
.browse-title{min-width:225px}
.browse-title .eyebrow{color:#65766d}
.browse-title h2{font-family:"DM Serif",Georgia,serif;font-weight:400;letter-spacing:-.025em;font-size:32px;line-height:1;margin:6px 0 3px}
.browse-title p{margin:0;color:var(--ink-soft);font-size:12px}
.tool-controls{display:flex;align-items:end;gap:11px;min-width:0}
.tool-controls label{display:block}
.control-label{display:block;margin-bottom:7px;color:#65766d}
.input-wrap,.select-wrap{height:44px;display:flex;align-items:center;background:var(--white);border:1px solid #aebaae;transition:border-color .18s ease,box-shadow .18s ease}
.input-wrap:focus-within,.select-wrap:focus-within{border-color:var(--ink);box-shadow:0 0 0 2px var(--lime)}
.input-wrap{width:240px;padding:0 12px;gap:9px}
.input-wrap svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}
.input-wrap input{min-width:0;width:100%;height:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:14px}
.input-wrap input::placeholder{color:#75837b}
.select-wrap{width:161px;position:relative}
.select-wrap select{appearance:none;border:0;outline:0;background:var(--white);color:var(--ink);width:100%;height:100%;padding:0 32px 0 12px;font-size:14px;cursor:pointer}
.select-wrap svg{position:absolute;right:13px;width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.6;pointer-events:none}
.saved-filter{height:44px;border:1px solid var(--ink);background:transparent;color:var(--ink);display:flex;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:700;white-space:nowrap;transition:background-color .18s ease,color .18s ease}
.saved-filter:hover,.saved-filter[aria-pressed="true"]{background:var(--ink);color:white}
.saved-filter svg{width:15px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7}
.saved-filter[aria-pressed="true"] svg{fill:var(--lime)}
.story-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;padding:30px 0 90px}
.story-card{min-width:0;border-bottom:1px solid var(--line);padding-bottom:20px;display:flex;flex-direction:column}
.story-card .image-wrap{height:214px;background:#d9ddd0;overflow:hidden;position:relative}
.story-card img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.story-card:hover img,.featured-card:hover img{transform:scale(1.04)}
.photo-note{position:absolute;bottom:10px;right:10px;background:rgba(248,246,239,.92);color:var(--ink);padding:5px 7px;font:9px "IBM Plex Mono",monospace;letter-spacing:.04em;text-transform:uppercase}
.card-meta{font-family:"IBM Plex Mono",monospace;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:8px;margin:17px 0 11px;color:#52675c}
.meta-dot{width:4px;height:4px;border-radius:50%;background:var(--orange)}
.story-card h3{font:400 clamp(26px,2.5vw,34px)/1.08 "DM Serif",Georgia,serif;letter-spacing:-.02em;text-wrap:balance;margin:0 0 12px}
.story-card .summary{font-size:14px;line-height:1.55;color:var(--ink-soft);margin:0 0 23px;max-width:36ch}
.card-bottom{margin-top:auto;display:flex;align-items:end;justify-content:space-between;gap:12px}
.byline{font-size:12px;line-height:1.45;color:#56665e;margin:0}
.byline strong{font-weight:700;color:var(--ink)}
.read-link{border:0;background:transparent;color:var(--ink);font-size:13px;font-weight:700;padding:8px 0 3px;white-space:nowrap;border-bottom:1px solid var(--ink);transition:color .18s ease,border-color .18s ease}
.read-link:hover{color:#bc4b2d;border-color:#bc4b2d}
.read-link span{margin-left:5px}
.featured-card{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;min-height:390px;background:var(--lime);overflow:hidden}
.featured-card .featured-copy{padding:37px 40px 35px;display:flex;flex-direction:column;min-width:0}
.featured-card .card-meta{margin:0 0 24px;color:#3d5b4a}
.featured-card h3{font:400 clamp(44px,4.7vw,68px)/.98 "DM Serif",Georgia,serif;letter-spacing:-.035em;margin:0 0 18px;max-width:650px;text-wrap:balance}
.featured-card .summary{font-size:17px;line-height:1.45;max-width:480px;margin:0 0 18px}
.featured-card .card-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:end;gap:16px}
.featured-card .read-link{font-size:14px}
.featured-card .image-wrap{min-height:390px;position:relative;overflow:hidden;background:#d7d9ca}
.featured-card img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.featured-card .photo-note{bottom:14px;right:14px}
.empty-state{padding:80px 20px 105px;text-align:center;border-bottom:1px solid var(--line)}
.empty-symbol{font-size:48px;color:var(--orange)}
.empty-state h3{font:400 40px/1.1 "DM Serif",Georgia,serif;margin:8px 0}
.empty-state p{color:var(--ink-soft);font-size:15px;margin:0 0 22px}
.empty-state button{border:1px solid var(--ink);background:var(--ink);color:white;padding:12px 18px;font-weight:700;transition:background-color .18s ease}
.empty-state button:hover{background:#315d51}
.detail-view{padding:30px 0 100px}
.detail-top,.detail-header,.article-layout{width:min(1100px,calc(100% - 80px));margin-inline:auto}
.detail-top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 0 18px}
.back-button{background:none;border:0;padding:7px 0;color:var(--ink);font-weight:700;font-size:13px;display:flex;gap:10px;align-items:center}
.back-button:hover{color:#bc4b2d}
.detail-top span{font:10px "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase}
.detail-header{text-align:center;padding:54px 0 33px}
.detail-header .eyebrow{color:#5d6b61}
.detail-header h1{font:400 clamp(50px,6.1vw,84px)/1 "DM Serif",Georgia,serif;letter-spacing:-.04em;max-width:920px;margin:18px auto 19px;text-wrap:balance}
.detail-header .dek{font-size:20px;color:var(--ink-soft);line-height:1.45;max-width:680px;margin:0 auto 22px}
.detail-meta{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;font:11px "IBM Plex Mono",monospace;text-transform:uppercase;color:#57685e}
.detail-media{width:min(1220px,calc(100% - 80px));height:min(52vw,500px);min-height:280px;margin:0 auto 18px;position:relative;overflow:hidden;background:#d7d9ca}
.detail-media img{width:100%;height:100%;object-fit:cover}
.detail-caption{width:min(1100px,calc(100% - 80px));margin:0 auto 43px;font:10px "IBM Plex Mono",monospace;color:#66766d;text-transform:uppercase}
.article-layout{display:grid;grid-template-columns:210px minmax(0,650px);gap:70px;justify-content:center}
.article-actions{border-top:2px solid var(--ink);padding-top:15px;align-self:start;position:sticky;top:24px}
.article-actions p{font:10px "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;margin:0 0 18px;color:#66766d}
.save-button{border:1px solid var(--ink);background:transparent;color:var(--ink);padding:12px 14px;width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:700;text-align:left;transition:background-color .18s ease,color .18s ease}
.save-button:hover,.save-button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.save-button svg{width:17px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
.save-button[aria-pressed="true"] svg{fill:var(--lime)}
.article-body{font:19px/1.78 "DM Serif",Georgia,serif;color:#293f35}
.article-body p{margin:0 0 27px}
.article-body p:first-child::first-letter{float:left;font:72px/.86 "DM Serif",Georgia,serif;padding:9px 9px 0 0;color:#d65c3f}
.article-end{border-top:1px solid var(--line);padding-top:24px;margin-top:36px;font:13px "DM Sans",sans-serif;color:#5c6f63}
.site-footer{background:var(--ink);color:var(--paper)}
.footer-inner{padding:60px 0 74px;display:flex;justify-content:space-between;gap:50px}
.footer-kicker{color:var(--lime)}
.footer-inner>div:first-child p{font:400 clamp(40px,5vw,70px)/1.02 "DM Serif",Georgia,serif;letter-spacing:-.03em;margin:16px 0 0}
.footer-inner>div:first-child p span{color:var(--orange)}
.footer-about{max-width:330px;padding-top:11px}
.footer-about h2{font-size:16px;margin:0 0 12px}
.footer-about p{font-size:14px;line-height:1.65;color:#c5d1c8;margin:0 0 20px}
.footer-about a{font-size:13px;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:3px}
.footer-about a:hover{color:var(--lime)}
.footer-bottom{min-height:51px;border-top:1px solid #4b6659;display:flex;align-items:center;justify-content:space-between;gap:15px;font:10px "IBM Plex Mono",monospace;letter-spacing:.04em;text-transform:uppercase;color:#b8cbbf}
@media(max-width:1050px){.page-width{width:min(100% - 48px,1328px)}.section-intro{grid-template-columns:1fr 230px}.section-intro h1{font-size:clamp(42px,5vw,58px)}.tool-controls{gap:8px}.input-wrap{width:200px}.select-wrap{width:140px}.saved-filter{padding-inline:10px}.story-list{gap:26px 18px}.featured-card h3{font-size:clamp(42px,5vw,58px)}}
@media(max-width:760px){.page-width{width:calc(100% - 36px)}.utility-bar{min-height:30px;font-size:9px}.utility-bar span:last-child{display:none}.masthead{height:99px}.brand{font-size:clamp(48px,10vw,72px)}.brand-dot{font-size:.3em}.masthead p{display:none}.nav-inner{height:47px;gap:26px;font-size:12px}.nav-edition{display:none}.section-intro{display:block;padding:36px 0 31px}.section-intro .eyebrow{margin-bottom:15px}.section-intro h1{font-size:clamp(39px,8.1vw,55px)}.section-intro h1 br{display:none}.section-intro p{margin:15px 0 0;max-width:560px;font-size:14px}.browse-tools{display:block;padding:16px 0 17px}.browse-title h2{font-size:28px}.browse-title p{margin-top:2px}.tool-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:11px;margin-top:16px}.input-wrap,.select-wrap{width:100%}.saved-filter{grid-column:1/-1;justify-content:center;height:39px}.story-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 15px;padding-top:18px}.featured-card{min-height:0;grid-template-columns:1fr}.featured-card .image-wrap{min-height:0;height:270px}.featured-card .featured-copy{padding:25px 24px 28px}.featured-card .card-meta{margin-bottom:14px}.featured-card h3{font-size:clamp(42px,7.3vw,56px)}.featured-card .summary{font-size:15px;margin-bottom:22px}.story-card .image-wrap{height:155px}.story-card h3{font-size:27px}.story-card .summary{font-size:13px}.detail-top,.detail-header,.article-layout,.detail-caption{width:calc(100% - 36px)}.detail-media{width:100%;height:320px;min-height:0}.article-layout{grid-template-columns:1fr;gap:28px;max-width:650px}.article-actions{position:static;display:flex;align-items:center;gap:14px}.article-actions p{margin:0}.save-button{width:auto}.footer-inner{display:block;padding:50px 0 55px}.footer-about{margin-top:39px}.footer-inner>div:first-child p{font-size:44px}}
@media(max-width:560px){.brand{font-size:clamp(43px,11vw,54px)}.nav-inner{gap:22px}.section-intro h1{font-size:43px}.tool-controls{grid-template-columns:1fr 1fr}.control-label{font-size:9px}.input-wrap input,.select-wrap select{font-size:13px}.story-list{grid-template-columns:1fr;gap:25px;padding-bottom:65px}.featured-card .image-wrap{height:220px}.featured-card h3{font-size:45px}.story-card .image-wrap{height:205px}.story-card h3{font-size:31px}.story-card .summary{font-size:14px}.detail-view{padding-top:18px;padding-bottom:65px}.detail-top span{display:none}.detail-header{padding:38px 0 27px}.detail-header h1{font-size:48px;margin:14px auto}.detail-header .dek{font-size:17px}.detail-meta{font-size:10px;gap:8px}.detail-media{height:245px}.detail-caption{margin-bottom:28px}.article-body{font-size:18px;line-height:1.72}.footer-inner{display:block}.footer-about{margin-top:39px}.footer-bottom{font-size:9px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
