@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('/static/fonts/dm-sans-latin.woff2') format('woff2')}
@font-face{font-family:'DM Serif Display';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/dm-serif-latin.woff2') format('woff2')}
@font-face{font-family:'DM Serif Display';font-style:italic;font-weight:400;font-display:swap;src:url('/static/fonts/dm-serif-italic-latin.woff2') format('woff2')}
:root{--paper:#f8f6f1;--ink:#262b28;--muted:#7a817b;--line:#dddcd3;--forest:#29463b;--lime:#d9e7bd;--white:#fff;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit}button,input,select{font:inherit}.masthead{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,30px);border-bottom:1px solid var(--line)}.wordmark{text-decoration:none;font-weight:700;letter-spacing:.17em;font-size:17px;display:flex;align-items:center;gap:12px}.mark{font-size:30px;color:#688b65;line-height:1}.private,.eyebrow,.label,.meta,.hero-rule,.card-bottom,.footer,.back{font-size:11px;letter-spacing:.15em;font-weight:700}.private{color:var(--muted);display:flex;align-items:center;gap:12px}.private i{width:5px;height:5px;background:#8caa68;border-radius:50%}.hero{padding:100px max(5vw,30px) 0;background:var(--forest);color:var(--paper)}.hero .eyebrow{color:var(--lime)}h1,h2,h3,p{margin-top:0}.hero h1,.detail-head h1{font:normal clamp(52px,7vw,108px)/1.05 var(--serif);letter-spacing:-.035em;margin:28px 0 26px}.hero h1 em{color:var(--lime);font-weight:400}.hero>p{font-size:17px;line-height:1.7;max-width:510px;color:#d3dcd2}.hero-rule{margin-top:100px;padding:22px 0;border-top:1px solid #6b8072;display:flex;justify-content:space-between;color:#c2d0c3}.archive{padding:100px max(5vw,30px) 130px;min-height:570px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:35px}.section-heading h2,.content-section h2,.sidebar h2{font:normal 48px/1.1 var(--serif);margin:14px 0 0}.section-heading p{color:var(--muted);font-size:14px}.project-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 25px}.project-links a{border:1px solid var(--line);padding:10px 16px;color:var(--forest);text-decoration:none;font-size:12px;font-weight:700;background:#fff}.project-links a:hover{background:var(--lime)}.filters{display:flex;gap:9px;margin-bottom:34px}.filters label{display:flex;align-items:center;background:var(--white);border:1px solid var(--line);min-height:50px}.filters .search{flex:2;gap:12px;padding:0 17px;font-size:22px;color:var(--forest)}.filters input{width:100%;border:0;outline:0;background:transparent;font-size:14px;color:var(--ink)}.filters select{background:transparent;border:0;padding:0 16px;min-width:170px;max-width:230px;color:var(--ink);outline:0;font-size:13px}.filters button{background:var(--forest);border:0;color:white;padding:0 24px;font-size:13px;font-weight:700;cursor:pointer}.filters button span{margin-left:15px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.card{min-height:312px;background:var(--white);border:1px solid var(--line);padding:26px 29px;display:flex;flex-direction:column;text-decoration:none;transition:transform .2s,box-shadow .2s}.card:hover,.card:focus-visible{transform:translateY(-4px);box-shadow:0 14px 28px #1c352110}.card-top,.card-bottom{display:flex;justify-content:space-between;align-items:center}.label{color:#678d62}.arrow{font-size:22px;color:var(--forest)}.card h3{font:normal 32px/1.15 var(--serif);margin:36px 0 14px}.card p{color:#69716c;font-size:14px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-bottom{border-top:1px solid var(--line);padding-top:16px;margin-top:auto;color:var(--muted);font-size:10px;gap:10px}.empty{border:1px solid var(--line);background:#fdfcf9;text-align:center;padding:65px 20px}.empty-icon{font-size:40px;color:#8ba780}.empty h3{font:normal 30px var(--serif);margin:16px 0 8px}.empty p{color:var(--muted);font-size:14px}.empty a{color:var(--forest);font-weight:700}.footer{border-top:1px solid var(--line);padding:32px max(5vw,30px);display:flex;justify-content:space-between;gap:15px;color:var(--forest)}.muted{color:var(--muted)}.detail{padding:43px max(5vw,30px) 130px}.back{text-decoration:none;color:var(--forest)}.detail-head{padding:74px 0 55px;border-bottom:1px solid var(--line)}.detail-head .eyebrow{color:#648861}.sep{margin:0 10px;color:var(--muted)}.detail-head h1{margin:23px 0 18px;max-width:1000px}.lead{font:normal 24px/1.45 var(--serif);color:#5a655c;max-width:700px}.meta{margin-top:40px;color:var(--muted);line-height:2}.meta span{padding:0 8px}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:80px}.content-section{padding:60px 0;border-bottom:1px solid var(--line)}.content-section .eyebrow,.sidebar .eyebrow{color:#78936d}.content-section h2{font-size:40px;margin:20px 0 28px}blockquote{border-left:3px solid #a8c08e;padding:4px 0 4px 25px;margin:0;white-space:pre-wrap;font:normal 22px/1.65 var(--serif)}.text-block{padding:22px 0;border-top:1px solid var(--line)}.text-block h3{font:normal 25px var(--serif);margin-bottom:9px}.text-block p{white-space:pre-wrap;line-height:1.75;color:#4c5550}.text-block details{font-size:13px;color:var(--muted)}.text-block summary{cursor:pointer;color:var(--forest);font-weight:700}.sidebar{padding-top:60px}.sidebar h2{font-size:36px}.timeline{list-style:none;padding:0;margin:35px 0 0;border-left:1px solid #bed1b2}.timeline li{position:relative;padding:0 0 30px 24px}.timeline-dot{position:absolute;left:-5px;top:4px;width:9px;height:9px;border-radius:50%;background:#71976b}.timeline small{font-size:10px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.timeline p{font-size:14px;line-height:1.6;margin:9px 0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{gap:35px}.filters{flex-wrap:wrap}.filters .search{flex-basis:100%}.filters label:not(.search){flex:1}.filters button{min-height:50px}}@media(max-width:620px){.masthead{height:68px}.private{font-size:9px;letter-spacing:.05em}.private i{display:none}.hero{padding-top:70px}.hero h1{font-size:clamp(44px,10vw,64px)}.hero-rule{margin-top:70px}.archive{padding-top:72px}.section-heading{display:block}.section-heading h2{font-size:40px}.section-heading p{margin-top:15px}.filters{display:grid;grid-template-columns:1fr}.filters label:not(.search){min-height:48px}.filters select{width:100%;max-width:none}.grid{grid-template-columns:1fr}.card{min-height:260px}.footer{flex-direction:column;line-height:1.7}.detail{padding-top:30px}.detail-head{padding:55px 0 35px}.detail-head h1{font-size:52px}.detail-grid{grid-template-columns:1fr;gap:0}.content-section{padding:48px 0}.sidebar{padding-top:50px}}
/* Archive opens on search and actual ideas, not a landing hero. */
.archive{padding-top:48px}.archive .section-heading{align-items:baseline;margin-bottom:26px}.archive .section-heading h1{font:normal clamp(34px,3.5vw,48px)/1.15 var(--serif);margin:0}.archive .section-heading p{margin:0}
@media(max-width:620px){.archive{padding-top:32px}.archive .section-heading{margin-bottom:22px}.archive .section-heading p{margin-top:8px}}
/* Private sign-in: compact single-column personal form, no external assets. */
.logout-form{margin:0}.logout-form button{border:1px solid var(--line);background:transparent;color:var(--forest);padding:12px 17px;min-height:44px;cursor:pointer;font-size:12px;font-weight:700;letter-spacing:.06em}.logout-form button:hover,.logout-form button:focus-visible{background:var(--forest);color:var(--paper)}
.login-screen{min-height:calc(100vh - 170px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr)}.login-intro{background:var(--forest);color:var(--paper);padding:clamp(64px,9vw,150px) max(5vw,30px) 60px;position:relative;overflow:hidden}.login-intro .eyebrow{color:var(--lime)}.login-intro h1{font:normal clamp(50px,5.8vw,94px)/1.05 var(--serif);letter-spacing:-.035em;max-width:760px;margin:30px 0}.login-intro h1 em{color:var(--lime);font-weight:400}.login-intro p{color:#d3dcd2;max-width:430px;font-size:17px;line-height:1.7}.login-signet{font-size:clamp(140px,25vw,400px);line-height:1;color:#51735b;opacity:.35;position:absolute;right:-.1em;bottom:-.42em;pointer-events:none}.login-panel{align-self:center;padding:70px clamp(30px,8vw,130px);max-width:680px;width:100%;margin:auto}.login-panel .eyebrow{color:var(--forest)}.login-panel h2{font:normal clamp(40px,4vw,64px)/1.1 var(--serif);margin:21px 0 14px}.login-panel>p{color:var(--muted);line-height:1.65;font-size:15px;margin-bottom:38px}.login-form{display:grid;gap:11px}.login-form label{font-size:12px;font-weight:700;letter-spacing:.07em;margin-top:12px}.login-form input:not([type=hidden]){display:block;width:100%;min-height:54px;padding:13px 16px;border:1px solid #b6c0b5;border-radius:0;background:var(--white);color:var(--ink);outline:none}.login-form input:focus-visible{border-color:var(--forest);box-shadow:0 0 0 3px #bdd2bd}.login-form button{display:flex;align-items:center;justify-content:space-between;margin-top:22px;min-height:56px;padding:15px 20px;border:0;background:var(--forest);color:var(--white);font-weight:700;cursor:pointer}.login-form button:hover,.login-form button:focus-visible{background:#3c6653}.login-panel small{display:block;color:var(--muted);line-height:1.5;margin-top:28px}.login-error{background:#f9eae5;border-left:3px solid #a84635;color:#772d22;padding:14px 16px;font-size:14px;line-height:1.5}
@media(max-width:800px){.login-screen{grid-template-columns:1fr}.login-intro{padding:70px max(6vw,24px) 55px}.login-intro h1{max-width:640px}.login-signet{font-size:200px}.login-panel{padding:65px max(6vw,24px) 80px;max-width:570px}}@media(max-width:620px){.login-intro{padding-top:56px;padding-bottom:45px}.login-intro h1{font-size:clamp(44px,11vw,60px);margin:22px 0}.login-intro p{font-size:15px;max-width:300px}.login-panel{padding-top:55px}.logout-form button{font-size:11px;padding:10px 12px}.wordmark{font-size:15px}}
/* Auth pages only: use the existing archive palette and typography. */
.login-screen{min-height:calc(100vh - 170px);display:flex;align-items:flex-start;justify-content:center;padding:clamp(40px,8vw,88px) 20px}
.login-panel{align-self:auto;width:min(100%,440px);max-width:440px;margin:0;padding:0}
.login-panel h1{font:normal clamp(32px,5vw,40px)/1.2 var(--serif);margin:0 0 20px}
.login-panel>p{margin:0 0 20px;font-size:15px;line-height:1.5}
.login-form{gap:8px}.login-form label{font-size:14px;letter-spacing:0;margin-top:10px}
.login-form input:not([type=hidden]){min-height:48px;font-size:16px}
.login-form button{min-height:48px;margin-top:14px;justify-content:center}
@media(max-width:620px){.login-screen{padding:40px 20px}.login-panel{padding:0}}
/* Structured content stays readable within the existing archive palette. */
.archive-blocks{min-width:0}.archive-block{max-width:100%;overflow-wrap:anywhere;line-height:1.65;margin:20px 0}.archive-block h3{font:normal 30px/1.2 var(--serif);margin:0}.archive-block p{white-space:pre-wrap}.archive-block figure{margin:0}.archive-block img,.file-list img{display:block;max-width:100%;height:auto;max-height:480px;object-fit:contain}.archive-block figcaption,.block-caption{display:block;color:var(--muted);font-size:13px;margin:8px 0}.archive-block pre{white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:auto;background:#eaece5;border-left:3px solid var(--forest);padding:18px;font-size:14px;line-height:1.6}.archive-block pre.prompt{background:#eef2e5}.embed-frame{aspect-ratio:16/9;max-width:720px;margin-bottom:10px;background:var(--ink)}.embed-frame iframe{width:100%;height:100%;border:0}.file-list{list-style:none;padding:0;display:grid;gap:16px}.file-list li{min-width:0;padding:14px;border:1px solid var(--line);display:grid;gap:6px}.file-list img{max-height:240px}.file-list small{color:var(--muted)}.crumbs{font-size:14px;line-height:1.6;overflow-wrap:anywhere;margin-bottom:28px}.crumbs a,.archive-block a,.file-list a{color:var(--forest);text-underline-offset:3px}.archive-block a:focus-visible,.file-list a:focus-visible,.crumbs a:focus-visible{outline:3px solid var(--forest);outline-offset:3px}.detail-main,.sidebar{min-width:0}@media(max-width:620px){.archive-block h3{font-size:25px}.archive-block pre{padding:14px}}
