:root{
  /* light defaults: paper = page bg, ink = text */
  --page-gutter:clamp(1.25rem,1rem + 3.5vw,1.85rem);
  --ink:#1c1914;
  --paper:#f3ece0;
  --rule:#c4b89a;
  --kicker:#9e3f32;
  --mute:#6a6254;
  --card:#e8e0d0;
  --dek:#3a352c;
  --beat-text:#4a453c;
  --rail-line:rgba(196,184,154,.45);
  --theme-color:#f3ece0;
}
@media (prefers-color-scheme:dark){
  :root{
    --ink:#efe7d6;
    --paper:#0c0b09;
    --rule:#5c5344;
    --kicker:#d45a48;
    --mute:#9a907e;
    --card:#161410;
    --dek:#ddd3bf;
    --beat-text:#d7ccb8;
    --rail-line:rgba(201,184,150,.22);
    --theme-color:#0c0b09;
  }
}
html[data-theme="light"]{
  --ink:#1c1914;
  --paper:#f3ece0;
  --rule:#c4b89a;
  --kicker:#9e3f32;
  --mute:#6a6254;
  --card:#e8e0d0;
  --dek:#3a352c;
  --beat-text:#4a453c;
  --rail-line:rgba(196,184,154,.45);
  --theme-color:#f3ece0;
}
html[data-theme="dark"]{
  --ink:#efe7d6;
  --paper:#0c0b09;
  --rule:#5c5344;
  --kicker:#d45a48;
  --mute:#9a907e;
  --card:#161410;
  --dek:#ddd3bf;
  --beat-text:#d7ccb8;
  --rail-line:rgba(201,184,150,.22);
  --theme-color:#0c0b09;
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:18px}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
body{
  font-family:Georgia,"Liberation Serif","Iowan Old Style",Palatino,"Times New Roman",serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  color-scheme:light dark;
  min-height:100vh;
  overflow-x:hidden;
}
html[data-theme="light"] body{color-scheme:light}
html[data-theme="dark"] body{color-scheme:dark}
html[data-theme="system"] body{color-scheme:light dark}
.wrap{max-width:1080px;margin:0 auto;padding-inline:max(var(--page-gutter),env(safe-area-inset-left,0px)) max(var(--page-gutter),env(safe-area-inset-right,0px));padding-block:0}
.masthead{text-align:center;padding-block:1.6rem 1.1rem;border-bottom:3px double var(--rule);position:relative;background:var(--paper);color:var(--ink)}
.masthead p.kicker{letter-spacing:.28em;text-transform:uppercase;font-size:.68rem;color:var(--kicker);font-weight:700}
.masthead h1{font-size:clamp(1.85rem,5.5vw,3.8rem);letter-spacing:clamp(.06em,.9vw,.12em);text-transform:uppercase;font-weight:700;line-height:1;margin:.35rem 0;padding-inline:.15rem}
.masthead .tag{font-style:italic;color:var(--mute);font-size:1rem}
.theme-toggle{display:inline-flex;gap:0;margin:.85rem auto 0;border:1px solid var(--rule);border-radius:2px;overflow:hidden;font-family:Georgia,"Liberation Serif",serif;background:var(--paper)}
.theme-toggle button{appearance:none;background:transparent;border:0;border-right:1px solid var(--rule);color:var(--mute);cursor:pointer;font:inherit;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;padding:.4rem .7rem;line-height:1.2}
.theme-toggle button:last-child{border-right:0}
.theme-toggle button:hover{color:var(--ink)}
.theme-toggle button[aria-pressed="true"]{background:var(--card);color:var(--ink);font-weight:700}
.theme-toggle button:focus-visible{outline:2px solid var(--kicker);outline-offset:-2px;z-index:1}
.date-line{display:flex;justify-content:space-between;gap:1rem;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding-block:.55rem 1.2rem;border-bottom:1px solid var(--rule);background:var(--paper)}
.nav-links{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;justify-content:center;padding-block:.7rem;border-bottom:1px solid var(--rule);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;background:var(--paper)}
.nav-links a{text-decoration:none}
.nav-links a:hover{color:var(--kicker)}
.featured{padding-block:1.8rem 2.2rem;display:grid;gap:1.4rem}
@media(min-width:860px){.featured{grid-template-columns:1.4fr .9fr;align-items:start}}
.featured .kicker,.story .kicker{color:var(--kicker);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:700}
.featured h2{font-size:clamp(1.65rem,4vw,2.8rem);line-height:1.15;margin:.35rem 0 .7rem;max-width:38rem}
.featured h2 a{text-decoration:none}
.dek{font-size:1.15rem;color:var(--dek);font-style:italic;margin-bottom:.8rem;max-width:68ch}
.byline{font-size:.85rem;color:var(--mute);letter-spacing:.04em;text-transform:uppercase;margin-bottom:1rem}
.hero-img{width:100%;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--rule)}
.excerpt p{margin-bottom:.85rem}
.rail{border-left:1px solid var(--rule);padding-left:1.1rem}
@media(max-width:859px){.rail{border-left:0;border-top:1px solid var(--rule);padding-left:0;padding-top:1rem;margin-top:.2rem}}
.rail h3{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--kicker);margin-bottom:.8rem}
.rail ol{list-style:none}
.rail li{padding:.7rem 0;border-bottom:1px solid var(--rail-line)}
.rail li a{text-decoration:none}
.rail li a:hover{color:var(--kicker)}
.rail .meta{display:block;font-size:.75rem;color:var(--mute);margin-top:.2rem;letter-spacing:.06em;text-transform:uppercase}
.section{padding-block:1.4rem 2.4rem}
.section h2{font-size:1rem;letter-spacing:.16em;text-transform:uppercase;border-bottom:2px solid var(--rule);padding-bottom:.4rem;margin-bottom:1rem}
.archive-list{list-style:none}
.archive-list li{padding:.85rem 0;border-bottom:1px solid var(--rail-line)}
.archive-list a{text-decoration:none;font-size:1.15rem}
.archive-list .meta{display:block;font-size:.75rem;color:var(--mute);margin-top:.2rem;letter-spacing:.06em;text-transform:uppercase}
.beat{display:grid;gap:.8rem}
@media(min-width:700px){.beat{grid-template-columns:1fr 1fr 1fr}}
.beat article{background:var(--card);color:var(--ink);padding:1rem 1.05rem;border-top:3px solid var(--kicker)}
.beat h3{font-size:1rem;margin-bottom:.35rem}
.beat p{font-size:.92rem;color:var(--beat-text)}
.story{max-width:min(40rem,70ch);margin:0 auto;padding-block:1.6rem 3.5rem;padding-inline:max(var(--page-gutter),env(safe-area-inset-left,0px)) max(var(--page-gutter),env(safe-area-inset-right,0px));background:var(--paper);color:var(--ink)}
.story h1{font-size:clamp(1.8rem,4.2vw,2.7rem);line-height:1.15;margin:.4rem 0 .8rem}
.story .body{max-width:68ch}
.story .body p{margin:0 0 1rem}
.story .hero-img{margin:1.1rem 0 1.4rem}
.site-foot{border-top:3px double var(--rule);padding-block:1.2rem 2rem;color:var(--mute);font-size:.88rem;text-align:center;background:var(--paper)}

