/* ALBION SC Boulder County Board - iPhone single-screen view. Navy #0B1D2D, Blue #0080CF */
@font-face{font-family:"Roboto Condensed";src:url(/assets/fonts/roboto-condensed-var.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{--navy:#0B1D2D;--navy3:#0c2236;--blue:#0080CF;--blue-l:#3aa6ea;--gray:#A8A8A8;--gold:#E0A93B;
 --f:"Roboto Condensed","Barlow Condensed","Archivo Narrow","Arial Narrow",sans-serif}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;background:var(--navy);overscroll-behavior:none}
body{margin:0;color:#fff;font:400 14px/1.2 var(--f);overflow-x:hidden;background:radial-gradient(120% 60% at 50% 0,#12304b 0,var(--navy) 62%),var(--navy)}
h1,p,ul{margin:0;padding:0}
ul{list-style:none}
img{display:block}
a{color:#fff}
a:focus-visible,button:focus-visible{outline:2px solid #fff;outline-offset:2px;box-shadow:0 0 0 4px var(--blue)}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:8px 12px;z-index:100;font-weight:700}
.skip:focus{left:8px;top:8px}

.app{height:100vh;height:100dvh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;
 padding:max(env(safe-area-inset-top),6px) max(env(safe-area-inset-right),10px) max(env(safe-area-inset-bottom),4px) max(env(safe-area-inset-left),10px);overflow:hidden}

/* header */
.hd{display:flex;align-items:center;gap:10px;padding:2px 0 6px;min-width:0}
.crest{height:clamp(44px,8.2dvh,60px);width:auto;flex:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}
.hd-r{flex:1;min-width:0}
.strip2{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:7px}
.rule{display:block;height:2px;background:#fff;opacity:.92}
.lockup{height:clamp(13px,2.4dvh,17px);width:auto}
h1{font-size:clamp(21px,6.6vw,28px);line-height:1;font-weight:700;letter-spacing:.015em;text-transform:uppercase;margin-top:4px;white-space:nowrap}
.chapter{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:3px;color:var(--blue);font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:clamp(8.5px,2.5vw,10px);white-space:nowrap}
.full{color:var(--gray);text-decoration:none;letter-spacing:.08em;padding:3px 0 3px 6px;white-space:nowrap}

/* 3x3 grid */
.bd{min-height:0;display:flex}
.pg{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:clamp(5px,1.4dvh,9px) clamp(5px,1.8vw,8px)}
.pc{min-width:0;min-height:0}
.pc>a{display:flex;flex-direction:column;height:100%;min-height:44px;background:var(--navy3);border:1px solid var(--blue);text-decoration:none;color:#fff;overflow:hidden}
.pc.vac>a{border-color:#4a5f73}
.pc>a:active{border-color:#fff}
.pt{position:relative;flex:1;min-height:0;overflow:hidden;background:linear-gradient(160deg,#0a8ee0 0,var(--blue) 45%,#0a5c96 100%);border-bottom:2px solid var(--blue)}
.pt picture,.pt img{display:block;width:100%;height:100%}
.pt img{object-fit:cover}
.pc.vac .pt{border-bottom-color:#7b8ea1}
.pc.vac.in .pt{background:linear-gradient(160deg,#4b6178 0,#3d5166 55%,#2f4153 100%)}
.pc.vac.ph img{filter:brightness(.78)}
.pc.vac .pm{opacity:.78}
.ini,.big-ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding-top:14%;font-weight:700;line-height:1;letter-spacing:.02em;font-size:clamp(22px,8.4vw,34px)}
.stars::before,.pc.in .pt::before{content:"";position:absolute;left:50%;top:10%;width:min(38%,90px);aspect-ratio:6/1;transform:translateX(-50%);background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%20120%2020%22%3E%3Cg%20fill%3D%22%23fff%22%3E%3Cpath%20id%3D%22s%22%20d%3D%22M10%201l2.6%205.9%206.4.6-4.8%204.3%201.4%206.3L10%2014.8l-5.6%203.3%201.4-6.3L1%207.5l6.4-.6z%22/%3E%3Cuse%20href%3D%22%23s%22%20x%3D%2250%22/%3E%3Cuse%20href%3D%22%23s%22%20x%3D%22100%22/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.bio-cue{position:absolute;top:0;right:0;background:rgba(11,29,45,.9);color:#fff;font-weight:700;font-size:clamp(8px,2.3vw,9.5px);letter-spacing:.08em;text-transform:uppercase;padding:2px 4px 2px 5px;border-left:1px solid var(--blue-l);border-bottom:1px solid var(--blue-l);line-height:1.2;z-index:2}
.ptag{position:absolute;left:0;bottom:0;max-width:100%;padding:2px 7px 2px 4px;font-weight:700;font-size:clamp(7.5px,2.1vw,9px);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;line-height:1.2;clip-path:polygon(0 0,calc(100% - 4px) 0,100% 100%,0 100%);z-index:2}
.ptag.rerun{background:rgba(11,29,45,.9);color:#fff;border-top:1px solid var(--blue-l)}
.ptag.vacate{background:var(--gold);color:#13263a}
.pm{padding:3px 4px 4px;min-width:0}
.pn1{display:block;font-size:clamp(11px,3.15vw,13px);font-weight:700;letter-spacing:.02em;line-height:1.08;text-transform:uppercase}
.pn1 span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pr{display:block;margin-top:2px;color:var(--blue-l);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(8px,2.3vw,9.5px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc.vac .pn1{color:#c3ccd5}
.pc.vac .pr{color:#7fa5c4}

/* footer */
.ft{padding:6px 0 2px;border-top:2px solid #fff;margin-top:6px;text-align:center}
.tagline{display:flex;justify-content:center;gap:6px;font-style:italic;text-transform:uppercase;font-weight:500;letter-spacing:.2em;font-size:clamp(8px,2.3vw,10px);color:#e3e9ee;white-space:nowrap}
.tagline b{color:var(--blue);font-weight:700}
.tagline i{font-style:normal;color:var(--blue);letter-spacing:0}
.disc{margin-top:3px;color:var(--gray);font-size:min(1.9vw,9px);letter-spacing:0;white-space:nowrap;overflow:hidden;line-height:1.25}

/* enlarged view (dialog) */
html.lock,html.lock body{overflow:hidden}
.ov[hidden]{display:none}
.ov{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;
 padding:max(env(safe-area-inset-top),12px) max(env(safe-area-inset-right),14px) max(env(safe-area-inset-bottom),12px) max(env(safe-area-inset-left),14px);
 background:rgba(4,12,20,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;transition:opacity .22s ease}
.ov.open{opacity:1}
.sheet{position:relative;width:min(100%,380px);max-height:100%;background:var(--navy3);border:1px solid var(--blue);box-shadow:0 20px 50px rgba(0,0,0,.6);transform:translateY(14px) scale(.92);transition:transform .26s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;overflow:hidden}
.ov.open .sheet{transform:none}
.sh-art{position:relative;align-self:center;width:min(100%,calc((100dvh - 260px)*1.3333));aspect-ratio:4/3;overflow:hidden;background:linear-gradient(160deg,#0a8ee0 0,var(--blue) 45%,#0a5c96 100%);border-bottom:3px solid var(--blue);flex:none}
.sh-art picture,.sh-art img{display:block;width:100%;height:100%}
.sh-art img{object-fit:cover}
.sh-art.vac{border-bottom-color:#7b8ea1}
.sh-art.vac.in{background:linear-gradient(160deg,#4b6178 0,#3d5166 55%,#2f4153 100%)}
.sh-art.vac img{filter:brightness(.85)}
.big-ini{font-size:clamp(46px,17vw,72px)}
.sh-art.in::before{top:11%;width:34%}
.sh-art:not(.in)::before{content:none}
.sh-body{padding:12px 14px 14px;min-height:0}
.sh-name{font-size:clamp(24px,7.4vw,30px);line-height:1.05;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.sh-role{margin-top:3px;color:var(--blue-l);font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:12px}
.sh-tags{margin-top:7px;min-height:0}
.sh-tags .ptag{position:static;display:inline-block;font-size:10px;padding:4px 12px 4px 8px;letter-spacing:.1em}
.sh-tags .ptag.rerun{border:1px solid var(--blue-l);border-left:0}
.sh-go{display:flex;align-items:center;justify-content:center;margin-top:12px;min-height:46px;background:var(--blue);color:#fff;text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:15px;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}
.sh-go:active{background:var(--blue-l)}
.sh-x{position:absolute;top:6px;right:6px;z-index:3;width:44px;height:44px;border:0;border-radius:50%;background:rgba(11,29,45,.82);color:#fff;font:400 26px/1 var(--f);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.sh-x svg{width:18px;height:18px}
@media(prefers-reduced-motion:reduce){.ov,.sheet{transition:none!important}.sheet{transform:none!important}}

.ptag.long{font-size:clamp(6px,1.75vw,7.5px);letter-spacing:.02em;padding-right:6px}

.pm .bio-cue{position:static;display:block;margin-top:2px;background:none;border:0;padding:0;color:#fff;text-decoration:underline;text-decoration-color:var(--blue-l);text-underline-offset:2px;font-size:clamp(8px,2.3vw,9.5px);line-height:1.2}
/* open seats */
.pc.open-seat{display:flex}
.pc.open-seat .ob{display:flex;flex-direction:column;height:100%;width:100%;min-height:44px;border:1px dashed var(--gold);background:var(--navy3);overflow:hidden}
.pc.open-seat .pt{background:rgba(224,169,59,.08);border-bottom:2px solid var(--gold);display:flex;align-items:center;justify-content:center;text-align:center}
.pc.open-seat .pt::before{display:none}
.pc.open-seat .oseat{color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(14px,5vw,20px);line-height:1.1;padding:0 4px}
.pc.open-seat .pn1{color:var(--gold)}
/* election button (left of logo) */
.elec{display:block;justify-self:start;background:var(--blue);color:#fff;text-align:center;padding:4px 6px;font-weight:700;font-size:clamp(8px,2.3vw,9.5px);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;line-height:1.15;max-width:100%}

.hd .elec{flex:none;width:68px;justify-self:auto;font-size:8px;padding:5px 4px}
.hd h1{font-size:clamp(16px,5.5vw,22px)}

.elec{background:linear-gradient(180deg,#2fb0ff 0,#0a8ee0 100%);border:2px solid #fff;box-shadow:0 0 0 2px rgba(0,128,207,.55),0 6px 16px rgba(0,0,0,.45),0 0 18px rgba(58,166,234,.6);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;cursor:pointer;box-sizing:border-box;text-shadow:0 1px 2px rgba(0,0,0,.35);transition:transform .15s,box-shadow .15s,background .15s}
.elec:hover,.elec:focus-visible{background:#fff;color:#0060a0;text-shadow:none;transform:translateY(-2px);box-shadow:0 0 0 2px #3aa6ea,0 10px 22px rgba(0,0,0,.5),0 0 26px rgba(58,166,234,.85);outline:none}
.elec:active{transform:translateY(0)}
@media(prefers-reduced-motion:no-preference){.elec{animation:elecglow 2.4s ease-in-out infinite}.elec:hover,.elec:focus-visible{animation:none}}
@keyframes elecglow{0%,100%{box-shadow:0 0 0 2px rgba(0,128,207,.55),0 6px 16px rgba(0,0,0,.45),0 0 10px rgba(58,166,234,.4)}50%{box-shadow:0 0 0 2px rgba(58,166,234,.8),0 6px 16px rgba(0,0,0,.45),0 0 24px rgba(58,166,234,.95)}}

/* bylaws link */
.ftl{text-align:center;margin-top:3px;line-height:1}
.ftl a{font-weight:700;text-transform:uppercase;letter-spacing:.12em;font-size:clamp(8.5px,2.5vw,10px);color:var(--blue-l);text-decoration:none;border-bottom:1px solid var(--blue);padding:3px 2px 1px}

/* election button: full-width bar under the header */
.elbar{padding:0 0 7px}
.elbar .elec{width:100%;max-width:none;font-size:clamp(12px,3.6vw,14px);padding:9px 10px;letter-spacing:.06em}
/* election bar: yellow highlight (glow + border + underline accent) */
.elbar .elec{border-color:var(--gold);text-decoration-color:var(--gold);text-decoration-thickness:2px;box-shadow:0 0 0 2px rgba(224,169,59,.6),0 6px 16px rgba(0,0,0,.45),0 0 18px rgba(224,169,59,.65)}
@media(prefers-reduced-motion:no-preference){.elbar .elec{animation:elecglowy 2.4s ease-in-out infinite}.elbar .elec:hover,.elbar .elec:focus-visible{animation:none}}
@keyframes elecglowy{0%,100%{box-shadow:0 0 0 2px rgba(224,169,59,.55),0 6px 16px rgba(0,0,0,.45),0 0 10px rgba(224,169,59,.4)}50%{box-shadow:0 0 0 2px rgba(242,188,78,.9),0 6px 16px rgba(0,0,0,.45),0 0 24px rgba(242,188,78,.95)}}
.elbar .elec:hover,.elbar .elec:focus-visible{box-shadow:0 0 0 2px var(--gold),0 10px 22px rgba(0,0,0,.5),0 0 26px rgba(242,188,78,.85)}
.ftl .fcontact{margin-left:14px}
/* polish pass */
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.role{color:var(--blue-l)}
.disc{color:#b9c3cc}
.pc.vac .pm{opacity:.95}
.pc.vac .pr{color:#9cbbd3}
/* election bar redesign */
.elbar{padding:0 0 8px}
.elbar .elec{position:relative;display:flex;align-items:center;justify-content:center;min-height:46px;box-sizing:border-box;padding:10px 14px 10px 20px;border:1.5px solid transparent;border-radius:3px;
 background:linear-gradient(180deg,#123653 0,#0c2740 100%) padding-box,linear-gradient(90deg,#E0A93B,#f2c765 50%,#E0A93B) border-box;
 color:#fff;font-size:clamp(12px,3.5vw,14px);font-weight:700;letter-spacing:.09em;text-decoration:none;text-shadow:none;
 box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 0 1px rgba(224,169,59,.18);animation:none;-webkit-tap-highlight-color:transparent;transition:background .15s,transform .1s}
.elbar .elec::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,#f2c765,#E0A93B);border-radius:2px 0 0 2px}
.elbar .elec:active{transform:scale(.985);background:linear-gradient(180deg,#1a4a70 0,#123653 100%) padding-box,linear-gradient(90deg,#E0A93B,#f2c765 50%,#E0A93B) border-box}
.elbar .elec:hover,.elbar .elec:focus-visible{animation:none;color:#fff;transform:none;box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 0 2px rgba(242,199,101,.6);text-shadow:none}
@media(prefers-reduced-motion:no-preference){.elbar .elec{animation:elbpulse 3s ease-in-out infinite}.elbar .elec:hover,.elbar .elec:focus-visible,.elbar .elec:active{animation:none}}
@keyframes elbpulse{0%,100%{box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 0 1px rgba(224,169,59,.18)}50%{box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 14px rgba(224,169,59,.55)}}
/* election bar: yellow */
.elbar .elec{background:linear-gradient(180deg,#f7cf6a 0,#E0A93B 100%) padding-box,linear-gradient(90deg,#fff1c2,#f7cf6a) border-box;border-color:transparent;color:#10202f;font-weight:800;text-shadow:none;box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 0 1px rgba(255,241,194,.35)}
.elbar .elec::before{background:#b8841f}
.elbar .elec:active{background:linear-gradient(180deg,#E0A93B 0,#c9922a 100%) padding-box,linear-gradient(90deg,#fff1c2,#f7cf6a) border-box}
.elbar .elec:hover,.elbar .elec:focus-visible{color:#10202f;background:linear-gradient(180deg,#ffdc82 0,#f0b94a 100%) padding-box,linear-gradient(90deg,#fff1c2,#f7cf6a) border-box;box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 0 2px rgba(255,241,194,.7)}
@keyframes elbpulse{0%,100%{box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 0 1px rgba(255,241,194,.35)}50%{box-shadow:0 4px 14px rgba(0,0,0,.4),0 0 14px rgba(247,207,106,.6)}}
.elbar{padding-top:6px;position:relative;z-index:1;clear:both}
