:root{--white:#fff;--olive:#2f4631;--green:#1f3b2a;--muted:#6a7562;--blush:#f5dfdc;--blush-soft:#fbefed;--butter:#f7e9b8;--butter-soft:#fdf7e3;--gold:#a8893e;--line:#ece4d8}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Georgia,"Times New Roman",serif;background:#fff;color:var(--olive);line-height:1.7;font-size:17px;-webkit-font-smoothing:antialiased}
a{color:inherit}img{display:block;max-width:100%}
.wrap{max-width:1040px;margin:0 auto;padding:0 22px}.narrow{max-width:620px;margin:0 auto}.center{text-align:center}
.eyebrow{font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
h1,h2,h3{font-weight:normal;color:var(--green);line-height:1.2}
h1{font-size:clamp(34px,7vw,58px)}h2{font-size:clamp(26px,4.6vw,36px);margin:10px 0 18px}h3{font-size:22px}
p+p{margin-top:1em}.blend{mix-blend-mode:multiply}.note{font-size:15px;color:var(--muted)}
section{padding:64px 0}
.btn{display:inline-block;text-decoration:none;font-size:13px;letter-spacing:.18em;text-transform:uppercase;padding:16px 30px;border:1px solid var(--green);background:var(--green);color:#fff;transition:background .2s,color .2s}
.btn:hover{background:transparent;color:var(--green)}
.btn.alt{background:var(--blush);border-color:var(--blush);color:var(--green)}
header{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
header .wrap{display:flex;justify-content:space-between;align-items:center;height:60px}
.mark{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.28em;text-transform:uppercase;text-decoration:none;color:var(--green)}
.mark img{width:34px;height:34px}
.nav{display:flex;align-items:center;gap:18px}
.navlink{font-size:12px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--green)}
.navbtn{font-size:12px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;background:var(--blush);color:var(--green);padding:9px 16px}
.hero{padding:48px 0 56px;text-align:center;background:linear-gradient(180deg,#fff 0%,var(--blush-soft) 100%)}
.hero .sub{max-width:540px;margin:16px auto 0;color:var(--muted)}
.hero .crestsm{width:110px;margin:0 auto 14px}
.rule{width:56px;height:1px;background:var(--gold);margin:22px auto}
/* year cards */
.years{display:grid;gap:28px;grid-template-columns:1fr}
.year{display:block;text-decoration:none;background:#fff;border:1px solid var(--line);transition:transform .2s,box-shadow .2s}
.year:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(31,59,42,.08)}
.year .media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--butter-soft)}
.year .media img,.year .media .ph{width:100%;height:100%;object-fit:cover}
.year.soon .media img,.year.soon .media .ph{filter:blur(14px);transform:scale(1.12)}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;background:rgba(251,239,237,.45);color:var(--green);font-size:15px;letter-spacing:.2em;text-transform:uppercase}
.tag{position:absolute;top:14px;left:14px;background:var(--butter);color:var(--green);font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:6px 10px;z-index:2}
.year .body{padding:22px 24px 26px}
.year .body p{color:var(--muted);font-size:15px;margin-top:6px}
.year .more{display:inline-block;margin-top:12px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
/* placeholders */
.ph{display:flex;align-items:center;justify-content:center;background:#efeeea;color:#9a9a92;font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-align:center;padding:12px}
.todo{background:var(--butter-soft);border:1px dashed var(--gold);padding:2px 6px;color:var(--gold);font-style:italic}
/* year page */
.gallery{display:grid;gap:14px;grid-template-columns:1fr 1fr}
.gallery figure{aspect-ratio:1/1;overflow:hidden}
.gallery figure img,.gallery figure .ph{width:100%;height:100%;object-fit:cover}
.video{position:relative;aspect-ratio:16/9;max-width:820px;margin:0 auto}
.video video,.video iframe,.video .ph{position:absolute;inset:0;width:100%;height:100%;border:0}
.writeup{background:var(--blush-soft)}
.cta{background:var(--butter-soft)}
.back{display:inline-block;margin-top:18px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);text-decoration:none}
footer{background:#fff;color:var(--muted);font-size:13px;text-align:center;padding:40px 22px 46px;border-top:1px solid var(--line)}
footer img{width:64px;height:64px;margin:0 auto 12px}
@media(min-width:620px){.years{grid-template-columns:1fr 1fr}.gallery{grid-template-columns:repeat(3,1fr)}}
@media(max-width:420px){.mark{font-size:11px;letter-spacing:.14em;white-space:nowrap}.mark img{width:28px;height:28px}.nav{gap:12px}}
@media(min-width:960px){.years{grid-template-columns:repeat(3,1fr)}}
.nohar{display:inline-block;background:var(--blush);color:var(--green);font-size:11px;font-style:normal;letter-spacing:.18em;text-transform:uppercase;padding:4px 10px}
@media(max-width:480px){.navlink{white-space:nowrap;font-size:11px;letter-spacing:.1em}.navbtn{white-space:nowrap;padding:9px 12px;letter-spacing:.12em}.nav{gap:10px;flex-shrink:0}header .wrap{gap:12px}.mark{white-space:normal;line-height:1.35;letter-spacing:.2em;font-size:11px;gap:8px}}
