:root{
  --bg:#faf8f6; --fg:#1a1a1a; --fg2:#8a8681; --line:rgba(26,26,26,.10);
  --accent:#038BF3; --card:#fff;
  --serif:"Noto Serif SC","Songti SC",STSong,Georgia,serif;
  --sans:ui-sans-serif,-apple-system,"Segoe UI","PingFang SC",sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);line-height:1.7;
  -webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}

.shell{display:flex;min-height:100vh}
/* 左侧竖排导航 */
.rail{width:250px;flex:none;border-right:1px solid var(--line);padding:38px 30px;
  display:flex;flex-direction:column;gap:40px;position:sticky;top:0;height:100vh}
.brand{font-family:var(--serif);font-size:24px;letter-spacing:.04em}
.brand small{display:block;font:500 10px/1 var(--mono);letter-spacing:.32em;color:var(--fg2);
  margin-top:10px;text-transform:uppercase}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{padding:7px 0;font-size:14px;color:var(--fg2);transition:color .2s}
.nav a:hover,.nav a.on{color:var(--fg)}
.nav a.on::before{content:"";display:inline-block;width:14px;height:1px;background:var(--accent);
  vertical-align:middle;margin-right:9px}
.rail .foot{margin-top:auto;font:500 10px/1.7 var(--mono);letter-spacing:.12em;color:var(--fg2)}

/* 主区 */
main{flex:1;min-width:0;padding:clamp(34px,5vw,68px) clamp(22px,5vw,64px)}
.kicker{font:500 10px/1 var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--fg2)}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4.4vw,46px);line-height:1.25;
  letter-spacing:.01em;margin:16px 0 14px}
.lead{color:var(--fg2);max-width:52ch;font-size:15px}

.grid{display:grid;gap:clamp(18px,2.6vw,30px);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  margin-top:clamp(30px,5vw,54px)}
.card{display:block;overflow:hidden;border-radius:14px;background:var(--card);
  border:1px solid var(--line);transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s}
.card:hover{transform:translateY(-3px);border-color:rgba(3,139,243,.35)}
.card .ph{aspect-ratio:4/3;overflow:hidden;background:#ece8e3}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.card:hover .ph img{transform:scale(1.04)}
.card .meta{padding:16px 18px 18px;display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.card .meta b{font-family:var(--serif);font-weight:400;font-size:17px}
.card .meta span{font:500 10px var(--mono);letter-spacing:.14em;color:var(--fg2)}

/* 相册页 */
.back{font:500 11px var(--mono);letter-spacing:.18em;color:var(--fg2)}
.back:hover{color:var(--accent)}
.album-head{margin:22px 0 40px;padding-bottom:26px;border-bottom:1px solid var(--line)}
.shots{display:grid;gap:clamp(22px,4vw,44px);max-width:1000px}
.shot figure{margin:0}
.shot img{width:100%;border-radius:10px}
.shot figcaption{margin-top:12px;font-family:var(--serif);color:var(--fg2);font-size:14px}

.prose{max-width:640px;font-family:var(--serif);font-size:16.5px;color:#333;line-height:1.95;white-space:pre-wrap}
.foot{margin-top:70px;padding-top:22px;border-top:1px solid var(--line);
  font:500 10px var(--mono);color:var(--fg2);letter-spacing:.14em}

@media (max-width:760px){
  .shell{flex-direction:column}
  .rail{width:auto;height:auto;position:static;border-right:0;border-bottom:1px solid var(--line);
    padding:24px 22px;gap:18px}
  .rail .foot{display:none}
  .nav{flex-direction:row;gap:18px;flex-wrap:wrap}
  .nav a.on::before{display:none}
}
