/* 访客站：夜色里的个人档案。保留星空，内容各有阅读节奏。 */
:root{--nav-height:72px;--paper:#e9e4d8;--read:rgba(245,244,239,.77)}
[hidden]{display:none!important}
:where(button,a,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--gold);outline-offset:5px;border-radius:3px}
button,input,textarea{font-family:var(--sans)}
button{touch-action:manipulation}
section,[id^=ch-]{scroll-margin-top:calc(var(--nav-height) + 26px)}
nav.top{min-height:72px;padding:14px var(--pad);transition:background .25s,border-color .25s;border-bottom:1px solid transparent}
nav.top.scrolled,nav.top.expanded{background:rgba(5,6,9,.95);border-bottom-color:var(--line-2);backdrop-filter:blur(14px)}
nav.top ul{align-items:center;gap:7px;overflow:visible}
nav.top ul a{display:block;padding:10px 13px;min-height:44px;color:rgba(255,255,255,.57);border-radius:4px;transition:color .18s,background .18s}
nav.top ul a:hover,nav.top ul a.on{background:rgba(233,220,176,.06);color:var(--gold)}
.nav-toggle{display:none;background:none;border:1px solid var(--line);color:var(--fg);padding:7px 13px;border-radius:5px;font:12px var(--sans);min-height:44px;cursor:pointer}
.hero .sub,.sec-head .lede{color:var(--read);line-height:1.95}
.hero-paths{display:flex;gap:14px;flex-wrap:wrap;margin:27px 0 0}
.hero-paths a{display:block;position:relative;padding:14px 50px 14px 17px;border:1px solid var(--line);background:rgba(15,18,23,.45);border-radius:6px;min-width:190px;font-size:14px;transition:background .2s,border-color .2s}
.hero-paths a:first-child{border-color:var(--gold-3)}
.hero-paths span{display:block;color:var(--fg-3);font:10px var(--en);letter-spacing:.14em;margin-bottom:4px}
.hero-paths i{font-style:normal;position:absolute;right:18px;top:25px;color:var(--gold-2)}
.hero-paths a:hover{background:rgba(233,220,176,.07);border-color:var(--gold-2)}
.hero .quote{margin-top:26px;font-size:14px}.hero .cue{margin-top:25px}
.chart-preview{min-height:125px;padding:21px 24px;border-left:1px solid var(--gold-3);background:linear-gradient(90deg,rgba(233,220,176,.035),transparent);margin:25px 0 8px;display:grid;grid-template-columns:1fr auto;gap:3px 16px}
.chart-preview>span{font:10px var(--en);letter-spacing:.16em;color:var(--fg-3);grid-column:1/-1}
.chart-preview h3{font-size:21px}.chart-preview p{margin:4px 0 0;font-size:13px;color:var(--read);max-width:70ch;grid-column:1}
.chart-preview a{grid-column:2;grid-row:2/4;align-self:center;font-size:12px;color:var(--gold);padding:10px 0}
.gxbar{gap:16px;padding-bottom:13px}.gxrow{align-items:center;flex-wrap:wrap}
.gx-options{position:relative;margin-left:10px;font-size:11px;color:var(--fg-2)}.gx-options>summary{cursor:pointer;padding:10px;min-height:40px}
.gx-options[open] .gxstyle{position:absolute;top:100%;right:0;z-index:8;background:#101218;padding:10px;border:1px solid var(--line);border-radius:5px;white-space:nowrap}
.jump{gap:16px}.jump a{padding:23px;border-radius:5px}.jump span{color:var(--fg-2)}
.wtabs{position:sticky;top:var(--nav-height);z-index:9;padding:10px 0 0;margin-top:-8px;background:rgba(5,6,9,.95);backdrop-filter:blur(12px);gap:8px 22px}
.wtabs button{min-height:45px;font-size:13px;color:var(--fg-2)}
.wgroup{padding-top:52px}.wgroup .gh{padding-bottom:18px;margin-bottom:0}.wgroup .gh h3{font-size:27px}.wgroup .gh p{color:var(--fg-2);font-size:12px}
article.row{display:block;padding:0;background:none}
article.row .row-link{display:grid;grid-template-columns:118px 46px minmax(0,1fr) 22px;gap:0 22px;padding:30px 0 23px;align-items:start}
article.row>.phchip{margin:0 0 24px 208px}
article.row:hover{background:linear-gradient(90deg,rgba(233,220,176,.025),transparent)}
article.row:focus-within h4{color:var(--gold)}
.wgroup[data-kind="现在"]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.wgroup[data-kind="现在"]>.gh{grid-column:1/-1}
.wgroup[data-kind="现在"] article.row{border:1px solid var(--line);border-radius:7px;background:linear-gradient(150deg,rgba(233,220,176,.055),rgba(16,20,28,.3));padding:5px 25px 10px;transition:border-color .2s,transform .2s}
.wgroup[data-kind="现在"] article.row:hover{border-color:var(--gold-3);transform:translateY(-3px)}
.wgroup[data-kind="现在"] .row-link{grid-template-columns:46px minmax(0,1fr) 20px;gap:17px;padding-top:21px}
.wgroup[data-kind="现在"] .row .yr{grid-column:1/-1;grid-row:1;padding:0 0 11px;color:var(--gold-2)}
.wgroup[data-kind="现在"] .row .logo,.wgroup[data-kind="现在"] .row .body,.wgroup[data-kind="现在"] .row .arr{grid-row:2}
.wgroup[data-kind="现在"] .row .ttl{gap:3px 10px}.wgroup[data-kind="现在"] .row h4{font-size:26px}.wgroup[data-kind="现在"] .row p{font-size:14px;margin-top:12px}
.wgroup[data-kind="创业"] .row-link{padding-top:36px;padding-bottom:24px}.wgroup[data-kind="创业"] .row .yr{color:var(--gold-2)}
.wgroup[data-kind="创业"] .row h4{font-size:28px}.wgroup[data-kind="创业"] article.row{border-left:1px solid var(--gold-3);padding-left:24px;margin-left:-25px}
.row .meta{color:rgba(255,255,255,.5)}.row .arr{font-size:22px}.row .yr{color:rgba(255,255,255,.48)}
.plist .row{padding:25px 0}.wend{font-size:14px;color:var(--fg-2)}
.pt-head{padding:30px 0 38px;border-top:1px solid var(--line);margin-top:22px}.pt-head .one{font-size:20px;line-height:1.9;color:var(--read)}
.pt-top .back{min-height:44px;display:inline-flex;align-items:center;color:var(--fg-2)}
.pt-layout{gap:50px}.toc{top:calc(var(--nav-height) + 26px)}.toc a{color:var(--fg-2);padding-top:9px;padding-bottom:9px}
.pt-prose p{color:var(--read);line-height:2}.pt-prose .ch{padding-top:12px;padding-bottom:12px;scroll-margin-top:calc(var(--nav-height) + 28px)}
.pt-prose .ch+.ch{margin-top:35px;padding-top:32px}.pt-prose .lesson{border-left:2px solid var(--gold-3);padding:18px 22px;background:rgba(233,220,176,.035)}
#ch-undone{color:var(--fg-2)}.pt-nav a{padding:22px}.pt-nav a b{white-space:normal}
.origin{gap:45px}.places .place{padding:20px 0 26px 22px;border-left:1px solid var(--line-2);transition:border-color .25s,background .25s}
.places .place.active{border-left-color:var(--gold-2);background:linear-gradient(90deg,rgba(233,220,176,.04),transparent)}
.place p{color:var(--read)}.place .ph h3{font-size:24px}.place .ph .yrs{color:var(--fg-2)}
.mapwrap{top:calc(var(--nav-height) + 22px)}.place-now{border-bottom:1px solid var(--line);padding:0 0 16px;margin-bottom:13px;min-height:86px}
.place-now span{display:block;color:var(--fg-3);font:10px var(--en);letter-spacing:.1em}.place-now b{display:inline-block;margin:7px 10px 0 0;font:25px var(--serif);color:var(--gold)}.place-now small{font-size:12px;color:var(--fg-2)}
.map button.pin{border:0;background:none;color:inherit;padding:0;font:inherit;cursor:pointer}.map button.pin:focus-visible{outline-offset:10px}
.maplegend{color:var(--fg-2);line-height:1.8}
.wtools{position:sticky;top:var(--nav-height);z-index:5;background:rgba(5,6,9,.96);backdrop-filter:blur(12px);padding:12px 0 16px;display:flex;flex-direction:column;align-items:stretch;gap:12px;border-bottom:1px solid var(--line)}
.wtools .search{max-width:100%;width:100%;border:1px solid var(--line);padding:9px 12px;border-radius:5px;background:rgba(255,255,255,.018)}
.wtools .search input{color:var(--fg);font-size:13px;min-width:0}.wtools .search input::placeholder{color:var(--fg-2)}
.section-kicker{display:block;color:var(--gold-2);font-size:10px;letter-spacing:.18em;margin-bottom:22px}
.mapbtn,.gxmode button,.gxview button,.gxfit,.toc a,.toc a.aux{min-height:44px}
.beliefs{margin-top:60px;padding-top:35px}.beliefs dl{gap:24px}.beliefs dd{color:var(--read)}
.reader .bar{min-height:68px;background:rgba(5,6,9,.97);padding:12px var(--pad);border-bottom:1px solid var(--line)}
.reader .bar button{width:auto;min-width:80px;min-height:44px;border-radius:5px;font:13px var(--sans);padding:7px 12px}.reader .bar .src{margin-left:auto;min-height:44px;display:flex;align-items:center;color:var(--fg-2)}
.rd{max-width:760px;padding-top:33px}.rd p,.rd li{color:rgba(250,248,240,.86);font-size:17px;line-height:2.05}.rd blockquote p{color:var(--fg-2)}.rd h1{font-size:clamp(30px,4vw,44px)}.rd .meta{color:var(--gold-2)}
.subnav{gap:10px;margin-bottom:44px}.subnav a{padding:10px 14px;border:1px solid var(--line-2);border-radius:4px;font-size:12px;min-height:44px}.subnav a.on{border-color:var(--gold-3);color:var(--gold)}
.who p{font-size:18px;line-height:2.1;color:var(--read)}.who p:first-child{font:clamp(22px,3vw,30px)/1.8 var(--serif);color:var(--fg)}
.names>div{padding:22px 24px}.names p{color:var(--fg-2)}
.likes{display:block}.like{padding:49px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(240px,.9fr);gap:50px;align-items:center;min-height:340px}
.like:first-child{padding-top:25px}.like.text-only{grid-template-columns:1fr;min-height:0;padding:32px 0}.like-index{display:block;color:var(--gold-2);font:10px var(--en);letter-spacing:.17em;margin-bottom:18px}
.like h3{font-size:clamp(23px,3vw,30px);line-height:1.5;margin-bottom:12px}.like h3 em{display:block;font:10px/1.6 var(--en);letter-spacing:.13em;margin:8px 0 0;color:var(--fg-3)}
.like p{font-size:15px;line-height:2;color:var(--read);max-width:48ch}.like.has-album:nth-of-type(even){grid-template-columns:minmax(240px,.9fr) minmax(0,1.35fr)}
.like.has-album:nth-of-type(even) .like-copy{grid-column:2;grid-row:1}.like.has-album:nth-of-type(even)>.phchip{grid-column:1;grid-row:1}
.phchip{border:0;border-radius:0;display:inline-flex;align-items:center;gap:17px;padding:9px 4px;min-height:65px;text-align:left;background:none;color:var(--fg);cursor:pointer;max-width:100%}
.phchip:hover{background:none;border-color:transparent}.phchip .stack{width:64px;height:49px;flex:none;position:relative;margin-right:8px}
.phchip .stack img{width:49px;height:49px;top:0;left:0;border-radius:3px;border:3px solid #24252a;box-shadow:0 4px 12px #0007;filter:saturate(.85)}
.phchip .stack img:nth-child(2){transform:translate(8px,1px) rotate(5deg)}.phchip .stack img:nth-child(3){transform:translate(14px,3px) rotate(10deg)}
.phchip .phchip-copy{display:flex;flex-direction:column;min-width:0}.phchip .lbl{color:var(--fg-2);font-size:12px;white-space:normal}.phchip-count{font-size:10px;color:var(--fg-3);margin-top:2px}.phchip-action{font-size:11px;color:var(--gold-2);margin-top:7px}.phchip-action i{font-style:normal;margin-left:8px}
.phchip:hover .stack img:first-child,.phchip:focus-visible .stack img:first-child{transform:translate(-3px,-3px) rotate(-3deg)}.phchip:hover .stack img:nth-child(2),.phchip:focus-visible .stack img:nth-child(2){transform:translate(10px,-1px) rotate(4deg)}.phchip:hover .stack img:nth-child(3),.phchip:focus-visible .stack img:nth-child(3){transform:translate(20px,2px) rotate(9deg)}
.phchip.one-photo .stack img:first-child{transform:rotate(-2deg)}.phchip:hover .lbl{color:var(--gold)}
.like>.phchip{justify-self:center;flex-direction:column;gap:20px;width:100%;padding:20px 14px 6px;align-items:center}
.like>.phchip .stack{width:235px;height:180px;margin:0 14px 0 0}.like>.phchip .stack img{width:235px;height:170px;border:7px solid #26272c;border-bottom-width:15px;border-radius:3px;box-shadow:0 14px 35px #0008;transform:rotate(-3deg)}
.like>.phchip .stack img:nth-child(2){transform:translate(10px,2px) rotate(3deg)}.like>.phchip .stack img:nth-child(3){transform:translate(15px,6px) rotate(7deg)}
.like>.phchip:hover .stack img:first-child,.like>.phchip:focus-visible .stack img:first-child{transform:translate(-6px,-6px) rotate(-5deg)}.like>.phchip:hover .stack img:nth-child(2){transform:translate(12px,0) rotate(2deg)}.like>.phchip:hover .stack img:nth-child(3){transform:translate(23px,4px) rotate(9deg)}
.like>.phchip .phchip-copy{width:235px;display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center}.like>.phchip .lbl{display:none}.like>.phchip .phchip-count{grid-column:1}.like>.phchip .phchip-action{grid-column:2;margin:0;color:var(--gold)}
.now{padding:28px 30px;background:linear-gradient(120deg,rgba(233,220,176,.055),transparent);border-left:2px solid var(--gold-3)}.now p{font-size:17px;line-height:2;color:var(--read)}.now .k{margin-bottom:17px;color:var(--gold-2)}
.someday{margin-top:43px}.someday ul{gap:16px}.someday li{padding:20px;border:1px solid var(--line-2);border-radius:4px;background:rgba(15,18,22,.4)}.someday span{color:var(--fg-2);line-height:1.85}.chips{gap:10px}.chips span{color:var(--fg-2)}
.contact .container{border-top:1px solid var(--gold-3);padding-top:42px}.contact p{color:var(--read);max-width:52ch}.contact ul{padding:20px 0}.contact li{padding:12px 0}.contact .closing{font-family:var(--serif);font-size:19px;color:var(--gold-2);margin-top:34px}
/* 画册：同一前景层内从整组切换至单图，所有照片说明维持水平阅读。 */
.album{position:fixed;inset:0;z-index:80;background:rgb(7,9,13);color:var(--paper);padding:0 clamp(16px,4vw,65px);overscroll-behavior:contain}
.album-shell{height:100%;max-width:1260px;margin:0 auto;display:flex;flex-direction:column;min-height:0}
.album-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 0 20px;border-bottom:1px solid #ffffff15;flex-shrink:0}
.album-eyebrow{display:block;font-size:10px;letter-spacing:.2em;color:#c8bfa4;margin-bottom:4px}.album-header h2{font:clamp(23px,3vw,34px)/1.35 var(--serif);overflow-wrap:anywhere}
.album-actions{display:flex;align-items:center;gap:26px;flex-shrink:0}.album-actions>span{font:11px var(--en);letter-spacing:.08em;color:#a5a29b}
.album button{font-family:var(--sans);cursor:pointer;color:inherit}.album-close,.album-back{border:1px solid #ffffff29;background:transparent;border-radius:5px;padding:9px 14px;min-height:44px;font-size:12px}.album-close:hover,.album-back:hover{border-color:var(--gold-2);color:var(--gold)}
.album-board{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:24px 16px 40px;margin:0 -16px;scrollbar-color:#44454d transparent}
.album-description{font-size:14px;line-height:1.9;max-width:70ch;color:#b8b6ae;margin:0 0 30px;padding:0 6px}
.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 28px;align-items:start;padding:10px 8px}
.album-item{margin:0;min-width:0;animation:album-unfold 400ms cubic-bezier(.2,.75,.25,1) both;animation-delay:var(--delay)}
.album-pick{display:block;position:relative;padding:0;width:100%;border:0;background:none;text-align:left;border-radius:3px}
.album-print{display:flex;align-items:center;justify-content:center;width:100%;height:240px;padding:9px 9px 17px;background:#28292e;border:1px solid #ffffff1b;box-shadow:0 15px 24px #0005;transform:translateY(var(--lift)) rotate(var(--tilt));transition:transform .19s ease,background .19s ease;overflow:hidden}
.album-print img{display:block;width:100%;height:100%;object-fit:contain;background:#101116}
.album-pick:hover .album-print,.album-pick:focus-visible .album-print{transform:translateY(-6px) rotate(0);background:#34353b}
.album-pick-hint{position:absolute;right:16px;bottom:17px;border-radius:4px;padding:5px 9px;background:#07090de0;font-size:10px;color:#e9dcb0;opacity:0;transition:opacity .16s}
.album-pick:hover .album-pick-hint,.album-pick:focus-visible .album-pick-hint{opacity:1}
.album-item figcaption{display:flex;gap:12px;align-items:baseline;margin-top:18px;padding:0 3px}.album-item figcaption>span{font:10px var(--en);color:#a99a74;flex-shrink:0}.album-item figcaption p{font-size:12px;line-height:1.75;color:#bcbab3;margin:0;overflow-wrap:anywhere}
.album-board-foot{text-align:center;margin:42px 0 0;color:#98968e;font:12px var(--serif);letter-spacing:.07em}
.album-thumb-error{font-size:12px;text-align:center;line-height:1.8;color:#c3bfb4}
.album-photo{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:15px}
.album-photo-tools{display:flex;align-items:center;justify-content:space-between;padding:12px 0;flex-shrink:0;min-height:65px}.album-position{font:12px var(--en);letter-spacing:.12em;color:#b9b4a6}
.album-image-stage{flex:1;min-height:100px;position:relative;display:flex;justify-content:center;touch-action:pan-y pinch-zoom}
.album-image-holder{position:relative;width:calc(100% - 110px);min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.album-full{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 10px 45px #0006;border-radius:2px}.album-full.loading{filter:blur(3px);opacity:.55}
.album-loading{position:absolute;left:0;right:0;bottom:20px;text-align:center;font-size:12px;color:var(--paper)}
.album-prev,.album-next{position:absolute;top:calc(50% - 23px);width:46px;height:46px;border:1px solid #ffffff2b;border-radius:50%;background:#13151be0;font-size:18px;z-index:2}.album-prev{left:0}.album-next{right:0}.album-prev:hover,.album-next:hover{border-color:var(--gold-2)}.album-prev:disabled,.album-next:disabled{opacity:.2;cursor:default}
.album-caption{font-size:13px;color:#c4c0b5;text-align:center;margin:17px auto 10px;max-width:80ch;max-height:82px;overflow:auto;line-height:1.8;flex-shrink:0}
.album-thumbs{display:flex;gap:9px;overflow-x:auto;justify-content:safe center;flex-shrink:0;padding:7px 5px 5px;scrollbar-width:thin}
.album-thumbs button{width:61px;height:48px;padding:3px;border:1px solid transparent;background:#1a1c23;border-radius:3px;flex-shrink:0;opacity:.5;transition:opacity .17s,border-color .17s}.album-thumbs img{display:block;width:100%;height:100%;object-fit:cover}.album-thumbs button[aria-pressed=true]{opacity:1;border-color:var(--gold)}
.album-failure{position:absolute;padding:18px;border:1px solid var(--line);border-radius:5px;background:#0c1019ed;color:#d2cfc5;display:flex;gap:15px;align-items:center;font-size:13px}.album-failure button{border:1px solid #8e8161;background:transparent;border-radius:3px;min-height:44px;padding:8px 13px}
@keyframes album-unfold{from{opacity:0;transform:translateY(24px) scale(.95)}to{opacity:1;transform:none}}
@media(min-width:1700px){.album-shell{max-width:1440px}.album-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1050px){.like{gap:30px;grid-template-columns:minmax(0,1fr) 260px}.like.has-album:nth-of-type(even){grid-template-columns:260px minmax(0,1fr)}.album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 25px}.album-print{height:245px}.origin{gap:30px}.wgroup[data-kind="现在"] article.row{padding-left:17px;padding-right:17px}.wgroup[data-kind="现在"] .row-link{grid-template-columns:35px minmax(0,1fr) 16px;gap:12px}.wgroup[data-kind="现在"] .logo{width:35px;height:35px}}
@media(max-width:820px){nav.top ul{gap:0}nav.top ul a{padding:10px 8px;font-size:12px}.pt-layout{grid-template-columns:1fr;gap:24px}.toc{top:var(--nav-height);padding-top:10px;padding-bottom:10px}.toc a{min-height:40px}.origin{display:flex;flex-direction:column}.mapwrap{position:sticky;top:var(--nav-height);order:-1;width:100%;z-index:5;background:rgba(5,6,9,.97);padding:10px 0}.map{height:180px!important;min-height:0;aspect-ratio:auto}.place-now{display:flex;gap:12px;align-items:baseline;min-height:0;margin-bottom:7px;padding:0 0 8px;flex-wrap:wrap}.place-now b{font-size:20px;margin:0}.place-now span{font-size:9px}.maplegend{font-size:9px;margin-top:7px}.places{width:100%}.place{scroll-margin-top:360px}.like,.like.has-album:nth-of-type(even){grid-template-columns:minmax(0,1fr) 230px;gap:25px}.like>.phchip .stack{width:205px;height:155px}.like>.phchip .stack img{width:205px;height:148px}.like>.phchip .phchip-copy{width:205px}.who p{font-size:16px}}
@media(max-width:640px){:root{--nav-height:65px}nav.top{min-height:65px;padding:10px 20px;flex-wrap:wrap;gap:0}nav.top .brand{font-size:14px;margin-right:auto}.nav-toggle{display:block}nav.top ul{display:none;flex-basis:100%;padding:12px 0 5px;gap:3px 8px;flex-wrap:wrap;margin:0}nav.top.expanded ul{display:flex}nav.top ul a{font-size:12px;padding:10px 11px}.hero-paths{gap:9px}.hero-paths a{min-width:0;flex:1;padding:12px 32px 12px 11px;font-size:12px}.hero-paths span{font-size:9px}.hero-paths i{right:11px}.hero .sub{font-size:15px}.hero .quote{font-size:13px}.chart-preview{padding:17px;grid-template-columns:1fr;min-height:160px}.chart-preview a{grid-column:1;grid-row:auto}.chart-preview p{font-size:12px}.wgroup[data-kind="现在"]{grid-template-columns:1fr;gap:14px}.wgroup[data-kind="现在"]>.gh{grid-column:1}.wgroup[data-kind="创业"] article.row{margin-left:0;padding-left:13px}.wgroup[data-kind="创业"] .row h4{font-size:23px}.wgroup .gh h3{font-size:25px}.wtabs{gap:3px 17px;padding-top:7px}.wtabs button{font-size:12px;padding-bottom:10px}.wtabs button i{font-size:9px}.row .row-link,article.row .row-link{grid-template-columns:42px minmax(0,1fr) 18px;gap:0 13px;padding:23px 0 18px}.row .row-link .yr{grid-column:1/-1;grid-row:1;padding:0 0 9px}.row .row-link .logo,.row .row-link .body,.row .row-link .arr{grid-row:2}.row .logo{width:42px;height:42px}article.row>.phchip{margin-left:55px;margin-bottom:18px}.row .ttl{gap:5px}.row h4{font-size:21px}.row .sub{font-size:11px}.row p{font-size:13.5px}.row .meta{font-size:11px;gap:10px}.pt-head{padding-top:19px}.pt-head .one{font-size:18px}.pt-prose p{font-size:15px}.pt-prose .ch h3 em{font-size:23px}.pt-nav{flex-direction:column}.map{height:130px!important}.maplegend{display:none}.place{scroll-margin-top:280px}.place-now small{font-size:10px}.place-now span{font-size:9px}.places .place{padding-left:13px}.place .ph h3{font-size:23px}.rd{padding-top:23px}.rd p,.rd li{font-size:16px}.reader .bar{padding:10px 16px}.subnav{gap:7px;flex-wrap:wrap;margin-bottom:30px}.subnav a{font-size:11px;padding:9px 11px}.like,.like.has-album:nth-of-type(even){display:flex;flex-direction:column;align-items:stretch;gap:20px;padding:32px 0;min-height:0}.like .like-copy{order:0}.like>.phchip{order:1;width:100%;padding:10px 10px 6px}.like>.phchip .stack{width:245px;height:180px}.like>.phchip .stack img{width:245px;height:173px}.like>.phchip .phchip-copy{width:245px}.like-index{margin-bottom:12px}.like h3{font-size:27px}.like p{font-size:14px}.like.text-only{padding:27px 0}.now{padding:20px}.now p{font-size:15px}.someday ul{grid-template-columns:1fr}.contact .closing{font-size:17px}.album{padding:0 16px}.album-header{padding:20px 0 15px;gap:12px}.album-header h2{font-size:23px}.album-actions{gap:8px}.album-actions>span{display:none}.album-close{padding:8px 10px;white-space:nowrap}.album-description{font-size:12px;line-height:1.9;margin-bottom:20px}.album-board{padding:20px 6px 30px;margin:0}.album-grid{gap:23px 15px;padding:3px 3px}.album-print{height:159px;padding:5px 5px 11px;transform:translateY(calc(var(--lift) / 2)) rotate(clamp(-1.5deg,var(--tilt),1.5deg))}.album-item figcaption{gap:7px;margin-top:12px}.album-item figcaption>span{font-size:9px}.album-item figcaption p{font-size:10.5px;line-height:1.7}.album-pick-hint{opacity:1;right:9px;bottom:14px;font-size:9px;padding:3px 5px}.album-photo-tools{min-height:62px}.album-back{font-size:11px;padding:8px 10px}.album-image-holder{width:100%}.album-prev,.album-next{width:44px;height:44px;border-radius:5px;background:#0e111acc;font-size:16px;top:calc(50% - 22px)}.album-prev{left:0}.album-next{right:0}.album-caption{font-size:12px;max-height:90px}.album-thumbs{gap:7px}.album-thumbs button{width:50px;height:44px}.album-failure{flex-direction:column;gap:9px;font-size:12px;padding:14px}.album-eyebrow{font-size:9px}.album-position{font-size:11px}}
@media(max-width:350px){.album-grid{grid-template-columns:1fr}.album-print{height:220px}.like>.phchip .stack,.like>.phchip .stack img{width:210px}}
@media(prefers-reduced-motion:reduce){.album *,nav.top,.phchip *,.row,.row *, .place,.hero-paths *, .jump *{animation:none!important;transition:none!important}.album-print{transform:none!important}.phchip:hover .stack img,.phchip:focus-visible .stack img{transform:none!important}}

/* ── 中英切换 ───────────────────────────────────────────────
   英文模式下正文换成西文字体优先的字栈，行高收一点；
   小标题反过来显示中文（中文页的小标题是英文），所以中文小标题要换回宋体、去掉大写与宽字距。 */
:root{--serif-zh:"Songti SC","STSong","Noto Serif SC","Noto Serif CJK SC","Source Han Serif SC",serif}
html.i18n-pending body{visibility:hidden}
.lang-switch{display:flex;align-items:center;gap:1px;margin-left:16px;flex-shrink:0}
.lang-switch button{background:none;border:0;min-width:36px;min-height:44px;padding:0 7px;font:11.5px/1 var(--en);letter-spacing:.14em;color:var(--fg-4);cursor:pointer;border-radius:4px;transition:color .2s,background .2s}
.lang-switch button[lang="zh-CN"]{font:13px/1 var(--serif-zh);letter-spacing:0}
.lang-switch button:hover{color:var(--fg-2)}
.lang-switch button[aria-pressed="true"]{color:var(--gold);cursor:default}
.lang-switch button:focus-visible{outline:1px solid var(--gold-2);outline-offset:-5px}
.lang-switch i{display:block;width:1px;height:11px;background:var(--line)}
@media(max-width:640px){
  nav.top .brand{order:0}
  .lang-switch{order:1;margin:0 6px 0 0}
  .nav-toggle{order:2}
  nav.top ul{order:3}
}
html.lang-en{--serif:"Georgia","Times New Roman","Songti SC","STSong","Noto Serif SC",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Helvetica,Arial,"PingFang SC","Hiragino Sans GB","Noto Sans SC",sans-serif}
html.lang-en body{line-height:1.7}
html.lang-en .pt-prose p{line-height:1.8}
html.lang-en .en:lang(zh-CN),
html.lang-en .gxhead>span:lang(zh-CN),
html.lang-en .pt-prose h3>span:lang(zh-CN){font-family:var(--serif-zh);text-transform:none;letter-spacing:.3em}
html.lang-en .en:lang(zh-CN){font-size:12px}
html.lang-en .like h3 em:lang(zh-CN){font:12px/1.6 var(--serif-zh);letter-spacing:.2em;text-transform:none}
html.lang-en .row h4 .en:lang(zh-CN),
html.lang-en .pt-head h1 .en:lang(zh-CN){font-family:var(--serif-zh);letter-spacing:.08em}
/* 首屏：Welcome to the world of / Niels / 魁小拔。名字是西文，后面那三个字当作落款 */
html.lang-en .hero .wel{letter-spacing:.14em;font-size:clamp(14px,1.45vw,17px)}
html.lang-en .hero h1 .name{letter-spacing:.005em}
html.lang-en .hero h1 .of{font-family:var(--serif-zh);color:var(--gold-2);letter-spacing:.16em;transform:none}
html.lang-en .hero .sub{max-width:620px}
/* 英文阅读器顶部那一行说明：原文是中文 */
.rd .lang-note{font:12.5px/1.6 var(--sans);color:var(--fg-3);border-left:1px solid var(--gold-3);padding:2px 0 2px 12px;margin:0 0 26px}
.rd h1 .zh{display:block;margin-top:10px;font:15px/1.5 var(--serif-zh);letter-spacing:.08em;color:var(--fg-3)}
/* 英文译本：西文长文排版，行高比中文收一些；切回原文时按中文排 */
.rd .rd-text[lang="en"] p,.rd .rd-text[lang="en"] li{font-family:var(--en);font-size:17px;line-height:1.75;letter-spacing:0}
.rd .rd-text[lang="en"] blockquote p{font-size:16px;line-height:1.7}
.rd .rd-text[lang="en"] h3{letter-spacing:.005em}
.rd .lang-note .lang-flip{background:none;border:0;padding:0 0 1px;margin-left:4px;font:inherit;color:var(--gold);cursor:pointer;border-bottom:1px solid var(--gold-3)}
.rd .lang-note .lang-flip:hover{border-color:var(--gold-2)}
.rd .lang-note .lang-flip:focus-visible{outline:1px solid var(--gold-2);outline-offset:3px}

/* 项目档案在阅读器里：事项与口径成对排，来源是一行小字，站内来源可以点回原文 */
.rd dl.kv{margin:0 0 1.8em;border-top:1px solid var(--line-2)}
.rd dl.kv>div{display:grid;grid-template-columns:8.5em minmax(0,1fr);gap:0 20px;padding:11px 0;border-bottom:1px solid var(--line-2)}
.rd dl.kv dt{font-size:14px;line-height:1.9;color:var(--fg-3)}
.rd dl.kv dd{margin:0;font-size:16px;line-height:1.9;color:var(--read)}
.rd dl.kv dd b{color:#fff;font-weight:600}
.rd dl.kv dd small{display:block;margin-top:2px;font-size:13px;line-height:1.8;color:var(--fg-3)}
.rd dl.kv a,.rd p.note a{color:var(--gold);border-bottom:1px solid var(--gold-3)}
.rd p.note{margin:-.6em 0 1.8em;font-size:13px;line-height:1.85;color:var(--fg-3)}
@media(max-width:640px){.rd dl.kv>div{grid-template-columns:1fr;gap:2px}.rd dl.kv dd{font-size:15.5px}}

/* ---- 写过的字：按合集分组 ----
   长文一行：年份 / 题目与一句话 / 页边摘句（字里行间，挂在出处旁边）；词与短章排成目录。
   顶部是跳转目录，不是筛选；和「做过的事」的下划线标签同一套样子。 */
.wbook{--wmargin:clamp(220px,27%,300px)}
.wtools{flex-direction:row;align-items:center;justify-content:space-between;gap:10px 24px;padding:6px 0 0}
.wtools .search{width:250px;flex:none;align-self:center}
.wjump{display:flex;flex-wrap:wrap;gap:0 26px;transition:opacity .2s}
.wjump.dim{opacity:.55}
.wjump button{background:none;border:0;border-bottom:1px solid transparent;margin-bottom:-1px;min-height:46px;padding:10px 1px 12px;
  font:15px/1.4 var(--serif);letter-spacing:.08em;color:var(--fg-3);cursor:pointer;transition:color .2s,border-color .2s}
.wjump button i{font:normal 10.5px var(--en);letter-spacing:.1em;color:var(--fg-4);margin-left:6px}
.wjump button:hover{color:var(--fg)}
.wjump button[aria-current="true"]{color:var(--gold);border-bottom-color:var(--gold)}
.wjump button:focus-visible{outline:1px solid var(--gold-2);outline-offset:3px}

.wgrp{padding-top:clamp(44px,6vw,72px)}
.wgrp:first-child{padding-top:30px}
.wgh{display:grid;grid-template-columns:minmax(0,1fr) var(--wmargin);gap:0 44px;align-items:end;padding-bottom:13px;border-bottom:1px solid var(--line)}
.wgh h3{font:500 clamp(24px,2.6vw,30px)/1.25 var(--serif);letter-spacing:.08em;margin:0}
.wgh p{grid-column:1;margin:7px 0 0;font-size:12.5px;letter-spacing:.06em;color:var(--fg-3)}
.wgh .wmk{grid-column:2;grid-row:1 / span 2;align-self:end;font:12px/1.4 var(--serif);letter-spacing:.34em;color:var(--gold-2)}

.wlist{list-style:none;margin:0;padding:0}
.wrow{display:grid;grid-template-columns:minmax(0,1fr) var(--wmargin);gap:0 44px;border-bottom:1px solid var(--line-2)}
.wflat .wrow{grid-template-columns:minmax(0,1fr)}
.wopen{display:grid;grid-template-columns:5.6em minmax(0,1fr);gap:0 20px;align-items:baseline;width:100%;margin:0;padding:24px 0 23px;
  background:none;border:0;border-radius:3px;text-align:left;font:inherit;color:inherit;cursor:pointer}
.wopen:focus-visible{outline:1px solid var(--gold-2);outline-offset:5px}
.wd{font-family:var(--en);color:var(--fg-4);line-height:1.3}
.wd b{display:block;font-weight:400;font-size:15px;letter-spacing:.1em;color:var(--fg-2)}
.wd i{display:block;font-style:normal;font-size:10.5px;letter-spacing:.16em;margin-top:5px}
.wtx{display:block;min-width:0}
.wt{font:500 20px/1.55 var(--serif);letter-spacing:.02em;color:var(--fg);transition:color .2s}
.wtx em{font:normal 11px var(--serif);letter-spacing:.16em;color:var(--fg-4);margin-left:12px;white-space:nowrap}
.wbook .zh-title{display:block;margin-top:2px;font:12.5px/1.5 var(--serif-zh,var(--serif));letter-spacing:.06em;color:var(--fg-4)}  /* 英文页：中文原题小字另起一行 */
.ws{display:block;margin-top:6px;font-size:14.5px;line-height:1.85;color:var(--read);max-width:36em}
.wopen:hover .wt,.wopen:focus-visible .wt{color:var(--gold)}
.wrow.locked .wd b{color:var(--fg-4)}

.wq{align-self:center;padding:20px 0}
.wq button{display:block;width:100%;margin:0 0 14px;padding:2px 0 2px 16px;background:none;border:0;border-left:1px solid var(--gold-3);
  text-align:left;font:15px/1.9 var(--serif);color:var(--fg-3);cursor:pointer;transition:color .2s,border-color .2s}
.wq button:last-child{margin-bottom:0}
.wq button:hover,.wq button:focus-visible{color:var(--fg);border-left-color:var(--gold)}
.wq button:focus-visible{outline:1px solid var(--gold-2);outline-offset:3px}

.wverse{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 40px}
.wverse li{border-bottom:1px solid var(--line-2)}
.wverse .wopen{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:17px 0 16px}
.wverse .wt{font-size:17.5px;line-height:1.5}
.wverse .wd{flex:none;font-size:11px;letter-spacing:.12em}
.wdown{padding:30px 0;color:var(--fg-3)}

/* 从页边摘句点进阅读器：那一段亮一下再淡掉 */
.rd .hl{border-radius:4px;animation:rdmark 4.2s ease forwards}
@keyframes rdmark{0%,40%{background:rgba(233,220,176,.12);box-shadow:0 0 0 10px rgba(233,220,176,.12)}100%{background:transparent;box-shadow:0 0 0 10px transparent}}
@media (prefers-reduced-motion:reduce){.rd .hl{animation:none;background:rgba(233,220,176,.1);box-shadow:0 0 0 10px rgba(233,220,176,.1)}}

@media(max-width:1050px){.wgh,.wrow{gap:0 30px}.wverse{gap:0 28px}}
@media(max-width:820px){
  .wtools{flex-direction:column;align-items:stretch;gap:2px;padding-top:4px}
  .wtools .search{width:100%}
  .wjump{gap:0 20px}
  .wgh,.wrow{grid-template-columns:minmax(0,1fr)}
  .wgh .wmk{display:none}
  .wq{padding:0 0 22px calc(5.6em + 20px)}
  .wverse{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
}
@media(max-width:520px){
  .wjump{gap:0 16px}.wjump button{font-size:14px}
  .wopen{grid-template-columns:3.4em minmax(0,1fr);gap:0 12px;padding:20px 0 19px}
  .wd b{font-size:13px}.wd i{font-size:9.5px}
  .wt{font-size:18.5px}.ws{font-size:14px}
  .wq{padding-left:calc(3.4em + 12px)}
  .wq button{font-size:14px}
  .wverse .wopen{flex-direction:column;align-items:flex-start;gap:3px;padding:14px 0}
  .wverse .wt{font-size:16.5px}
}

/* ── 在路上：旅程地图 ───────────────────────────────────────
   地图沿用「从哪里来」的海岸线、航线与图钉；右边是这一站的照片，下面一行按时间排的站。
   第一次出现时航线和图钉按时间一段段亮起来（drawn），亮完去掉错峰延迟（settled），之后切换站点即时响应。 */
.like.journey-like{display:block;min-height:0}
.journey-like .like-copy{margin-bottom:30px}
.journey{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(236px,1fr);grid-template-areas:"map card" "line line";gap:26px 38px;align-items:center}
.map.jmap{grid-area:map;aspect-ratio:16/9;border-radius:10px}
.jmap .pin{background:none;border:0;padding:0;color:inherit;font:inherit}
.jmap .pin .lbl{font-size:12px}
.jmap .seg.past{stroke:rgba(233,220,176,.34)}
.jmap .pin.off{opacity:0;pointer-events:none}
.jmap .pin .lbl.cut{visibility:hidden}
.jmap .seg{opacity:0;transition:opacity .6s ease calc(var(--i) * 150ms + 180ms),stroke .4s}
.jmap .pin .dot{transform:scale(0);transition:transform .5s cubic-bezier(.2,.8,.3,1.35) calc(var(--i) * 150ms),opacity .35s,background .35s,box-shadow .35s}
.jmap .pin .lbl{opacity:0;transition:opacity .5s ease calc(var(--i) * 150ms + 200ms),color .35s}
.jmap.drawn .seg,.jmap.drawn .pin .lbl{opacity:1}
.jmap.drawn .pin .dot{transform:none}
.jmap.drawn .pin.dim .lbl{opacity:.38}
.jmap.settled .seg,.jmap.settled .pin .dot,.jmap.settled .pin .lbl{transition-delay:0s}
.jedge{position:absolute;right:10px;transform:translateY(-50%);display:flex;align-items:center;gap:7px;pointer-events:auto;min-height:32px;background:rgba(5,6,9,.66);border:1px solid var(--line);border-radius:999px;padding:4px 11px 4px 13px;color:var(--fg-2);font:12px/1.2 var(--serif);letter-spacing:.04em;cursor:pointer;backdrop-filter:blur(4px);transition:color .25s,border-color .25s,opacity .5s}
.jedge i{font-style:normal;color:var(--gold-2)}
.jedge.left{right:auto;left:10px;flex-direction:row-reverse;padding:4px 13px 4px 11px}
.jedge.left i{transform:scaleX(-1)}
.jedge:hover,.jedge:focus-visible{color:var(--gold);border-color:var(--gold-2)}
.jmap:not(.drawn) .jedge{opacity:0}
.jcard{grid-area:card;display:flex;flex-direction:column;align-items:flex-start;gap:18px;min-width:0}
.jstack{display:block;background:none;border:0;padding:0 0 0 6px;cursor:pointer;align-self:flex-start}
.jstack .stack{position:relative;display:block;width:216px;height:166px}
.jstack .stack img{position:absolute;top:0;left:0;width:204px;height:152px;object-fit:cover;border:6px solid #26272c;border-bottom-width:14px;border-radius:3px;box-shadow:0 14px 32px #0008;filter:saturate(.9);transform:rotate(-3deg);transition:transform .4s cubic-bezier(.2,.75,.25,1),filter .3s}
.jstack .stack img:nth-child(1){z-index:3}
.jstack .stack img:nth-child(2){z-index:2;transform:translate(9px,2px) rotate(3deg)}
.jstack .stack img:nth-child(3){z-index:1;transform:translate(15px,6px) rotate(7deg)}
.jstack:hover .stack img,.jstack:focus-visible .stack img{filter:none}
.jstack:hover .stack img:nth-child(1),.jstack:focus-visible .stack img:nth-child(1){transform:translate(-6px,-6px) rotate(-5deg)}
.jstack:hover .stack img:nth-child(2),.jstack:focus-visible .stack img:nth-child(2){transform:translate(12px,0) rotate(2deg)}
.jstack:hover .stack img:nth-child(3),.jstack:focus-visible .stack img:nth-child(3){transform:translate(23px,4px) rotate(9deg)}
.jcopy{width:100%;min-width:0}
.jwhen{display:block;font:10px var(--en);letter-spacing:.16em;color:var(--gold-2);text-transform:uppercase;margin-bottom:8px}
.jname{font-size:24px;line-height:1.35;margin:0}
.jname em{display:block;font:10px/1.6 var(--en);letter-spacing:.13em;text-transform:uppercase;color:var(--fg-3);font-style:normal;margin-top:5px}
.journey .jnote{font-size:13.5px;line-height:1.85;color:var(--read);margin:10px 0 12px;max-width:none}
.jopen{background:none;border:0;padding:6px 0;min-height:36px;color:var(--gold);font-size:12px;letter-spacing:.04em;cursor:pointer}
.jopen i{font-style:normal;margin-left:6px}
.jopen:hover{text-decoration:underline;text-underline-offset:4px}
.jcard.swap>*{animation:jswap .45s cubic-bezier(.2,.75,.25,1) both}
.jcard.swap>.jcopy{animation-delay:.06s}
@keyframes jswap{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.jline{grid-area:line;list-style:none;margin:0;padding:0;display:flex;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
.jline::-webkit-scrollbar{display:none}
.jline li{flex:1 0 92px;position:relative;scroll-snap-align:center}
.jline li::before{content:"";position:absolute;top:19px;left:-50%;right:50%;border-top:1px dashed rgba(255,255,255,.16)}
.jline li:first-child::before{display:none}
.jline li.on-past::before,.jline li.on-now::before{border-top:1px solid var(--gold-3)}
.jline li.on-now::before{border-top-color:var(--gold-2)}
.jline button{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;min-height:64px;padding:15px 4px 6px;background:none;border:0;color:var(--fg-3);cursor:pointer;font:inherit}
.jline button i{display:block;width:9px;height:9px;border-radius:50%;background:#fff;opacity:.45;box-shadow:0 0 8px rgba(255,255,255,.45);margin-bottom:7px;transition:background .3s,opacity .3s,box-shadow .3s,transform .3s}
.jline b{font-family:var(--serif);font-weight:500;font-size:13px;letter-spacing:.04em;color:var(--fg-2);white-space:nowrap;transition:color .3s}
.jline span{font:10px/1.5 var(--en);letter-spacing:.08em;color:var(--fg-4);white-space:nowrap;min-height:15px}
.jline li.on-past button i{background:var(--gold);opacity:.55;box-shadow:none}
.jline button[aria-pressed=true] i{background:var(--gold);opacity:1;box-shadow:0 0 12px rgba(233,220,176,.9),0 0 3px #fff;transform:scale(1.25)}
.jline button[aria-pressed=true] b,.jline button:hover b{color:var(--gold)}
/* 分节的画册：节名横跨整行；单张细看时节名放在说明上方 */
.album-sec{grid-column:1/-1;margin:16px 0 -12px;padding:0 6px 10px;border-bottom:1px solid #ffffff17;font:16px/1.5 var(--serif);letter-spacing:.06em;color:var(--gold)}
.album-sec:first-child{margin-top:0}
.album-caption-sec{display:block;margin-bottom:3px;font:11px/1.6 var(--serif);letter-spacing:.14em;color:var(--gold-2)}
@media(max-width:1050px){.journey{grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);gap:22px 26px}.jstack .stack{width:196px;height:152px}.jstack .stack img{width:184px;height:138px}}
@media(max-width:820px){.map.jmap{height:auto!important;aspect-ratio:3/2}}
@media(max-width:640px){.journey{grid-template-columns:1fr;grid-template-areas:"map" "card" "line";gap:16px}.jcard{flex-direction:row;align-items:center;gap:18px}.jstack{align-self:auto;flex:none}.jstack .stack{width:130px;height:104px}.jstack .stack img{width:120px;height:92px;border-width:4px;border-bottom-width:10px}.jname{font-size:20px}.journey .jnote{margin:6px 0 4px;font-size:13px}.jmap .pin .lbl{font-size:11px}}
@media(prefers-reduced-motion:reduce){.jmap *,.jcard *,.jline *{transition:none!important;animation:none!important}}
