*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#fdfdfc;
  --bg-alt:#f4f3ef;
  --text:#1a1a1a;
  --text-secondary:#5a5a5a;
  --text-tertiary:#8a8a8a;
  --accent:#1a1a1a;
  --border:#e8e6e0;
  --radius:12px;
  --sans:'Instrument Sans',system-ui,sans-serif;
  --serif:'Newsreader',Georgia,serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}
:root[data-theme="dark"]{
  --bg:#141413;
  --bg-alt:#1c1c1a;
  --text:#f0eeea;
  --text-secondary:#a8a6a0;
  --text-tertiary:#6e6c66;
  --accent:#f0eeea;
  --border:#2a2a27;
}
html{scroll-behavior:smooth}
body{
  font-family:var(--sans);background:var(--bg);color:var(--text);
  line-height:1.6;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  transition:background-color .2s ease,color .2s ease;
}
a{color:inherit;text-decoration:none}
::selection{background:var(--text);color:var(--bg)}
img{display:block;max-width:100%}

body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  opacity:.4;
}

.container{max-width:800px;margin:0 auto;padding:0 24px}

header{
  position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:100;
  padding:10px 8px 10px 12px;
  background:rgba(255,255,255,.55);
  backdrop-filter:blur(40px) saturate(1.8);
  -webkit-backdrop-filter:blur(40px) saturate(1.8);
  border-radius:100px;
  border:1px solid rgba(255,255,255,.6);
  box-shadow:
    0 1px 3px rgba(0,0,0,.04),
    0 8px 24px rgba(0,0,0,.06),
    inset 0 1px 0 rgba(255,255,255,.8);
  transition:box-shadow .3s,background .3s;
  max-width:calc(100% - 32px);
}
:root[data-theme="dark"] header{
  background:rgba(28,28,26,.55);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:
    0 1px 3px rgba(0,0,0,.3),
    0 8px 24px rgba(0,0,0,.4),
    inset 0 1px 0 rgba(255,255,255,.06);
}
header .container{display:flex;align-items:center;gap:32px;padding:0}
.logo{
  display:flex;align-items:center;gap:10px;
  font-weight:600;font-size:15px;letter-spacing:-.02em;white-space:nowrap;
  padding-left:4px;
}
.logo-avatar{
  width:32px;height:32px;border-radius:50%;object-fit:cover;
  border:1px solid rgba(0,0,0,.06);
}
.nav-links{display:flex;gap:4px;align-items:center}
.nav-links a{
  font-size:14px;color:var(--text-secondary);transition:all .2s;
  position:relative;padding:6px 14px;border-radius:100px;
}
.nav-links a:hover{color:var(--text);background:rgba(0,0,0,.05)}
:root[data-theme="dark"] .nav-links a:hover{background:rgba(255,255,255,.05)}
.nav-links a.active{color:var(--text);font-weight:500}
.theme-toggle{
  width:32px;height:32px;border-radius:50%;border:none;background:none;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  color:var(--text-secondary);transition:all .2s;padding:0;margin-left:4px;
}
.theme-toggle:hover{color:var(--text);background:rgba(0,0,0,.05)}
:root[data-theme="dark"] .theme-toggle:hover{background:rgba(255,255,255,.05)}
.theme-toggle svg{display:block}
.theme-toggle .theme-icon-moon{display:none}
:root[data-theme="dark"] .theme-toggle .theme-icon-sun{display:none}
:root[data-theme="dark"] .theme-toggle .theme-icon-moon{display:block}

main{padding:140px 0 80px;min-height:100vh}

.page-label{
  font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;
  color:var(--text-tertiary);margin-bottom:24px;
}
.page-title{
  font-family:var(--serif);font-size:clamp(36px,5vw,52px);
  font-weight:400;line-height:1.2;letter-spacing:-.03em;margin-bottom:16px;
}
.page-sub{
  font-size:17px;color:var(--text-secondary);
  max-width:520px;line-height:1.7;margin-bottom:56px;
}

