:root{--paper:#faf9f6;--ink:#222a27;--muted:#747b75;--line:#dedfd8;--accent:#d8ee72;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans)}a{color:inherit;text-underline-offset:4px}a:hover{color:#526415}button,input{font:inherit}button,a,input{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #809c2a;outline-offset:5px}.skip{position:absolute;left:20px;top:-80px;background:var(--accent);padding:10px;z-index:10}.skip:focus{top:10px}.site-header{max-width:1320px;margin:auto;padding:36px 48px 29px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.wordmark{font:42px/1 var(--serif);letter-spacing:-2px;text-decoration:none}.wordmark span{display:block;font:11px/1.6 var(--sans);letter-spacing:1.2px;text-transform:uppercase;margin-top:12px}.site-header nav{display:flex;align-items:center;gap:30px;font-size:14px}.site-header nav a{text-decoration:none}.feed-link{border:1px solid var(--line);border-radius:30px;padding:7px 18px}.feed-link span{color:#7a8c3a;margin-left:9px}main{max-width:1320px;margin:auto;padding:0 48px}.listing-header{display:flex;justify-content:space-between;align-items:end;padding:63px 0 32px;gap:30px}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:10px;font-weight:600;color:var(--muted)}h1{font:clamp(44px,5.2vw,76px)/1.06 var(--serif);letter-spacing:-2.5px;margin:17px 0 10px;font-weight:normal}.listing-header p{font-size:14px;color:var(--muted);margin:0 0 8px}.tag-filter{display:flex;gap:9px;flex-wrap:wrap;border-top:1px solid var(--line);padding:18px 0 28px}.tag-filter a,.tags a{border:1px solid var(--line);border-radius:40px;padding:5px 14px;font-size:12px;text-decoration:none}.tag-filter a:first-child,.tag-filter .selected{background:var(--ink);color:white;border-color:var(--ink)}.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 28px}.post-card{min-width:0}.card-image{display:block;aspect-ratio:4/3;background:#e4e5de;overflow:hidden;border-radius:2px}.card-image img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.card-image:hover img{transform:scale(1.025)}.card-body{padding:20px 0 0}.post-card h2{font:28px/1.16 var(--serif);letter-spacing:-.5px;font-weight:normal;margin:10px 0 12px}.post-card h2 a{text-decoration:none}.post-card p{font-size:14px;color:#687067;line-height:1.65;margin:0 0 16px}.read-link{font-size:12px;text-decoration:none}.read-link span{margin-left:8px}.no-image{display:flex;align-items:center;justify-content:center;background:#e8ecdd;font:italic 40px/1.15 var(--serif);color:#606b50}.pagination{display:flex;justify-content:space-between;gap:24px;padding:48px 0}.pagination a{font-size:14px;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:5px}.site-footer{max-width:1224px;margin:70px auto 0;border-top:1px solid var(--line);padding:38px 0 50px;display:flex;gap:40px;justify-content:space-between}.footer-brand{font:30px var(--serif);text-decoration:none;letter-spacing:-1px}.site-footer p{font-size:12px;color:var(--muted);line-height:1.8}.site-footer nav{display:flex;flex-wrap:wrap;gap:15px;max-width:460px;align-content:start;font-size:12px}.footer-note{font:italic 18px var(--serif);color:var(--muted)}.article{max-width:840px;margin:0 auto}.article-header{padding:65px 0 38px}.article-header h1{font-size:clamp(40px,5vw,64px);line-height:1.1}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.tags a{font-size:11px;padding:3px 11px}.prose{font-size:18px;line-height:1.85;overflow-wrap:anywhere}.prose p{margin:0 0 1.4em}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{font-family:var(--serif);font-weight:normal;line-height:1.25;letter-spacing:-.4px;margin:1.5em 0 .6em}.prose h1,.prose h2{font-size:34px}.prose h3{font-size:27px}.prose h4{font-size:23px}.prose img{max-width:100%;height:auto;border-radius:2px;display:block}.prose img:hover{cursor:zoom-in}.prose figure{margin:1.8em 0;max-width:100%}.prose figcaption{font:12px/1.65 var(--sans);color:var(--muted);margin-top:10px}.prose blockquote{border-left:3px solid #a6b36d;padding:4px 0 4px 25px;margin:30px 0;font-family:var(--serif);font-style:italic}.prose blockquote p:last-child{margin-bottom:0}.gallery{display:grid;gap:12px;margin:30px 0;align-items:start}.gallery.columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery.columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery figure,.gallery p{margin:0}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}.gallery p{display:contents}.callout{padding:28px;background:#eaf0d9;margin:32px 0;border-radius:2px}.callout.statement{font:36px/1.35 var(--serif);letter-spacing:-.6px}.callout p:last-child{margin:0}.callout.warning,.red_box{background:#f6e5dc}.prose audio{width:100%;max-width:500px}.prose table{border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}.prose td,.prose th{padding:10px;border:1px solid var(--line)}.comments{margin-top:70px;border-top:1px solid var(--line);padding-top:35px}.comments h2{font:34px var(--serif)}.comments h2 span{color:var(--muted);font:14px var(--sans)}.muted{color:var(--muted);font-size:14px}.comment{border-top:1px solid var(--line);padding:24px 0}.comment.reply{border-left:2px solid var(--line);padding-left:20px}.comment-meta{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin-bottom:10px}.comment-meta time{color:var(--muted)}.comment .prose{font-size:15px}.back-link{display:inline-block;font-size:14px;margin-top:40px}.search-page{max-width:840px;margin:70px auto}.search-page h1{margin-bottom:32px}.search-page label{display:block;font-size:13px;margin-bottom:10px}.search-page input{width:100%;padding:17px;border:1px solid #bbc0b5;border-radius:4px;background:white;font-size:20px}.search-result{padding:25px 0;border-top:1px solid var(--line)}.search-result h2{font:27px var(--serif);margin:0 0 8px}.search-result h2 a{text-decoration:none}.search-result p{font-size:14px;color:var(--muted);margin:0}.preview-banner{padding:12px 20px;background:var(--accent);font-size:13px;margin-top:20px}.stauraum .prose{font-family:ui-monospace,monospace;font-size:16px}.stauraum .wordmark,.stauraum h1,.stauraum h2{font-family:ui-monospace,monospace}.stauraum .card-image{display:none}.stauraum .post-grid{grid-template-columns:1fr;max-width:800px}.stauraum .listing-header p{display:none}@media(min-width:1000px){.post-card:first-child{grid-column:span 2}.post-card:first-child .card-image{aspect-ratio:16/9}.post-card:first-child h2{font-size:38px}}@media(max-width:850px){.site-header{padding:28px 24px}.site-header nav{gap:17px}main{padding:0 24px}.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer{margin:60px 24px 0;flex-wrap:wrap}.listing-header{padding-top:42px}.listing-header p{display:none}}@media(max-width:540px){.site-header{align-items:start}.wordmark{font-size:34px}.wordmark span{font-size:9px;letter-spacing:.5px}.site-header nav{gap:12px;font-size:12px;flex-wrap:wrap;justify-content:end;max-width:140px}.feed-link{padding:3px 10px}.post-grid{grid-template-columns:1fr;gap:35px}.listing-header h1{font-size:49px}.article-header{padding-top:38px}.prose{font-size:17px}.gallery.columns-3{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer{gap:22px}.footer-note{display:none}.comment-meta{flex-direction:column;gap:2px}.callout.statement{font-size:28px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Compact home page; archive and topic headings keep their own spacing. */
.home-listing{padding-top:30px}.home-listing>.tag-filter{border-top:0;padding-top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.prose .article-cover{margin:0 0 2em}.article-cover img{width:100%;height:auto}

/* Optional theme preference; images retain their original colours. */
:root{color-scheme:light;--surface:#fff;--soft:#eaf0d9;--hover:#526415;--on-accent:#222a27}
:root[data-theme=dark]{color-scheme:dark;--paper:#191e1b;--ink:#e3e7df;--muted:#aeb8ac;--line:#434d43;--surface:#242d26;--soft:#303d29;--hover:#d8ee72;--on-accent:#222a27}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#191e1b;--ink:#e3e7df;--muted:#aeb8ac;--line:#434d43;--surface:#242d26;--soft:#303d29;--hover:#d8ee72;--on-accent:#222a27}}
a:hover{color:var(--hover)}.theme-control{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:7px;border:0;border-radius:50%;color:var(--muted);background:transparent;cursor:pointer}.theme-control:hover{color:var(--ink);background:var(--soft)}.theme-control [hidden]{display:none}.theme-control[hidden]{display:none}.search-page input{background:var(--surface);color:var(--ink);border-color:var(--line)}.callout{background:var(--soft)}.callout.warning,.red_box{background:var(--soft)}.preview-banner{color:var(--on-accent)}.tag-filter a.selected{color:var(--paper);background:var(--ink)}.no-image{background:var(--soft);color:var(--muted)}
.contact-form{margin:35px 0;font-size:16px;position:relative}.contact-form h2,.form-status h2{font:32px var(--serif)}.contact-form label{display:block;margin:20px 0 8px}.contact-form label span{font-size:12px;color:var(--muted)}.contact-form input:not([type=hidden]),.contact-form textarea{display:block;width:100%;box-sizing:border-box;margin-top:7px;padding:12px 14px;font:16px/1.6 var(--sans);border:1px solid var(--line);border-radius:4px;background:var(--surface);color:var(--ink)}.contact-form textarea{resize:vertical;min-height:180px}.contact-privacy{font-size:13px;line-height:1.7;color:var(--muted)}.contact-submit{font:600 15px var(--sans);padding:13px 20px;background:var(--accent);color:var(--on-accent);border:0;border-radius:4px;cursor:pointer}.contact-trap{position:absolute;left:-10000px;top:0;width:1px;height:1px;overflow:hidden}.form-error{padding:15px;border:1px solid var(--line);background:var(--soft)}.form-status{padding:20px 0}.contact-form textarea:focus-visible,.theme-control:focus-visible{outline:3px solid #809c2a;outline-offset:3px}



/* Small lightbox controls; on phones navigation stays centred over the image. */
dialog#lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:max(8px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));border:0;background:#141815;color:#d4d8d4;overflow:hidden;box-sizing:border-box}
dialog#lightbox[open]{display:grid;grid-template-rows:44px minmax(0,1fr);gap:6px}dialog::backdrop{background:#141815}
#lightbox .lb-top{display:flex;align-items:center;justify-content:space-between;min-width:0;padding-left:10px}
#lightbox .lb-count{position:static;font:12px var(--sans);color:#a7afa7}
#lightbox button{position:static;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:4px;background:transparent;color:#a7afa7;cursor:pointer;flex-shrink:0;outline:none;box-shadow:none;-webkit-tap-highlight-color:transparent}
#lightbox button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
#lightbox.keyboard-focus button:focus-visible{outline:2px solid #d4d8d4;outline-offset:-3px;color:white}
#lightbox:not(.keyboard-focus) button:focus{outline:none}
@media(hover:hover){#lightbox button:hover{color:white;background:#ffffff0a}}
#lightbox .lb-stage{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;min-height:0}
#lightbox figure{height:100%;min-width:0;min-height:0;margin:0;display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;gap:8px}
#lightbox figure img{max-width:100%;max-height:100%;min-width:0;min-height:0;width:auto;height:auto;object-fit:contain}
#lightbox figcaption{font:12px/1.55 var(--sans);color:#b8c0b8;text-align:center;max-height:18dvh;overflow:auto;overflow-wrap:anywhere;padding:0 8px}
#lightbox figcaption:empty{display:none}
@media(max-width:650px){#lightbox .lb-stage{grid-template-columns:44px minmax(0,1fr) 44px;grid-template-rows:minmax(0,1fr);gap:0}#lightbox figure{grid-column:1/-1;grid-row:1}#lightbox .lb-prev{grid-column:1;grid-row:1;z-index:1}#lightbox .lb-next{grid-column:3;grid-row:1;z-index:1}#lightbox .lb-prev,#lightbox .lb-next{color:#e2e7e2;opacity:.7;background:transparent}#lightbox .lb-prev svg,#lightbox .lb-next svg{filter:drop-shadow(0 1px 2px #000)}#lightbox.keyboard-focus button:focus-visible{opacity:1}}
