/* Personal blog, Astro + Hono edition. Dark editorial magazine style. Original stylesheet. */
:root{
  --bg:#f6f1e7; --surface:#fbf8f1; --text:#2a251c; --muted:#6f6656;
  --title:#16130e; --accent:#b4552d; --accent-soft:#f0e2d4; --border:#d8cfbc; --rule:#c9bda2;
  --code-bg:#211d18; --code-text:#ece5d3; --danger:#a63a4b;
  --shadow:none;
  --serif:Georgia,"Songti SC","STSong","Noto Serif CJK SC",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
[data-accent="amber"]{--accent:#b98a1d;--accent-soft:#f3ead2}
[data-accent="brick"]{--accent:#b4552d;--accent-soft:#f0e2d4}
[data-accent="crimson"]{--accent:#a63a4b;--accent-soft:#f3dfe2}
[data-accent="moss"]{--accent:#6d7f45;--accent-soft:#e9ecdd}
[data-accent="indigo"]{--accent:#4f639e;--accent-soft:#e2e7f2}
[data-accent="teal"]{--accent:#2f7d6e;--accent-soft:#dcebe7}
[data-theme="dark"]{
  --bg:#16130f; --surface:#1d1913; --text:#ece5d3; --muted:#a89a7d;
  --title:#f6efdd; --accent-soft:#2a2317; --border:#3a3226; --rule:#4a4030;
  --code-bg:#100d0a;
}
[data-theme="dark"][data-accent="amber"]{--accent:#d9a441;--accent-soft:#2e2614}
[data-theme="dark"][data-accent="brick"]{--accent:#d4703f;--accent-soft:#2e2015}
[data-theme="dark"][data-accent="crimson"]{--accent:#c65a6a;--accent-soft:#2e1a1d}
[data-theme="dark"][data-accent="moss"]{--accent:#9aa86e;--accent-soft:#232a17}
[data-theme="dark"][data-accent="indigo"]{--accent:#8ba0d0;--accent-soft:#1e2436}
[data-theme="dark"][data-accent="teal"]{--accent:#4db3a0;--accent-soft:#162825}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.75 var(--sans)}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{font:inherit;min-height:40px;border:1px solid var(--border);border-radius:0;background:var(--surface);color:var(--text);padding:0 16px;cursor:pointer}
button:hover{border-color:var(--accent)}
button:active{transform:translateY(1px)}
button.primary,form button[type="submit"]{background:var(--accent);border-color:var(--accent);color:#fff}
button.danger{color:var(--danger);border-color:var(--danger)}
input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:0;padding:10px 12px;width:100%}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}
label{font-weight:600;display:block;margin:0 0 4px}
label .req{color:var(--danger)}
::selection{background:var(--accent);color:#fff}

/* masthead */
.masthead{border-bottom:1px solid var(--rule)}
.masthead-inner{max-width:880px;margin:0 auto;padding:36px 20px 0}
.masthead-rule{border-top:3px solid var(--title);border-bottom:1px solid var(--rule);padding:6px 0;display:flex;justify-content:space-between;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.brand-wordmark{display:block;text-align:center;font-family:var(--serif);font-size:3rem;font-weight:700;color:var(--title);line-height:1.2;margin:22px 0 4px;letter-spacing:.06em}
.brand-wordmark:hover{text-decoration:none;color:var(--accent)}
.masthead-sub{text-align:center;color:var(--muted);font-size:13px;letter-spacing:.28em;margin:0 0 22px}
.masthead-nav{border-top:1px solid var(--rule);display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:0}
.masthead-nav nav{display:flex;gap:2px;flex-wrap:wrap}
.masthead-nav nav a{color:var(--text);font-size:14px;letter-spacing:.14em;padding:12px 14px;text-transform:uppercase}
.masthead-nav nav a:hover{color:var(--accent);text-decoration:none}
.masthead-nav nav a.active{color:var(--accent);font-weight:700;box-shadow:inset 0 2px 0 var(--accent)}
.masthead-search{margin-left:auto;display:flex;gap:8px;padding:6px 0}
.masthead-search input{width:150px;padding:6px 10px}
.masthead-search button{min-height:34px;padding:0 12px}
/* layout */
main{max-width:880px;margin:0 auto;padding:40px 20px 72px}
footer{border-top:1px solid var(--rule)}
.footer-inner{max-width:880px;margin:0 auto;padding:20px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.kicker{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}
.page-title{font-family:var(--serif);font-size:2rem;color:var(--title);margin:0 0 8px;line-height:1.3}
.section-label{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule);padding-bottom:10px;margin:40px 0 0}
.empty{border:1px dashed var(--border);padding:28px;text-align:center;color:var(--muted)}
.flash{padding:10px 14px;margin:12px 0;border:1px solid var(--border)}
.flash-success{background:var(--accent-soft);color:var(--title)}
.flash-error{background:#f3dfe2;color:#7c2230}
[data-theme="dark"] .flash-error{background:#2e1a1d;color:#f0a8b2}

/* home: featured + index list */
.feature{border-bottom:3px double var(--rule);padding:8px 0 32px;margin-bottom:8px}
.feature .kicker{margin-bottom:14px}
.feature-title{font-family:var(--serif);font-size:2.6rem;line-height:1.25;color:var(--title);margin:0 0 16px;font-weight:700}
.feature-title a{color:var(--title)}
.feature-title a:hover{color:var(--accent);text-decoration:none}
.feature-excerpt{font-family:var(--serif);font-size:1.15rem;line-height:1.9;color:var(--text);margin:0 0 16px;max-width:640px}
.feature-meta{margin:0;font-size:13px;color:var(--muted);letter-spacing:.06em}
.index-list{list-style:none;margin:0;padding:0;counter-reset:idx}
.index-row{display:flex;align-items:baseline;gap:16px;padding:16px 4px;border-bottom:1px solid var(--border)}
.index-row:hover{background:var(--surface)}
.index-num{font-family:var(--serif);color:var(--muted);font-size:13px;flex:0 0 28px}
.index-date{flex:0 0 92px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.index-row h2{margin:0;font-family:var(--serif);font-size:1.2rem;line-height:1.4;flex:1}
.index-row h2 a{color:var(--title)}
.index-row h2 a:hover{color:var(--accent);text-decoration:none}
.index-type{flex:0 0 auto;font-size:12px;letter-spacing:.12em;color:var(--accent);text-transform:uppercase}
.index-comments{flex:0 0 auto;font-size:13px;color:var(--muted)}
.index-excerpt{margin:4px 0 0;color:var(--muted);font-size:14px}
/* archive */
.archive-month{font-family:var(--serif);font-size:1.4rem;color:var(--title);border-bottom:3px double var(--rule);padding-bottom:8px;margin:32px 0 0}
/* article */
.post-head{margin-bottom:28px;border-bottom:1px solid var(--rule);padding-bottom:24px}
.post-head h1{font-family:var(--serif);font-size:2.4rem;color:var(--title);line-height:1.3;margin:12px 0 16px}
.post-meta-line{margin:0;font-size:13px;color:var(--muted);letter-spacing:.08em}
.post-standfirst{font-family:var(--serif);font-size:1.2rem;line-height:1.9;color:var(--text);border-left:3px solid var(--accent);padding:4px 0 4px 18px;margin:0 0 28px}
.content{font-family:var(--serif);font-size:1.08rem;line-height:2}
.content > p:first-of-type::first-letter{font-size:3.2em;float:left;line-height:.85;padding:6px 10px 0 0;color:var(--accent);font-weight:700}
.content h1{font-size:1.6rem;color:var(--title)}
.content h2{font-size:1.35rem;color:var(--title);margin-top:36px}
.content h3{font-size:1.15rem;color:var(--title)}
.content ul,.content ol{padding-left:24px}
.content li::marker{color:var(--accent)}
.content blockquote{border-left:3px solid var(--accent);margin:20px 0;padding:4px 0 4px 18px;color:var(--muted);font-style:italic}
.content hr{border:none;border-top:1px solid var(--rule);margin:36px 0}
.content table{border-collapse:collapse;display:block;overflow-x:auto}
.content th,.content td{border:1px solid var(--border);padding:8px 12px;text-align:left;font-family:var(--sans);font-size:15px}
.content th{background:var(--accent-soft)}
.content img{max-width:100%;display:block;margin:20px auto}
.content code{background:var(--accent-soft);padding:1px 6px;font-size:.9em;font-family:var(--sans)}
.content pre{background:var(--code-bg);padding:16px;overflow-x:auto;line-height:1.6}
.content pre code{background:none;color:var(--code-text);padding:0}
.post-nav{display:flex;justify-content:space-between;gap:16px;margin:36px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:16px 0;flex-wrap:wrap}
.post-nav a{font-family:var(--serif);font-size:1.05rem;color:var(--title)}
.post-nav a:hover{color:var(--accent);text-decoration:none}
.comments-title{font-family:var(--serif);font-size:1.4rem;color:var(--title);border-bottom:1px solid var(--rule);padding-bottom:10px}
.comment{border-bottom:1px solid var(--border);padding:14px 0}
.comment p{margin:4px 0}
.comment-meta{font-size:13px;color:var(--muted)}
/* fab + appearance */
.fab-stack{position:fixed;right:20px;bottom:24px;display:flex;flex-direction:column;gap:10px;z-index:30}
.fab-stack button{width:44px;height:44px;border-radius:50%;padding:0;font-size:20px;background:var(--surface);box-shadow:0 2px 10px rgba(0,0,0,.25)}
#back-to-top{display:none}
#back-to-top.show{display:block}
.appearance-overlay{position:fixed;inset:0;background:rgba(10,8,5,.55);display:flex;align-items:flex-end;justify-content:flex-end;z-index:40}
.appearance-overlay[hidden]{display:none}
.appearance-panel{background:var(--surface);border:1px solid var(--rule);padding:22px;margin:0 0 88px;max-width:340px;width:calc(100vw - 32px)}
.appearance-head{display:flex;justify-content:space-between;align-items:center}
.appearance-head h2{margin:0;font-family:var(--serif);font-size:1.2rem;color:var(--title)}
.appearance-head button{min-height:32px;padding:0 10px}
.appearance-label{font-weight:600;margin:18px 0 8px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.mode-options,.accent-grid{display:flex;gap:8px;flex-wrap:wrap}
.mode-options button[aria-pressed="true"],.accent-grid button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft);color:var(--title)}
.swatch{display:inline-block;width:14px;height:14px;margin-right:6px;vertical-align:-2px}
.swatch[data-swatch="amber"]{background:#d9a441}.swatch[data-swatch="brick"]{background:#b4552d}
.swatch[data-swatch="crimson"]{background:#a63a4b}.swatch[data-swatch="moss"]{background:#7a8b4f}
.swatch[data-swatch="indigo"]{background:#5b6fa6}.swatch[data-swatch="teal"]{background:#2f7d6e}

/* admin: vertical sidebar, no frontend topbar */
.admin-body{margin:0;background:#14110d;color:#ece5d3;font:15px/1.7 var(--sans)}
.admin-shell{display:flex;min-height:100vh}
.admin-sidebar{flex:0 0 236px;background:#100d0a;border-right:1px solid #2e2718;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.admin-brand{display:block;padding:26px 22px 20px;color:#f6efdd;font-family:var(--serif);font-size:1.35rem;font-weight:700;line-height:1.3;border-bottom:1px solid #2e2718}
.admin-brand:hover{text-decoration:none;color:#d9a441}
.admin-brand small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#a89a7d;margin-top:4px}
.admin-nav{padding:14px 12px;display:flex;flex-direction:column;gap:2px;flex:1}
.admin-nav-link{display:flex;align-items:center;gap:12px;padding:11px 12px;color:#cfc5ab;font-size:15px;border-left:3px solid transparent}
.admin-nav-link:hover{color:#f6efdd;text-decoration:none;background:#1d1913}
.admin-nav-link.active{color:#f6efdd;background:#1d1913;border-left-color:#d9a441;font-weight:700}
.admin-nav-link svg{flex:0 0 20px;width:20px;height:20px}
.admin-side-foot{padding:14px 12px;border-top:1px solid #2e2718;display:flex;flex-direction:column;gap:2px}
.admin-side-foot .admin-nav-link{width:100%;background:none;border-left:3px solid transparent;text-align:left;cursor:pointer;font:inherit;color:#cfc5ab;padding:11px 12px}
.admin-side-foot .admin-nav-link:hover{color:#f6efdd;background:#1d1913}
.admin-main{flex:1;min-width:0;padding:32px 36px 64px;max-width:960px}
.admin-main h1{font-family:var(--serif);font-size:1.8rem;color:#f6efdd;margin:0 0 6px}
.admin-sub{color:#a89a7d;margin:0 0 24px;font-size:14px}
.admin-main .card{background:#1d1913;border:1px solid #3a3226;padding:20px 22px;margin:16px 0}
.admin-main .card h2{font-family:var(--serif);font-size:1.2rem;color:#f6efdd;margin:0 0 12px}
.admin-main label{color:#cfc5ab}
.admin-main input,.admin-main textarea,.admin-main select{background:#14110d;border-color:#3a3226;color:#ece5d3}
.admin-main input:focus,.admin-main textarea:focus,.admin-main select:focus{border-color:#d9a441;box-shadow:0 0 0 3px #2e2614}
.admin-main button{background:#1d1913;border-color:#3a3226;color:#ece5d3}
.admin-main button.primary, .admin-main form button[type="submit"]{background:#b4552d;border-color:#b4552d;color:#fff}
.admin-main button.danger{color:#e07a86;border-color:#a63a4b}
.admin-main a{color:#d9a441}
.admin-main .row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #2e2718;flex-wrap:wrap}
.admin-main .row:last-child{border-bottom:none}
.admin-main .actions{display:flex;gap:8px;flex-wrap:wrap}
.admin-main .actions button{min-height:34px;padding:0 12px;font-size:14px}
.admin-main .empty{border-color:#3a3226;color:#a89a7d}
.admin-main .flash{border:1px solid #3a3226}
.admin-main .flash-success{background:#22301c;color:#a8d08a}
.admin-main .flash-error{background:#2e1a1d;color:#f0a8b2}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}
.stat-card{background:#1d1913;border:1px solid #3a3226;padding:18px}
.stat-card .stat-num{font-family:var(--serif);font-size:2rem;color:#f6efdd;line-height:1.1}
.stat-card .stat-label{color:#a89a7d;font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin-top:4px}
.admin-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}
.admin-toolbar input,.admin-toolbar select{width:auto;flex:1;min-width:160px}
.tag{padding:1px 8px;font-size:12px}
.tag-green{background:#22301c;color:#a8d08a}
.tag-yellow{background:#3a2f10;color:#fde68a}
.tag-red{background:#3a1414;color:#fca5a5}
.tag-gray{background:#2c3642;color:#cbd5e1}
/* write form: large editor + markdown toolbar + slug hint.
   (The old .admin-page rules never matched anything — the form has no such class.) */
.write-form .field{margin:0 0 18px}
.write-form input[name="title"]{font-size:1.3rem;font-weight:700;font-family:var(--serif)}
.write-form textarea[name="body"]{min-height:640px;min-height:70vh;line-height:1.9;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;resize:vertical}
.slug-hint{display:block;margin-top:6px;font-size:13px;color:#a89a7d}
.md-toolbar{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}
.md-toolbar button{min-height:32px;padding:0 10px;font-size:13px;border-color:#3a3226;background:#14110d;color:#cfc5ab}
.md-toolbar button:hover{border-color:#d9a441;color:#f6efdd}
.md-toolbar button b{font-weight:700}
/* admin auth (login / setup): centred card, no sidebar */
.admin-auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:#14110d}
.admin-auth-card{width:100%;max-width:420px;background:#1d1913;border:1px solid #3a3226;padding:32px 30px}
.admin-auth-card h1{font-family:var(--serif);font-size:1.6rem;color:#f6efdd;margin:0 0 4px;text-align:center}
.admin-auth-card .admin-sub{text-align:center}
.admin-auth-card label{color:#cfc5ab}
.admin-auth-card input{background:#14110d;border-color:#3a3226;color:#ece5d3}
.admin-auth-card input:focus{border-color:#d9a441;box-shadow:0 0 0 3px #2e2614}
.admin-auth-card button{width:100%}
.admin-auth-card .flash{border:1px solid #3a3226}
.admin-auth-card .flash-success{background:#22301c;color:#a8d08a}
.admin-auth-card .flash-error{background:#2e1a1d;color:#f0a8b2}
.captcha-row{display:flex;gap:10px;align-items:stretch}
.captcha-row input{flex:1}
.captcha-box{flex:0 0 120px;height:44px;border:1px solid #3a3226;cursor:pointer;background:#f4efe4}
.captcha-box svg{display:block;width:120px;height:44px}
.captcha-hint{font-size:12px;color:#a89a7d;margin:4px 0 0}
body.admin-locked .admin-sidebar{display:none}
body.admin-locked .admin-main{max-width:480px;margin:0 auto;padding:48px 20px}
@media (max-width:900px){
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .admin-sidebar{flex-basis:200px}
  .admin-main{padding:24px 20px 56px}
}
@media (max-width:640px){
  .brand-wordmark{font-size:2.2rem}
  .feature-title{font-size:1.9rem}
  .post-head h1{font-size:1.8rem}
  .index-date{display:none}
  .masthead-search{margin-left:0;width:100%}
  .masthead-search input{flex:1;width:auto}
  .admin-shell{flex-direction:column}
  .admin-sidebar{flex-basis:auto;position:static;height:auto;border-right:none;border-bottom:1px solid #2e2718}
  .admin-nav{flex-direction:row;flex-wrap:wrap}
  .admin-nav-link{border-left:none;border-bottom:2px solid transparent}
  .admin-nav-link.active{border-bottom-color:#d9a441}
  .admin-side-foot{flex-direction:row;flex-wrap:wrap}
  .appearance-panel{margin-bottom:88px;padding:16px}
}

/* ---- deep polish, 2026-11-05: same dark editorial direction, finer details ---- */
/* frontend: transitions + list hover */
button{transition:border-color .15s ease,background .15s ease,color .15s ease,transform .1s ease}
a{transition:color .15s ease}
.index-row{transition:background .15s ease,padding .15s ease}
.index-row:hover{padding-left:10px}
.index-row:hover .index-num{color:var(--accent)}
.index-row:hover h2 a{color:var(--accent)}
.masthead-nav nav a{transition:color .15s ease,box-shadow .15s ease}
.brand-wordmark{transition:color .15s ease}
/* frontend: article typography */
.content p{margin:0 0 1.1em}
.content li{margin:5px 0}
.content h1{margin:36px 0 14px}
.content h2{border-left:3px solid var(--accent);padding-left:12px;margin:36px 0 14px}
.content h3{letter-spacing:.04em;margin:28px 0 10px}
.content blockquote{background:var(--accent-soft);padding:12px 18px;margin:24px 0}
.content table{margin:20px 0}
.content tbody tr:nth-child(even){background:var(--accent-soft)}
.content img{border:1px solid var(--border);padding:6px;background:var(--surface)}
.content pre{border:1px solid var(--border);margin:20px 0}
.content hr{margin:40px 0}
/* frontend: footer + appearance popup depth */
.footer-inner{padding:24px 20px}
.footer-inner a{letter-spacing:.08em}
.appearance-panel{box-shadow:0 14px 44px rgba(0,0,0,.35)}
/* archive: type filter tabs */
.filter-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 8px}
.filter-tabs button{min-height:36px;padding:0 14px;font-size:14px;letter-spacing:.06em}
.filter-tabs button .count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:4px}
.filter-tabs button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--title);font-weight:700}
.filter-tabs button.active .count{color:var(--accent)}
.index-row[hidden]{display:none}
/* admin polish */
.admin-main .row{transition:background .15s ease}
.admin-main .row:hover{background:#1a160f}
.stat-card{transition:border-color .15s ease,transform .15s ease}
.stat-card:hover{border-color:#d9a441;transform:translateY(-2px)}
.admin-nav-link svg{opacity:.85}
.admin-nav-link.active svg{opacity:1}
.admin-main .flash{border-left:3px solid #3a3226}
.admin-main .flash-success{border-left-color:#5b8a3c}
.admin-main .flash-error{border-left-color:#a63a4b}
.admin-main .empty{padding:32px}
.admin-auth-card{border-top:3px solid #d9a441}
.tag{letter-spacing:.06em}
.admin-main input,.admin-main select{transition:border-color .15s ease,box-shadow .15s ease}
@media (max-width:640px){
  .index-row{flex-wrap:wrap;gap:6px 12px;padding:14px 4px}
  .index-row h2{flex:1 1 100%;order:3}
  .index-comments{display:none}
  .feature-excerpt{font-size:1.05rem}
}

/* ---- comments: three fields + notify settings, 2026-11-05 ---- */
.comment-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.comment-note{font-size:13px;color:var(--muted)}
.comment p{overflow-wrap:break-word}
.comment a{overflow-wrap:anywhere}
.content a{overflow-wrap:break-word}
.notify-card h2{border-bottom:1px solid #3a3226;padding-bottom:10px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.switch-row{display:flex !important;align-items:center;gap:8px;font-weight:600}
.test-result{font-size:13px;margin-left:8px}

/* ---- mobile pass, frontend first, 2026-11-05 ---- */
html,body{overflow-x:clip}
img,video{max-width:100%;height:auto}
@media (max-width:900px){
  main{padding:32px 18px 64px}
  .masthead-inner{padding:28px 18px 0}
  .feature-title{font-size:2.1rem}
  .post-head h1{font-size:2rem}
}
@media (max-width:640px){
  body{font-size:15px}
  main{padding:28px 16px 56px}
  /* masthead: smaller wordmark, nav + search stack cleanly */
  .masthead-inner{padding:24px 16px 0}
  .brand-wordmark{font-size:2rem;letter-spacing:.04em;margin:16px 0 2px}
  .masthead-sub{letter-spacing:.2em;margin-bottom:16px}
  .masthead-rule{font-size:11px}
  .masthead-nav nav{width:100%}
  .masthead-nav nav a{flex:1;text-align:center;padding:12px 6px;font-size:13px;letter-spacing:.08em}
  .masthead-search{width:100%;margin-left:0;padding:8px 0 12px}
  .masthead-search input{flex:1;width:auto}
  .masthead-search button{min-height:44px}
  /* home: tighter index rows, title on its own line */
  .feature{padding:4px 0 24px}
  .feature-title{font-size:1.7rem;line-height:1.3}
  .feature-excerpt{font-size:1.05rem;line-height:1.8}
  .index-row{padding:14px 2px}
  .index-num{flex-basis:22px}
  .index-row h2{font-size:1.1rem}
  .index-excerpt{font-size:13px}
  .filter-tabs button{min-height:44px;padding:0 16px}
  /* article: readable type, no overflow from code/tables/drop cap */
  .post-head{margin-bottom:20px;padding-bottom:18px}
  .post-head h1{font-size:1.7rem;line-height:1.35}
  .post-standfirst{font-size:1.05rem;line-height:1.8;margin-bottom:20px}
  .content{font-size:1rem;line-height:1.9}
  .content > p:first-of-type::first-letter{font-size:2.4em;padding:4px 8px 0 0}
  .content pre{padding:12px;font-size:13px}
  .content table{font-size:14px}
  .post-nav a{font-size:1rem}
  /* comments form: fields stack, big tap targets */
  .comment-fields{grid-template-columns:1fr}
  #comment-form button[type="submit"]{width:100%;min-height:48px}
  .comment-meta{line-height:1.7}
  /* appearance popup becomes a full-width bottom sheet */
  .appearance-overlay{align-items:flex-end;justify-content:center}
  .appearance-panel{width:100%;max-width:none;margin:0;border-radius:16px 16px 0 0;max-height:82vh;overflow-y:auto;padding:20px 20px calc(20px + env(safe-area-inset-bottom))}
  .mode-options button,.accent-grid button{min-height:44px}
  /* fab: clear of the sheet, thumb-sized */
  .fab-stack{right:16px;bottom:calc(16px + env(safe-area-inset-bottom))}
  .fab-stack button{width:48px;height:48px}
  /* footer stacks centered */
  .footer-inner{flex-direction:column;align-items:center;text-align:center;gap:6px}
  button{min-height:44px}
  /* admin (secondary): toolbar fields full width, tighter main */
  .admin-main{padding:20px 16px 48px}
  .admin-toolbar input,.admin-toolbar select{flex:1 1 100%;min-width:0}
  .field-grid{grid-template-columns:1fr}
  .admin-main .actions button{min-height:40px}
}

/* ---- media library + storage settings, 2026-11-05 ---- */
.media-dropzone{border:1px dashed #3a3226;padding:28px;text-align:center;color:#cfc5ab}
.media-dropzone.drag-over{border-color:#d9a441;background:#2e2614}
.upload-btn{display:inline-block;margin:12px 0 8px;padding:10px 18px;border:1px solid #3a3226;background:#14110d;color:#ece5d3;cursor:pointer}
.upload-btn:hover{border-color:#d9a441}
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.media-item{border:1px solid #3a3226;background:#14110d;padding:10px;display:flex;flex-direction:column;gap:6px}
.media-item img{width:100%;height:110px;object-fit:cover;display:block;background:#100d0a}
.media-file-icon{height:110px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:1.6rem;color:#a89a7d;background:#100d0a;border:1px solid #2e2718}
.media-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-meta{font-size:12px;color:#a89a7d;line-height:1.5}
.media-actions{display:flex;gap:8px}
.media-actions button{flex:1;min-height:34px;padding:0 8px;font-size:13px}
.media-pick{cursor:pointer}
.media-pick:hover{border-color:#d9a441}
.media-modal-overlay{position:fixed;inset:0;background:rgba(10,8,5,.6);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}
.media-modal{background:#1d1913;border:1px solid #3a3226;max-width:720px;width:100%;max-height:82vh;overflow-y:auto;padding:22px}
.media-modal h2{margin:0;font-family:var(--serif);font-size:1.2rem;color:#f6efdd}
.media-modal input{background:#14110d;border-color:#3a3226;color:#ece5d3}
@media (max-width:640px){
  .media-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .media-modal{max-height:86vh;padding:16px}
}
