/* Final layout contract. Effects must never widen the page. */
html{width:100%;max-width:100%;overflow-x:clip}
body{width:100%;max-width:100%;min-width:0;overflow-x:clip}
main{width:100%;min-width:0;overflow-x:clip}
section{min-width:0;max-width:100%}.wrap{min-width:0;max-width:min(1600px,100%)}
.split,.transparency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.split>*,.transparency-grid>*,.section-heading>*,.vote-main>*{min-width:0}
canvas,img,svg,video{max-width:100%}
.hero-webgl{display:block;width:100%;max-width:100%}
.copy,.section-heading,.resource-list,footer{overflow-wrap:anywhere}
.nav-cta-short{display:none}
@supports not (overflow:clip){html{overflow-x:hidden}body,main{overflow-x:visible}}
@media(max-width:900px){
 :root{--margin:clamp(20px,5vw,36px)}
 html{scroll-padding-top:84px}
 .nav{height:72px;padding:0 var(--margin);gap:10px}
 .nav .brand{font-size:27px;letter-spacing:-1.4px;flex-shrink:0}
 .nav .pill{font-size:12px;min-height:44px;padding:12px 16px;gap:8px;white-space:nowrap;flex-shrink:0}
 .menu-toggle{width:44px;height:44px;min-width:44px}
 .nav nav{max-height:calc(100svh - 72px);overflow-y:auto;overscroll-behavior:contain}
 .nav.menu-open nav{padding:12px var(--margin) 20px}
 .nav nav a{font-size:16px;line-height:1.4;padding:14px 0}
 .hero-track{height:250svh;min-height:0}
 .hero.sticky{height:100svh;min-height:620px;max-width:100%;overflow:hidden}
 .hero-copy,.organized{left:var(--margin);right:var(--margin);width:auto;max-width:none;top:100px}
 .hero h1{font-size:clamp(40px,10.5vw,68px);line-height:1;letter-spacing:-.06em;overflow-wrap:normal}
 .hero-copy .lead{font-size:clamp(14px,3.8vw,18px);line-height:1.5;margin-top:20px;max-width:540px}
 .organized h2{font-size:clamp(38px,9.5vw,62px);line-height:1;overflow-wrap:normal}
 .hero-checks{font-size:clamp(12px,3.3vw,17px);gap:10px;margin:18px 0 0}
 .hero-checks li{display:flex;align-items:baseline;gap:10px;line-height:1.4}
 .hero-checks li:before{margin:0;flex:none}
 .hero-foot{left:var(--margin);right:var(--margin);bottom:20px;gap:20px;font-size:10px;align-items:flex-end}
 .hero-foot>*{max-width:50%}
 .hero-foot a{text-align:right;max-width:145px}
 .section,.section.scroll-scene,.section.flow-scene{height:auto;min-height:0;padding:64px 0;overflow:clip}
 .wrap,.scroll-scene>.wrap,.flow-scene>.wrap{width:100%;max-width:100%;height:auto;min-height:0;position:relative;top:auto;padding:0 var(--margin)}
 .split,.transparency-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:36px;min-height:0}
 .section-heading{display:block;margin-bottom:32px}
 .section-heading>p{max-width:600px;margin-top:22px}
 .copy h2,.section-heading h2,.scroll-scene .copy h2{font-size:clamp(36px,8.5vw,56px);line-height:1.04;letter-spacing:-.05em}
 .copy>p:not(.eyebrow),.scroll-scene .copy>p:not(.eyebrow),.section-heading>p{font-size:16px;line-height:1.6;max-width:600px;margin-top:22px}
 .copy p.detail,.scroll-scene .copy p.detail{font-size:15px;line-height:1.6}
 .eyebrow{font-size:10px;line-height:1.5;margin-bottom:20px;letter-spacing:.03em}
 .big-number,.scroll-scene .big-number{display:flex;align-items:baseline;gap:6px;font-size:clamp(96px,25vw,150px);margin-bottom:20px;line-height:1}
 .big-number span{font-size:clamp(18px,4.4vw,26px);margin-left:0;white-space:nowrap}
 /* A vertical reveal is enough on small screens. No wide rotated rectangles. */
 .workflow,.ai-paper,.phone-wrap,.phone,.public-sheet,.receipt,.vote-board{transform:none!important;translate:none!important;will-change:auto}
 .motion-orbit,.motion-label,.scene-progress{display:none!important}
 .workflow,.ai-paper,.public-sheet,.receipt{width:100%;max-width:540px;margin:0;justify-self:center}
 .workflow{box-shadow:0 3px 0 #dce1ec,0 15px 32px -24px #12275f60}
 .window-top{padding:18px 20px;gap:12px;flex-wrap:wrap}
 .document,.scroll-scene .document{padding:24px 20px}
 .document h3,.ai-response h3{font-size:32px;line-height:1.08}
 .doc-top{gap:12px;line-height:1.5;padding-bottom:22px;overflow-wrap:anywhere}
 .step,.scroll-scene .step{padding:15px 12px;min-height:48px;font-size:14px;gap:12px}
 .status-box{min-height:96px}
 .status-box>div{min-width:0}
 .status-box p{font-size:13px;line-height:1.5}
 .pill,.text-link{max-width:100%;white-space:normal;text-align:center;line-height:1.4}
 .copy>.pill{width:100%;max-width:360px;min-height:50px;font-size:15px;padding:15px 20px;gap:12px}
 .vote-board{width:100%;min-width:0}
 .board-head,.board-bottom{padding:18px 20px;gap:12px;flex-wrap:wrap}
 .board-head>span:last-child{font-size:8px;max-width:none;text-align:left}
 .vote-main,.scroll-scene .vote-main{display:block;padding:28px 20px}
 .vote-main h3{font-size:32px;line-height:1.05}
 .vote-counts,.scroll-scene .vote-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:30px}
 .vote-counts strong,.scroll-scene .vote-counts strong{font-size:clamp(44px,12vw,74px)}
 .vote-counts span{font-size:9px;letter-spacing:.03em}
 .board-bottom{display:flex;align-items:flex-start;flex-direction:column;font-size:11px;line-height:1.5}
 .board-bottom button{min-height:44px;max-width:100%;font-size:13px;text-align:left;white-space:normal}
 .ai-tabs{gap:8px;margin-top:24px}
 .ai-tabs button{flex:1 1 130px;min-width:0;min-height:46px;white-space:normal;font-size:12px;padding:12px}
 .ai-paper{padding:26px 22px}
 .prompt{font-size:15px;padding:16px}
 .ai-response{min-height:0;margin-top:28px}
 .ai-response>p{font-size:15px;line-height:1.6}
 .paper-note{font-size:11px;line-height:1.6}
 .phone-wrap{width:100%;max-width:340px;justify-self:center;margin:0 auto}
 .phone,.scroll-scene .phone{width:100%;max-width:100%;min-width:0;min-height:0;border-width:7px;border-radius:36px;padding-top:38px;padding-bottom:32px}
 .phone-head{gap:8px;padding:12px}
 .phone-head>div{min-width:0}
 .avatar{flex-shrink:0}
 .chat{padding:16px 12px;gap:14px}
 .chat>.bubble,.chat>.tracking{opacity:1!important;transform:none!important;will-change:auto}
 .bubble{max-width:92%;font-size:13px;line-height:1.5;padding:12px;overflow-wrap:anywhere}
 .bubble strong{font-size:12px}
 .tracking{padding:16px;font-size:12px}
 .tracking li:before{flex-shrink:0}
 .phone-caption{display:block;font-size:12px;text-align:center}
 .transparency-grid{padding-top:0}
 .public-sheet{padding:28px 22px}
 .public-sheet h3{font-size:34px;line-height:1.08;margin-bottom:28px}
 .public-row{font-size:14px;padding:18px 0;gap:12px;transform:none!important;opacity:1!important}
 .public-row>span:first-child{min-width:0;overflow-wrap:anywhere}
 .public-row>span:last-child{flex-shrink:0}
 .transparency-copy article{opacity:1!important;transform:none!important}
 .transparency-copy h3{font-size:27px;line-height:1.1}
 .transparency-copy p{font-size:16px;line-height:1.6}
 .receipt{padding:30px 22px 40px}
 .receipt-item{gap:14px;margin:26px 0;opacity:1!important;transform:none!important}
 .receipt-item>div{min-width:0}
 .receipt-item>span{flex-shrink:0}
 .receipt-item h3{font-size:24px;line-height:1.1}
 .receipt-item p{font-size:13px;line-height:1.6;overflow-wrap:anywhere}
 .receipt-footer{flex-wrap:wrap;gap:10px}
 .receipt-footer>span{font-size:9px;line-height:1.5}
 .closing-title{font-size:clamp(44px,11vw,76px);line-height:1.04}
 .closing-title .word-line>span{max-width:100%;overflow-wrap:normal}
 .closing-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:24px;margin-top:30px}
 .closing-bottom>p{font-size:16px;line-height:1.6}
 .closing-bottom .pill{margin:0;min-height:50px}
 .resource-list{margin-top:48px;scroll-margin-top:88px}
 .resource-list>h3{font-size:24px;line-height:1.15}
 .resource-list summary{font-size:16px;line-height:1.5;gap:12px;padding:20px 0}
 .resource-list summary span{flex-shrink:0}
 .resource-list details p{font-size:15px;line-height:1.6}
 footer{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-top:56px;padding-top:28px}
 footer>span,footer small{flex-basis:auto}
 footer>a:not(.brand){min-height:44px;display:flex;align-items:center;font-size:13px}
 body:after{display:none}
}
@media(max-width:480px){.nav-cta-label{display:none}.nav-cta-short{display:inline}.nav .brand{font-size:26px}.nav .pill{padding:12px 14px;font-size:12px}.nav{gap:8px}}
@media(max-width:900px) and (max-height:700px){.hero-copy,.organized{top:90px}.hero h1{font-size:clamp(38px,9.8vw,58px)}.hero-copy .lead{font-size:14px;margin-top:16px}.organized h2{font-size:clamp(36px,9vw,50px)}.hero-checks{font-size:12px;gap:8px;margin-top:16px}}
@media(prefers-reduced-motion:reduce){.hero-track{height:auto;min-height:0}.hero-copy{display:none}.nav-away{transform:none}}
@media(max-width:360px){.nav .brand{font-size:24px}.nav .pill{font-size:11px;padding:12px 10px}.nav>.pill>span:last-child{display:none}}
