/* Rising Together with Vince Danh
   Primary: Sun Red #E62D0E · Sun Gold #F1A008 · on White
   Accent: Rise Navy #141689 · Neutral: Near-Black #0A0A10
   Type: Montserrat (headers) · Cabin (body)
   Textures: Sioux quartzite speckle + the ascending "falls" line from the Sioux Falls flag */
:root{
  --red:#E62D0E; --red-deep:#C4250A; --red-wash:#FDECE8;
  --gold:#F1A008; --gold-soft:#FFF3DA; --gold-line:#F7C865;
  --navy:#141689; --ink:#0A0A10; --body:#37343A; --muted:#66616A;
  --white:#FFFFFF; --paper:#FFFAF3; --line:#ECE4DA;
  --head:'Montserrat',Arial,sans-serif; --sans:'Cabin',Arial,sans-serif;
  --wrap:1180px; --gutter:clamp(16px,4vw,40px); --radius:14px;
  --shadow:0 1px 2px rgba(10,10,16,.05),0 8px 24px -12px rgba(10,10,16,.18);
  --falls:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0 52 L120 40 L180 50 L330 30 L400 42 L560 20 L630 32 L800 10 L870 22 L1040 4 L1100 14 L1200 2 L1200 60 L0 60 Z' fill='%23F1A008'/%3E%3Cpath d='M0 52 L120 40 L180 50 L330 30 L400 42 L560 20 L630 32 L800 10 L870 22 L1040 4 L1100 14 L1200 2' fill='none' stroke='%23FFFFFF' stroke-width='6' vector-effect='non-scaling-stroke'/%3E%3Cpath d='M0 44 L120 32 L180 42 L330 22 L400 34 L560 12 L630 24 L800 2 L870 14 L1040 -4 L1100 6 L1200 -6' fill='none' stroke='%23141689' stroke-width='2.5' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(124px + env(safe-area-inset-top,0px))}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.55;-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}
a{color:var(--navy);text-underline-offset:3px}
a:hover{color:var(--red-deep)}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--navy);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:var(--ink);padding:10px 16px;font-weight:700;z-index:100}
.skip:focus{left:8px}

