:root{--paper:#eee0bb;--paper-btn:#ead7a8;--paper-btn-2:#ead8ad;--liner:#c4a06a;--wood:#75513b;--wood-2:#8a6a45;--wood-3:#ad936b;--ink:#493f32;--ink-mute:#78745f;--seal:#b44f38;--seal-deep:#973c2e;--peach:#f5c5b7;--peach-2:#d99b9d;--teal-deep:#243c36;--teal-deep-2:#203d37;--teal-light:#b7d7ce;--cream:#fff1cc;--gold:#c6a85d;--gold-light:#ffe9ab;--shadow:#172d283d;--radius:14px;--font:"PingFang SC", "Noto Sans SC", "Microsoft YaHei", "Source Han Sans SC", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font);color:var(--ink);background:radial-gradient(circle at 12% 8%, #f5c5b747, transparent 34%), radial-gradient(circle at 88% 12%, #b7d7ce38, transparent 30%), linear-gradient(180deg, #f3e5c4 0%, var(--paper) 42%, #e7d3a8 100%);margin:0;line-height:1.55}img.pixel{image-rendering:pixelated;image-rendering:crisp-edges}a{color:inherit;text-decoration:none}a:hover{color:var(--seal-deep)}.site-shell{width:min(1120px,100% - 2rem);margin:0 auto;padding:1.25rem 0 3rem}.topnav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.brand{letter-spacing:.08em;align-items:center;gap:.6rem;font-weight:700;display:inline-flex}.brand-mark{border:3px solid var(--wood);background:linear-gradient(135deg, var(--peach), var(--paper-btn));width:34px;height:34px;box-shadow:inset 0 0 0 2px var(--liner);border-radius:8px}.nav-links{flex-wrap:wrap;gap:.55rem;display:flex}.nav-links a{border:2px solid var(--wood);background:var(--paper-btn);box-shadow:0 2px 0 var(--shadow);border-radius:999px;padding:.45rem .9rem;font-size:.95rem;display:inline-block}.nav-links a[aria-current=page]{background:var(--cream);border-color:var(--seal);color:var(--seal-deep)}.plaque{border:4px solid var(--wood);border-radius:var(--radius);background:linear-gradient(180deg, #fff1cc8c, transparent 28%), var(--paper-btn);box-shadow:0 10px 24px var(--shadow), inset 0 0 0 3px var(--liner);padding:1.25rem 1.35rem;position:relative}.plaque:before,.plaque:after{content:"";border:3px solid var(--wood-2);border-radius:4px;width:18px;height:18px;position:absolute}.plaque:before{border-bottom:none;border-right:none;top:8px;left:8px}.plaque:after{border-bottom:none;border-left:none;top:8px;right:8px}.hero{text-align:center;padding:2rem 1.25rem 1.75rem;overflow:hidden}.hero-banner{border:3px solid var(--wood);width:min(100%,920px);box-shadow:0 8px 18px var(--shadow);background:#d7c093;border-radius:12px;margin:0 auto 1.25rem;overflow:hidden}.hero-banner img{object-fit:cover;object-position:center 35%;width:100%;height:auto;max-height:280px;display:block}.hero h1{letter-spacing:.22em;text-indent:.22em;color:var(--ink);text-shadow:0 1px 0 var(--gold-light);margin:.2rem 0 .4rem;font-size:clamp(2.4rem,7vw,4rem)}.tagline{color:var(--ink-mute);letter-spacing:.18em;margin:0 0 1.25rem}.cta-row{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:.5rem;display:flex}.btn{border:3px solid var(--wood);background:linear-gradient(180deg, var(--cream), var(--paper-btn));min-width:9.5rem;box-shadow:0 4px 0 var(--shadow);letter-spacing:.12em;border-radius:12px;justify-content:center;align-items:center;padding:.85rem 1.35rem;font-weight:700;display:inline-flex}.btn-primary{border-color:var(--seal);color:var(--seal-deep);background:linear-gradient(#f7d8b0,#e8b07a)}.btn:hover{transform:translateY(-1px)}.btn:active{box-shadow:0 2px 0 var(--shadow);transform:translateY(1px)}.section-title{letter-spacing:.14em;align-items:center;gap:.75rem;margin:1.75rem 0 .9rem;font-size:1.25rem;display:flex}.section-title:before,.section-title:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;height:2px}.season-grid,.card-grid,.shot-grid{gap:1rem;display:grid}.season-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.card-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.shot-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.season-card,.entry-card,.shot-card,.version-item{border:3px solid var(--wood);background:var(--paper);box-shadow:0 6px 14px var(--shadow), inset 0 0 0 2px #c4a06a8c;border-radius:12px;overflow:hidden}.season-card{text-align:center;padding:1rem .95rem 1.1rem}.season-card .season-badge{border:2px solid var(--wood-2);background:var(--paper-btn);letter-spacing:.12em;border-radius:999px;margin-bottom:.45rem;padding:.15rem .7rem;font-size:.85rem;display:inline-block}.season-card.spring .season-badge{background:var(--peach)}.season-card.summer .season-badge{background:var(--teal-light)}.season-card.autumn .season-badge{background:#e7c48a}.season-card.winter .season-badge{background:#dfe7e4}.season-card h3{letter-spacing:.12em;margin:.2rem 0 .35rem}.season-card p{color:var(--ink-mute);margin:0;font-size:.92rem}.note{color:var(--ink-mute);margin:.75rem 0 0;font-size:.92rem}.footer{text-align:center;color:var(--ink-mute);background:linear-gradient(#0000,#203d370f);border-top:2px solid #75513b59;margin-top:2.5rem;padding:1.1rem 1rem}.footer strong{color:var(--ink)}.filters{flex-wrap:wrap;gap:.5rem;margin:.75rem 0 1rem;display:flex}.filters button{border:2px solid var(--wood);background:var(--paper-btn);color:var(--ink);cursor:pointer;font:inherit;border-radius:999px;padding:.35rem .85rem}.filters button[aria-pressed=true]{border-color:var(--seal);background:var(--cream);color:var(--seal-deep)}.entry-card{flex-direction:column;min-height:100%;display:flex}.entry-card .thumb{aspect-ratio:1;background:linear-gradient(#b7d7ce40,#0000 40%),#e4d0a4;border-bottom:2px solid #75513b59;place-items:center;display:grid}.entry-card .thumb img{object-fit:contain;width:72%;height:72%}.entry-card .body{flex-direction:column;flex:1;gap:.35rem;padding:.85rem .9rem 1rem;display:flex}.entry-card .meta{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.entry-card h3{letter-spacing:.08em;margin:0;font-size:1.05rem}.entry-card .tag{color:var(--seal-deep);border:1px solid var(--seal);background:#b44f3814;border-radius:999px;padding:.05rem .45rem;font-size:.78rem}.entry-card p{color:var(--ink-mute);margin:0;font-size:.9rem}.entry-card .seal{border:2px solid var(--seal-deep);width:28px;height:28px;color:var(--seal-deep);letter-spacing:.05em;opacity:.85;border-radius:4px;align-self:flex-end;place-items:center;margin-top:auto;font-size:.7rem;display:grid;transform:rotate(-8deg)}.gallery-layout{grid-template-columns:minmax(220px,280px) 1fr;gap:1rem;display:grid}.version-list{flex-direction:column;gap:.65rem;display:flex}.version-item{padding:.85rem .9rem}.version-item .code{color:var(--seal-deep);word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}.version-item h3{margin:.25rem 0;font-size:1rem}.version-item p{color:var(--ink-mute);margin:0;font-size:.88rem}.shot-card img{aspect-ratio:16/10;object-fit:cover;background:#d8c497;width:100%;display:block}.shot-card figcaption{color:var(--ink-mute);padding:.65rem .8rem .8rem;font-size:.88rem}@media (width<=900px){.season-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-layout{grid-template-columns:1fr}}@media (width<=560px){.site-shell{width:calc(100% - 1.1rem)}.season-grid{grid-template-columns:1fr}.hero{padding:1.35rem .9rem 1.2rem}.hero h1{letter-spacing:.14em;text-indent:.14em}}
