:root{color-scheme:light;--paper:#fff8fb;--white:#fff;--ink:#35252e;--sub:#6a505d;--pink:#a53568;--line:#eed7e3;--serif:"Noto Serif SC","Songti SC",SimSun,serif;--sans:Inter,"PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.65 var(--sans)}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--pink);outline-offset:5px}
img{display:block;max-width:100%}
.skip{position:absolute;top:-100px;padding:8px 14px;background:white;z-index:4}
.skip:focus{top:8px;left:8px}
.site-header{background:#fff9fc;border-bottom:1px solid var(--line)}
.nav-shell{max-width:1120px;margin:auto;padding:0 30px;display:flex;align-items:center;justify-content:space-between;min-height:66px}
.brand{display:flex;gap:10px;align-items:center;font-weight:750}
nav{display:flex;gap:28px;align-items:center}
.site-header nav a{padding:20px 2px;color:var(--sub);font-size:14px}
.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--pink);box-shadow:inset 0 -2px var(--pink)}
.hero{overflow:hidden;background:radial-gradient(ellipse at 78% 32%,#fff8f2 0,transparent 42%),linear-gradient(112deg,#f6d2e4,#fceaf2 62%,#f4d2e9);border-bottom:1px solid var(--line)}
.hero-inner{max-width:1120px;position:relative;margin:auto;min-height:438px;display:flex;align-items:center;padding:46px 54px}
.hero-copy{z-index:1;position:relative}
.hero h1{font:750 clamp(40px,6vw,76px)/1.15 var(--serif);letter-spacing:.025em;margin:0 0 20px}
.hero p{font-size:16px;color:var(--sub);margin:0}
.hero-short .hero-inner{min-height:228px}
.hero-short h1{font-size:clamp(32px,5vw,55px);margin-bottom:10px}
.feed,.archive,.entry{max-width:1000px;margin:auto;padding:54px 30px 72px}
.feed h2,.archive h2{font:750 28px/1.4 var(--serif);margin:0 0 28px}
.post-list{display:grid;gap:24px}
.post-card{display:flex;overflow:hidden;border:1px solid var(--line);background:white;border-radius:18px;min-height:214px}
.post-card:nth-child(even){flex-direction:row-reverse}
.cover{width:42%;flex-shrink:0;overflow:hidden;position:relative;min-height:210px}
.cover img{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .25s}
.cover:hover img{transform:scale(1.04)}
.post-preview{padding:27px 31px;min-width:0;flex:1}
.post-preview h3{font:750 25px/1.35 var(--serif);margin:0 0 12px}
.post-preview h3 a:hover,.read:hover,.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}
.post-preview p{margin:0 0 15px;color:var(--sub);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:15px}
.read,.post-nav a{color:var(--pink);font-weight:700;font-size:14px}
.entry,.archive{max-width:850px}
.entry-photos{display:grid;gap:16px;margin-bottom:34px}
figure{margin:0}
figure img{width:100%;height:auto;border-radius:14px}
.prose{font-size:17px;line-height:1.95}
.prose p{margin:0 0 1.4em}
.post-nav{border-top:1px solid var(--line);margin-top:38px;padding-top:22px;justify-content:space-between;flex-wrap:wrap}
.archive ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.archive li a{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:17px 4px}
.archive li a:hover{color:var(--pink)}
.site-footer{border-top:1px solid var(--line);padding:25px 30px;display:flex;justify-content:space-between;gap:8px 24px;flex-wrap:wrap;color:var(--sub);font-size:13px}
@media(max-width:680px){.nav-shell{padding:0 18px;min-height:58px}.site-header nav{gap:18px}.site-header nav a{padding:16px 2px}.hero-inner{min-height:394px;padding:32px 22px 204px;align-items:flex-start}.hero h1{margin-bottom:9px}.hero p{font-size:14px}.hero-short .hero-inner{min-height:160px;padding:28px 22px;align-items:center}.feed,.archive,.entry{padding:36px 18px 54px}.post-card,.post-card:nth-child(even){flex-direction:column}.cover{width:100%;min-height:0;aspect-ratio:16/9}.post-preview{padding:20px}.post-preview h3{font-size:23px}.prose{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Full-width blog cover and article index */
.journal{--paper:#fff7fb;--ink:#382833;--sub:#68525f;--pink:#a4396b;--line:#eedbe5}
.journal .site-header{position:absolute;z-index:3;inset:0 0 auto;background:linear-gradient(#25101d60,transparent);border:0;color:#fff}
.journal .nav-shell{max-width:1200px}
.journal .site-header nav a,.journal .site-header nav a[aria-current]{color:#fff}
.journal .site-header nav a[aria-current],.journal .site-header nav a:hover{box-shadow:inset 0 -2px #ffd3e8}
.journal .hero{position:relative;isolation:isolate;background:#ffadba;border:0}
.journal .hero-inner{max-width:none;height:64vh;min-height:400px;max-height:680px;display:grid;grid-template-rows:minmax(0,1fr);place-items:center;padding:66px 0 60px;text-align:center}
.journal .hero-copy{grid-area:1 / 1;color:#54243c;text-shadow:0 2px #ffebf0;transform:translateX(calc(-1 * min(7vw, 7vh)))}
.journal .hero h1{font-size:clamp(32px,4.3vw,66px);letter-spacing:.085em;margin-bottom:0}
.journal .hero p{color:#fff8fc;font-size:clamp(14px,1.45vw,19px)}
.mast-images{grid-area:1 / 1;width:100%;height:100%;min-height:0}
.mast-images img{width:100%;height:100%;object-fit:contain}
.hero-down{z-index:2;position:absolute;bottom:13px;left:50%;transform:translateX(-50%);color:#54243c;font:28px/1 var(--sans);padding:7px 18px;text-shadow:0 1px #ffebf0}
.waves{position:absolute;bottom:-1px;left:0;width:100%;height:60px;overflow:hidden;pointer-events:none}
.waves span{position:absolute;width:132%;height:105px;left:-18%;top:31px;border-radius:52% 64% 0 0;background:#ffd8ea90;transform:rotate(2deg)}
.waves span:nth-child(2){left:-11%;top:37px;background:#ffe5f3b8;transform:rotate(-2deg)}
.waves span:nth-child(3){left:-9%;top:45px;background:var(--paper);transform:rotate(1deg)}
.blog-layout{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 215px;align-items:start;gap:26px;padding:24px 26px 66px}
.journal .feed{max-width:none;margin:0;padding:0}
.journal .feed section+section{margin-top:34px}
.journal .divider{display:flex;align-items:center;gap:17px;color:#664356;font-size:23px;text-align:center;margin:0 0 21px}
.divider::before,.divider::after{content:"";flex:1;border-top:1px dashed #d8a7c1}
.journal .post-list{gap:23px}
.journal .post-card{min-height:198px;border:0;box-shadow:0 5px 17px #a5527e16;border-radius:12px;position:relative}
.journal .cover{width:42%;min-height:198px}
.journal .post-card:nth-child(odd) .cover{clip-path:polygon(0 0,100% 0,92% 100%,0 100%)}
.journal .post-card:nth-child(even) .cover{clip-path:polygon(8% 0,100% 0,100% 100%,0 100%)}
.journal .post-preview{padding:22px 27px 38px}
.journal .post-preview h3{margin:6px 0 9px;font-size:24px}
.journal .post-preview .post-meta{display:flex;gap:12px;margin:0;color:#8b657a;font-size:12px}
.journal .post-preview .excerpt{display:block;margin:0}
.journal .read{position:absolute;bottom:0;right:0;padding:4px 14px;background:#f5d4e5;border-radius:12px 0 0 0}
.journal .post-card:nth-child(even) .read{right:auto;left:0;border-radius:0 12px 0 0}
.site-overview{position:sticky;top:22px;text-align:center;background:#fff;border:1px solid #f2dce8;box-shadow:0 5px 17px #a5527e0d;border-radius:13px;padding:24px 17px;margin-top:52px}
.site-overview img{margin:auto;border-radius:50%;background:#fde5ef;border:4px solid #f9eef4}
.site-overview h2{margin:10px 0 2px;font:750 24px/1.35 var(--serif)}
.site-overview p{margin:0 0 15px;font-size:13px;color:var(--sub)}
.post-count{display:inline-flex;gap:5px;align-items:baseline;color:var(--pink);font-size:13px}
.post-count strong{font-size:20px}
.site-overview nav{justify-content:center;border-top:1px solid var(--line);margin-top:14px;padding-top:13px;font-size:13px}
.site-overview nav [aria-current]{color:var(--pink)}
@media(max-width:880px){.blog-layout{grid-template-columns:minmax(0,1fr);max-width:800px}.site-overview{display:none}}
@media(max-width:680px){
  .journal .hero-inner{height:52vh;min-height:340px;padding:58px 0 60px}
  .journal .hero h1{font-size:clamp(15px,4.1vw,27px);letter-spacing:.02em;margin:0}


  .blog-layout{padding:15px 16px 42px}
  .journal .post-card,.journal .post-card:nth-child(even){flex-direction:column}
  .journal .cover{width:100%;min-height:0;aspect-ratio:2.25}
  .journal .post-card:nth-child(n) .cover{clip-path:none}
  .journal .post-preview{padding:15px 18px 33px}
  .journal .post-preview h3{font-size:21px}
  .journal .post-card:nth-child(even) .read{left:auto;right:0;border-radius:12px 0 0 0}
}