/* Top bar + header */
.topbar{background:var(--red) url(quartzite.svg) 0 0/320px 320px;color:#fff;font-family:var(--head);font-weight:800;letter-spacing:3px;font-size:12px;text-align:center;padding:calc(8px + env(safe-area-inset-top,0px)) 16px 8px;text-transform:uppercase}
.site-header{background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.site-header .wrap{display:flex;align-items:center;gap:20px;min-height:74px}
.brand img{height:60px;width:auto}
.nav{margin-left:auto;display:flex;gap:26px;font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:1.2px;text-transform:uppercase}
.nav a{color:var(--ink);text-decoration:none;padding:12px 0;position:relative}
.nav a:hover,.nav a.cur{color:var(--red-deep)}
.nav a.cur::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:3px;background:var(--gold);border-radius:2px}
.subnav{background:var(--white);border-bottom:1px solid var(--line)}
.subnav .wrap{display:flex;align-items:center;gap:22px;min-height:48px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.subnav .wrap::-webkit-scrollbar{display:none}
.subnav span{font-family:var(--head);font-weight:900;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--red-deep);padding-right:22px;border-right:2px solid var(--gold)}
.subnav a{color:var(--ink);text-decoration:none;font-family:var(--head);font-weight:700;font-size:13px;padding:12px 0}
.subnav a:hover{color:var(--red-deep)}
@media(max-width:760px){.nav{display:none}.brand img{height:48px}.site-header .wrap{min-height:64px}}

/* Type */
.eyebrow{font-family:var(--head);font-weight:800;letter-spacing:2.5px;text-transform:uppercase;font-size:13px;color:var(--red-deep);margin:0 0 12px}
h1,h2,h3{font-family:var(--head);color:var(--ink);margin:0}
h1{font-weight:900;font-size:clamp(42px,6.6vw,80px);line-height:.96;letter-spacing:-1.5px;text-transform:uppercase}
.red{color:var(--red)}
h2{font-weight:900;font-size:clamp(30px,4.4vw,48px);line-height:1.02;text-transform:uppercase;letter-spacing:-.5px}
h3{font-weight:800;font-size:20px;line-height:1.2}
.lede{font-size:clamp(18px,1.8vw,21px);color:var(--body);max-width:600px;margin:18px 0 0}
section.block{padding:clamp(56px,8vw,96px) 0}
section.block.alt{background:var(--paper)}
.sec-head{margin-bottom:34px;max-width:740px}
.sec-head h2::after{content:"";display:block;width:96px;height:22px;margin-top:14px;background:url(falls-mark.svg) no-repeat left center/contain}
.sec-head p{color:var(--body);margin:14px 0 0}

/* Buttons */
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 24px;border-radius:999px;font-family:var(--head);font-weight:800;font-size:15px;letter-spacing:.6px;text-transform:uppercase;text-decoration:none;border:2px solid transparent;cursor:pointer;text-align:center;transition:transform .12s,background .12s}
.btn:hover{transform:translateY(-1px)}
.btn-red{background:var(--red-deep);color:#fff;box-shadow:0 8px 18px -10px rgba(196,37,10,.8)}
.btn-red:hover{background:#A91F08;color:#fff}
.btn-gold{background:var(--gold);color:var(--ink);box-shadow:0 8px 18px -10px rgba(241,160,8,.9)}
.btn-gold:hover{background:#DB9006;color:var(--ink)}
.btn-line{border-color:var(--ink);color:var(--ink);background:var(--white)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-block{display:flex;width:100%}

/* Hero */
.hero{padding:clamp(36px,6vw,72px) 0 clamp(40px,6vw,64px);background:linear-gradient(180deg,var(--white) 65%,var(--paper) 100%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr);gap:clamp(24px,4vw,56px);align-items:stretch}
.hero-copy{align-self:center}
.hero-panel{position:relative;background:var(--red) url(quartzite.svg) 0 0/320px 320px;border-radius:22px;color:#fff;padding:28px 30px 0;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow);min-height:360px}
.hero-panel .mark{width:92px;height:auto;margin-bottom:auto}
.hero-panel .pk{font-family:var(--head);font-weight:800;letter-spacing:3px;text-transform:uppercase;font-size:14px;margin:24px 0 4px}
.hero-panel .pbig{font-family:var(--head);font-weight:900;font-size:clamp(64px,8vw,108px);line-height:.9;letter-spacing:-2px;text-transform:uppercase;margin:0}
.hero-panel .psub{font-family:var(--head);font-weight:700;font-size:16px;margin:12px 0 22px}
.hero-panel .falls,.dbadge .falls{background:var(--falls) no-repeat bottom/100% 100%}
.hero-panel .falls{margin:0 -30px;height:56px}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr}.hero-panel{min-height:0;padding-top:22px}.hero-panel .mark{width:60px;margin-bottom:0}}
.dates{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(28px,4vw,44px);background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);overflow:hidden}
.dates>div{padding:20px 20px 18px;border-left:1px solid var(--line);position:relative}
.dates>div:first-child{border-left:0}
.dates>div::before{content:"";position:absolute;left:20px;top:0;width:36px;height:4px;background:var(--gold);border-radius:0 0 3px 3px}
.dates .when{font-family:var(--head);font-weight:900;font-size:22px;text-transform:uppercase;line-height:1.1;color:var(--red-deep)}
.dates .what{font-size:16px;color:var(--body);margin-top:4px;line-height:1.35}
.dates .now{background:var(--gold-soft)}
.dates .now::before{background:var(--red)}
@media(max-width:860px){.dates{grid-template-columns:1fr 1fr}.dates>div:nth-child(3){border-left:0}.dates>div:nth-child(n+3){border-top:1px solid var(--line)}}

/* Cards */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}

/* Map finder */
.finder{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:24px;align-items:start}
@media(max-width:900px){.finder{grid-template-columns:1fr}}
.mapcard{overflow:hidden}
.mapcard svg{display:block;width:100%;height:auto;touch-action:manipulation;background:#FBF7F1}
.d{stroke:#0A0A10;stroke-width:1.3;stroke-opacity:.5;cursor:pointer;transition:fill .12s}
.t0{fill:#FFF4DE}.t1{fill:#FBE3B4}.t2{fill:#F9E1D8}.t3{fill:#F1ECE4}.t4{fill:#FFEBC6}
.d:hover{fill:#F9C860}
.d.on{fill:var(--gold);stroke-opacity:1;stroke-width:2.2}
.d:focus{outline:none}.d:focus-visible{stroke:var(--navy);stroke-width:4;stroke-opacity:1}
.dl{font-family:var(--head);font-weight:900;text-anchor:middle;dominant-baseline:central;pointer-events:none;fill:var(--ink)}
.maphint{margin:0;padding:14px 18px 8px;border-top:1px solid var(--line);font-size:15px;color:var(--body)}
.picker{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 18px}
.picker button{min-width:52px;min-height:46px;border:2px solid var(--line);background:var(--white);color:var(--ink);font-family:var(--head);font-weight:800;font-size:16px;border-radius:999px;cursor:pointer}
.picker button:hover{border-color:var(--gold)}
.picker button.on{background:var(--red-deep);border-color:var(--red-deep);color:#fff}
.panel{padding:28px 24px 26px;position:relative;overflow:hidden}
.panel::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,var(--red) 0 62%,var(--gold) 62%)}
.panel h3.pname{font-weight:900;font-size:36px;text-transform:uppercase;margin:0 0 4px;letter-spacing:-.5px}
.panel .sub{color:var(--body);font-size:16px;margin:0 0 8px}
.panel .btns{margin-top:18px;flex-direction:column}

/* Race lists */
.race{padding:16px 0;border-top:1px solid var(--line)}
.race:first-of-type{border-top:0}
.rh{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.rh h4{font-family:var(--head);font-weight:800;font-size:14px;letter-spacing:1.4px;text-transform:uppercase;margin:0;color:var(--red-deep)}
.vf{font-size:14px;color:var(--muted)}
ol.names{list-style:none;margin:0;padding:0}
ol.names li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;padding:10px 0;border-top:1px solid #F3EEE7}
ol.names li:first-child{border-top:0}
.pos{width:30px;height:30px;border-radius:50%;background:var(--gold-soft);border:1.5px solid var(--gold-line);display:flex;align-items:center;justify-content:center;font-family:var(--head);font-weight:800;font-size:13px;color:var(--ink);margin-top:1px}
.who strong{display:block;font-size:19px;font-weight:700;line-height:1.25}
.meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:15px;margin-top:3px}
.party{color:var(--body)}
.meta a{font-weight:600}
.meta .nolink{color:var(--muted)}
.unopp{font-size:15px;color:var(--body);margin:10px 0 0}

/* Ballot guide pages */
.guide-hero{padding:24px 0 36px;background:linear-gradient(180deg,var(--white) 0%,var(--paper) 100%);border-bottom:1px solid var(--line)}
.guide-top{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:40px;align-items:center;max-width:1000px}
@media(max-width:760px){.guide-top{grid-template-columns:1fr}.dbadge{display:none!important}}
.guide-hero h1{font-size:clamp(44px,7vw,76px)}
.crumb{display:inline-block;font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--ink);text-decoration:none;min-height:44px;line-height:44px}
.dbadge{position:relative;background:var(--red) url(quartzite.svg) 0 0/320px 320px;border-radius:22px;color:#fff;padding:22px 24px 0;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow);min-height:270px}
.dbadge .mark{width:56px}
.dbadge .dk{font-family:var(--head);font-weight:800;letter-spacing:3px;text-transform:uppercase;font-size:13px;margin-top:auto}
.dbadge .dn{font-family:var(--head);font-weight:900;font-size:110px;line-height:.85;letter-spacing:-4px;margin-bottom:14px}
.dbadge .falls{margin:0 -24px;height:44px}
.guide{max-width:800px}
.part{margin:44px 0 12px;display:flex;align-items:center;gap:14px}
.part h2{font-size:clamp(22px,3vw,30px)}
.part .num{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--red);color:#fff;font-family:var(--head);font-weight:900;display:flex;align-items:center;justify-content:center;font-size:17px;box-shadow:0 0 0 4px var(--gold-soft)}
.gcard{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px 22px 12px;margin:14px 0}
.gcard .race{border-top:0}
.gcard .race + .race{border-top:1px solid var(--line)}
.county-switch{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--paper);border:1px solid var(--line);margin:12px 0 6px}
.county-switch button{min-height:44px;padding:8px 18px;border-radius:999px;border:0;background:transparent;font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:.6px;text-transform:uppercase;cursor:pointer;color:var(--ink)}
.county-switch button[aria-pressed=true]{background:var(--red-deep);color:#fff}
.callout{background:var(--gold-soft);border:1px solid var(--gold-line);border-left:6px solid var(--gold);border-radius:12px;padding:14px 16px;font-size:16px;margin:18px 0 0}
.callout strong{font-family:var(--head);font-weight:800}

/* Amendments */
.amends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media(max-width:760px){.amends{grid-template-columns:1fr}}
.amend{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}
.amend .letter{width:58px;height:58px;border-radius:16px;background:var(--red) url(quartzite.svg) 0 0/200px 200px;color:#fff;font-family:var(--head);font-weight:900;font-size:32px;display:flex;align-items:center;justify-content:center}
.amend h3{margin:14px 0 8px;font-size:20px}
.amend p{margin:0 0 14px;color:var(--body);font-size:17px}
.yn{display:grid;gap:10px}
.yn div{border-radius:10px;padding:12px 14px 12px 16px;font-size:16px;line-height:1.45;background:var(--paper);border-left:5px solid var(--gold)}
.yn div.n{border-left-color:var(--ink)}
.yn b{font-family:var(--head);font-weight:900;text-transform:uppercase;letter-spacing:1.2px;font-size:12px;display:block;margin-bottom:3px;color:var(--ink)}

/* How to vote */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.steps{grid-template-columns:1fr}}
.step{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 24px 24px;position:relative;overflow:hidden}
.step::before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:var(--gold)}
.step:nth-child(even)::before{background:var(--red)}
.step .tag{display:inline-block;font-family:var(--head);font-weight:900;font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--red-deep);background:var(--red-wash);padding:5px 10px;border-radius:999px}
.step h3{margin:12px 0 10px}
.step p,.step li{font-size:17px;color:var(--body);margin:0 0 8px}
.step ul{padding-left:18px;margin:0}
.step .where{font-size:16px;margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line)}
.step .where strong{color:var(--ink)}

/* Method + footer */
.method{max-width:780px}
.method li{margin-bottom:10px;color:var(--body)}
.falls-edge{height:56px;background:var(--white) url(falls-divider.svg) no-repeat bottom/100% 100%}
.site-footer{background:var(--red-deep) url(quartzite.svg) 0 0/320px 320px;color:#fff;padding:36px 0 calc(40px + env(safe-area-inset-bottom,0px));font-size:15px}
.site-footer .foot-logo{display:inline-block;background:var(--white);border-radius:14px;padding:12px 16px;margin-bottom:18px}
.site-footer .foot-logo img{height:58px;width:auto}
.site-footer a{color:#fff;font-weight:600}
.site-footer a:hover{color:var(--gold-soft)}
.site-footer .fine{max-width:780px;margin:8px 0 0;color:#fff}
.bottombar{background:var(--navy);color:#fff;font-family:var(--head);font-weight:800;letter-spacing:3px;font-size:12px;text-align:center;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));text-transform:uppercase}
.subnav span b{font-weight:900}.subnav .short{display:none}
.mnav{display:none;margin-left:auto;position:relative}
.mnav summary{list-style:none;cursor:pointer;font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;min-height:44px;display:flex;align-items:center;padding:0 16px;border:2px solid var(--ink);border-radius:999px}
.mnav summary::-webkit-details-marker{display:none}
.mnav[open] summary{background:var(--ink);color:#fff}
.mnav div{position:absolute;right:0;top:52px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;min-width:200px;display:flex;flex-direction:column}
.mnav a{padding:12px 14px;font-family:var(--head);font-weight:800;font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--ink);text-decoration:none;border-radius:8px}
.mnav a[aria-current]{color:var(--red-deep);background:var(--gold-soft)}
@media(max-width:760px){.mnav{display:block}.subnav .long{display:none}.subnav .short{display:inline}.subnav .wrap{gap:18px}.subnav span{padding-right:18px}}
/* Stylized Sioux Falls flag panels (the 2018 city flag design is public domain; restyled in brand colors) */
.hero-panel,.dbadge{background:url(sf-flag-panel.svg) top left/100% auto no-repeat,var(--red) url(quartzite.svg) 0 0/320px 320px;justify-content:flex-start}
.flagspace{aspect-ratio:600/295;flex:0 0 auto}
.hero-panel{padding:0 30px 30px;min-height:0}
.hero-panel .pk,.hero-panel .pbig,.hero-panel .psub,.dbadge .dk,.dbadge .dn{text-shadow:0 2px 14px rgba(120,20,5,.35)}
.hero-panel .pk{margin:auto 0 4px}
.hero-panel .psub{font-size:19px;margin:12px 0 0}
.dbadge{padding:0 24px 20px;min-height:0}
.dbadge .dk{margin-top:0}.dbadge .dn{margin-bottom:0}
@media(max-width:900px){.hero-panel{padding-top:0}}
.flagspace{margin-bottom:14px}
.hero-panel .flagspace{margin:0 -30px 14px}
.dbadge .flagspace{margin:0 -24px 10px}

/* ===== Site pages: home, blog, get involved ===== */
.tagline{font-family:var(--head);font-weight:900;font-size:clamp(20px,2.4vw,28px);text-transform:uppercase;letter-spacing:1px;color:var(--gold);margin:14px 0 0;-webkit-text-stroke:0;text-shadow:none}
.tagline{color:var(--red-deep)}
.hero h1{font-size:clamp(40px,5.8vw,72px)}
.flag-link{text-decoration:none;color:#fff;transition:transform .15s,box-shadow .15s}
.flag-link:hover{transform:translateY(-3px);box-shadow:0 18px 40px -18px rgba(10,10,16,.45);color:#fff}
.flag-link .psub{font-size:18px}
.sec-head.row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;max-width:none;flex-wrap:wrap}
.sec-head.row .btn{margin-bottom:6px}
.pillars .step h3{font-size:22px}

/* Feature band */
.feature{background:linear-gradient(180deg,var(--paper),var(--white))}
.feature-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:clamp(24px,5vw,64px);align-items:center}
@media(max-width:900px){.feature-grid{grid-template-columns:1fr}}
.checks{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:10px}
.checks li{position:relative;padding-left:34px;color:var(--body)}
.checks li::before{content:"";position:absolute;left:0;top:4px;width:22px;height:22px;background:url(sun.svg) center/contain no-repeat}
.dates.stack{grid-template-columns:1fr;margin-top:0}
.dates.stack>div{border-left:0;border-top:1px solid var(--line)}
.dates.stack>div:first-child{border-top:0}

/* Posts */
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
@media(max-width:900px){.post-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.post-grid{grid-template-columns:1fr}}
.post-card a{display:flex;flex-direction:column;height:100%;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;text-decoration:none;color:var(--ink);position:relative;overflow:hidden;transition:transform .15s}
.post-card a::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--red) 0 60%,var(--gold) 60%)}
.post-card a:hover{transform:translateY(-3px)}
.post-meta{font-family:var(--head);font-weight:800;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--red-deep);margin:4px 0 10px}
.post-card h3{font-size:22px;margin:0 0 10px}
.post-card p{color:var(--body);margin:0 0 16px;font-size:17px}
.post-card .more{margin-top:auto;font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--navy)}

