*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light dark;--paper: #f3f0e7;--paper-glass: rgba(243, 240, 231, .92);--surface: #f8f6ef;--surface-muted: #e9e5da;--ink: #171713;--slate: #171713;--muted: #171713;--rule: #d6d2c7;--rule-strong: #bdb9ae;--clay: #b75836;--clay-soft: #ead8ce;--sky: #6f8d9d;--danger: #b64e45;--serif: "Newsreader", "Noto Serif SC", "Songti SC", Georgia, serif;--sans: "Instrument Sans", "PingFang SC", "Microsoft YaHei", sans-serif;--mono: "IBM Plex Mono", Consolas, monospace;--container: 1180px;--gutter: clamp(20px, 4vw, 48px);--outline: 250px;--grid-gap: clamp(32px, 5vw, 64px);--header-height: 68px;--measure: 62ch}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{min-width:320px;font-family:var(--sans);font-size:15px;line-height:1.7;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}::selection{color:var(--surface);background:var(--clay)}:where(a,button):focus-visible{outline:1px solid var(--clay);outline-offset:4px}#root,.app{min-height:100vh}.app{display:flex;flex-direction:column;overflow-x:clip}.container,.container-wide{width:min(100%,var(--container));margin-inline:auto;padding-inline:var(--gutter)}.page-content{flex:1}.header{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--rule);background:var(--paper-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:32px;min-height:var(--header-height)}.logo{display:inline-flex;flex:0 0 auto;align-items:center;gap:10px;font-family:var(--serif);font-size:1.35rem;line-height:1;color:var(--ink);text-decoration:none}.logo-mark,.logo-mark svg{display:block;flex:0 0 auto;width:26px;height:26px}.logo-mark{color:var(--clay)}.nav{display:flex;align-items:stretch;align-self:stretch;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav-link{position:relative;display:inline-flex;align-items:center;padding-inline:15px;font-family:var(--serif);font-size:.9rem;font-weight:500;white-space:nowrap;color:var(--slate);text-decoration:none;transition:color .16s ease}.nav-link:hover,.nav-link.active{color:var(--ink)}.nav-link.active:after{position:absolute;right:15px;bottom:12px;left:15px;height:2px;content:"";background:var(--clay)}.hero{flex:1;padding-block:clamp(46px,8vw,88px) 80px}.hero-inner{max-width:920px}.hero-badge{display:flex;align-items:center;gap:14px;margin-bottom:clamp(42px,8vw,76px);font-family:var(--serif);font-size:.65rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.hero-badge:after{flex:1;height:1px;content:"";background:var(--rule-strong)}.hero-title{padding-top:.08em;font-family:var(--serif);font-size:clamp(5rem,14vw,9.5rem);font-weight:400;line-height:1.05;letter-spacing:-.055em}.hero-subtitle{max-width:34em;margin-top:36px;padding-left:20px;border-left:1px solid var(--clay);font-family:var(--serif);font-size:clamp(1.05rem,2vw,1.3rem);line-height:1.7;color:var(--slate)}.home-nav{margin-top:clamp(64px,10vw,104px);border-top:1px solid var(--rule-strong)}.home-nav-item{position:relative;display:grid;grid-template-columns:34px minmax(120px,.55fr) 1fr 24px;align-items:center;gap:24px;min-height:76px;color:inherit;text-decoration:none;border-bottom:1px solid var(--rule)}.home-nav-index{font-family:var(--serif);font-size:.62rem;color:var(--muted)}.home-nav-label{font-family:var(--serif);font-size:clamp(1.55rem,3vw,2rem);line-height:1.1;transition:color .16s ease,transform .16s ease}.home-nav-desc{grid-column:3;justify-self:end;font-family:var(--serif);font-size:1rem;color:var(--muted)}.home-nav-arrow{grid-column:4;font-family:var(--serif);font-size:.9rem;color:var(--clay);transition:transform .16s ease}.home-nav-item:hover .home-nav-label{color:var(--clay);transform:translate(4px)}.home-nav-item:hover .home-nav-arrow{transform:translate(3px,-3px)}.page-hero{padding-block:clamp(52px,8vw,92px) clamp(44px,7vw,72px)}.page-hero-layout,.outline-layout{display:grid;grid-template-columns:minmax(0,var(--outline)) minmax(0,1fr);gap:var(--grid-gap);align-items:start}.page-hero-header{display:grid;grid-column:1 / -1;grid-template-columns:minmax(0,var(--outline)) minmax(0,1fr);gap:var(--grid-gap)}.section-title{grid-column:1 / -1;max-width:15em;padding-top:.08em;font-family:var(--serif);font-size:clamp(2.7rem,6vw,5.4rem);font-weight:400;line-height:1.14;letter-spacing:-.035em;text-wrap:balance}.section-desc{grid-column:2;max-width:44ch;margin-top:24px;padding-left:18px;border-left:1px solid var(--clay);font-family:var(--serif);font-size:1.05rem;line-height:1.7;color:var(--slate)}.section{padding-bottom:clamp(72px,10vw,120px)}.content-outline{position:sticky;top:calc(var(--header-height) + 32px);min-width:0;max-height:calc(100vh - var(--header-height) - 64px);overflow-y:auto;padding-top:10px;border-top:1px solid var(--rule-strong)}.content-outline:before{display:block;margin-bottom:14px;font-family:var(--serif);font-size:.6rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);content:"Contents"}.content-outline nav{counter-reset:outline}.content-outline nav>div{border-top:1px solid var(--rule)}.content-outline nav>div:first-child{border-top:0}.content-outline button{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;width:100%;padding-block:9px;font-family:var(--serif);font-size:.85rem;line-height:1.42;text-align:left;color:var(--slate);background:none;border:0;cursor:pointer;transition:color .16s ease}.content-outline button:before{font-family:var(--serif);font-size:.58rem;line-height:2;color:var(--muted);counter-increment:outline;content:"0" counter(outline)}.content-outline button:is(:hover,[aria-current=true]){color:var(--clay)}.post-list{min-width:0;border-top:1px solid var(--rule-strong);counter-reset:post}.post-card{min-width:0;padding-block:32px;border-bottom:1px solid var(--rule);scroll-margin-top:calc(var(--header-height) + 24px);counter-increment:post}.post-card-layout{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:clamp(26px,4vw,46px);align-items:start}.post-card-layout-no-media{grid-template-columns:minmax(0,1fr)}.post-card-no-media .post-card-body{max-width:760px}.post-cover{position:relative;overflow:hidden;aspect-ratio:16 / 9;background:var(--surface-muted)}.post-cover:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";box-shadow:inset 0 0 0 1px #2526221a}.post-cover-side{aspect-ratio:4 / 3}.post-cover-video{aspect-ratio:var(--media-ratio, 9 / 16);max-height:70vh}.post-cover img,.post-cover video{display:block;width:100%;height:100%;object-fit:cover}.post-cover-video video{object-fit:contain}.post-cover img{transition:transform .3s ease}.post-card:hover .post-cover img{transform:scale(1.015)}.post-card:not(.post-card-side-layout) .post-cover{margin-bottom:28px}.post-card-body{min-width:0}.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 5px;margin-bottom:20px;font-family:var(--serif);font-size:1rem;line-height:1.6;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}.post-meta:before{margin-right:1px;color:var(--rule-strong);content:"0" counter(post)}.post-meta>*+*:before{margin-right:5px;color:var(--rule-strong);content:"·"}.post-tag{color:var(--slate)}.post-rating{color:var(--clay);letter-spacing:.1em}.post-title{max-width:24em;padding-top:.05em;font-family:var(--serif);font-size:clamp(1.6rem,3vw,2.35rem);font-weight:400;line-height:1.28;letter-spacing:-.018em;overflow-wrap:anywhere;text-wrap:pretty}.post-excerpt{max-width:var(--measure);margin-top:14px;font-family:var(--serif);font-size:1rem;line-height:1.72;color:var(--slate)}.empty-state{padding:64px 24px;font-family:var(--serif);font-size:1.05rem;text-align:center;color:var(--muted);border-block:1px solid var(--rule-strong)}.footer{margin-top:auto;border-top:1px solid var(--rule)}.footer .container{padding-block:28px 40px}.footer-text{font-family:var(--serif);font-size:.82rem;letter-spacing:.1em;text-align:right;text-transform:uppercase;color:var(--muted)}.loading-spinner,.app-status{display:flex;align-items:center;justify-content:center}.app-status{min-height:100vh;padding:2rem;color:var(--slate);background:var(--paper)}.loading-spinner-ring{width:28px;height:28px;border:1px solid var(--rule-strong);border-top-color:var(--clay);border-radius:50%;animation:spin .7s linear infinite}.app-status-error{color:var(--danger)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:reveal .48s ease both}.animate-delay-1{animation-delay:60ms}.animate-delay-2{animation-delay:.12s}.animate-delay-3{animation-delay:.18s}@media(prefers-color-scheme:dark){:root{--paper: #1c1b18;--paper-glass: rgba(28, 27, 24, .92);--surface: #24221e;--surface-muted: #292721;--ink: #ece8de;--slate: #b7b3a9;--muted: #85837b;--rule: #37352f;--rule-strong: #4d4a41;--clay: #d27650;--clay-soft: #493027;--sky: #88a6b7;--danger: #dc7c71}.post-cover img,.post-cover video{filter:brightness(.9)}.post-cover:after{box-shadow:inset 0 0 0 1px #ece8de14}}@media(max-width:880px){:root{--header-height: 64px}.page-hero-layout,.outline-layout{grid-template-columns:minmax(0,1fr);gap:28px}.page-hero-header{grid-template-columns:minmax(0,1fr);gap:0}.section-desc{grid-column:1}.content-outline{position:static;max-height:none;overflow:hidden}.content-outline nav{display:flex;gap:20px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.content-outline nav::-webkit-scrollbar{display:none}.content-outline nav>div{flex:0 0 auto;max-width:280px;border-top:0}.content-outline button{width:auto;white-space:nowrap}}@media(max-width:640px){:root{--gutter: 18px;--header-height: 106px}.header-inner{flex-wrap:wrap;gap:0;padding-top:14px}.logo{flex:1 1 100%;justify-content:center}.nav{flex:1 1 100%;justify-content:center;min-width:0;min-height:60px;padding-block:10px 8px}.nav-link{align-self:stretch;padding-inline:11px;font-size:.78rem}.nav-link.active:after{right:11px;bottom:7px;left:11px}.hero{padding-block:48px 60px}.hero-badge{margin-bottom:36px}.hero-title{padding-top:.08em;font-size:clamp(4rem,23vw,5.8rem);line-height:1.08;letter-spacing:-.035em}.hero-subtitle{margin-top:30px;padding-left:15px}.home-nav{display:flex;flex-direction:column;align-items:stretch;margin-top:64px}.home-nav-item{grid-template-columns:24px minmax(0,1fr) 20px;grid-template-areas:"index label arrow" "index desc arrow";gap:3px 12px;min-height:82px;padding-block:14px}.home-nav-index{grid-area:index;align-self:start;padding-top:.45em}.home-nav-label{grid-area:label;font-size:1.55rem}.home-nav-desc{display:block;grid-area:desc;justify-self:start;font-size:.82rem;line-height:1.45}.home-nav-arrow{grid-area:arrow;align-self:center}.page-hero{padding-block:42px 36px}.section-title{font-size:clamp(2.25rem,12vw,3.2rem);line-height:1.16}.section-desc{margin-top:20px;padding-left:14px;font-size:1rem}.section{padding-bottom:72px}.outline-layout{gap:20px}.content-outline:before{margin-bottom:10px}.content-outline{overflow:visible;padding-left:14px;border-top:0;border-left:1px solid var(--rule-strong)}.content-outline nav{display:flex;flex-direction:column;gap:0;overflow:visible}.content-outline nav>div{width:100%;max-width:none;border-top:1px solid var(--rule)}.content-outline nav>div:first-child{border-top:0}.content-outline button{width:100%;grid-template-columns:22px minmax(0,1fr);padding-block:9px;white-space:normal;text-align:left}.post-card{padding-block:26px;scroll-margin-top:calc(var(--header-height) + 16px)}.post-card-layout{grid-template-columns:minmax(0,1fr);gap:22px}.post-cover-side{aspect-ratio:16 / 10}.post-meta{gap:3px 4px;margin-bottom:14px;font-size:.84rem;letter-spacing:0}.post-meta>*{white-space:nowrap}.post-meta>*+*:before{margin-right:4px}.post-title{max-width:none;font-size:clamp(1.3rem,6vw,1.6rem);line-height:1.3}.post-excerpt{font-size:.96rem}.footer-text{text-align:center}}@media(max-width:380px){.nav-link{padding-inline:9px;font-size:.74rem}.hero-title{font-size:4.35rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
