@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--navy:#0d1c2a;--navy2:#132b3b;--ink:#17252f;--muted:#647481;--gold:#c89c4a;--cream:#f7f5f0;--line:#dde2e4;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}a{text-decoration:none;color:inherit}button,input,textarea{font:inherit}.site-header{height:84px;max-width:1240px;margin:auto;padding:0 34px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;color:var(--navy)}.brand-mark{width:38px;height:38px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;font:600 19px 'Playfair Display';color:var(--gold)}.brand b{display:block;font:600 16px 'Playfair Display'}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.12em;text-transform:uppercase;margin-top:2px}.site-header nav{display:flex;gap:34px;color:#4e5d66;font-size:12px}.site-header nav a:hover{color:var(--gold)}.outline-button{border:1px solid #cfd6d8;padding:11px 15px;font-size:12px}.hero{max-width:1240px;margin:auto;min-height:570px;padding:54px 34px 60px;display:grid;grid-template-columns:54% 46%;align-items:center}.eyebrow,.section-kicker{color:var(--gold);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.17em}.hero h1{font:500 clamp(48px,6.3vw,82px)/.98 'Playfair Display';letter-spacing:-.045em;color:var(--navy);margin:24px 0}.hero h1 em,h2 em{color:var(--gold);font-style:italic}.hero p{max-width:440px;color:var(--muted);font-size:15px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:30px}.gold-button{display:inline-block;border:0;background:var(--gold);color:#152632;padding:13px 20px;font-weight:600;font-size:12px;cursor:pointer}.text-link{font-size:12px;border-bottom:1px solid var(--gold);padding-bottom:4px}.hero-art{background:var(--navy);min-height:430px;display:grid;place-items:center;position:relative}.compass{width:230px;height:230px;border:2px solid var(--gold);display:grid;place-items:center;color:var(--gold);font:600 64px 'Playfair Display';transform:rotate(45deg)}.compass small{font-size:20px;transform:rotate(-45deg);margin-left:80px;margin-top:85px}.hero-caption{position:absolute;bottom:20px;color:#ffffff80;text-transform:uppercase;letter-spacing:.2em;font-size:9px}.statement{max-width:1240px;margin:auto;padding:105px 34px 115px}.statement h2,.calendar h2{font:500 clamp(35px,4vw,51px)/1.1 'Playfair Display';letter-spacing:-.04em;color:var(--navy);margin:13px 0 42px}.statement-grid{display:grid;grid-template-columns:38% 1fr;gap:12%}.statement-grid>p{color:var(--muted);line-height:1.9;font-size:14px}.values{border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr)}.values>div{padding:20px 18px 10px 0;border-right:1px solid var(--line)}.values>div:not(:first-child){padding-left:22px}.values>div:last-child{border:0}.values b{display:block;color:var(--gold);font-size:10px;margin-bottom:14px}.values h3{font:600 17px 'Playfair Display';margin:0;color:var(--navy)}.values small{display:block;color:var(--muted);line-height:1.5;font-size:11px;margin-top:5px}.calendar{background:#eef0ed;padding:86px max(34px,calc((100% - 1172px)/2)) 96px}.calendar h2{margin-bottom:42px}.event-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.event-card{background:#fff;padding:28px 25px;min-height:250px;display:flex;flex-direction:column;justify-content:space-between}.event-date{display:flex;gap:8px;align-items:baseline}.event-date b{font:500 32px 'Playfair Display';color:var(--gold)}.event-date small{color:var(--muted);font-size:10px;text-transform:uppercase}.event-card h3{font:500 22px/1.15 'Playfair Display';margin:8px 0 10px}.event-card p{color:var(--muted);font-size:12px;line-height:1.6}.event-card>div:last-child>small{color:var(--muted);font-size:10px}.join{background:var(--navy2);color:#fff;padding:95px max(34px,calc((100% - 1172px)/2));display:grid;grid-template-columns:1fr 1fr;gap:14%}.join h2{font:500 clamp(40px,4vw,58px)/1.03 'Playfair Display';margin:15px 0 22px}.join p{color:#ffffffa8;font-size:14px;line-height:1.8;max-width:370px}.form-box{background:#f9f8f4;color:var(--ink);padding:30px}.form-box form{display:grid;gap:12px}.form-box input,.form-box textarea,.auth-card input,.rsvp-form input{border:1px solid #dfe4e1;border-radius:0;background:#fff;font-size:12px;padding:12px;width:100%}.form-box textarea{min-height:95px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}footer{background:#081621;color:white;padding:48px max(34px,calc((100% - 1172px)/2));display:flex;align-items:center;justify-content:space-between}.footer-copy{color:#ffffff80;font-size:10px}.auth-page{min-height:calc(100vh - 84px);display:grid;place-items:center}.auth-card{width:min(430px,calc(100% - 40px));background:#fff;border:1px solid var(--line);padding:36px}.auth-card h1{font:500 39px 'Playfair Display';color:var(--navy);margin:12px 0}.auth-card p{color:var(--muted);font-size:13px;margin-bottom:26px}.auth-card form{display:grid;gap:15px}.auth-card label,.rsvp-form label{display:grid;gap:6px;color:var(--muted);font-size:11px}.auth-card .gold-button{width:100%;margin-top:8px}.back-link{display:block;margin-top:24px;color:var(--muted);font-size:11px}.alert,.flash{padding:12px;background:#f6ecd6;color:#6e5326;font-size:12px;margin-bottom:15px}.success{background:#e6f1e8;color:#3a6d46}.portal-body{background:#f4f5f1}.portal-wrap{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--navy);color:#fff;padding:28px 20px;display:flex;flex-direction:column;flex-shrink:0}.sidebar .brand{color:white}.sidebar .brand small{color:#ffffff80}.profile{margin:54px 8px 30px;display:flex;gap:11px;align-items:center}.avatar{width:37px;height:37px;border-radius:50%;background:var(--gold);color:var(--navy);display:grid;place-items:center;font:600 13px 'Playfair Display'}.profile b{display:block;font:500 13px 'Playfair Display'}.profile small{display:block;color:#ffffff80;font-size:9px;margin-top:3px}.side-nav{display:grid;gap:4px}.side-nav a{color:#ffffff94;padding:12px 10px;font-size:12px}.side-nav a.active,.side-nav a:hover{background:#ffffff14;color:var(--gold)}.side-bottom{margin-top:auto;border-top:1px solid #ffffff19;padding:20px 10px 0;display:grid;gap:15px}.side-bottom a,.side-bottom button{border:0;background:none;color:#ffffff80;font-size:11px;text-align:left}.portal-content{width:100%;min-width:0}.portal-top{min-height:96px;padding:23px max(28px,5vw);display:flex;justify-content:space-between;align-items:center;background:#f8f8f5;border-bottom:1px solid var(--line)}.portal-top h1{font:500 28px 'Playfair Display';margin:7px 0;color:var(--navy)}.portal-user{color:var(--muted);font-size:11px}.flash{margin:20px max(28px,5vw) 0}.welcome{margin:30px max(28px,5vw) 0;padding:36px 42px;background:var(--navy2);color:#fff;display:flex;align-items:center;justify-content:space-between}.welcome h2,.dues-banner h2{font:500 33px 'Playfair Display';margin:9px 0 6px}.welcome p,.dues-banner p{font-size:12px;color:#ffffff8f;margin:0}.seal{width:82px;height:82px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font:500 30px 'Playfair Display'}.seal small{font-size:14px}.stats{margin:17px max(28px,5vw) 0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stats>div{background:#fff;padding:20px;border:1px solid #e5e8e5}.stats small{display:block;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:8px}.stats b{display:block;color:var(--navy);font:500 20px 'Playfair Display';margin-top:5px}.stats em{color:var(--muted);font-size:10px;font-style:normal}.content-grid{margin:17px max(28px,5vw) 50px;display:grid;grid-template-columns:1.3fr 1fr;gap:14px}.panel{padding:26px;background:#fff;border:1px solid #e5e8e5}.panel-heading{display:flex;justify-content:space-between;margin-bottom:18px}.panel-heading h2{font:500 22px 'Playfair Display';color:var(--navy);margin:8px 0}.panel-heading a{color:var(--gold);font-size:10px}.event-row{display:grid;grid-template-columns:43px 1fr auto;gap:13px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.date-box{width:43px;height:43px;background:#f4f0e5;display:grid;place-items:center;align-content:center}.date-box b{color:var(--navy);font:500 18px 'Playfair Display';line-height:1}.date-box small{color:var(--gold);font-size:8px;text-transform:uppercase}.event-row>div:nth-child(2)>b{display:block;color:var(--navy);font:500 14px 'Playfair Display'}.event-row small,.news-row small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.small-button{border:1px solid var(--gold);padding:8px 10px;font-size:10px;color:var(--navy)}.news-row{border-top:1px solid var(--line);padding:16px 0}.muted{color:var(--muted);font-size:12px;line-height:1.6}.list{margin:30px max(28px,5vw) 60px;display:grid;gap:14px}.list-item{background:#fff;border:1px solid #e5e8e5;padding:28px;display:grid;grid-template-columns:65px 1fr auto;gap:22px;align-items:center}.date-box.large{width:65px;height:65px}.date-box.large b{font-size:27px}.list-item h2,.news-article h2{font:500 23px 'Playfair Display';color:var(--navy);margin:6px 0}.list-item p,.news-article p{color:var(--muted);font-size:12px;line-height:1.7}.list-item small{color:var(--muted);font-size:10px}.rsvp-form{display:flex;align-items:end;gap:10px}.rsvp-form input{width:55px}.news-article{background:#fff;border:1px solid #e5e8e5;padding:28px 32px}.empty{background:#fff;border:1px solid #e5e8e5;padding:50px;text-align:center;color:var(--muted);font-size:13px}.dues-banner{background:var(--navy2);color:#fff;padding:28px 32px}
@media(max-width:800px){.site-header{padding:0 20px}.site-header nav,.site-header .outline-button{display:none}.hero{display:block;padding:35px 20px 45px}.hero h1{font-size:52px}.hero-art{margin-top:48px}.statement{padding:70px 20px}.statement-grid{grid-template-columns:1fr;gap:40px}.calendar,.join{padding:68px 20px}.event-grid,.join{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}footer{padding:38px 20px;display:grid;gap:20px}.portal-wrap{display:block}.sidebar{position:fixed;inset:0 auto 0 0;z-index:5;transform:translateX(-100%)}.portal-top{padding:18px 20px}.welcome,.stats,.content-grid,.list{margin-left:20px;margin-right:20px}.welcome{padding:25px}.stats,.content-grid{grid-template-columns:1fr}.list-item{grid-template-columns:50px 1fr}.rsvp-form{grid-column:2}}