/* Page hero (inner pages) */
.page-hero{padding:clamp(40px,6vw,76px) 0 clamp(36px,5vw,56px);background:linear-gradient(180deg,var(--white) 55%,var(--paper));border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;right:-40px;bottom:-30px;width:clamp(220px,34vw,460px);height:clamp(40px,6vw,82px);background:url(water-lines.svg) no-repeat right bottom/100% 100%;opacity:.9;pointer-events:none}
.page-hero h1{font-size:clamp(40px,6vw,74px)}
.page-hero.center{text-align:center;border-bottom:0}
.page-hero.center .lede,.page-hero.center .btns{margin-left:auto;margin-right:auto;justify-content:center}
.page-hero.center::after{display:none}
section.block.tight{padding-top:40px}
.narrow{max-width:760px}

/* Post body */
.post-hero{padding:24px 0 28px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--white),var(--paper))}
.post-hero h1{font-size:clamp(36px,5.4vw,60px);text-transform:none;letter-spacing:-1px;line-height:1.02}
.prose{padding-top:34px;padding-bottom:10px;font-size:20px;line-height:1.7}
.prose p{margin:0 0 1.1em}
.prose h2{font-size:clamp(24px,3vw,30px);text-transform:none;letter-spacing:-.3px;margin:1.6em 0 .5em}
.prose h2::before{content:"";display:block;width:64px;height:14px;margin-bottom:12px;background:url(falls-mark.svg) no-repeat left center/contain}
.prose h3{margin:1.4em 0 .4em}
.prose blockquote{margin:1.4em 0;padding:6px 0 6px 22px;border-left:5px solid var(--red);font-family:var(--head);font-weight:800;font-size:24px;line-height:1.3}
.prose img{border-radius:var(--radius);margin:1em 0}
.prose ul,.prose ol{padding-left:1.2em}
.prose li{margin-bottom:.4em}
.byline{display:flex;gap:14px;align-items:center;padding:22px 0;border-top:1px solid var(--line);margin-top:20px}
.byline img{width:52px;height:52px}
.byline strong{display:block;font-family:var(--head);font-weight:900;text-transform:uppercase;letter-spacing:.5px}
.byline span{color:var(--body);font-size:16px}
.share{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;padding:14px 0 6px;font-size:16px}
.share span{font-family:var(--head);font-weight:800;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}
.share a{font-weight:700}
.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0 48px}
.pager a{display:block;border:1px solid var(--line);border-radius:12px;padding:14px 16px;text-decoration:none;color:var(--ink);font-weight:700}
.pager a span{display:block;font-family:var(--head);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--red-deep)}
.pager a.next{text-align:right}

