:root{
  --bg:#0f0c16; --bg2:#171221; --card:rgba(27,22,38,.72); --ink:#ece7f6; --sub:#a99fc6;
  --accent:#b98cff; --accent-soft:rgba(185,140,255,.20); --line:#2c2440; --draft:#e7b15a; --maxw:720px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:#0c0a12;color:var(--ink);overflow-x:hidden;line-height:1.7;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
/* drifting aurora backdrop */
.aurora{position:fixed;inset:-20% -10%;z-index:-2;filter:blur(70px);opacity:.55;pointer-events:none;
  background:radial-gradient(40% 50% at 20% 20%,var(--accent),transparent 70%),
            radial-gradient(35% 45% at 80% 15%,rgba(90,169,255,.53),transparent 70%),
            radial-gradient(45% 50% at 60% 85%,rgba(255,122,184,.33),transparent 70%);
  animation:drift 26s ease-in-out infinite alternate}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(0,-4%,0) scale(1.12)}}
/* film grain */
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* hero */
.hero{position:relative;text-align:center;padding:80px 22px 30px;overflow:hidden}
.hero.has-image{background-size:cover;background-position:center}
.hero-glow{position:absolute;inset:0;z-index:0;background:radial-gradient(60% 70% at 50% -10%,var(--accent-soft),transparent 70%)}
.hero-inner{position:relative;z-index:1;max-width:var(--maxw);margin:0 auto}
.avatar-ring{width:128px;height:128px;margin:0 auto 18px;border-radius:50%;padding:3px;
  background:conic-gradient(from 180deg,var(--accent),#5aa9ff,#ff7ab8,var(--accent));
  box-shadow:0 0 40px var(--accent-soft);animation:spin 14s linear infinite}
.avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:3px solid var(--bg);background:var(--bg2)}
@keyframes spin{to{transform:rotate(360deg)}}
.name{margin:0;font-family:"Fraunces",Georgia,serif;font-weight:600;font-size:clamp(40px,8vw,68px);
  letter-spacing:.5px;line-height:1;background:linear-gradient(180deg,#fff,var(--accent));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.tagline{margin:12px 0 0;color:var(--sub);font-style:italic;font-family:"Fraunces",serif;font-size:18px}
.about{max-width:560px;margin:20px auto 0;color:#cfc7e0}
.about p{margin:.5em 0}
/* feed */
.feed{max-width:var(--maxw);margin:18px auto 80px;padding:0 22px}
.week{margin-top:46px}
.week-head{margin-bottom:8px}
.week-title{font-family:"Fraunces",serif;font-style:italic;font-weight:500;font-size:clamp(24px,4vw,32px);line-height:1.15}
.week-label{display:inline-block;margin-top:6px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--accent)}
.week-rule{height:1px;margin-top:12px;background:linear-gradient(90deg,var(--accent),transparent)}
.entry{position:relative;background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:22px 24px 20px;margin:16px 0;backdrop-filter:blur(6px);box-shadow:0 10px 30px rgba(0,0,0,.30);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.entry::before{content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:3px;
  background:linear-gradient(var(--accent),transparent)}
.entry:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(0,0,0,.40);border-color:var(--accent)}
.entry.draft{border:1px dashed var(--draft)}
.entry.draft::before{background:linear-gradient(var(--draft),transparent)}
.entry-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:10px;font-size:12px;color:var(--sub)}
.date{font-weight:600;color:var(--ink);letter-spacing:.3px}
.tag{padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid var(--line);font-size:11px}
.tag.when{color:#9cc4ff}
.tag.mood{color:var(--accent);border-color:var(--accent-soft)}
.tag.draft-tag{color:var(--draft);border-color:var(--draft);font-weight:700;letter-spacing:.5px}
.entry-body{font-size:16.5px}
.entry-body p{margin:.6em 0}
.entry-body p:first-of-type::first-letter{font-family:"Fraunces",serif;font-weight:600;font-size:3.1em;
  line-height:.8;float:left;margin:.02em .12em 0 0;color:var(--accent)}
.empty{color:var(--sub);text-align:center;margin:70px 0;font-style:italic;font-family:"Fraunces",serif;font-size:19px}
.foot{max-width:var(--maxw);margin:0 auto;padding:26px 22px 60px;color:var(--sub);font-size:12px;letter-spacing:1px;text-align:center}
@media(max-width:560px){.entry-body p:first-of-type::first-letter{font-size:2.6em}}