/* mobile page gutter lock: keep side padding when .wrap shares a node with masthead/nav/section shorthands */
.wrap{padding-inline:max(var(--page-gutter),env(safe-area-inset-left,0px)) max(var(--page-gutter),env(safe-area-inset-right,0px))}


/* dst tips+forum — modernized 2026-09-09 to match homepage/story */
.dst-panel{
 max-width:min(42rem,70ch);
 margin:0 auto;
 padding-block:1.6rem 3.2rem;
 padding-inline:max(var(--page-gutter),env(safe-area-inset-left,0px)) max(var(--page-gutter),env(safe-area-inset-right,0px));
 background:var(--paper);
 color:var(--ink);
 width:100%;
 box-sizing:border-box;
}
.dst-panel > .kicker{
 color:var(--kicker);
 letter-spacing:.16em;
 text-transform:uppercase;
 font-size:.72rem;
 font-weight:700;
 margin:0 0 .15rem;
}
.dst-panel h1{font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.15;margin:.35rem 0 .7rem}
.dst-panel .lede{font-size:1.08rem;color:var(--dek);font-style:italic;margin-bottom:1.1rem;max-width:68ch}
.dst-panel .note,.dst-disclaimer{font-size:.88rem;color:var(--mute);margin:0 0 1.25rem;max-width:68ch;line-height:1.5}
.dst-disclaimer{border-left:3px solid var(--rule);padding:.55rem 0 .55rem .85rem;background:transparent}