/* About */
.about{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,64px);align-items:center}
@media(max-width:860px){.about{grid-template-columns:1fr}}
.about-quote blockquote{margin:0;background:var(--navy) url(sf-flag-panel.svg) top left/100% auto no-repeat;border-radius:22px;padding:clamp(110px,16vw,190px) 30px 30px;color:#fff;box-shadow:var(--shadow);position:relative}
.about-quote blockquote::before{content:"";position:absolute;inset:0;border-radius:22px;background:linear-gradient(180deg,transparent 45%,rgba(20,22,137,.0) 100%);pointer-events:none}
.about-quote p{font-family:var(--head);font-weight:900;font-size:clamp(24px,2.8vw,32px);line-height:1.15;margin:0 0 16px;text-transform:uppercase}
.about-quote footer{font-size:15px;color:#E6E4F5}
.about-quote{background:transparent}
.about-quote blockquote{background:url(sf-flag-panel.svg) top left/100% auto no-repeat,var(--red) url(quartzite.svg) 0 0/320px 320px}
.about-quote footer{color:#fff}
.about-copy p{color:var(--body)}

/* Newsletter band */
.signup-band{background:var(--red-deep) url(quartzite.svg) 0 0/320px 320px;color:#fff}
.signup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,56px);align-items:center}
@media(max-width:860px){.signup{grid-template-columns:1fr}}
.on-red,h2.on-red{color:#fff}
.eyebrow.on-red{color:var(--gold-soft)}
.signup-form{background:var(--white);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);display:grid;gap:12px;color:var(--ink)}

/* Forms */
.hp{position:absolute;left:-9999px}
.form{padding:26px;display:grid;gap:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.two{grid-template-columns:1fr}}
.fl{display:grid;gap:6px}
.fl span{font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:.8px;text-transform:uppercase}
.fl em{font-family:var(--sans);font-style:normal;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted)}
.fl input,.fl select,.fl textarea{font:inherit;font-size:17px;padding:12px 14px;border:1.5px solid #D9CFC2;border-radius:10px;background:#fff;color:var(--ink);min-height:48px;width:100%}
.fl input[type=file]{padding:10px}
.fl input:focus,.fl select:focus,.fl textarea:focus{outline:3px solid var(--gold-line);border-color:var(--gold)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:16px;color:var(--body)}
.check input{width:20px;height:20px;margin-top:3px;accent-color:var(--red-deep)}
.share-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,5vw,56px);align-items:start}
@media(max-width:900px){.share-grid{grid-template-columns:1fr}}
.share-copy p{color:var(--body)}
.small-note{font-size:15px;color:var(--muted)!important;border-left:4px solid var(--gold);padding-left:12px}

