@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap";:root{--ink:#10291f;--moss:#1f4a38;--cream:#f6f1e8;--paper:#fffdf8;--gold:#d5a548;--line:#dedacf;--muted:#657067}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:DM Sans,sans-serif}button,a{font:inherit}button{cursor:pointer;border:0}a{text-decoration:none;color:inherit}header{height:84px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;font-weight:700;line-height:1}.brand b{color:var(--gold)}.brand small{display:block;font:10px DM Mono;letter-spacing:.12em;color:#788078;margin-top:5px;text-transform:uppercase}.crest{width:37px;height:42px;background:var(--moss);color:#f7e5b9;display:grid;place-items:center;font:700 13px DM Mono;clip-path:polygon(50% 0,95% 15%,95% 68%,50% 100%,5% 68%,5% 15%)}nav{display:flex;gap:28px;font-size:14px;font-weight:500}nav a:hover,.underlined:hover{color:#a1701a}.header-actions{display:flex;align-items:center;gap:11px}.dark-button,.gold-button,.outline-button{display:inline-flex;gap:9px;align-items:center;justify-content:center;padding:13px 19px;border-radius:2px;font-size:13px;font-weight:700}.dark-button{background:var(--ink);color:#fff}.gold-button{background:var(--gold);color:#132d23}.outline-button{border:1px solid var(--ink);background:transparent}.member{display:flex;align-items:center;gap:7px;background:#eaf0e9;padding:7px 10px;border-radius:20px;font-size:12px;font-weight:700}.member img{width:24px;height:24px;border-radius:50%}.menu-button{display:none;background:none}.hero{min-height:590px;background:var(--ink);color:#fffaf0;display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden}.hero-copy{padding:104px 8vw}.eyebrow{color:var(--gold);font:500 11px DM Mono;letter-spacing:.14em;text-transform:uppercase;margin:0 0 17px}.hero h1,h2{font:700 clamp(40px,5vw,70px)/1.05 "Playfair Display",serif;letter-spacing:-.035em;margin:0}.hero h1 em{color:#e5bf71}.lead{max-width:470px;font-size:17px;line-height:1.65;color:#ced7d0;margin:25px 0 31px}.hero-buttons{display:flex;align-items:center;gap:25px}.text-button{font-size:14px;display:flex;align-items:center;gap:3px}.hero-art{background:#183c2e;position:relative;overflow:hidden}.sun{position:absolute;width:580px;height:580px;border:1px solid rgba(224,187,107,.25);border-radius:50%;top:70px;left:14%}.sun:before,.sun:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(224,187,107,.16);top:45px;right:45px;bottom:45px;left:45px}.sun:after{top:90px;right:90px;bottom:90px;left:90px}.school-card{position:absolute;top:115px;left:21%;padding:41px;background:#f6f0e3;color:var(--ink);width:290px;box-shadow:20px 20px #081e1647;transform:rotate(-4deg)}.school-card span{font:10px DM Mono;letter-spacing:.13em;color:#887148}.school-card strong{font:700 39px/1 Playfair Display;display:block;margin:16px 0 27px}.school-card i{font-size:10px;letter-spacing:.04em}.years{position:absolute;right:9%;bottom:63px;font:70px/.8 Playfair Display;color:#e1b65e}.years small{font:10px DM Mono;letter-spacing:.15em}.intro{max-width:900px;margin:0 auto;padding:120px 30px;text-align:center}.intro h2,.community h2,.section-heading h2,.join h2{font-size:48px}.intro>p:not(.eyebrow){color:var(--muted);font-size:17px;line-height:1.7;max-width:640px;margin:28px auto}.underlined{border-bottom:1px solid var(--ink);padding-bottom:5px;display:inline-flex;gap:6px;align-items:center;font-size:13px;font-weight:700}.numbers{display:grid;grid-template-columns:repeat(4,1fr);margin:0 6vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.numbers div{padding:31px 20px;border-right:1px solid var(--line)}.numbers div:last-child{border:0}.numbers strong{font:600 33px Playfair Display;display:block}.numbers span{font-size:12px;color:var(--muted)}.community{padding:120px 8vw;background:var(--paper);display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.feature-grid article{padding:25px 18px;background:var(--cream)}.feature-grid svg{color:var(--gold)}.feature-grid h3{font:600 19px Playfair Display;margin:39px 0 10px}.feature-grid p{font-size:13px;line-height:1.55;color:var(--muted)}.elections{padding:115px 8vw}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.section-heading h2{margin-bottom:10px}.section-heading>div>p:last-child{color:var(--muted);margin:0}.election-banner{background:var(--moss);padding:34px 39px;color:#f8f4e8;display:flex;justify-content:space-between;gap:25px}.pill{font:10px DM Mono;text-transform:uppercase;letter-spacing:.12em;padding:7px 9px;background:#dcb65f;color:var(--ink)}.pill.active{background:#d1e2cb}.election-banner h3{font:600 30px Playfair Display;margin:16px 0 9px}.election-banner p{margin:0;color:#d5e0d7;font-size:14px}.election-dates{display:flex;gap:10px;align-items:center;min-width:210px;border-left:1px solid rgba(255,255,255,.25);padding-left:27px}.election-dates b,.election-dates small{display:block;font-size:13px}.election-dates small{color:#ccd8ce;margin-top:5px}.ballots{background:var(--paper)}.ballot{padding:30px 38px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:190px 1fr;gap:25px}.ballot-title span{font:10px DM Mono;color:#8c907e}.ballot-title h3{font:600 25px Playfair Display;margin:8px 0}.ballot-title small{color:var(--muted);font-size:12px}.candidates{display:grid;gap:11px}.candidate{display:flex;align-items:center;gap:13px;border:1px solid var(--line);padding:13px}.avatar{width:39px;height:39px;border-radius:50%;background:#e5d1a4;display:grid;place-items:center;font:11px DM Mono;flex:none}.candidate div:nth-child(2){flex:1}.candidate b{font-size:14px}.candidate p{font-size:12px;color:var(--muted);margin:3px 0 0}.candidate button{font-size:12px;font-weight:700;padding:8px 13px;background:var(--ink);color:#fff}.integrity{display:flex;gap:12px;align-items:center;margin-top:19px;font-size:12px;color:#59685d}.integrity svg{color:var(--moss);flex:none}.empty{text-align:center;padding:65px}.empty svg{color:var(--gold)}.empty h3{font:24px Playfair Display}.empty p{font-size:14px;color:var(--muted)}.join{background:#e6d2a5;text-align:center;padding:105px 25px}.join .eyebrow{color:#78551c}.join h2{font-size:54px}.join>p:not(.eyebrow){max-width:480px;margin:20px auto 27px;line-height:1.6;color:#4f503e}footer{padding:38px 7vw;background:var(--ink);color:#e4e9df;display:flex;justify-content:space-between;align-items:center;font-size:12px}footer a{color:#e4be70}.toast{position:fixed;right:25px;bottom:25px;background:var(--ink);color:#fff;padding:14px;display:flex;gap:10px;align-items:center;max-width:420px;z-index:30;box-shadow:0 8px 25px #0003;font-size:13px}.toast svg{color:#e2b655}.toast button{color:#fff;background:none;margin-left:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10291fb9;z-index:40;display:grid;place-items:center;padding:20px}.modal{position:relative;background:var(--paper);padding:38px;width:min(510px,100%)}.modal h2{font-size:35px;margin-bottom:25px}.modal label{display:block;font-size:12px;font-weight:700;margin:13px 0}.modal input,.modal textarea{margin-top:6px;width:100%;padding:11px;border:1px solid var(--line);background:#fff;font:14px DM Sans}.modal textarea{min-height:90px;resize:vertical}.modal .two{display:grid;grid-template-columns:1fr 1fr;gap:13px}.close{position:absolute;right:14px;top:14px;background:none}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:800px){header{height:70px;padding:0 5vw}nav{display:none;position:absolute;left:0;right:0;top:69px;background:var(--paper);padding:20px;flex-direction:column;border-bottom:1px solid var(--line)}nav.open{display:flex}.menu-button{display:block}.header-actions .dark-button{padding:10px;font-size:0}.hero{grid-template-columns:1fr}.hero-copy{padding:76px 8vw 65px}.hero-art{min-height:330px}.school-card{top:44px;left:25%;transform:scale(.8) rotate(-4deg);transform-origin:top left}.years{font-size:50px;bottom:35px}.intro{padding:75px 25px}.intro h2,.community h2,.section-heading h2{font-size:39px}.numbers{grid-template-columns:repeat(2,1fr)}.numbers div:nth-child(2){border-right:0}.numbers div:nth-child(-n+2){border-bottom:1px solid var(--line)}.community{padding:75px 7vw;grid-template-columns:1fr;gap:35px}.feature-grid{grid-template-columns:1fr}.section-heading{align-items:start;gap:15px;flex-direction:column}.elections{padding:75px 5vw}.election-banner{padding:28px;display:block}.election-dates{border-left:0;border-top:1px solid #ffffff3b;margin-top:24px;padding:18px 0 0}.ballot{padding:28px 20px;grid-template-columns:1fr}.candidate{align-items:flex-start}.candidate button{align-self:center}.join{padding:75px 20px}.join h2{font-size:44px}footer{gap:22px;align-items:flex-start;flex-direction:column}.header-actions .member{max-width:130px;overflow:hidden}.modal{padding:30px 21px}}.modal select{margin-top:6px;width:100%;padding:11px;border:1px solid var(--line);background:#fff;font:14px DM Sans}.positions{margin:19px 0}.positions>b,.positions>small{display:block}.positions>small{font-size:11px;color:var(--muted);margin:4px 0 9px}.position-entry{display:grid;grid-template-columns:1fr 1.25fr;gap:8px;margin-top:7px}.position-entry input{margin:0}.add-position{margin-top:10px;padding:0;background:none;color:var(--moss);font-size:12px;font-weight:700;display:flex;gap:4px;align-items:center}@media(max-width:800px){.position-entry{grid-template-columns:1fr}}.auth-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;grid-template-columns:1fr 1fr;background:var(--paper)}.auth-close{position:absolute;right:24px;top:24px;z-index:2;background:none;color:var(--ink)}.auth-welcome{background:var(--ink);color:#fffaf0;padding:52px 11%;display:flex;flex-direction:column;justify-content:space-between}.auth-welcome .brand{color:#fff}.auth-welcome>div{margin-top:auto;margin-bottom:auto}.auth-welcome h1{font-size:clamp(42px,4.5vw,66px)}.auth-welcome h1 em{color:#e4bb66}.auth-welcome>div>p:not(.eyebrow){max-width:390px;color:#c9d3c9;line-height:1.65}.auth-motto{font:italic 25px Playfair Display;color:#e2b75e}.auth-form-wrap{display:grid;place-items:center;padding:60px 30px;overflow:auto}.auth-card{width:min(410px,100%)}.auth-card h2{font-size:42px}.auth-subtitle{color:var(--muted);font-size:14px;line-height:1.5;margin:14px 0 24px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:20px}.auth-tabs button{background:none;padding:11px;color:var(--muted);font-size:13px;font-weight:700}.auth-tabs button.selected{color:var(--ink);border-bottom:2px solid var(--gold)}.auth-card label{display:block;font-size:12px;font-weight:700;margin:14px 0}.auth-card input{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid var(--line);background:#fff;font:14px DM Sans}.auth-submit{width:100%;margin-top:10px}.auth-error,.auth-success{font-size:12px;line-height:1.4;margin:8px 0}.auth-error{color:#9e2a1d}.auth-success{color:#356a3e}.forgot{padding:13px 0 0;background:none;color:var(--moss);font-size:12px;font-weight:700}.auth-foot{margin-top:28px;padding-top:16px;border-top:1px solid var(--line);font-size:11px;line-height:1.5;color:var(--muted)}@media(max-width:800px){.auth-page{grid-template-columns:1fr}.auth-welcome{display:none}.auth-form-wrap{padding:70px 25px 30px}.auth-close{top:17px;right:17px}}.ballot-manager{max-height:min(760px,90vh);overflow:auto}.ballot-manager h3{font:600 21px Playfair Display;margin:28px 0 8px}.manager-election{font-size:13px;color:var(--muted);margin:0}.aspirant-form{margin-top:25px;padding-top:2px;border-top:1px solid var(--line)}.manager-help{font-size:13px;color:var(--muted)}.role-note{font-size:12px!important;line-height:1.45;color:#7d5d26!important;margin-top:13px!important}.no-election{padding:56px 38px;background:var(--paper);border:1px dashed #cfc6b4;display:flex;align-items:center;gap:18px}.no-election>svg{width:36px;height:36px;color:var(--gold);flex:none}.no-election div{flex:1}.no-election h3{font:600 25px Playfair Display;margin:0 0 7px}.no-election p{font-size:13px;line-height:1.5;color:var(--muted);margin:0;max-width:580px}@media(max-width:800px){.no-election{padding:35px 22px;align-items:flex-start;flex-wrap:wrap}.no-election .dark-button{margin-left:54px}}.admin-dashboard{background:var(--ink);color:#f8f2e7;padding:92px 8vw}.admin-heading{display:flex;justify-content:space-between;align-items:start;gap:25px}.admin-heading h2{font-size:48px}.admin-heading>div>p:last-child{color:#c8d3c8;margin:12px 0 0}.admin-badge{display:flex;align-items:center;gap:7px;background:#e2b85f;color:var(--ink);padding:9px 12px;font:600 11px DM Mono;letter-spacing:.06em;text-transform:uppercase}.admin-error{background:#79342b;color:#fff1e9;padding:12px;font-size:13px}.admin-tabs{display:flex;gap:5px;border-bottom:1px solid #ffffff2b;margin:39px 0 27px}.admin-tabs button{padding:12px 15px;background:none;color:#bfcec1;font-size:13px;font-weight:700}.admin-tabs button.active{color:#fff;border-bottom:2px solid var(--gold)}.admin-tabs span{font:10px DM Mono;background:#ffffff1f;border-radius:20px;padding:2px 5px;margin-left:3px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-grid article{background:#1b4031;padding:23px}.stat-grid span,.stat-grid small{display:block;color:#c0d0c3;font-size:12px}.stat-grid strong{display:block;font:600 31px Playfair Display;margin:12px 0 8px;color:#f7f1e6}.admin-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.admin-shortcuts button{display:flex;justify-content:space-between;align-items:center;padding:18px;background:#f3ead9;color:var(--ink);font-size:13px;font-weight:700;text-align:left}.admin-table-wrap,.election-admin-list{background:#fffdf8;color:var(--ink);padding:26px}.table-title{display:flex;justify-content:space-between;align-items:start;gap:15px;margin-bottom:18px}.table-title h3{font:600 24px Playfair Display;margin:0 0 4px}.table-title span{font-size:12px;color:var(--muted)}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font:500 10px DM Mono;letter-spacing:.09em;text-transform:uppercase;color:#7b8379;padding:11px;border-bottom:1px solid var(--line)}td{padding:12px 11px;border-bottom:1px solid #ebe7de}td b,td small{display:block}td small{font-size:11px;color:var(--muted);margin-top:3px}td select{padding:7px;border:1px solid var(--line);background:#fff;font-size:12px}.no-rows{text-align:center!important;padding:28px;color:var(--muted)}.finance-total{background:#eee0bc;padding:20px;margin-bottom:19px}.finance-total span,.finance-total small{display:block;font-size:12px;color:#5c5949}.finance-total strong{font:600 31px Playfair Display;display:block;margin:5px 0}.verified-pill,.pending-pill{font-size:10px;font-weight:700;padding:5px 7px;text-transform:uppercase}.verified-pill{background:#dcebd7;color:#27532e}.pending-pill{background:#f0e1b6;color:#735619}.election-admin-list>article{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:19px 0;border-top:1px solid var(--line)}.election-admin-list>article h3{font:600 22px Playfair Display;margin:9px 0 4px}.election-admin-list>article p{font-size:12px;color:var(--muted);margin:0}@media(max-width:800px){.admin-dashboard{padding:70px 5vw}.admin-heading{display:block}.admin-badge{margin-top:18px;width:max-content}.stat-grid,.admin-shortcuts{grid-template-columns:1fr}.admin-tabs{overflow:auto}.admin-tabs button{white-space:nowrap}.admin-table-wrap{overflow:auto;padding:18px}.admin-table-wrap table{min-width:670px}.election-admin-list>article{align-items:flex-start;flex-direction:column}}.grouped-ledger{padding:0;overflow:auto;background:#183d2e;color:#fffdf3}.grouped-ledger .table-title{padding:27px 28px 18px;margin:0;align-items:center}.grouped-ledger .table-title h3,.grouped-ledger .table-title span{color:#fff}.grouped-ledger .table-title span{color:#d7e3d9}.grouped-ledger .table-title>b{font:600 20px DM Sans;white-space:nowrap}.grouped-ledger table{min-width:900px;background:#071d145e}.grouped-ledger th{color:#f4eee1;border-color:#ffffff52;white-space:nowrap;padding:14px 18px}.grouped-ledger td{color:#fffdf3;border-color:#ffffff42;padding:15px 18px;white-space:nowrap}.grouped-ledger td small{color:#d4e0d5}.grouped-ledger tfoot th{color:#f0c86e;background:#0f2b20;font-family:DM Sans;font-size:12px;text-transform:none;letter-spacing:0}@media(max-width:800px){.grouped-ledger .table-title{padding:21px;align-items:flex-start;flex-direction:column}.grouped-ledger .table-title>b{font-size:15px}}.admin-header>div{display:flex;align-items:center;gap:20px}.portal-label{font:500 10px DM Mono;letter-spacing:.13em;color:#8c7650}.back-link{font-size:13px;font-weight:700}.admin-access{min-height:calc(100vh - 84px);background:var(--ink);color:#fff8ec;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:70px 25px}.admin-access>svg{width:44px;height:44px;color:var(--gold);margin-bottom:20px}.admin-access h1{font:600 clamp(39px,5vw,65px)/1.05 "Playfair Display";margin:0}.admin-access>p:not(.eyebrow){max-width:500px;line-height:1.6;color:#d0d9d0;margin:20px 0 28px}@media(max-width:800px){.admin-header>div{gap:11px}.portal-label{display:none}.back-link{font-size:12px}}