/* forms — field row + label row (fixes early flex-stack of Title/(required)) */
.dst-form{
 display:flex;
 flex-direction:column;
 align-items:stretch;
 gap:1.15rem;
 margin-top:1.35rem;
 width:100%;
 max-width:100%;
 min-width:0;
 position:relative;
 box-sizing:border-box;
}
.dst-form > label,
.dst-form .dst-field{
 display:flex;
 flex-direction:column;
 align-items:stretch;
 gap:.4rem;
 width:100%;
 max-width:100%;
 min-width:0;
 box-sizing:border-box;
}
.dst-form .dst-label{
 display:flex;
 flex-wrap:wrap;
 align-items:baseline;
 gap:.25rem .55rem;
 font-size:.78rem;
 letter-spacing:.1em;
 text-transform:uppercase;
 color:var(--mute);
 line-height:1.35;
}
.dst-form .dst-label .opt,
.dst-form label span.opt{
 text-transform:none;
 letter-spacing:0;
 font-size:.78rem;
 font-style:italic;
 color:var(--mute);
 display:inline;
 font-weight:400;
}
.dst-form .dst-hint{
 font-size:.82rem;
 color:var(--mute);
 letter-spacing:0;
 text-transform:none;
 line-height:1.4;
 margin:0;
}
.dst-form input[type=text],
.dst-form input[type=email],
.dst-form input[type=tel],
.dst-form select,
.dst-form textarea{
 display:block;
 width:100%;
 max-width:100%;
 min-width:0;
 box-sizing:border-box;
 font:inherit;
 font-size:1rem;
 letter-spacing:0;
 text-transform:none;
 color:var(--ink);
 background:var(--card);
 border:1px solid var(--rule);
 padding:.75rem .8rem;
 border-radius:2px;
 appearance:none;
 -webkit-appearance:none;
 min-height:2.75rem;
 line-height:1.35;
 transition:border-color .15s ease, box-shadow .15s ease;
}
.dst-form input::placeholder,
.dst-form textarea::placeholder{color:var(--mute);opacity:.85}
.dst-form input:hover,
.dst-form select:hover,
.dst-form textarea:hover{border-color:var(--mute)}
.dst-form input:focus,
.dst-form select:focus,
.dst-form textarea:focus{
 outline:none;
 border-color:var(--kicker);
 box-shadow:0 0 0 2px color-mix(in srgb, var(--kicker) 28%, transparent);
}
.dst-form input:focus-visible,
.dst-form select:focus-visible,
.dst-form textarea:focus-visible,
.dst-form button[type=submit]:focus-visible{
 outline:2px solid var(--kicker);
 outline-offset:2px;
}
.dst-form select{
 background-image:linear-gradient(45deg,transparent 50%,var(--mute) 50%),linear-gradient(135deg,var(--mute) 50%,transparent 50%);
 background-position:calc(100% - 18px) calc(50% - 3px),calc(100% - 12px) calc(50% - 3px);
 background-size:6px 6px,6px 6px;
 background-repeat:no-repeat;
 padding-right:2.2rem;
}
.dst-form textarea{min-height:12rem;resize:vertical;line-height:1.5;padding-top:.85rem}
.dst-form button[type=submit]{
 appearance:none;
 -webkit-appearance:none;
 display:block;
 width:100%;
 max-width:100%;
 box-sizing:border-box;
 background:var(--ink);
 color:var(--paper);
 border:1px solid var(--ink);
 font:inherit;
 font-size:.82rem;
 letter-spacing:.12em;
 text-transform:uppercase;
 padding:.85rem 1.2rem;
 cursor:pointer;
 text-align:center;
 min-height:2.85rem;
 border-radius:2px;
 margin-top:.15rem;
}
.dst-form button[type=submit]:hover{opacity:.92}
.dst-form button[type=submit]:active{transform:translateY(1px)}
@media(min-width:640px){
 .dst-form button[type=submit]{width:auto;align-self:flex-start;padding:.75rem 1.4rem;min-width:10rem}
}

/* honeypot: never visible, never in flow */
.dst-hp,
.dst-form .dst-hp{
 position:absolute!important;
 left:-10000px!important;
 top:auto!important;
 width:1px!important;
 height:1px!important;
 margin:-1px!important;
 padding:0!important;
 overflow:hidden!important;
 clip:rect(0,0,0,0)!important;
 clip-path:inset(50%)!important;
 border:0!important;
 white-space:nowrap!important;
 opacity:0!important;
 pointer-events:none!important;
}
.dst-hp *,
.dst-form .dst-hp *{
 position:absolute!important;
 width:1px!important;
 height:1px!important;
 overflow:hidden!important;
 clip:rect(0,0,0,0)!important;
 opacity:0!important;
 pointer-events:none!important;
}

/* flash / empty */
.dst-flash{
 background:var(--card);
 border:1px solid var(--rule);
 border-left:3px solid var(--kicker);
 padding:.75rem .9rem;
 margin:0 0 1.2rem;
 font-size:.92rem;
 color:var(--dek);
}
.dst-empty{
 background:var(--card);
 border:1px dashed var(--rule);
 padding:1.35rem 1.1rem;
 text-align:center;
 color:var(--mute);
 font-size:.95rem;
 margin:1.2rem 0 0;
}

