@font-face{font-family:Editorial;src:url('./assets/editorial.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Workshop;src:url('./assets/workshop.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Body;src:url('./assets/body.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--ivory:#F4EFE5;--plaster:#E5DED2;--wine:#541F2C;--soot:#261E1B;--ochre:#C3AB64;--bg:var(--ivory);--text:var(--soot);--surface:var(--plaster);--accent:var(--wine);--focus:var(--wine);--muted:#60554F;--line:color-mix(in srgb,var(--text) 22%,transparent);--font-display:Editorial,Georgia,serif;--font-body:Body,Arial,sans-serif;--text-xs:clamp(.75rem,.72rem + .12vw,.85rem);--text-sm:clamp(.875rem,.83rem + .2vw,1rem);--text-base:clamp(1rem,.95rem + .22vw,1.125rem);--text-lg:clamp(1.125rem,1rem + .5vw,1.5rem);--text-xl:clamp(1.7rem,1.3rem + 1.4vw,2.55rem);--text-2xl:clamp(2.5rem,1.7rem + 2.7vw,4.1rem);--text-hero:clamp(3rem,1.5rem + 4.5vw,6.25rem);--space:clamp(24px,4.5vw,72px)}
:root{--olive:#626A46}
[data-theme=dark]{--bg:#261E1B;--text:#F4EFE5;--surface:#362A25;--accent:#C3AB64;--focus:#C3AB64;--muted:#C9BCAD}
body{background:var(--bg);color:var(--text);font:400 var(--text-base)/1.6 var(--font-body)}
.container{max-width:1440px;margin-inline:auto;padding-inline:var(--space)}
.skip{position:fixed;top:-100px;left:16px;padding:12px;background:var(--ochre);color:var(--soot);z-index:100}.skip:focus{top:12px}
.topline{background:var(--wine);color:var(--ivory);display:flex;justify-content:space-between;padding:7px var(--space);font-size:var(--text-xs);letter-spacing:.06em}
.site-header{padding:14px var(--space);display:flex;align-items:center;gap:35px;position:relative;z-index:5;border-bottom:1px solid var(--line);min-height:112px}
.brand{display:block;width:240px;flex:0 0 240px}.brand img{width:100%;height:auto}.dark-logo{display:none}
[data-theme=dark] .light-logo{display:none}[data-theme=dark] .dark-logo{display:block}
.desktop-nav{display:flex;justify-content:center;align-items:center;gap:clamp(15px,2.2vw,34px);margin-left:auto}
.desktop-nav a{font-size:var(--text-sm);text-decoration:none;padding:12px 0;white-space:nowrap}
.desktop-nav a[aria-current]{border-bottom:1px solid var(--accent);color:var(--accent)}
.nav-actions{display:flex;align-items:center;gap:12px}
.plain-button,.menu-button{background:none;color:var(--text);border:1px solid var(--line);min-height:44px;padding:9px 12px;font-size:var(--text-xs)}
.menu-button{display:none}
.mobile-nav{position:absolute;top:100%;left:0;right:0;background:var(--bg);padding:20px var(--space);border-bottom:1px solid var(--line)}
.mobile-nav a{display:block;padding:12px 0}
.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.13em;line-height:1.6}
h1,h2,h3{font-family:var(--font-display);font-weight:500;line-height:1.05}
h1{font-size:var(--text-hero);letter-spacing:-.035em}
h2{font-size:var(--text-2xl);letter-spacing:-.025em}
h3{font-size:var(--text-xl);letter-spacing:-.02em}
.home-hero{display:grid;grid-template-columns:46% 54%;min-height:660px}
.hero-copy{padding:65px clamp(28px,4.5vw,72px);display:flex;flex-direction:column;justify-content:center}
.hero-copy h1{margin:25px 0 28px;color:var(--accent)}
.hero-copy>p:not(.eyebrow){max-width:39ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-top:30px}
.photo{position:relative;background:var(--surface);overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover}
.photo figcaption{position:absolute;bottom:10px;left:12px;right:12px;max-width:max-content;background:#261e1be8;color:var(--ivory);padding:5px 9px;font-size:var(--text-xs);line-height:1.35}
.hero-photo{min-height:660px}.hero-photo img{object-position:65% center}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:20px;background:var(--wine);border:1px solid var(--wine);color:var(--ivory);font:400 var(--text-sm)/1.4 var(--font-body);padding:16px 22px;text-decoration:none;min-height:50px;transition:background 180ms,color 180ms}
.button:hover{background:var(--soot);border-color:var(--soot)}.button:active{transform:translateY(1px)}
.button.inverse{background:var(--ivory);color:var(--wine);border-color:var(--ivory)}
.text-link{display:inline-flex;align-items:center;gap:18px;font-size:var(--text-sm);min-height:44px;text-decoration:underline;text-decoration-thickness:1px}
.ticker{display:flex;justify-content:space-around;gap:24px;padding:20px var(--space);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:Workshop,Arial,sans-serif;font-size:var(--text-lg);text-transform:uppercase;letter-spacing:.02em}
.section{padding-block:85px}.section.compact{padding-top:25px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:55px;margin-bottom:40px}
.section-heading>div:first-child{flex:1}.section-heading>div:last-child,.section-heading>p{max-width:440px}
.section-heading h2{margin-top:18px}.section-heading .text-link{margin-top:12px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 35px}
.home-grid{grid-template-columns:1.2fr 1fr 1fr;gap:28px}
.project-card{min-width:0}.project-card .photo{aspect-ratio:4/3}
.project-card .image-link{display:block}
.project-card .photo img{transition:transform 350ms ease}.project-card .image-link:hover img{transform:scale(1.025)}
.card-meta{display:flex;justify-content:space-between;gap:16px;margin:20px 0 14px;flex-wrap:wrap}
.card-meta>span:last-child{font-size:var(--text-xs);color:var(--muted)}
.project-card h3 a{text-decoration:none}.project-card p:not(.eyebrow){font-size:var(--text-sm);margin-top:14px;max-width:45ch}
.manifesto-band{background:var(--wine);color:var(--ivory);padding:75px var(--space)}
.manifesto-inner{padding:0;max-width:1100px}.manifesto-inner h2{margin:24px 0;font-size:var(--text-2xl);max-width:25ch}
.manifesto-inner>p:not(.eyebrow){max-width:55ch}.manifesto-inner .button{margin-top:30px}
.source-feature{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:70px}.source-feature>.photo{aspect-ratio:1.14}.source-feature h2{margin:25px 0}.source-feature p{max-width:42ch}.source-feature .button{margin:25px 0 14px}
.micro{font-size:var(--text-xs);line-height:1.6;color:var(--muted)}
.notes-section{padding-bottom:65px}
.note-card{display:grid;grid-template-columns:110px 1fr;gap:30px;padding:32px 0;border-top:1px solid var(--line)}
.note-number{font:500 var(--text-2xl)/1 var(--font-display);color:var(--olive)}
[data-theme=dark] .note-number{color:var(--ochre)}
.note-card h3{margin:12px 0}.note-card h3 a{text-decoration:none}.note-card p:not(.eyebrow){max-width:70ch}
.planner-promo{background:var(--surface);padding-block:55px}.planner-promo h2{margin:22px 0}.planner-promo>p:not(.eyebrow){max-width:50ch;margin-bottom:25px}
.closing-strip{margin-block:65px;display:flex;justify-content:space-between;align-items:center;gap:35px}.closing-strip h2{font-size:var(--text-xl);margin:15px 0}.closing-strip p:not(.eyebrow){max-width:52ch;font-size:var(--text-sm)}
.site-footer{background:var(--soot);color:var(--ivory);padding:55px var(--space) 22px}
.footer-top{max-width:1296px;margin:auto;display:flex;justify-content:space-between;gap:50px}
.footer-brand{width:250px}.footer-brand p{margin-top:24px;font-size:var(--text-sm)}
.footer-top nav{display:grid;grid-template-columns:1fr 1fr;gap:6px 40px;align-content:start}.footer-top nav a{font-size:var(--text-sm);min-height:40px;text-decoration:none}
.footer-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #f4efe540;padding-top:22px;margin-top:45px;font-size:var(--text-xs);flex-wrap:wrap}
.credit{font-size:var(--text-xs);opacity:.7;margin-top:18px}
.page-heading{padding-top:65px;padding-bottom:50px}.page-heading h1{font-size:var(--text-hero);max-width:20ch;margin:25px 0}
.lede{font-size:var(--text-lg);max-width:65ch;line-height:1.5}
.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start;padding-bottom:65px}.split>.photo{height:630px}.prose{max-width:70ch}
.prose h2{font-size:var(--text-xl);margin:40px 0 18px}.prose h2:first-child{margin-top:0}.prose h3{font-size:var(--text-lg);font-family:var(--font-body);margin:20px 0 10px}
.prose p{margin:18px 0;line-height:1.75}.prose li{margin:13px 0;padding-left:5px}.prose .button{margin-block:15px}.prose .photo{aspect-ratio:16/10;margin-bottom:45px}
.editorial-rows{border-top:1px solid var(--line)}.editorial-rows article{display:grid;grid-template-columns:60px 1fr 1.5fr;gap:30px;padding:25px 0;border-bottom:1px solid var(--line)}.editorial-rows article>span{font-size:var(--text-sm)}.editorial-rows article p{font-size:var(--text-sm)}
.filter-toolbar{display:flex;justify-content:space-between;gap:25px;align-items:start;padding-top:20px;border-top:1px solid var(--line)}.filter-buttons{display:flex;gap:8px;flex-wrap:wrap}
.filter-buttons button{background:transparent;border:1px solid var(--line);color:var(--text);padding:10px 15px;min-height:44px;font-size:var(--text-sm)}
.filter-buttons button[aria-pressed=true]{background:var(--wine);color:var(--ivory);border-color:var(--wine)}
input,textarea{background:var(--bg);color:var(--text);border:1px solid var(--line);padding:12px 14px;border-radius:0;max-width:100%;min-height:46px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}.search-label{min-width:190px}.search-label input{width:100%;font-size:var(--text-sm)}
.filter-count{font-size:var(--text-xs);color:var(--muted);margin:20px 0 25px}
.empty{padding:50px 0}.empty p{margin:20px 0}
.breadcrumb{display:flex;gap:16px;font-size:var(--text-xs);padding-top:35px}
.breadcrumb+.page-heading{padding-top:30px}
.project-lead{display:grid;grid-template-columns:1.5fr 1fr;gap:55px;align-items:center;padding-bottom:60px}.project-lead .photo{aspect-ratio:4/3}
blockquote{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.12;margin:0}
.article-layout{display:grid;grid-template-columns:230px minmax(0,750px);gap:65px;padding-bottom:60px}
.article-layout aside{border-top:1px solid var(--line);padding-top:20px;font-size:var(--text-sm)}
.article-layout aside a{display:block;margin:15px 0}.article-layout aside p{margin-bottom:18px}
.status-note{font-size:var(--text-sm);background:var(--surface);padding:14px 18px}
.source-inline{border-top:1px solid var(--line);padding-top:10px}.article-end{border-top:1px solid var(--line);margin-top:45px;padding-top:20px}
.library-kit{background:var(--surface);border-top:4px solid var(--olive);padding:22px 26px}.library-kit .text-link{max-width:100%}.library-kit h3{font-family:var(--font-display);font-size:var(--text-xl)}.article-end .text-link{margin-left:16px}
.shopping-note{background:var(--surface);padding-top:22px;padding-bottom:22px;font-size:var(--text-sm)}.shopping-note p{max-width:100ch}
.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 35px}
.source-card .photo{aspect-ratio:16/10}.card-copy{padding:23px 0}.card-copy h3{margin:12px 0}.card-copy p .text-link{display:flex;width:fit-content;margin-top:10px}
details{border-top:1px solid var(--line);margin-top:20px}summary{padding:15px 0;cursor:pointer;font-size:var(--text-sm);min-height:44px}details p{font-size:var(--text-sm);padding-bottom:12px}
.statement{background:var(--surface);padding-block:50px}.statement h2{margin:22px 0}.statement>p:not(.eyebrow){max-width:55ch}
.newsletter-panel{background:var(--surface);padding-block:40px;display:flex;gap:35px;align-items:center;justify-content:space-between}
.newsletter-panel h2{font-size:var(--text-xl);margin:18px 0}.newsletter-panel p{max-width:65ch}
.about-split>.photo{height:650px}.narrow{max-width:850px;padding-bottom:55px}
.planner-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr);gap:60px}
fieldset{border:0;border-top:1px solid var(--line);margin:0 0 40px;padding:25px 0 0;min-width:0}legend{font-family:var(--font-display);font-size:var(--text-xl);padding:0 15px 0 0}
label{display:block;font-size:var(--text-sm)}label input,label textarea{display:block;width:100%;margin-top:9px}
fieldset>label{margin:20px 0}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}.money-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}
.money-input{display:flex;align-items:center;border:1px solid var(--line);margin-top:9px;padding-left:13px}.money-input input{border:0;margin:0;min-width:0;background:transparent}.money-input>span{font-size:var(--text-base)}
.budget-card{background:var(--wine);color:var(--ivory);padding:32px;height:fit-content;position:sticky;top:25px}.budget-card #budget-total{font-family:var(--font-display);font-size:var(--text-2xl);margin:25px 0;overflow-wrap:anywhere}.budget-card .micro{color:var(--ivory)}.budget-card hr{border:0;border-top:1px solid #f4efe54d;margin:25px 0}
#project-planner>.micro{margin-top:18px}.brief-result{padding-block:50px}.brief-result h2{margin:20px 0}.brief-result textarea{display:block;width:100%;margin:15px 0 22px;font-size:var(--text-sm)}
@media(max-width:1100px){.desktop-nav{gap:16px}.site-header{gap:20px}.brand{width:160px;flex-basis:160px}.home-hero{grid-template-columns:48% 52%}.home-grid{grid-template-columns:1fr 1fr}.home-grid>article:last-child{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 30px}.home-grid>article:last-child>.image-link{grid-row:1/4}.home-grid>article:last-child .card-meta{align-self:end}.article-layout{grid-template-columns:180px minmax(0,1fr);gap:40px}}
@media(max-width:900px){.desktop-nav{display:none}.menu-button{display:block}.site-header{justify-content:space-between}.nav-actions{margin-left:auto}.home-hero{grid-template-columns:1fr 1fr}.hero-copy{padding:45px 28px}.hero-copy h1{font-size:clamp(3rem,6vw,4.4rem)}.hero-photo{min-height:580px}.source-feature{gap:35px}.split{gap:35px}.article-layout{grid-template-columns:1fr}.article-layout aside{display:flex;flex-wrap:wrap;gap:5px 25px}.article-layout aside a{margin:5px 0}.article-layout aside p{width:100%;margin-bottom:10px}.planner-layout{gap:30px;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr)}}
@media(max-width:650px){.topline>span:last-child{display:none}.site-header{min-height:94px;padding-block:12px}.brand{width:135px;flex-basis:135px}.plain-button,.menu-button{font-size:var(--text-xs);padding:8px}.home-hero{grid-template-columns:1fr}.hero-copy{padding:40px 24px}.hero-copy h1{font-size:clamp(3.4rem,12vw,4.6rem);margin:20px 0}.hero-copy>p:not(.eyebrow){max-width:38ch}.hero-photo{min-height:0;height:385px}.home-hero{min-height:0}.hero-actions{gap:14px}.ticker{display:grid;grid-template-columns:1fr 1fr;gap:12px;font-size:var(--text-base)}.section{padding-block:50px}.section-heading{display:block;margin-bottom:30px}.section-heading>div:last-child,.section-heading>p{margin-top:25px}.project-grid,.home-grid{grid-template-columns:1fr;gap:40px}.home-grid>article:last-child{display:block;grid-column:auto}.source-feature{grid-template-columns:1fr;gap:32px}.manifesto-band{padding:50px 24px}.manifesto-inner h2{font-size:var(--text-2xl)}.note-card{grid-template-columns:44px 1fr;gap:15px}.note-number{font-size:var(--text-xl)}.closing-strip{flex-direction:column;align-items:start;margin-block:45px;gap:24px}.footer-top{flex-direction:column;gap:40px}.footer-brand{width:210px}.footer-top nav{gap:6px 22px}.footer-bottom{flex-direction:column;gap:14px}.page-heading{padding-top:40px;padding-bottom:35px}.page-heading h1{font-size:clamp(3rem,11vw,4.2rem)}.lede{font-size:var(--text-base)}.split{grid-template-columns:1fr;gap:30px;padding-bottom:30px}.split>.photo{min-height:0;height:360px}.editorial-rows article{grid-template-columns:30px 1fr;gap:10px 20px}.editorial-rows p{grid-column:2}.filter-toolbar{flex-direction:column;gap:20px}.search-label{width:100%}.filter-buttons{gap:6px}.filter-buttons button{font-size:var(--text-xs);padding:10px}.project-lead{grid-template-columns:1fr;gap:30px;padding-bottom:35px}blockquote{font-size:var(--text-xl)}.article-layout{gap:25px}.source-grid{grid-template-columns:1fr;gap:30px}.newsletter-panel{flex-direction:column;align-items:start;padding-block:30px}.planner-layout{grid-template-columns:1fr}.budget-card{position:static;grid-row:1}.form-two,.money-grid{grid-template-columns:1fr}.card-meta{gap:8px}.prose h2{margin-top:32px}}
.planner-promo,.newsletter-panel{background:var(--olive);color:var(--ivory);border-top:4px solid var(--ochre);--focus:var(--ivory)}
.planner-promo .button,.newsletter-panel .button{background:var(--ivory);border-color:var(--ivory);color:var(--wine)}
.planner-promo .button:hover,.newsletter-panel .button:hover{background:var(--plaster);border-color:var(--plaster)}
@media print{.site-header,.topline,.site-footer,.closing-strip,.skip,.button{display:none}.brief-result{display:block!important}.brief-result textarea{height:auto;min-height:650px}body{background:white;color:black}}
