:root{--bg: #f3eee4;--bg-elev: #fffaf1;--bg-mute: #e8e0d2;--ink: #1c1915;--ink-soft: #5c5348;--line: rgba(28, 25, 21, .12);--accent: #c45c26;--accent-2: #2f5d4a;--shadow: 0 18px 40px rgba(28, 25, 21, .08);--radius: 18px;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "Noto Sans SC", system-ui, sans-serif;--serif: "Noto Serif SC", "Songti SC", serif}html[data-theme=dark]{--bg: #141210;--bg-elev: #1d1a17;--bg-mute: #26211c;--ink: #f2eadc;--ink-soft: #b7ad9c;--line: rgba(242, 234, 220, .12);--accent: #e8a05a;--accent-2: #7dba9a;--shadow: 0 18px 40px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{font-family:var(--sans);background:radial-gradient(1200px 500px at 10% -10%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 55%),var(--bg);color:var(--ink);line-height:1.7}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}img{max-width:100%}.app-shell{min-height:100vh;display:flex;flex-direction:column}.site-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:14px 28px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:baseline;gap:10px}.brand-mark{font-family:var(--serif);font-weight:700;font-size:22px;letter-spacing:.04em}.brand-sub{color:var(--ink-soft);font-size:12px;letter-spacing:.18em;text-transform:uppercase}.nav{display:flex;gap:6px}.nav a,.icon-btn{padding:8px 12px;border-radius:999px;border:1px solid transparent;background:transparent;cursor:pointer}.nav a.router-link-active,.nav a:hover,.icon-btn:hover{border-color:var(--line);background:var(--bg-elev)}.header-actions{display:flex;justify-content:flex-end;gap:8px}.main{flex:1;width:min(1120px,calc(100% - 40px));margin:0 auto;padding:36px 0 72px}.site-footer{width:min(1120px,calc(100% - 40px));margin:0 auto;padding:24px 0 40px;color:var(--ink-soft);font-size:13px;display:flex;justify-content:space-between;border-top:1px solid var(--line)}.hero{display:grid;grid-template-columns:1.4fr .8fr;gap:28px;margin-bottom:40px}.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--accent);text-transform:uppercase}.hero h1{font-family:var(--serif);font-size:clamp(36px,6vw,64px);line-height:1.15;margin:8px 0 16px}.hero p{color:var(--ink-soft);font-size:17px;max-width:46ch}.hero-panel{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.stat{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed var(--line)}.stat:last-child{border-bottom:0}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}.search{flex:1;min-width:220px;background:var(--bg-elev);border:1px solid var(--line);border-radius:999px;padding:10px 16px;outline:none}.search:focus{border-color:var(--accent)}.chip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 14px;cursor:pointer}.chip.active,.chip:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card{display:flex;flex-direction:column;gap:10px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-height:220px;transition:transform .18s ease,box-shadow .18s ease}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.card.featured{grid-column:1 / -1;min-height:180px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,var(--bg-elev)),var(--bg-elev))}.meta{display:flex;gap:10px;flex-wrap:wrap;color:var(--ink-soft);font-size:13px}.tag{font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:999px;background:var(--bg-mute)}.card h2,.article-title{font-family:var(--serif);margin:0;line-height:1.35}.excerpt{color:var(--ink-soft);margin:0}.article-wrap{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:36px}.article-title{font-size:clamp(32px,5vw,48px);margin:8px 0 12px}.prose{font-size:17px}.prose h2{font-family:var(--serif);margin-top:1.6em}.prose p{color:var(--ink)}.prose code{font-family:var(--mono);font-size:.9em;background:var(--bg-mute);padding:.1em .4em;border-radius:6px}.prose pre{background:#1b1814;color:#f4eadc;padding:16px 18px;border-radius:14px;overflow:auto}.prose pre code{background:transparent;padding:0;color:inherit}.prose li{margin:6px 0}.side{position:sticky;top:88px;height:max-content}.side-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.side a{display:block;padding:8px 0;border-bottom:1px dashed var(--line);color:var(--ink-soft)}.side a:last-child{border-bottom:0}.about-grid{display:grid;grid-template-columns:280px 1fr;gap:28px}.portrait{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius);padding:22px;min-height:320px;background-image:linear-gradient(160deg,color-mix(in srgb,var(--accent-2) 30%,var(--bg-elev)),var(--bg-elev))}.about-body h1{font-family:var(--serif);font-size:42px;margin:0 0 12px}.guestbook form,.gb-list{display:grid;gap:12px}.field{display:grid;gap:6px}.field input,.field textarea{background:var(--bg-elev);border:1px solid var(--line);border-radius:12px;padding:10px 12px;outline:none}.field textarea{min-height:120px;resize:vertical}.primary{justify-self:start;background:var(--ink);color:var(--bg);border:0;border-radius:999px;padding:10px 18px;cursor:pointer}.gb-item{background:var(--bg-elev);border:1px solid var(--line);border-radius:16px;padding:16px 18px}.empty{color:var(--ink-soft);padding:40px 0;text-align:center}.mobile-nav{display:none}@media(max-width:860px){.site-header{grid-template-columns:1fr auto}.nav{display:none}.mobile-nav{display:flex;gap:8px;padding:10px 20px 0;position:sticky;top:61px;z-index:19;background:color-mix(in srgb,var(--bg) 90%,transparent)}.mobile-nav a{padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:13px}.mobile-nav a.router-link-active{background:var(--ink);color:var(--bg)}.hero,.grid,.article-wrap,.about-grid{grid-template-columns:1fr}.card.featured{grid-column:auto}}