/* actions — primary ink CTA + ghost secondary (not stacked beige boxes) */
.forum-actions,
.dst-actions{
 display:flex;
 flex-wrap:wrap;
 gap:.55rem .7rem;
 margin:1.15rem 0 1.55rem;
 align-items:center;
}
.forum-actions a,
.forum-actions .btn,
.dst-cta{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 font-size:.78rem;
 letter-spacing:.1em;
 text-transform:uppercase;
 text-decoration:none;
 border:1px solid var(--rule);
 padding:.55rem .9rem;
 color:var(--ink);
 background:var(--card);
 border-radius:2px;
 min-height:2.5rem;
 box-sizing:border-box;
 line-height:1.2;
}
.forum-actions a:hover,
.dst-cta:hover{border-color:var(--mute);color:var(--kicker)}
.dst-cta-primary,
.forum-actions a.dst-cta-primary{
 background:var(--ink);
 color:var(--paper);
 border-color:var(--ink);
}
.dst-cta-primary:hover,
.forum-actions a.dst-cta-primary:hover{opacity:.92;color:var(--paper);border-color:var(--ink)}
@media(max-width:479px){
 .forum-actions,.dst-actions{flex-direction:column;align-items:stretch}
 .forum-actions a,.dst-cta{width:100%;text-align:center}
}

/* thread list — archive/rail rhythm + beat-card hover */
.forum-list,
.dst-thread-list{
 list-style:none;
 margin:0;
 padding:0;
 border-top:1px solid var(--rail-line);
}
.forum-list li,
.dst-thread{
 padding:0;
 border-bottom:1px solid var(--rail-line);
}
.dst-thread a.dst-thread-link,
.forum-list a.dst-thread-link{
 display:block;
 text-decoration:none;
 padding:1.05rem 0;
 color:inherit;
}
.dst-thread a.dst-thread-link:hover .dst-thread-title,
.forum-list a.dst-thread-link:hover{color:var(--kicker)}
.dst-thread-title{
 display:block;
 font-size:clamp(1.05rem,2.8vw,1.22rem);
 line-height:1.3;
 font-weight:700;
 margin:0 0 .35rem;
}
.forum-list a{text-decoration:none;font-size:1.12rem}
.forum-list .meta,
.dst-thread-meta{
 display:flex;
 flex-wrap:wrap;
 gap:.35rem .75rem;
 align-items:center;
 font-size:.72rem;
 color:var(--mute);
 letter-spacing:.06em;
 text-transform:uppercase;
 margin-top:.15rem;
 line-height:1.4;
}
.dst-count{
 display:inline-block;
 border:1px solid var(--rule);
 padding:.12rem .45rem;
 border-radius:2px;
 letter-spacing:.08em;
}

/* topic posts — beat-card language */
.forum-post,
.dst-post{
 background:var(--card);
 color:var(--ink);
 border:1px solid var(--rule);
 border-top:3px solid var(--kicker);
 padding:1rem 1.05rem 1.1rem;
 margin:0 0 .85rem;
 box-sizing:border-box;
}
.forum-post .who,
.dst-post-head{
 font-size:.72rem;
 letter-spacing:.08em;
 text-transform:uppercase;
 color:var(--mute);
 margin:0 0 .55rem;
 line-height:1.4;
}
.forum-post .body,
.dst-post-body{
 white-space:pre-wrap;
 line-height:1.55;
 overflow-wrap:anywhere;
 word-break:break-word;
 font-size:1rem;
 color:var(--ink);
}
.dst-section-title{
 font-size:.92rem;
 letter-spacing:.16em;
 text-transform:uppercase;
 border-bottom:2px solid var(--rule);
 padding-bottom:.4rem;
 margin:2rem 0 0;
}
.forum-status{display:inline-block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--rule);padding:.15rem .45rem;color:var(--mute)}
.mod-box{background:var(--card);border:1px solid var(--rule);padding:1rem;margin:1rem 0;box-sizing:border-box;max-width:100%}
.mod-box code{font-size:.85rem;word-break:break-all}

/* nav current page */
.nav-links a[aria-current="page"]{color:var(--kicker);font-weight:700}

/* sitewide gutter lock (wrap + story + panel) */
.wrap,.story,.dst-panel{padding-inline:max(var(--page-gutter),env(safe-area-inset-left,0px)) max(var(--page-gutter),env(safe-area-inset-right,0px));box-sizing:border-box}
