@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Montserrat:wght@400;500;600&display=swap');

:root { --ink:#172a27; --cream:#f2eee5; --paper:#fbfaf6; --gold:#c59649; --line:#d7d0c1; --font-display:'Cormorant Garamond',Georgia,'Times New Roman',serif; --font-sans:Montserrat,Arial,Helvetica,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-sans),sans-serif; }
a { color:inherit; text-decoration:none; }
.site-header { height:132px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; border-bottom:1px solid rgba(23,42,39,.13); position:absolute; z-index:3; width:100%; color:#fff; background:var(--ink); }
.brand-block { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.brand { display:flex; align-items:center; gap:13px; text-transform:uppercase; letter-spacing:.09em; }
.brand-mark { width:47px; height:47px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; font-family:var(--font-display); font-size:20px; color:var(--gold); }
.brand b { display:block; font-family:var(--font-display); font-size:22px; letter-spacing:.04em; font-weight:600; }
.brand small { display:block; font-size:8px; letter-spacing:.28em; margin-top:2px; }
nav { display:flex; gap:34px; font-size:12px; letter-spacing:.06em; }
nav a { opacity:.78; transition:.2s; } nav a:hover { opacity:1; }
.header-actions { display:flex; align-items:center; gap:14px; }
.quick-menu { position:relative; } .quick-menu summary { cursor:pointer; list-style:none; display:inline-flex; } .quick-menu summary::-webkit-details-marker{display:none} .quick-menu[open] summary span{transform:rotate(180deg)}
.quick-menu-panel { position:absolute; top:calc(100% + 10px); right:0; background:var(--paper); border:1px solid var(--line); box-shadow:0 20px 40px #0003; min-width:220px; padding:10px; display:flex; flex-direction:column; z-index:5; }
.quick-menu-panel a { color:var(--ink); font-size:12px; letter-spacing:.04em; padding:11px 12px; }
.quick-menu-panel a:hover { background:var(--cream); }
.button { display:inline-flex; justify-content:space-between; align-items:center; min-width:210px; padding:17px 19px; background:var(--ink); color:white; font-size:12px; text-transform:uppercase; letter-spacing:.12em; border:1px solid transparent; }
.button span { color:var(--gold); font-size:16px; }
.button-small { min-width:162px; padding:13px 15px; border-color:rgba(255,255,255,.35); background:transparent; }
.hero { min-height:820px; display:grid; grid-template-columns:54% 46%; background:var(--ink); color:white; overflow:hidden; }
.hero-copy { padding:230px 7vw 70px; position:relative; z-index:1; }
.eyebrow,.section-number { color:var(--gold); font-size:10px; letter-spacing:.24em; text-transform:uppercase; font-weight:600; }
h1,h2,blockquote { font-family:var(--font-display),serif; font-weight:400; margin:0; line-height:.91; }
h1 { font-size:clamp(68px,7vw,112px); letter-spacing:-.045em; max-width:800px; }
em { color:var(--gold); font-weight:400; }
.lede { max-width:540px; font-family:var(--font-display); font-size:21px; line-height:1.55; color:#cdd4d0; margin:35px 0; }
.hero-actions { display:flex; gap:30px; align-items:center; }
.text-link { font-size:11px; text-transform:uppercase; letter-spacing:.12em; border-bottom:1px solid var(--line); padding:11px 0; display:inline-flex; gap:26px; }
.text-link span { color:var(--gold); }
.hero-note { position:absolute; bottom:50px; display:flex; gap:20px; align-items:center; font-size:10px; letter-spacing:.08em; color:#aab7b2; }
.hero-note span { font-family:var(--font-display); font-size:22px; color:var(--gold); border-right:1px solid #ffffff30; padding-right:20px; }
.hero-note p { margin:0; line-height:1.5; }
.hero-art { position:relative; background:radial-gradient(circle at 50% 34%,#2f4b45 0,#203833 33%,#102420 74%); border-left:1px solid #ffffff12; overflow:hidden; }
.hero-art:before { content:""; position:absolute; inset:10%; border:1px solid #c596494d; transform:rotate(45deg); }
.sun { position:absolute; width:265px; height:265px; border:1px solid var(--gold); border-radius:50%; left:50%; top:26%; transform:translateX(-50%); display:grid; place-items:center; text-align:center; color:var(--gold); font-family:var(--font-display); font-size:12px; letter-spacing:.2em; box-shadow:0 0 80px #c5964926,inset 0 0 60px #c5964917; }
.sun:before,.sun:after { content:""; position:absolute; width:180%; height:1px; background:#c596493d; }
.sun:after { transform:rotate(90deg); }
.pillar { position:absolute; bottom:0; height:52%; width:23%; border:1px solid #c5964952; background:linear-gradient(90deg,#0d1f1c,#29433d,#10231f); box-shadow:inset 0 20px #17302a; }
.pillar:before { content:""; position:absolute; left:-12%; width:124%; height:20px; border:1px solid #c5964961; top:-20px; }
.pillar-left { left:7%; }.pillar-right { right:7%; }
.steps { position:absolute; bottom:0; width:100%; }.steps i { display:block; height:30px; border-top:1px solid #c596494d; background:#122722; margin:auto; width:calc(100% - var(--n,0px)); }.steps i:nth-child(2){width:86%}.steps i:nth-child(3){width:72%}.steps i:nth-child(4){width:58%}
.degree { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font:500 34px var(--font-display); letter-spacing:.11em; color:#f0dfb3; text-shadow:0 8px 40px #000; white-space:nowrap; }
.intro { padding:110px 7vw 90px; display:grid; grid-template-columns:1fr 2fr 1fr; gap:7vw; align-items:start; }
h2 { font-size:clamp(56px,6vw,86px); letter-spacing:-.035em; }
.intro>div>p { font:20px/1.65 var(--font-display); max-width:640px; color:#4a5a56; }
.intro aside { border-top:1px solid var(--gold); padding-top:20px; }
.large-degree { display:block; font:54px var(--font-display); color:var(--gold); }
.intro aside p { font-size:12px; line-height:1.65; color:#67736f; }
.pillars { display:grid; grid-template-columns:repeat(3,1fr); margin:0 7vw 120px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.pillars article { padding:42px 40px 48px 0; border-right:1px solid var(--line); }
.pillars article+article { padding-left:40px; }.pillars article:last-child { border:0; }
.pillars span { color:var(--gold); font:italic 18px var(--font-display); }.pillars h3,.event-list h3 { font:500 26px var(--font-display); margin:20px 0 12px; }.pillars p,.event-list p { color:#6a746f; font-size:12px; line-height:1.7; max-width:310px; }
.events { background:var(--cream); padding:105px 7vw; }
.events-head { display:flex; justify-content:space-between; align-items:end; margin-bottom:55px; }
.event-list { border-top:1px solid #c9c0af; }
.event-list article { display:grid; grid-template-columns:150px 1fr 50px; align-items:center; border-bottom:1px solid #c9c0af; padding:24px 0; }
.date { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }.date strong { font:40px var(--font-display); white-space:nowrap; }.date span { font-size:10px; letter-spacing:.16em; color:var(--gold); }.event-list h3 { margin:0; }.event-list p { margin:4px 0 0; }.event-list article>a { width:42px; height:42px; border:1px solid #bdb4a4; display:grid; place-items:center; }
.impact { background:var(--ink); color:white; padding:100px 7vw; }
blockquote { font-size:clamp(46px,6vw,84px); max-width:1050px; letter-spacing:-.03em; margin:50px 0 80px; }
.impact-grid { border-top:1px solid #ffffff29; padding-top:35px; display:grid; grid-template-columns:1fr 1fr; gap:14vw; }.impact-grid strong { font:25px var(--font-display); }.impact-grid p { color:#a9b7b2; font-size:13px; line-height:1.75; max-width:500px; }.text-link.light { border-color:#ffffff40; margin-top:12px; }.stat { border-left:1px solid #ffffff29; padding-left:55px; display:flex; flex-direction:column; }.stat strong { color:var(--gold); font-size:62px; }.stat span { font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.join { text-align:center; padding:120px 20px; }.join h2 { margin:30px 0; }.join>p:not(.section-number) { max-width:540px; margin:0 auto 35px; font:19px/1.6 var(--font-display); color:#5c6864; }.gold { background:var(--gold); color:var(--ink); margin:auto; }.gold span { color:var(--ink); }
.calendar-note { color:#6a746f; font:italic 18px var(--font-display); }
.officers { padding:110px 7vw; }.officers>h2 { margin:28px 0 55px; }.officer-columns { display:grid; grid-template-columns:1fr; max-width:640px; gap:0; }.officer-columns details { border-top:1px solid var(--gold); }.officer-columns summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; padding:22px 0; font:500 25px var(--font-display); transition:color .15s; }.officer-columns summary:hover{color:var(--gold)}.officer-columns summary::-webkit-details-marker{display:none}.officer-columns summary span{color:var(--gold); font-size:16px; transition:transform .2s;}.officer-columns details[open] summary span{transform:rotate(180deg)}.officer-columns ul{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.officer-columns li{font-size:11px;color:#5d6965;padding:10px 0;border-bottom:1px solid var(--line)}
.presiding-officer { display:flex; align-items:center; gap:16px; padding:0 0 22px; }.officer-photo { flex:none; width:64px; height:64px; border-radius:50%; border:1px solid var(--gold); display:grid; place-items:center; font:500 18px var(--font-display); color:var(--gold); background:var(--cream); object-fit:cover; }.presiding-officer strong { display:block; font:500 17px var(--font-display); }.presiding-officer span { font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:#6a746f; }
.symbols { background:var(--cream); padding:110px 7vw; }.symbols>h2 { margin:28px 0 55px; }.symbol-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.symbol-grid article { padding:42px 32px 48px 0; border-right:1px solid var(--line); }.symbol-grid article+article { padding-left:32px; }.symbol-grid article:last-child { border:0; }.symbol-grid span { color:var(--gold); font:italic 16px var(--font-display); }.symbol-grid h3 { font:500 24px var(--font-display); margin:16px 0 12px; }.symbol-grid p { color:#6a746f; font-size:12px; line-height:1.7; }
.official { background:#ede8dc; padding:55px 7vw; text-align:center; }.official img { width:min(940px,100%); height:auto; filter:drop-shadow(0 4px 10px #0002); }.official p { max-width:760px; margin:30px auto 0; font:17px/1.6 var(--font-display); color:#59645f; }

/* ---------- Degree ticker (index.html, below hero) ---------- */
.degree-ticker { background:var(--ink); padding:60px 7vw; text-align:center; border-top:2px solid var(--gold); border-bottom:2px solid var(--gold); }
.degree-ticker p { margin:0; font:italic clamp(26px,3.4vw,44px) var(--font-display); color:#cdd4d0; letter-spacing:-.01em; }
.degree-ticker em { color:#cdd4d0; font-style:italic; }
.degree-ticker span { color:var(--gold); font-weight:600; font-style:normal; display:inline-block; transition:opacity .4s; }
.degree-ticker span.fade { opacity:0; }

/* ---------- Forms (calendar/posters registration + shared utility) ---------- */
.hidden { display:none !important; }
.muted-note { color:#6a746f; font-size:13px; }
.error-text { color:#a33b2e; font-size:13px; margin-top:6px; }
.card { background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:32px 0; }
.card .field { max-width:640px; margin:0 auto 14px; padding:0 7vw; }
.card label { display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#6a746f; margin-bottom:6px; }
.card input, .card textarea { width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:2px; background:#fff; font-family:var(--font-sans); font-size:14px; color:var(--ink); }
.card textarea { resize:vertical; }
.card h3 { font:500 28px var(--font-display); margin:0 0 20px; padding:0 7vw; }
.card .error-text, .card .hero-actions { max-width:640px; margin-left:auto; margin-right:auto; padding:0 7vw; }

/* ---------- Data table (honorees.html) ---------- */
.data-table-wrap { overflow-x:auto; margin:0 7vw 80px; }
.data-table { width:100%; border-collapse:collapse; }
.data-table th, .data-table td { text-align:left; padding:12px 16px; border-bottom:1px solid var(--line); font-size:13px; }
.data-table th { font:600 11px var(--font-sans); text-transform:uppercase; letter-spacing:.08em; color:var(--gold); border-bottom:1px solid var(--gold); }
.data-table tbody tr:hover { background:var(--cream); }

/* ---------- Quick links / education links (index.html #resources) ---------- */
.link-list { border-top:1px solid #c9c0af; }
.link-list a { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #c9c0af; padding:16px 0; font:500 18px var(--font-display); }
.link-list a span { color:var(--gold); font-size:16px; }

/* ---------- Poster gallery ---------- */
.poster-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:28px; margin:0 7vw 120px; }
.poster-card { border:1px solid var(--line); background:var(--paper); }
.poster-card .poster-thumb { display:block; aspect-ratio:3/4; background:var(--cream) center/cover no-repeat; border-bottom:1px solid var(--line); }
.poster-card .poster-thumb.pdf { display:grid; place-items:center; font:italic 18px var(--font-display); color:var(--gold); position:relative; }
.poster-card .poster-thumb.pdf canvas { display:none; }
.poster-card .poster-thumb.pdf canvas.ready { display:block; width:100%; height:100%; object-fit:cover; }
.poster-card .poster-thumb.pdf canvas.ready ~ .pdf-label { position:absolute; top:10px; right:10px; font:600 10px var(--font-sans); letter-spacing:.08em; font-style:normal; background:var(--ink); color:var(--gold); padding:4px 8px; border-radius:2px; }
.poster-card .poster-info { padding:16px 18px; }
.poster-card h3 { font:500 20px var(--font-display); margin:0 0 6px; }
.poster-card p { font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#6a746f; margin:0; }
footer { position:relative; background:#101f1c; color:white; padding:70px 7vw 100px; display:grid; grid-template-columns:2fr 1fr 1fr; gap:50px; }.footer-brand { align-self:start; }.footer-brand .brand-mark { width:56px;height:56px;}.footer-brand b{font-size:26px} footer strong { display:block; color:var(--gold); text-transform:uppercase; letter-spacing:.14em; font-size:10px; margin-bottom:18px; } footer p,footer a { display:block; color:#aab4b0; font-size:11px; line-height:1.8; margin:4px 0; }.copyright { position:absolute; bottom:24px; left:7vw; font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.comms-badge { position:fixed; right:18px; bottom:18px; z-index:50; background:var(--ink); color:var(--gold); font-family:var(--font-sans); font-size:10px; letter-spacing:.1em; text-transform:uppercase; padding:11px 16px; border:1px solid var(--gold); border-radius:3px; text-decoration:none; box-shadow:0 4px 18px #0004; opacity:.88; }
.comms-badge:hover { opacity:1; }
@media (max-width:900px){nav{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding-top:155px;min-height:700px}.hero-art{min-height:600px}.intro{grid-template-columns:1fr}.intro aside{max-width:320px}.pillars{grid-template-columns:1fr}.pillars article,.pillars article+article{padding:35px 0;border-right:0;border-bottom:1px solid var(--line)}.impact-grid{grid-template-columns:1fr}.stat{border-left:0;padding:30px 0 0;border-top:1px solid #ffffff29}.officer-columns{grid-template-columns:1fr}.symbol-grid{grid-template-columns:1fr}.symbol-grid article,.symbol-grid article+article{padding:35px 0;border-right:0;border-bottom:1px solid var(--line)}footer{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media (max-width:600px){.site-header{padding:0 20px; height:92px}.button-small{display:none}.hero-copy{padding:145px 22px 60px}.hero-actions{align-items:stretch;flex-direction:column}.hero-note{position:static;margin-top:70px}.hero-art{min-height:520px}.sun{width:210px;height:210px}.degree{font-size:46px}.intro,.events,.impact,.symbols{padding:80px 22px}.pillars{margin:0 22px 80px}.events-head{align-items:start;flex-direction:column;gap:22px}.event-list article{grid-template-columns:80px 1fr 40px}.date strong{font-size:38px}.join{padding:90px 22px}footer{grid-template-columns:1fr;padding:60px 22px 100px}.copyright{left:22px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
