@font-face{font-family:Bebas Neue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2039e8342bda6056-s.1iie40g0-cbk2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bebas Neue;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fabcf92ba1ccea36-s.p.3jvga4rcv46fc.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bebas Neue Fallback;src:local(Arial);ascent-override:117.32%;descent-override:39.11%;line-gap-override:0.0%;size-adjust:76.72%}.bebas_neue_d423d9f0-module__jt1vUG__className{font-family:Bebas Neue,Bebas Neue Fallback;font-style:normal;font-weight:400}.bebas_neue_d423d9f0-module__jt1vUG__variable{--font-display:"Bebas Neue", "Bebas Neue Fallback"}
@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/0b1dc8ddaa74ba49-s.1w1m1wqmjasxa.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/e629b5bc06499d58-s.1y3v-klcv8xov.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/1a099d89ee94ee96-s.15dvesjzf7814.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/fba5a26ea33df6a3-s.p.08ssgmy_tb90r.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Fallback;src:local(Arial);ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.0%;size-adjust:104.98%}.plus_jakarta_sans_16dd2380-module__ZuIWhG__className{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.plus_jakarta_sans_16dd2380-module__ZuIWhG__variable{--font-body:"Plus Jakarta Sans", "Plus Jakarta Sans Fallback"}
:root{--navy:#0d1b2a;--navy-2:#14223a;--navy-3:#1c2c47;--gold:#fdd835;--gold-dim:#e6c42c;--warm:#f8f7f4;--ink:#1a1a2e;--ink-2:#4a4d63;--white:#fff;--line:#0d1b2a1a;--line-on-navy:#ffffff1f;--shadow:0 16px 40px #0d1b2a24;--radius:4px;--wrap:1120px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body), "Plus Jakarta Sans", sans-serif;color:var(--ink);background:var(--warm);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;font-weight:400;line-height:1.7}img{max-width:100%;height:auto;display:block}a{color:inherit}h1,h2,h3,p{margin:0}button,input,textarea,select{font-family:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.skip{z-index:100;background:var(--gold);color:var(--ink);padding:8px 12px;font-size:13px;font-weight:600;text-decoration:none;position:absolute;top:-40px;left:12px}.skip:focus{top:8px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:min(var(--wrap), calc(100% - 48px));margin-inline:auto}.site-header{background:var(--navy);z-index:50;min-height:72px;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:72px;display:flex}.logo{flex-shrink:0;align-items:center;text-decoration:none;display:flex}.logo img{filter:invert();width:auto;height:28px}.event-name{color:var(--white);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:600}.header-nav{align-items:center;gap:18px;display:flex}.header-nav a{color:var(--white);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:700;text-decoration:none}.header-nav a:hover,.header-nav a[aria-current=page]{color:var(--gold)}.hero{background:var(--navy);color:var(--white)}.hero-copy{max-width:820px;padding:72px 0 64px}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:18px;font-size:12px;font-weight:600}.hero h1{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;margin-bottom:20px;font-size:clamp(42px,7vw,76px);font-weight:400;line-height:1.05}.accent{color:var(--gold)}.hero-dek{color:#ffffffd1;max-width:42em;margin-bottom:24px;font-size:18px;line-height:1.65}.hero-link{color:var(--gold);text-underline-offset:3px;font-size:15px;font-weight:600;text-decoration:underline}.hero-link:hover{color:var(--gold-dim)}.wifi{background:var(--navy-2);color:var(--white);border-top:1px solid var(--line-on-navy);padding:22px 0}.wifi-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 14px;font-size:12px;font-weight:600}.wifi-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px;margin:0;display:grid}.wifi-list dt{letter-spacing:.14em;text-transform:uppercase;color:#ffffff9e;margin-bottom:4px;font-size:11px;font-weight:600}.wifi-list dd{-webkit-user-select:all;user-select:all;margin:0;font-size:16px;font-weight:600}.section{padding:72px 0}.section-warm{background:var(--warm);color:var(--ink)}.form-section{padding-top:0}.community{background:var(--navy);color:var(--white);padding:64px 0}.community-inner{max-width:640px}.community-kicker{color:var(--gold)}.community h2{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;margin-bottom:16px;font-size:clamp(36px,5vw,52px);font-weight:400;line-height:1.08}.community-dek{color:#ffffffd1;max-width:36em;margin-bottom:28px}.community-cta{width:auto;margin-top:0}.community-directory{background:var(--navy-2);border-top:1px solid var(--line-on-navy)}.directory-list{gap:20px;margin:32px 0 0;padding:0;list-style:none;display:grid}@media (min-width:720px){.directory-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.directory-card{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--navy);flex-direction:column;gap:20px;padding:24px 24px 20px;display:flex;box-shadow:0 4px 16px #0d1b2a0f}.directory-card-body{flex:1}.directory-team{font-family:var(--font-body), "Plus Jakarta Sans", sans-serif;letter-spacing:0;text-transform:none;color:var(--navy);margin-bottom:6px;font-size:22px;font-weight:700;line-height:1.2}.directory-project{color:var(--ink-2);margin-bottom:14px;font-size:15px;line-height:1.5}.directory-members{color:var(--ink);flex-wrap:wrap;gap:8px;margin:0 0 14px;padding:0;list-style:none;display:flex}.directory-members li{background:var(--warm);border:1px solid var(--line);padding:5px 12px;font-size:14px;font-weight:600}.directory-members-lg{margin-bottom:20px;font-size:17px}.directory-members-lg li{padding:6px 14px;font-size:15px}.directory-link{margin:0}.directory-link a{color:var(--navy-3);text-underline-offset:3px;font-size:14px;font-weight:600;text-decoration:underline}.directory-link a:hover{color:var(--ink)}.directory-certs-link{width:100%;margin-top:0;text-decoration:none}.cert-slot-list{border-top:1px solid var(--line);margin-top:36px;padding-top:28px}.cert-slot-heading{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:.5px;text-transform:uppercase;color:var(--navy);margin:0 0 14px;font-size:28px}.cert-slot-heading:not(:first-child){margin-top:32px}.cert-slot-list-inner{gap:16px;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.cert-slot-list-inner{grid-template-columns:repeat(2,minmax(0,1fr))}}.cert-slot{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--gold);padding:22px 24px 20px;box-shadow:0 4px 16px #0d1b2a0f}.cert-slot-team{border-left-color:var(--navy);max-width:480px}.cert-slot-label{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px;font-size:11px;font-weight:600}.cert-slot-name{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:.5px;text-transform:uppercase;color:var(--navy);margin-bottom:10px;font-size:26px;font-weight:400;line-height:1.1}.cert-slot-award{background:var(--gold);color:var(--navy);letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px;padding:6px 14px;font-size:12px;font-weight:700;display:inline-block}.cert-slot-pending{color:var(--ink-2);background:var(--warm);border:1px dashed var(--line);max-width:36em;padding:20px 24px;font-size:16px}.cert-share-page{padding:36px 0 72px}.cert-share-wrap{max-width:1100px}.cert-share-lede{max-width:40em;color:var(--ink-2);margin-bottom:20px}.cert-share-actions{flex-wrap:wrap;gap:10px;margin-bottom:28px;display:flex}.cert-share-actions .btn{width:auto;margin-top:0}.cert-share-back{margin-top:24px}.cert-share-back a{color:var(--navy-3);text-underline-offset:3px;font-size:14px;font-weight:600;text-decoration:underline}.cert-frame{aspect-ratio:11/8.5;background:var(--warm);width:100%;color:var(--navy);-webkit-print-color-adjust:exact;print-color-adjust:exact}.cert-frame-gold{border:4px solid var(--navy);height:100%;padding:6px}.cert-frame-inner{border:1.5px solid var(--gold);text-align:center;flex-direction:column;justify-content:space-between;align-items:center;height:100%;padding:clamp(18px,3.4vw,36px) clamp(22px,4vw,48px);display:flex}.cert-frame-header{flex-direction:column;align-items:center;gap:8px;display:flex}.cert-frame-wordmark{width:min(220px,36%);height:auto}.cert-frame-event{letter-spacing:.12em;text-transform:uppercase;color:var(--navy);opacity:.75;font-size:clamp(10px,1.15vw,13px)}.cert-frame-ornament{justify-content:center;align-items:center;gap:10px;width:min(220px,40%);display:flex}.cert-frame-ornament span{background:var(--gold);flex:1;height:1px}.cert-frame-ornament i{background:var(--navy);border-radius:50%;width:6px;height:6px}.cert-frame-kicker{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:.16em;text-transform:uppercase;font-size:clamp(28px,4.2vw,42px);line-height:1}.cert-frame-certifies{font-size:clamp(13px,1.4vw,16px)}.cert-frame-name{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;color:var(--navy);font-size:clamp(36px,6.4vw,72px);font-weight:400;line-height:.95}.cert-frame-team{font-size:clamp(14px,1.6vw,18px)}.cert-frame-award{background:var(--gold);color:var(--navy);font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:10px 28px;font-size:clamp(18px,2.4vw,28px)}.cert-frame-project{opacity:.8;font-size:clamp(11px,1.2vw,13px)}.cert-frame-footer{justify-content:center;gap:clamp(36px,8vw,72px);width:min(420px,80%);display:flex}.cert-frame-footer div{flex:1;position:relative}.cert-frame-signature{object-fit:contain;background:0 0;width:min(180px,100%);height:auto;margin:0 auto -8px}.cert-frame-footer span{background:var(--navy);height:1px;margin-bottom:6px;display:block}.cert-frame-footer small{letter-spacing:.1em;text-transform:uppercase;font-size:10px}.cert-frame-venue,.cert-frame-verify{letter-spacing:.08em;text-transform:uppercase;opacity:.65;font-size:10px}.cert-frame-verify{text-transform:none;letter-spacing:0;word-break:break-all}@media print{@page{size:landscape letter;margin:.28in}html,body{background:var(--warm)}.skip,.site-header,.cert-share-page .kicker,.cert-share-lede,.cert-share-actions,.cert-share-back,.cert-share-footer{display:none!important}.cert-share-page{padding:0}.cert-share-wrap{max-width:none;padding:0}.cert-frame{aspect-ratio:auto;width:10.44in;height:7.94in}}.kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin-bottom:12px;font-size:12px;font-weight:600}.section h2{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;margin-bottom:16px;font-size:clamp(36px,5vw,52px);font-weight:400;line-height:1.08}.lede{max-width:40em;color:var(--ink-2);margin-bottom:32px}.criteria-list{gap:16px;margin:32px 0 0;padding:0;list-style:none;display:grid}.criteria-item{background:var(--white);border:1px solid var(--line);padding:24px}.criteria-item h3{margin-bottom:6px;font-size:18px;font-weight:700}.criteria-item p{color:var(--ink-2);font-size:16px}.form,.form-success{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);max-width:640px;padding:32px}.form-success h3{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;margin-bottom:12px;font-size:36px}.form-success p{color:var(--ink-2)}.field{margin-bottom:18px}.field label,.members-fieldset legend{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.req{color:#b42318}.hint{color:var(--ink-2);margin:0 0 8px;font-size:13px}.field input,.field textarea,.field select{border:1px solid var(--line);background:var(--warm);width:100%;color:var(--ink);border-radius:var(--radius);padding:12px 14px;font-size:16px}.field textarea{resize:vertical;min-height:140px;line-height:1.5}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:#b42318}.field-error,.form-error{color:#b42318;margin-top:6px;font-size:13px}.members-fieldset{border:0;margin:0 0 24px;padding:0}.members-fieldset legend{padding:0}.member-row{border-bottom:1px solid var(--line);gap:12px;padding:16px 0;display:grid}.member-row:last-of-type{border-bottom:0}.btn{border-radius:var(--radius);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 22px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn:disabled{opacity:.7;cursor:not-allowed}.btn-gold{background:var(--gold);color:var(--ink);border-color:var(--gold);width:100%;margin-top:8px}.btn-gold:hover:not(:disabled){background:var(--gold-dim)}.btn-ghost-ink{color:var(--ink);border-color:var(--ink);background:0 0;margin-top:8px}.btn-ghost-ink:hover{background:#0d1b2a0d}.btn-text{color:var(--ink-2);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;justify-self:start;min-height:auto;padding:0;font-size:13px;font-weight:600;text-decoration:underline}.btn-text:hover{color:var(--ink)}.site-footer{background:var(--navy);color:var(--white);border-top:1px solid var(--line-on-navy);padding:40px 0 32px}.footer-inner p{color:#ffffffb8;font-size:14px}.site-footer a{color:var(--gold);text-underline-offset:3px;text-decoration:underline}.site-footer a:hover{color:var(--gold-dim)}@media (max-width:600px){.wrap{width:min(var(--wrap), calc(100% - 32px))}.hero-copy{padding:56px 0 48px}.wifi-list{grid-template-columns:1fr}.event-name{letter-spacing:.1em;text-align:right;max-width:9rem;font-size:10px}.form,.form-success{padding:22px}.member-row{grid-template-columns:1fr}}@media (min-width:640px){.member-row{grid-template-columns:1fr 1fr auto;align-items:end}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}}.admin-page{background:var(--warm);min-height:100vh;padding:48px 0 72px}.admin-panel,.admin-login{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);max-width:1120px;padding:32px}.admin-login{max-width:420px}.admin-panel h1,.admin-login h1{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;font-size:clamp(36px,5vw,48px);font-weight:400;line-height:1.08}.admin-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.admin-nav{flex-wrap:wrap;gap:12px 18px;margin-top:16px;display:flex}.admin-nav a{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);font-size:13px;font-weight:700;text-decoration:none}.admin-nav a:hover,.admin-nav a.is-active{color:var(--navy)}.scoreboard{margin:32px 0}.scoreboard h2{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;font-size:32px;font-weight:400}.scoreboard-sublede{margin-bottom:16px}.scoreboard-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.scoreboard-row{background:var(--warm);border:1px solid var(--line);grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px;display:grid}.scoreboard-rank{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;color:var(--navy);font-size:32px;line-height:1}.scoreboard-team{font-weight:700}.scoreboard-project{color:var(--ink-2);font-size:14px}.scoreboard-stat{text-align:right}.scoreboard-stat-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700;line-height:1.1;display:block}.scoreboard-stat-label{color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;font-size:12px;display:block}.scoreboard-row-podium-1{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 18%, var(--warm))}.scoreboard-row-podium-1 .scoreboard-rank{color:var(--navy)}.scoreboard-row-podium-2{border-color:color-mix(in srgb, var(--gold) 55%, var(--line));background:color-mix(in srgb, var(--gold) 10%, var(--warm))}.scoreboard-row-podium-3{border-color:color-mix(in srgb, var(--navy) 18%, var(--line));background:color-mix(in srgb, var(--navy) 4%, var(--warm))}.review-categories{margin-top:40px}.review-category-list{gap:16px;display:grid}.review-category{background:var(--warm);border:1px solid var(--line);padding:18px 20px}.review-category h3{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin-bottom:12px;font-size:24px;font-weight:400}.review-category-winners{gap:12px;margin:0;padding:0;list-style:none;display:grid}.review-category-winner{gap:2px;display:grid}.review-category-score{font-variant-numeric:tabular-nums;color:var(--navy);font-weight:700}.certificate-lock{background:var(--warm);border:1px dashed var(--line);text-align:center;margin:32px 0;padding:40px 32px}.certificate-lock h2{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--navy);margin-bottom:8px;font-size:32px;font-weight:400}.certificate-lock-message{color:var(--ink-2);margin-bottom:20px;max-width:28em;margin-inline:auto}.certificate-actions{border-bottom:1px solid var(--line);margin-bottom:28px;padding-bottom:24px}.certificate-download-all{width:auto}.certificate-winners,.certificate-recipients{margin:32px 0}.certificate-winners h2,.certificate-recipients h2{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--navy);margin-bottom:16px;font-size:32px;font-weight:400}.certificate-winners{border-bottom:1px solid var(--line);padding-bottom:28px}.certificate-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.certificate-row{background:var(--warm);border:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 20px;display:grid}.certificate-row-winner{border-color:var(--navy);border-left:4px solid var(--gold);background:var(--white)}.certificate-name{color:var(--navy);font-size:16px;font-weight:700}.certificate-team{color:var(--ink-2);margin-top:2px;font-size:14px}.certificate-project{color:var(--ink-2);margin-top:4px;font-size:14px}.certificate-award-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--navy);background:var(--gold);margin-top:10px;padding:5px 12px;font-size:11px;font-weight:700;display:inline-block}.certificate-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.certificate-download{flex-shrink:0;width:auto;margin-top:0}.vote-form{max-width:720px}.vote-teams{border:0;margin:0 0 16px;padding:0}.vote-teams legend{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.vote-team{border:1px solid var(--line);background:var(--warm);cursor:pointer;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;margin-bottom:10px;padding:16px;display:grid}.vote-team.is-selected{border-color:var(--navy);background:var(--white)}.vote-team input{margin-top:4px}.vote-team-copy{gap:4px;display:grid}.vote-team-name{font-weight:700}.vote-team-title{font-size:15px}.vote-team-description{color:var(--ink-2);white-space:pre-wrap;font-size:14px;line-height:1.45}.admin-lede{color:var(--ink-2);margin-bottom:0}.admin-empty{color:var(--ink-2);margin:24px 0}.admin-table-wrap{margin-bottom:24px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:15px}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:12px 14px}.admin-table th{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);background:var(--warm);font-size:12px;font-weight:700}.admin-table a{color:var(--navy-3);word-break:break-all}.admin-table a:hover{color:var(--gold-dim)}.admin-project-title{margin-bottom:6px;font-weight:700}.admin-project-description{color:var(--ink-2);white-space:pre-wrap;max-width:28em;font-size:14px;line-height:1.45}.admin-members{gap:4px;margin:0;padding:0;list-style:none;display:grid}.admin-muted{color:var(--ink-2)}.admin-back{color:var(--navy-3);text-underline-offset:3px;margin-top:8px;font-size:14px;font-weight:600;text-decoration:underline;display:inline-block}.admin-back:hover{color:var(--ink)}.admin-header-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;display:flex}.admin-scores-link,.admin-review-link,.admin-certificates-link,.admin-logout{flex-shrink:0;width:auto;margin-top:0}@media (max-width:600px){.admin-panel,.admin-login{padding:22px}.admin-header{flex-direction:column}.scoreboard-row{grid-template-columns:36px minmax(0,1fr)}.scoreboard-stat{text-align:left;grid-column:2}.certificate-row{grid-template-columns:1fr}.certificate-download,.certificate-download-all,.admin-header-actions,.admin-scores-link,.admin-review-link,.admin-certificates-link,.admin-logout{width:100%}}.judge-page{background:var(--warm);min-height:100vh;padding:48px 0 72px}.judge-panel,.judge-login{background:var(--white);border:1px solid var(--line);box-shadow:var(--shadow);max-width:1120px;padding:32px}.judge-login{max-width:420px}.judge-panel h1,.judge-login h1{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;font-size:clamp(36px,5vw,48px);font-weight:400;line-height:1.08}.judge-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.judge-lede{color:var(--ink-2);margin-bottom:0}.judge-empty{color:var(--ink-2);margin:24px 0}.judge-cards{gap:24px;margin-bottom:24px;display:grid}.judge-card{border:1px solid var(--line);background:var(--warm);padding:24px}.judge-card-header h2{font-family:var(--font-display), "Bebas Neue", sans-serif;letter-spacing:.5px;text-transform:uppercase;margin-bottom:4px;font-size:28px;font-weight:400;line-height:1.1}.judge-project-title{margin-bottom:12px;font-weight:700}.judge-project-description{color:var(--ink-2);white-space:pre-wrap;margin-bottom:12px;font-size:15px;line-height:1.5}.judge-pitch{margin-bottom:12px}.judge-pitch a{color:var(--navy-3);word-break:break-all}.judge-pitch a:hover{color:var(--gold-dim)}.judge-members{color:var(--ink-2);gap:4px;margin:0 0 20px;padding:0;font-size:14px;list-style:none;display:grid}.judge-score-form{margin-top:8px}.judge-score-fieldset{border:0;gap:16px;margin:0;padding:0;display:grid}.judge-score-row{border-top:1px solid var(--line);gap:12px;padding-top:16px;display:grid}.judge-score-title{margin-bottom:2px;font-weight:700}.judge-score-definition{color:var(--ink-2);font-size:14px;line-height:1.4}.judge-score-options{flex-wrap:wrap;gap:8px;display:flex}.judge-score-option{border:1px solid var(--line);background:var(--white);cursor:pointer;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:0 12px;font-size:15px;font-weight:700;display:inline-flex}.judge-score-option:has(input:checked){background:var(--navy);border-color:var(--navy);color:var(--white)}.judge-score-option input{opacity:0;pointer-events:none;position:absolute}.judge-score-actions{align-items:center;gap:16px;margin-top:20px;display:flex}.judge-save{width:auto;min-width:160px;margin-top:0}.judge-saved{color:var(--navy-3);font-size:14px;font-weight:700}.judge-back{color:var(--navy-3);text-underline-offset:3px;margin-top:8px;font-size:14px;font-weight:600;text-decoration:underline;display:inline-block}.judge-back:hover{color:var(--ink)}.judge-logout{flex-shrink:0;width:auto;margin-top:0}@media (min-width:720px){.judge-score-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}}@media (max-width:600px){.judge-panel,.judge-login{padding:22px}.judge-header{flex-direction:column}.judge-logout,.judge-save{width:100%}}.admin-avg{font-variant-numeric:tabular-nums;white-space:nowrap}.admin-avg-value{font-weight:600}.admin-score-coverage{font-variant-numeric:tabular-nums;white-space:nowrap}.admin-score-cell{min-width:12rem}.admin-score-criteria{gap:2px;margin:0 0 8px;padding:0;font-size:.82rem;list-style:none;display:grid}.admin-score-criterion{justify-content:space-between;gap:12px;display:flex}.admin-score-criterion-label{color:var(--muted,#666)}.admin-score-criterion-value{font-variant-numeric:tabular-nums}.admin-score-details summary{cursor:pointer;color:var(--accent,#2563eb);-webkit-user-select:none;user-select:none;font-size:.82rem}.admin-score-judges{gap:6px;margin:8px 0 0;padding:0;font-size:.82rem;list-style:none;display:grid}.admin-score-judge{gap:2px;display:grid}.admin-score-judge-name{font-weight:600}.admin-score-judge-values{font-variant-numeric:tabular-nums;color:var(--muted,#666)}.admin-score-judge-avg{font-variant-numeric:tabular-nums}
