:root{--bg:#fbf6ee;--surface:#fffdf8;--text:#35302a;--muted:#7a6e60;--line:#eadfcd;--accent:#9c6a2e;--on:#fff;--sage:#8b9b73;--soft:#f3e9d8;--sage-soft:#e6eadb;--foot:#3a2f25;--r:22px;--w:1760px;
--font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
@media(prefers-color-scheme:dark){:root{--bg:#1e1a15;--surface:#29241d;--text:#f0e8da;--muted:#b8ac98;--line:#40382c;--accent:#e0b070;--on:#1e1a15;--sage:#a3b48a;--soft:#342d23;--sage-soft:#2c3324;--foot:#141109}}
*{box-sizing:border-box}html{font-size:clamp(17px,.5vw + 13px,22px);scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font:1rem/1.7 var(--font);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
a{color:var(--accent)}img{max-width:100%;display:block}
.wrap{width:100%;max-width:var(--w);margin:0 auto;padding-inline:clamp(1.1rem,5vw,4rem)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--surface);padding:.5rem 1rem;z-index:30}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:5rem}
.brand{display:flex;align-items:center;gap:.8rem;color:var(--text);text-decoration:none;line-height:1.2}.brand b{display:block;font-size:1.3rem}.brand small{color:var(--muted);font-size:.82rem}
.school{color:var(--muted);text-decoration:none;font-weight:500}.school:hover{color:var(--accent)}
.hero{position:relative;overflow:hidden}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.hero::before{width:46vw;height:46vw;right:-10vw;top:-14vw;background:radial-gradient(circle,var(--sage-soft),transparent 68%)}
.hero::after{width:38vw;height:38vw;left:-12vw;bottom:-20vw;background:radial-gradient(circle,var(--soft),transparent 68%)}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:3rem;padding-block:clamp(1.5rem,5vw,4rem) clamp(2.5rem,6vw,5rem)}
.hero h1{margin:0 0 1rem;font-size:clamp(2.4rem,6.2vw,5rem);line-height:1.04;letter-spacing:-.02em;font-weight:800;max-width:14ch}
.hero p{margin:0;max-width:50ch;color:var(--muted);font-size:1.3rem}.cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem!important}
.btn{display:inline-block;padding:.85rem 1.7rem;border-radius:999px;background:var(--accent);color:var(--on);text-decoration:none;font-weight:600;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(80,55,25,.2)}.btn.ghost{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.btn.gold{background:#e3b565;color:#2e2418}
.art{position:relative;display:grid;place-items:center;min-height:clamp(220px,28vw,420px)}
.art>img{width:clamp(170px,22vw,340px);height:auto;padding:clamp(1.2rem,3vw,2.4rem);border-radius:50%;background:var(--surface);box-shadow:0 0 0 clamp(10px,1.6vw,22px) var(--sage-soft),0 24px 60px rgba(80,55,25,.18)}
.next{position:absolute;left:0;bottom:0;max-width:20rem;display:flex;flex-direction:column;padding:1rem 1.3rem;border-radius:18px;background:var(--surface);border:1px solid var(--line);box-shadow:0 12px 30px rgba(80,55,25,.16);color:var(--text);text-decoration:none;line-height:1.35}
.next[hidden]{display:none}.next small{color:var(--muted)}.next strong{font-size:1.1rem}.next span{color:var(--accent);font-weight:600;font-size:.92rem}
@media(max-width:860px){.hero-in{grid-template-columns:1fr}.art{order:-1;min-height:0}.next{position:static;margin-top:1rem}.art{display:flex;flex-direction:column;align-items:center}}
.dock{position:sticky;top:0;z-index:10;padding-block:.7rem;pointer-events:none}.dock .wrap{display:flex;justify-content:center}
#tabs{pointer-events:auto;position:relative;display:flex;max-width:100%;overflow-x:auto;scrollbar-width:none;padding:.35rem;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:0 8px 24px rgba(80,55,25,.12)}#tabs::-webkit-scrollbar{display:none}
#tabs a{position:relative;z-index:1;padding:.65rem 1.4rem;border-radius:999px;color:var(--muted);text-decoration:none;white-space:nowrap;font-weight:500;transition:color .25s}
#tabs a:hover{color:var(--text)}#tabs a[aria-selected=true]{color:var(--on)}
.ind{position:absolute;top:.35rem;bottom:.35rem;left:0;width:0;border-radius:999px;background:var(--accent);transition:transform .35s cubic-bezier(.4,0,.2,1),width .35s}
main{flex:1;padding-block:clamp(1.5rem,4vw,3rem) clamp(3rem,6vw,5rem)}
section>h2{margin:0 0 1.6rem;font-size:clamp(1.9rem,3.6vw,2.8rem);letter-spacing:-.01em}
section>h2::before{content:"";display:inline-block;width:.5em;height:.5em;margin-right:.45em;border-radius:50%;background:var(--sage)}
section>h3{margin:2.6rem 0 1rem;font-size:1.5rem}section p{max-width:75ch;font-size:1.12rem}.note{color:var(--muted);font-size:.95rem!important;margin-top:1.4rem}
section:not([hidden]){animation:in .3s ease;min-height:42vh}@keyframes in{from{opacity:0;transform:translateY(8px)}}
.grid{display:grid;gap:1.6rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.7rem 1.9rem;font-style:normal;box-shadow:0 6px 22px rgba(80,55,25,.07)}
.card h3{margin:.9rem 0 .3rem;font-size:1.25rem}.card p{margin:0;color:var(--muted)}
.ico{width:3.4rem;height:3.4rem;display:grid;place-items:center;border-radius:16px;background:var(--sage-soft);font-size:1.7rem}
.person{text-align:center}.person h3{margin-top:.2rem}.av{width:116px;height:116px;margin:0 auto .9rem;border-radius:50%;background:var(--sage-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:1.8rem;overflow:hidden;box-shadow:0 0 0 4px var(--surface),0 0 0 7px var(--sage)}
.person:nth-child(3n+2) .av{background:var(--soft)}.person:nth-child(3n) .av{background:var(--line)}.av img{width:100%;height:100%;object-fit:cover}
.events{display:grid;gap:1.1rem;margin-left:.5rem;padding-left:1.9rem;border-left:2px solid var(--line)}
.ev{position:relative;display:flex;gap:1.4rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.1rem 1.5rem}
.ev::before{content:"";position:absolute;left:-2.55rem;top:50%;width:.9rem;height:.9rem;margin-top:-.45rem;border-radius:50%;background:var(--accent);border:3px solid var(--bg);box-sizing:content-box}
.ev.past{opacity:.55}.ev.past::before{background:var(--line)}.ev h3{margin:0;font-size:1.25rem}.ev p{margin:0;color:var(--muted)}
.date{flex:none;width:4.6rem;text-align:center;border-radius:16px;background:var(--soft);color:var(--accent);padding:.4rem 0;line-height:1.2}.date b{display:block;font-size:1.9rem}.date span{text-transform:uppercase;font-size:.78rem;letter-spacing:.05em}
.steps{counter-reset:s;list-style:none;margin:0;padding:0;display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.steps li{counter-increment:s;position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.5rem 1.4rem 4.4rem}
.steps li::before{content:counter(s);position:absolute;left:1.3rem;top:1.3rem;width:2.3rem;height:2.3rem;border-radius:50%;background:var(--accent);color:var(--on);display:grid;place-items:center;font-weight:700}
.steps h3{margin:0 0 .2rem;font-size:1.15rem}.steps p{margin:0;color:var(--muted)}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:.95rem 1.4rem;margin-bottom:.7rem;max-width:62rem}.faq summary{cursor:pointer;font-weight:600}.faq p{margin:.6rem 0 0}
.dl{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.8rem}.dl a{display:inline-block;padding:.7rem 1.3rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);text-decoration:none;font-weight:500}.dl a:hover{border-color:var(--accent)}
.filters{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.5rem}
.filters button{font:inherit;padding:.5rem 1.2rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}
.filters button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on)}
.gal{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));grid-auto-rows:clamp(190px,17vw,300px);grid-auto-flow:dense}
.tile{position:relative;padding:0;border:0;border-radius:var(--r);overflow:hidden;background:var(--soft);cursor:pointer;font:inherit}.tile:nth-child(5n+1){grid-column:span 2}
@media(max-width:600px){.tile:nth-child(5n+1){grid-column:auto}}
.tile[hidden]{display:none}.tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s}.tile:hover img{transform:scale(1.05)}
.ph{display:grid;place-items:center;height:100%;font-size:3rem;opacity:.55}
.cap{position:absolute;inset:auto 0 0;padding:.8rem 1.1rem;background:linear-gradient(transparent,rgba(40,28,15,.8));color:#fff;font-size:.95rem;text-align:left}
dialog{border:0;border-radius:var(--r);padding:0;max-width:min(94vw,1100px);background:var(--surface);color:var(--text)}dialog::backdrop{background:rgba(30,20,10,.78)}
dialog figure{margin:0}dialog img{max-height:78vh;width:100%;object-fit:contain}dialog figcaption{padding:1rem 1.2rem}
.close{position:absolute;right:.6rem;top:.6rem;border:0;border-radius:50%;width:2.4rem;height:2.4rem;background:var(--surface);color:var(--text);cursor:pointer}
.foot{color:#eadfce}.foot a{color:#eadfce}.foot a:hover{color:#fff}.wave{display:block;width:100%;height:clamp(40px,6vw,90px);fill:var(--foot);margin-bottom:-1px}
.fbody{background:var(--foot)}
.fhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem;padding-block:1rem 2.2rem;border-bottom:1px solid rgba(255,255,255,.15)}
.fhead h2{margin:0;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.01em;color:#fff}
.fgrid{display:grid;grid-template-columns:1.8fr 1fr 1.3fr;gap:2.2rem;padding-block:2.2rem 1.4rem}
.foot h3{margin:0 0 .8rem;font-size:1.05rem;color:#fff}.foot ul{list-style:none;margin:0;padding:0;line-height:2}
.fbrand{display:flex;gap:1rem;align-items:flex-start}.fbrand p{margin:0;font-size:.95rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;line-height:1.4!important}.chips a{display:inline-block;padding:.45rem 1rem;border:1px solid rgba(255,255,255,.3);border-radius:999px;text-decoration:none;font-size:.92rem}.chips a:hover{background:rgba(255,255,255,.12)}
.fend{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem;padding-block:1.2rem 1.6rem;border-top:1px solid rgba(255,255,255,.15);font-size:.9rem}
.totop{font:inherit;background:transparent;color:inherit;border:1px solid currentColor;border-radius:999px;padding:.4rem 1.1rem;cursor:pointer}.totop:hover{color:#fff}
@media(max-width:800px){.fgrid{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}@media(max-width:520px){.fgrid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.dock,.filters,.totop,.wave{display:none}section[hidden]{display:block}}
.empty{color:var(--muted);font-style:italic}#faq-box>h3,#dl-box>h3{margin:2.6rem 0 1rem;font-size:1.5rem}