/* Footer layout */
.foot-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:start}
@media(max-width:700px){.foot-grid{grid-template-columns:1fr}}
.foot-nav{display:grid;gap:10px;font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:1.2px;text-transform:uppercase}
.foot-nav a{text-decoration:none}
.site-footer .closer{font-family:var(--head);font-weight:800;font-size:16px;margin-top:14px}
.site-footer .small{font-size:13px;opacity:.9;margin-top:18px}
/* fixes */
.about-quote blockquote{padding-top:calc(49% + 18px)}
.signup-band{background:var(--gold);background-image:none;color:var(--ink)}
.signup-band .on-red,.signup-band h2.on-red{color:var(--ink)}
.signup-band .eyebrow.on-red{color:var(--ink)}
.signup-band .btn-gold{background:var(--red-deep);color:#fff;box-shadow:0 8px 18px -10px rgba(196,37,10,.8)}
.page-hero::after{width:clamp(300px,46vw,680px);height:clamp(50px,7.6vw,110px);right:-60px;bottom:-24px}
/* v2 motifs: bolder river lines */
.flagspace{aspect-ratio:600/300}
.about-quote blockquote{padding-top:calc(50% + 14px)}
.falls-edge{height:78px;background-size:100% 100%}
.sec-head h2::after{width:108px;height:36px;margin-top:10px}
.prose h2::before{width:76px;height:22px}
.page-hero::after{display:none}
.page-hero{border-bottom:0}
.falls-edge{height:84px;background-color:transparent}
.falls-edge{background:url(falls-divider.svg) center bottom/100% 100% no-repeat,var(--red-deep) url(quartzite.svg) 0 0/320px 320px}
/* v3: clean footer logo, homepage hero, Meet Vince */
.site-footer .foot-logo{background:none;padding:0;border-radius:0;margin-bottom:14px}
.site-footer .foot-logo img{height:clamp(64px,7vw,80px);width:auto}
/* photo frames */
.hero-photo,.about-portrait,.run-photo,.wide-photo,.meet-photo{margin:0;position:relative;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);background:var(--paper)}
.hero-photo img,.about-portrait img,.run-photo img,.wide-photo img,.meet-photo img{display:block;width:100%;height:100%;object-fit:cover}
.photo-lines{position:absolute;left:0;right:0;bottom:0;height:34%;pointer-events:none;background:url(falls-divider.svg) center bottom 18px/220% auto no-repeat,linear-gradient(180deg,rgba(10,10,16,0) 0%,rgba(10,10,16,.42) 100%)}
/* home hero */
.home-hero{padding:clamp(28px,5vw,64px) 0 clamp(40px,6vw,72px);background:linear-gradient(180deg,var(--white) 60%,var(--paper) 100%)}
.home-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,64px);align-items:center}
.hero-logo{display:block;width:clamp(260px,34vw,440px);height:auto;margin:0 0 clamp(18px,3vw,30px)}
.home-h1{font-weight:900;font-size:clamp(30px,4vw,50px);line-height:1.06;letter-spacing:-.5px}
.home-h1 .red{display:block}
.hero-photo{aspect-ratio:4/5}
@media(max-width:900px){.home-hero-grid{grid-template-columns:1fr}.hero-photo{aspect-ratio:4/3}.hero-logo{margin-left:auto;margin-right:auto}.home-hero .hero-copy{text-align:center}.home-hero .lede{margin-left:auto;margin-right:auto}.home-hero .btns{justify-content:center}}
/* city photo band */
.city-band{padding:0 0 clamp(56px,8vw,96px)}
.city-grid{max-width:calc(var(--wrap) + 160px);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:240px 240px;gap:14px}
.city-grid img{width:100%;height:100%;object-fit:cover;border-radius:18px;display:block}
.city-grid .c1{grid-row:1/3}
.city-grid .c2{grid-column:2}
.city-grid .c3{grid-column:3}
.city-caption{grid-column:2/4;grid-row:2;background:var(--red-deep) url(quartzite.svg) 0 0/320px 320px;color:#fff;border-radius:18px;padding:clamp(22px,3vw,34px);display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.city-caption::after{content:"";position:absolute;right:-30px;bottom:-40px;width:150px;height:150px;background:url(sun.svg) center/contain no-repeat;opacity:.95}
.city-caption .eyebrow{color:var(--gold-soft)}
.city-caption h2{color:#fff;font-weight:900;font-size:clamp(26px,3vw,38px)}
.city-caption p:last-child{margin:10px 0 0;max-width:430px;position:relative;z-index:1}
@media(max-width:860px){.city-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.city-grid img{aspect-ratio:4/3;height:auto}.city-grid .c1{grid-row:auto;grid-column:1/3}.city-grid .c2{grid-column:1}.city-grid .c3{grid-column:2}.city-caption{grid-column:1/3;grid-row:auto;padding-right:110px}}
/* meet teaser */
.meet{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:center}
.meet-photo{aspect-ratio:4/5;max-width:440px}
.meet-copy h2{font-weight:900;font-size:clamp(28px,3.4vw,42px);line-height:1.1;margin-bottom:18px}
.meet-copy p{color:var(--body);max-width:560px}
@media(max-width:800px){.meet{grid-template-columns:1fr}.meet-photo{max-width:none;aspect-ratio:4/3}}
/* Meet Vince page */
.about-hero{padding:clamp(28px,5vw,64px) 0 clamp(40px,6vw,72px);background:linear-gradient(180deg,var(--white) 60%,var(--paper) 100%)}
.about-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,64px);align-items:center}
.about-hero h1{font-weight:900;font-size:clamp(36px,5.2vw,66px);line-height:1.02;letter-spacing:-.5px}
.about-hero h1 .red{display:block}
.about-portrait{aspect-ratio:4/5}
.viet{margin:26px 0 0;font-family:var(--head);font-weight:900;font-size:clamp(22px,2.4vw,28px);color:var(--red-deep)}
.viet span{display:block;font-family:var(--sans);font-weight:400;font-size:16px;color:var(--muted);margin-top:4px}
@media(max-width:860px){.about-hero-grid{grid-template-columns:1fr}.about-portrait{aspect-ratio:1/1;order:-1}.about-portrait img{object-position:50% 20%!important}}
.story-grid,.connect-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.story-copy p,.connect-copy p{color:var(--body)}
.story-copy h2,.connect-copy h2{font-weight:900;font-size:clamp(28px,3.4vw,42px);margin-bottom:18px}
.story-copy h2::after,.connect-copy h2::after{content:"";display:block;width:108px;height:36px;margin-top:10px;background:url(falls-mark.svg) no-repeat left center/contain}
.story-copy blockquote{margin:26px 0 0;padding:4px 0 4px 22px;border-left:5px solid var(--red);font-family:var(--head);font-weight:800;font-size:clamp(20px,2.2vw,26px);line-height:1.28;color:var(--ink)}
.story-copy cite{display:block;margin-top:10px;font-family:var(--sans);font-style:normal;font-weight:600;font-size:14px;color:var(--muted)}
.story-photos,.connect-photos{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.story-photos img,.connect-photos img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:18px;display:block;box-shadow:var(--shadow)}
.story-photos .sp2,.connect-photos .cp2{margin-top:48px}
@media(max-width:860px){.story-grid,.connect-grid{grid-template-columns:1fr}.story-photos img,.connect-photos img{aspect-ratio:4/5}.story-photos .sp2,.connect-photos .cp2{margin-top:28px}}
.run-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,56px);align-items:center}
.run-photo{aspect-ratio:4/3}
.run-copy p{color:var(--body)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
.stats>div{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px 14px;box-shadow:var(--shadow);border-top:4px solid var(--gold)}
.stats .n{display:block;font-family:var(--head);font-weight:900;font-size:clamp(26px,3vw,36px);color:var(--red-deep);line-height:1}
.stats .l{display:block;font-size:14px;line-height:1.35;color:var(--body);margin-top:8px}
.wide-photo{margin-top:clamp(28px,4vw,44px);aspect-ratio:21/8}
@media(max-width:860px){.run-grid{grid-template-columns:1fr}.wide-photo{aspect-ratio:4/3}}
@media(max-width:520px){.stats{grid-template-columns:1fr}.stats>div{display:flex;align-items:center;gap:14px}.stats .l{margin-top:0}}
.hype{background:var(--red-deep) url(quartzite.svg) 0 0/320px 320px;color:#fff}
.hype .sec-head h2{color:#fff;font-weight:900;font-size:clamp(28px,3.6vw,44px)}
.hype .sec-head h2::after{filter:brightness(0) invert(1)}
.hype .sec-head p{color:#fff}
.hype .eyebrow{color:var(--gold-soft)}
.hype-grid{display:grid;grid-template-columns:1.25fr 1.25fr 1fr;gap:14px}
.hype-grid img{width:100%;height:100%;min-height:0;aspect-ratio:4/5;object-fit:cover;border-radius:18px;display:block;border:4px solid rgba(255,255,255,.95)}
@media(max-width:760px){.hype-grid{grid-template-columns:1fr 1fr}.hype-grid .hx1{grid-column:1/3;aspect-ratio:4/3}}
.closer-band h2{font-weight:900;font-size:clamp(28px,3.6vw,44px);line-height:1.12}
.center{text-align:center}
.center .btns{justify-content:center}
.closer-band .eyebrow::after{content:"";display:block;width:108px;height:36px;margin:10px auto 0;background:url(falls-mark.svg) no-repeat center/contain}
/* v4: Meet Vince restructure */
.story-grid{align-items:center}
.tedx{display:block;text-decoration:none;color:var(--ink);background:var(--white);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);transition:transform .15s}
.tedx:hover{transform:translateY(-2px);color:var(--ink)}
.tedx-img{display:block;position:relative;aspect-ratio:3/2;background:#111}
.tedx-img img{width:100%;height:100%;object-fit:cover;display:block}
.play{position:absolute;left:50%;top:50%;width:78px;height:78px;margin:-39px 0 0 -39px;border-radius:50%;background:var(--red-deep);box-shadow:0 0 0 6px rgba(255,255,255,.85),0 10px 30px rgba(0,0,0,.45)}
.play::after{content:"";position:absolute;left:31px;top:24px;border-style:solid;border-width:15px 0 15px 24px;border-color:transparent transparent transparent #fff}
.tedx:hover .play{background:#A91F08}
.tedx-cap{display:block;padding:18px 22px 20px}
.tedx-cap .eyebrow{display:block;margin-bottom:6px}
.tedx-cap strong{display:block;font-family:var(--head);font-weight:900;font-size:clamp(19px,2vw,23px);line-height:1.2}
.tedx-cap .watch{display:block;margin-top:10px;font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--red-deep)}
.hype-grid{grid-template-columns:repeat(4,1fr)}
.hype-grid img{aspect-ratio:3/4}
@media(max-width:860px){.hype-grid{grid-template-columns:1fr 1fr}.hype-grid .hx1{grid-column:auto;aspect-ratio:3/4}}
.record{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.rec{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 22px 18px;border-top:4px solid var(--gold)}
.rec:first-child{grid-row:span 2;border-top-color:var(--red)}
.rec h3{font-weight:900;font-size:14px;letter-spacing:1.6px;text-transform:uppercase;color:var(--red-deep);margin-bottom:10px}
.rec ul{list-style:none;margin:0;padding:0}
.rec li{padding:8px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.4;color:var(--ink)}
.rec li:first-child{border-top:0;padding-top:2px}
@media(max-width:900px){.record{grid-template-columns:1fr 1fr}.rec:first-child{grid-row:auto;grid-column:1/3}}
@media(max-width:560px){.record{grid-template-columns:1fr}.rec:first-child{grid-column:auto}}
.run-photo{aspect-ratio:3/2}
.next-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,64px);align-items:center}
.next-photo{margin:0;border-radius:22px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/5}
.next-photo img{width:100%;height:100%;object-fit:cover;display:block}
.next h2{font-weight:900;font-size:clamp(28px,3.4vw,42px);line-height:1.1;margin-bottom:16px}
.next p{color:var(--body)}
.next .checks a{color:var(--ink);font-weight:600}
.next .checks a:hover{color:var(--red-deep)}
.closer-line{font-family:var(--head);font-weight:800;font-size:clamp(18px,1.8vw,21px);color:var(--ink)!important;margin-top:22px}
@media(max-width:860px){.next-grid{grid-template-columns:1fr}.next-photo{aspect-ratio:4/3}}
.endorse{margin:0 0 22px}
.endorse .eyebrow{margin-bottom:10px}
.endorse ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.endorse li{background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:999px;padding:6px 14px;font-size:15px;font-weight:600;line-height:1.3;color:var(--ink)}
.photo-lines{display:none}
.recap{margin-top:18px}
.recap a{font-family:var(--head);font-weight:800;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--red-deep);text-decoration:none}
.recap a:hover{text-decoration:underline}
