:root{--bg: #f6f3ee;--surface: #fffdfa;--ink: #191817;--ink-2: #3f3a35;--muted: #7c756c;--line: #e4ded4;--line-strong: #cfc6b8;--accent: #9c5b3c;--accent-deep: #7a4529;--accent-soft: #f2e6de;--font-sans: "Inter", "SF Pro Text", -apple-system, "PingFang SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", Georgia, serif;--radius-sm: 10px;--radius: 14px;--radius-lg: 22px;--shadow-sm: 0 1px 2px rgba(25, 24, 23, .04), 0 6px 16px rgba(25, 24, 23, .04);--shadow-md: 0 12px 34px rgba(25, 24, 23, .1);--maxw: 1240px}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html{min-height:100%}body{margin:0;min-height:100vh;background-color:#f6ecdf;background-image:radial-gradient(1200px 760px at 8% 0%,rgba(219,170,128,.2),transparent 62%),radial-gradient(1000px 680px at 98% 10%,rgba(228,190,146,.18),transparent 64%),radial-gradient(1100px 780px at 50% 104%,rgba(206,156,112,.16),transparent 66%),linear-gradient(180deg,#fdf9f3,#faf2e7,#f6ebdc 68%,#f2e4d2);background-repeat:no-repeat;color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:1.6}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 32px}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;background:#fdf9f3c2;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line)}.topbar-inner{max-width:var(--maxw);margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:10px}.brand .mark{width:28px;height:28px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:8px;font-family:var(--font-serif);font-size:15px;line-height:1}.brand-text{font-weight:650;letter-spacing:.02em;font-size:16px}.topbar nav{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;min-width:0}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{flex:0 0 auto;white-space:nowrap;padding:8px 12px;border-radius:999px;color:var(--muted);font-size:14px;transition:color .2s ease,background .2s ease}.topbar nav a:hover{color:var(--ink);background:#1918170d}.topbar nav a.router-link-active{color:var(--ink);font-weight:600}.topbar nav .cta{margin-left:8px;padding:9px 18px;border:1px solid var(--ink);border-radius:999px;color:var(--ink);font-size:13px;font-weight:500;transition:background .2s ease,color .2s ease,transform .2s ease}.topbar nav .cta:hover{background:var(--ink);color:#fff;transform:translateY(-1px)}main{flex:1;padding:40px 0 72px}.hero{margin-bottom:44px}.hero-feature{position:relative;overflow:hidden;padding:44px 52px 40px;margin-bottom:52px;border-radius:28px;border:1px solid rgba(156,91,60,.14);background:radial-gradient(680px 340px at 88% 6%,rgba(156,91,60,.16),transparent 62%),radial-gradient(520px 300px at 6% 96%,rgba(198,158,92,.14),transparent 60%),linear-gradient(135deg,#fffefa,#fbf2e8 56%,#f6e7d8);box-shadow:0 24px 60px #7850321a,inset 0 1px #ffffffd9}.hero-feature:after{content:"";position:absolute;right:-120px;bottom:-190px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle at 34% 34%,rgba(255,255,255,.34),transparent 66%);pointer-events:none}.hero-feature h1{background:linear-gradient(115deg,#171615,#44342a 52%,#8c4f31);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-feature .lede{color:#6d655c}.hero .eyebrow,.eyebrow{margin:0 0 14px;color:var(--accent);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}h1{margin:0 0 12px;font-family:var(--font-serif);font-size:clamp(30px,4vw,46px);font-weight:600;line-height:1.18;letter-spacing:-.01em}.lede{margin:0;color:var(--muted);font-size:15px}.subtitle{color:var(--muted);font-size:14px;margin:0 0 28px}.gallery{margin-bottom:56px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:nowrap;padding-bottom:14px;margin-bottom:24px;border-bottom:1px solid var(--line-strong)}.section-head h2,.section-head .count{white-space:nowrap}.section-head h2{margin:0;font-family:var(--font-serif);font-size:21px;font-weight:600}.section-head .count{color:var(--muted);font-size:13px;letter-spacing:.02em}.more-link{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;color:var(--accent);font-size:13px;font-weight:500;transition:background .2s ease,color .2s ease}.more-link:hover{background:var(--accent-soft);color:var(--accent-deep)}.more-link span{transition:transform .2s ease}.more-link:hover span{transform:translate(3px)}.cards{display:flex;flex-wrap:nowrap;gap:26px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;padding-bottom:6px}.cards::-webkit-scrollbar{height:6px}.cards::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}.cards::-webkit-scrollbar-track{background:transparent}.card{display:block;flex:0 0 clamp(200px,calc((100% - 104px)/5),320px);background:transparent;transition:transform .35s cubic-bezier(.22,1,.36,1)}.card .thumb{margin:0;aspect-ratio:4 / 5;overflow:hidden;border-radius:var(--radius);background:#ece7df;box-shadow:var(--shadow-sm)}.card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}.card:hover{transform:translateY(-5px)}.card:hover .thumb{box-shadow:var(--shadow-md)}.card:hover .thumb img{transform:scale(1.04)}.card-body{padding:14px 2px 0}.card-body h3{margin:0 0 4px;font-size:15px;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-body p{margin:0;color:var(--muted);font-size:13px}.no-img{width:100%;height:100%;display:grid;place-items:center;color:var(--muted);font-size:13px;background:repeating-linear-gradient(-45deg,#ece7df,#ece7df 10px,#f3efe8 10px,#f3efe8 20px)}.more{display:inline-flex;align-items:center;gap:6px;margin-top:22px;color:var(--accent);font-size:14px;font-weight:500}.more span{transition:transform .2s ease}.more:hover span{transform:translate(4px)}.work-detail{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:56px;align-items:start}.work-media{border-radius:var(--radius-lg);overflow:hidden;background:#ece7df;box-shadow:var(--shadow-md)}.work-media img{width:100%;height:auto}.work-info{position:sticky;top:96px}.work-info h1{font-size:clamp(26px,3vw,36px);margin-bottom:8px}.work-info .author{margin:0 0 24px;color:var(--ink-2);font-size:15px}.work-info .desc{margin:0 0 28px;color:var(--ink-2);font-size:15px;line-height:1.8;white-space:pre-wrap}.facts{margin:0 0 28px;border-top:1px solid var(--line)}.facts>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0;color:var(--ink-2);text-align:right}.back{display:inline-flex;align-items:center;gap:6px;margin-bottom:26px;color:var(--muted);font-size:14px;cursor:pointer;transition:color .2s ease}.back:hover{color:var(--ink)}.ghost-link{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border:1px solid var(--line-strong);border-radius:999px;font-size:13px;color:var(--ink-2);transition:border-color .2s ease,background .2s ease}.ghost-link:hover{border-color:var(--ink);background:#fff}.archive-list{border-top:1px solid var(--line-strong)}.archive-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 4px;border-bottom:1px solid var(--line);transition:background .2s ease,padding .2s ease}.archive-row:hover{background:#fffdfab3;padding-left:12px}.archive-row .name{font-family:var(--font-serif);font-size:19px;font-weight:600}.archive-row .meta{margin-top:4px;color:var(--muted);font-size:13px}.archive-row .arrow{color:var(--accent);transition:transform .2s ease}.archive-row:hover .arrow{transform:translate(5px)}.empty-state{padding:96px 0;text-align:center}.empty-state .empty-mark{width:56px;height:56px;margin:0 auto 20px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;color:var(--accent);font-size:20px}.empty-state h2{margin:0 0 8px;font-family:var(--font-serif);font-size:21px;font-weight:600}.empty-state p{margin:0 0 22px;color:var(--muted);font-size:14px}.empty{color:var(--muted);text-align:center;padding:72px 0}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:26px;margin-top:40px}.sk-line,.sk-card{background:linear-gradient(90deg,#ece7df 25%,#f4f0e9 37%,#ece7df 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}.sk-line{height:16px;margin-bottom:12px}.sk-line.w40{width:40%}.sk-line.w70{width:70%;height:30px}.sk-card{aspect-ratio:4 / 5;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.footer{border-top:1px solid var(--line);padding:26px 0;color:var(--muted);font-size:12px}.footer-inner{display:flex;justify-content:space-between;gap:16px}@media(min-width:1680px){:root{--maxw: 1460px}.cards,.skeleton-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.hero-feature{padding:52px 60px 48px}}@media(max-width:900px){.work-detail{grid-template-columns:1fr;gap:32px}.work-info{position:static}}@media(max-width:640px){.container{padding:0 20px}.topbar-inner{padding:12px 20px}.brand-text{display:none}.topbar nav a{padding:7px 10px;font-size:13px}main{padding:28px 0 56px}.hero{margin-bottom:34px}.hero-feature{padding:30px 24px 28px;border-radius:20px;margin-bottom:36px}.cards{display:flex;flex-wrap:nowrap;gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:6px;margin:0;padding-left:0;padding-right:0}.cards::-webkit-scrollbar{display:none}.card{flex:0 0 64%;scroll-snap-align:start}.card-body h3{font-size:14px}.skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gallery{margin-bottom:40px}.footer-inner{flex-direction:column;gap:6px}}