.post-list{list-style:none;display:flex;flex-direction:column;gap:0}
.post-item{
  padding:28px 0;border-bottom:1px solid var(--border);
  display:flex;flex-direction:column;gap:10px;
  transition:padding .2s ease;
}
.post-item:first-child{border-top:1px solid var(--border)}
.post-item a{display:block}
.post-item a:hover .post-title{color:var(--text-secondary)}
.post-meta{
  font-size:12px;color:var(--text-tertiary);
  text-transform:uppercase;letter-spacing:.1em;font-weight:500;
}
.post-title{
  font-family:var(--serif);font-size:clamp(22px,3vw,28px);
  font-weight:400;letter-spacing:-.02em;line-height:1.3;
  transition:color .2s;
}
.post-excerpt{
  font-size:15px;color:var(--text-secondary);line-height:1.7;
  max-width:620px;
}
.post-tags{
  display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;
}
.post-tag{
  font-size:11px;font-weight:500;color:var(--text-tertiary);
  padding:3px 10px;background:var(--bg-alt);border:1px solid var(--border);
  border-radius:100px;letter-spacing:.02em;
}

.empty-state{
  padding:80px 0;text-align:center;color:var(--text-tertiary);
  font-family:var(--serif);font-size:20px;
}

article{max-width:680px;margin:0 auto}
article .post-back{
  display:inline-flex;align-items:center;gap:6px;
  font-size:13px;color:var(--text-tertiary);margin-bottom:32px;
  transition:color .2s;
}
article .post-back:hover{color:var(--text)}
article .post-back::before{content:'←';display:inline-block;transition:transform .2s}
article .post-back:hover::before{transform:translateX(-3px)}

article h1{
  font-family:var(--serif);font-size:clamp(32px,4.5vw,46px);
  font-weight:400;line-height:1.2;letter-spacing:-.03em;margin-bottom:16px;
}
article .post-subtitle{
  font-family:var(--serif);font-size:clamp(18px,2.2vw,22px);
  font-weight:300;font-style:italic;line-height:1.5;
  color:var(--text-secondary);margin-bottom:28px;max-width:620px;
}
article .post-meta-row{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:48px;
}
article .post-date{
  font-size:12px;color:var(--text-tertiary);
  text-transform:uppercase;letter-spacing:.1em;font-weight:500;
}
article .post-tags-article{margin-top:0}

.post-body{font-size:17px;line-height:1.8;color:var(--text)}
.post-body > * + *{margin-top:1.2em}
.post-body h1,.post-body h2,.post-body h3,.post-body h4{
  font-family:var(--serif);font-weight:400;letter-spacing:-.02em;line-height:1.3;
  margin-top:1.8em;
}
.post-body h2{font-size:28px}
.post-body h3{font-size:22px}
.post-body h4{font-size:18px}
.post-body p{color:var(--text)}
.post-body a{
  color:var(--text);border-bottom:1px solid var(--border);
  transition:border-color .2s;
}
.post-body a:hover{border-bottom-color:var(--text)}
.post-body strong{font-weight:600}
.post-body em{font-style:italic}
.post-body ul,.post-body ol{padding-left:1.5em;color:var(--text)}
.post-body li{margin-bottom:.4em}
.post-body blockquote{
  border-left:3px solid var(--border);padding:4px 0 4px 20px;
  color:var(--text-secondary);font-family:var(--serif);font-style:italic;
  font-size:19px;
}
.post-body code{
  font-family:var(--mono);font-size:.88em;
  background:var(--bg-alt);padding:2px 6px;border-radius:4px;
}
.post-body pre{
  background:var(--bg-alt);border:1px solid var(--border);
  border-radius:var(--radius);padding:20px;overflow-x:auto;
  font-size:14px;line-height:1.6;
}
.post-body pre code{background:none;padding:0;border-radius:0;font-size:inherit}
.post-body hr{
  border:none;height:1px;background:var(--border);margin:2em 0;
}
.post-body img{
  border-radius:var(--radius);border:1px solid var(--border);margin:1.5em 0;
}
.post-body table{width:100%;border-collapse:collapse;font-size:15px}
.post-body th,.post-body td{
  padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;
}
.post-body th{font-weight:600}

footer{
  padding:40px 0;border-top:1px solid var(--border);
  color:var(--text-tertiary);font-size:13px;
}
footer .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
footer a{color:var(--text-tertiary);transition:color .2s}
footer a:hover{color:var(--text)}

@media(max-width:640px){
  .nav-links{gap:2px}
  .nav-links a{padding:6px 8px;font-size:13px}
  main{padding:120px 0 60px}
  .post-body{font-size:16px}
}
