:root {
  --paper:#f1ede3;--paper-deep:#e5ddcf;--ink:#29261f;--muted:#6b665b;--accent:#914b37;--line:#cbc1b1;--white:#fffdf8;
  --display:"Songti SC","STSong","Noto Serif CJK SC",serif;--body:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;--utility:"Avenir Next","DIN Alternate",var(--body);color-scheme:light;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{width:100%;margin:0;overflow-x:hidden;color:var(--ink);background:var(--paper);font-family:var(--body);line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.reading-progress{position:fixed;z-index:90;top:0;left:0;right:0;height:2px;background:rgba(255,255,255,.16)}.reading-progress span{display:block;width:0;height:100%;background:#c48368}
.site-header{position:fixed;z-index:40;top:0;left:0;right:0;height:calc(74px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;padding:env(safe-area-inset-top) 22px 0;color:var(--white);transition:color .3s ease,background .3s ease,border-color .3s ease;border-bottom:1px solid rgba(255,255,255,.22)}.site-header.is-scrolled{color:var(--ink);background:rgba(241,237,227,.9);border-color:var(--line);backdrop-filter:blur(15px)}.brand{display:inline-flex;flex-direction:column;font:500 23px/.72 var(--display);letter-spacing:-.045em}.brand span:last-child{margin-left:20px;font-style:italic}.season-mark{font:600 9px/1 var(--utility);letter-spacing:.18em}
.hero{position:relative;height:100svh;min-height:700px;display:flex;align-items:flex-end;overflow:hidden;color:var(--white);background:#443b32}.hero-image{position:absolute;inset:0;background:url("assets/hero-editorial.jpg") 52% center/cover no-repeat;filter:saturate(.69) sepia(.06);transform:scale(1.02);animation:settle 1.4s cubic-bezier(.2,.7,.2,1) both}.hero-shade{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(24,21,17,.05) 10%,rgba(24,21,17,.12) 42%,rgba(24,21,17,.86) 100%)}.hero-copy{position:relative;z-index:2;width:100%;padding:0 22px max(112px,calc(90px + env(safe-area-inset-bottom)))}.eyebrow{margin:0 0 17px;font:650 10px/1.2 var(--utility);letter-spacing:.22em}.hero h1{max-width:360px;margin:0;font:400 clamp(38px,10.8vw,47px)/1.08 var(--display);letter-spacing:-.045em;text-wrap:balance}.hero-lead{max-width:340px;margin:20px 0 0;color:rgba(255,255,255,.82);font-size:14px;line-height:1.9;letter-spacing:.02em}.hero-actions{display:flex;align-items:center;gap:22px;margin-top:28px}.primary-button{min-height:50px;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:0 18px;color:var(--ink);background:var(--white);font-size:14px;transition:transform .2s ease,background .2s ease}.primary-button:active{transform:scale(.97);background:#ebe4d7}.quiet-button{min-height:44px;padding:0 0 2px;color:rgba(255,255,255,.86);border:0;border-bottom:1px solid rgba(255,255,255,.5);background:none;font-size:12px;cursor:pointer}.scroll-cue{position:absolute;z-index:3;right:18px;bottom:max(23px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;margin:0;font-size:9px;letter-spacing:.12em;opacity:.7}.scroll-cue span{width:23px;height:1px;background:currentColor;animation:cue 1.8s ease-in-out infinite}
.directions{min-height:100svh;padding:86px 22px max(28px,env(safe-area-inset-bottom));background:var(--paper)}.directions-intro h2{margin:0;font:400 37px/1.15 var(--display);letter-spacing:-.035em}.directions-intro>p:last-child{max-width:340px;margin:17px 0 0;color:var(--muted);font-size:13px;line-height:1.8}.path-list{margin-top:37px;border-top:1px solid var(--ink)}.path-item{width:100%;min-height:78px;display:grid;grid-template-columns:30px 1fr 35px;align-items:center;gap:8px;padding:0;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;cursor:pointer;transition:padding .25s ease,color .25s ease,background .25s ease}.path-item:active{padding-left:10px;color:var(--white);background:var(--accent)}.path-index{color:var(--accent);font:650 9px/1 var(--utility);letter-spacing:.12em}.path-item:active .path-index{color:rgba(255,255,255,.7)}.path-copy{display:flex;flex-direction:column;gap:4px}.path-copy strong{font:400 23px/1.2 var(--display)}.path-copy small{color:var(--muted);font-size:11px}.path-item:active small{color:rgba(255,255,255,.68)}.path-arrow{justify-self:end;font-size:17px;transition:transform .22s ease}.path-item:active .path-arrow{transform:translate(3px,-3px)}
.today-note{width:100%;display:block;margin-top:36px;padding:24px;text-align:left;color:var(--white);border:0;background:var(--accent);cursor:pointer;box-shadow:0 18px 42px rgba(100,55,41,.16);transition:transform .2s ease}.today-note:active{transform:scale(.985)}.today-label{display:block;margin-bottom:18px;color:rgba(255,255,255,.7);font:600 9px/1 var(--utility);letter-spacing:.16em}.today-note strong{display:block;font:400 25px/1.38 var(--display)}.today-link{display:block;margin-top:20px;font-size:11px}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:7px 18px;padding-top:34px;color:var(--muted);font-size:9px}.site-footer span:first-child{width:100%;color:var(--ink);font:500 14px/1 var(--display)}
.article-dialog{width:100%;max-width:520px;max-height:88svh;margin:auto 0 0;padding:16px 22px max(42px,calc(28px + env(safe-area-inset-bottom)));color:var(--ink);background:var(--paper);border:0;border-radius:22px 22px 0 0;box-shadow:0 -16px 60px rgba(0,0,0,.2);animation:sheet-up .42s cubic-bezier(.22,.8,.25,1) both}.article-dialog::backdrop{background:rgba(20,18,15,.62);backdrop-filter:blur(4px)}.sheet-handle{width:42px;height:4px;margin:0 auto 14px;border-radius:9px;background:var(--line)}.dialog-close{position:sticky;z-index:3;top:0;float:right;min-width:44px;min-height:44px;padding:0;color:var(--muted);border:0;background:var(--paper);cursor:pointer;font-size:12px}.dialog-meta{display:flex;gap:18px;padding-top:40px;color:var(--accent);font:650 9px/1 var(--utility);letter-spacing:.14em}.article-dialog h2{margin:17px 0 0;font:400 34px/1.22 var(--display);letter-spacing:-.035em}.dialog-summary{margin:22px 0 28px;padding-bottom:24px;color:var(--muted);border-bottom:1px solid var(--line);font-size:15px;line-height:1.8}.dialog-body p{margin:0 0 20px;font-size:14px;line-height:1.95}.dialog-body h3{margin:30px 0 10px;font:400 23px/1.3 var(--display)}.dialog-end{margin:42px 0 0;padding-top:20px;color:var(--muted);border-top:1px solid var(--line);font-size:10px}
.reveal{opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease}.reveal.is-visible{opacity:1;transform:none}
.hero{height:96svh;min-height:650px}
.directions{min-height:0;padding-top:70px;padding-bottom:max(24px,env(safe-area-inset-bottom))}
.path-list{margin-top:25px}
.today-note{display:grid;grid-template-columns:1fr auto;gap:7px 18px;margin-top:22px;padding:17px 18px;box-shadow:0 14px 34px rgba(100,55,41,.14)}
.today-label{grid-column:1/-1;margin-bottom:0;letter-spacing:.14em}
.today-note strong{font-size:20px;line-height:1.35}
.today-link{align-self:end;margin-top:0;font-size:10px;white-space:nowrap}
.site-footer{padding-top:20px}
@keyframes settle{from{transform:scale(1.09);opacity:.7}to{transform:scale(1.02);opacity:1}}@keyframes cue{0%,100%{transform:scaleX(.55);transform-origin:left}50%{transform:scaleX(1);transform-origin:left}}@keyframes sheet-up{from{transform:translateY(24%);opacity:0}to{transform:translateY(0);opacity:1}}
@media(min-width:521px){body{max-width:520px;margin:0 auto;box-shadow:0 0 70px rgba(38,33,27,.12)}.site-header,.reading-progress{left:50%;right:auto;width:520px;transform:translateX(-50%)}}
@media(max-height:740px){.hero-copy{padding-bottom:82px}.hero-lead{margin-top:14px}.hero-actions{margin-top:20px}.directions{padding-top:76px}.path-item{min-height:70px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
