*{box-sizing:border-box}
:root{color-scheme:light;--paper:#eeeae0;--ink:#181918;--green:#2b8629;--lime:#76e64b;--headline-size:clamp(42px,5.5vw,88px)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
[hidden]{display:none!important}
button,input,summary{font:inherit;-webkit-tap-highlight-color:transparent}
button,summary{cursor:pointer}
a{color:inherit;text-decoration:none}
.vote-link{display:inline-flex;align-items:center;min-height:44px}
.vote-link:hover{text-decoration:underline;text-underline-offset:4px}
:focus-visible{outline:3px solid var(--green);outline-offset:5px}
.campaign{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;border-top:12px solid var(--lime);padding:0 clamp(24px,5vw,100px);background:var(--paper)}
.campaign::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.12;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' opacity='.3' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}





.campaign-layout{max-width:1600px;margin:auto;display:flex;flex-direction:column;align-items:center;gap:16px;min-height:calc(100svh - 12px);padding:18px 0 80px}
.message{width:100%;text-align:center}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;margin:0 0 8px;display:flex;justify-content:center;align-items:center;gap:12px}
.eyebrow::before{content:"";display:inline-block;width:25px;height:3px;background:var(--green)}
h1{font-family:Impact,'Arial Narrow','Helvetica Neue',sans-serif;font-weight:900;font-stretch:condensed;font-size:var(--headline-size);line-height:.96;letter-spacing:-1.5px;margin:0;text-transform:uppercase}
h1 span{color:var(--green);white-space:nowrap}
.stage{min-width:0;width:min(100%,1440px,calc(max(240px,100svh - var(--headline-size)*.96 - 240px)*var(--video-ratio,1.7778)));position:relative;z-index:2}
.video-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:12px;line-height:1}
.video-label{font-size:12px;letter-spacing:1.8px;font-weight:900}
.screen{position:relative;width:100%;aspect-ratio:var(--video-ratio,16/9);background:#080808;border:7px solid var(--ink);box-shadow:10px 10px 0 #b9b4a8;overflow:hidden}
.screen video,.screen iframe{width:100%;height:100%;position:absolute;inset:0;border:0;background:#000;object-fit:contain}
.standby{position:absolute;inset:0}
.screen-placeholder{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 48%}
.video-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding-top:8px;border-top:2px solid var(--ink);font-size:10px;font-weight:800;letter-spacing:1.4px}
.video-caption strong{font-size:20px;letter-spacing:-.5px;color:var(--green)}
.host{position:absolute;z-index:1;bottom:0;left:16px;width:clamp(140px,13vw,190px);height:auto;aspect-ratio:600/526;cursor:pointer;filter:grayscale(1) contrast(1.15)}
.host img{display:block;width:100%;height:100%;object-fit:contain;object-position:left bottom}
.host.host-right img{object-position:right bottom}
.host.host-right{left:auto;right:clamp(12px,3vw,60px);width:clamp(95px,11vw,160px);aspect-ratio:600/526;object-fit:contain;object-position:right bottom;filter:grayscale(1) contrast(1.15)}
.campaign-stamp{position:absolute;bottom:26px;left:calc(16px + clamp(140px,13vw,190px) + 12px);transform:rotate(-8deg);border:3px solid var(--green);color:var(--green);padding:9px 15px 8px;line-height:.94;font-size:16px;font-weight:900;letter-spacing:1px;text-align:center;z-index:2}
.campaign-stamp strong{font-size:27px;letter-spacing:-1px}
.portrait .stage{max-width:480px;justify-self:center}
#preview-tools{max-width:760px;margin:20px auto 36px;padding:0 24px;font-size:14px}
summary{padding:14px 0;min-height:44px}
.preview-content{border-top:1px solid #9b968c;padding-top:8px}
.preview-content p{line-height:1.6}
.input-row{display:flex;gap:8px;margin-top:8px}
input[type=url]{flex:1;min-width:0;border:1px solid #777267;background:#fff;color:var(--ink);padding:10px;font-size:16px;min-height:44px}
button{background:var(--ink);color:#fff;padding:10px 14px;border:0;min-height:44px}
.file-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0}
.file-row>label{width:100%}
input[type=file]{max-width:100%;font-size:12px}
.toggle{display:flex;align-items:center;gap:8px;min-height:44px}
#status:empty{display:none}
@media(max-width:700px){
 .campaign{padding:0 20px;border-top-width:8px;min-height:100svh}
 .campaign-layout{gap:24px;min-height:0;padding:24px 0 175px}
 .eyebrow{font-size:10px;letter-spacing:1.6px;margin-bottom:14px}
 h1{font-size:clamp(26px,6.8vw,46px);line-height:1.05;letter-spacing:-.7px;white-space:nowrap}
 .stage{width:100%}.video-heading{font-size:21px;margin-bottom:11px}.video-label{font-size:10px;letter-spacing:1.5px}
 .screen{border-width:4px;box-shadow:6px 6px 0 #b9b4a8;min-height:200px}
 .video-caption{margin-top:22px;padding-top:13px;gap:10px;font-size:8px;letter-spacing:.8px}.video-caption strong{font-size:16px;white-space:nowrap}
 .host{width:170px;left:0}.host.host-right{width:100px;right:10px}
 .campaign-stamp{left:153px;bottom:37px;padding:7px 9px;border-width:2px;font-size:15px}.campaign-stamp strong{font-size:24px}
 .input-row{flex-wrap:wrap}.input-row input{flex-basis:100%}
}
@media(max-width:360px){.campaign{padding:0 16px}.host{width:140px}.host.host-right{width:85px}.campaign-stamp{left:126px;font-size:13px}.campaign-stamp strong{font-size:20px}.video-caption{font-size:7px}.video-caption strong{font-size:14px}}
@media(max-height:500px) and (min-width:701px){.campaign-layout{padding-top:24px;padding-bottom:145px}.host{width:150px}.host.host-right{width:90px}.campaign-stamp{left:calc(3vw + 164px)}}

/* Phone composition: a readable headline, centered ad, and anchored bottom links. */
@media(max-width:700px){
 .campaign{height:100dvh;min-height:0}
 .campaign-layout{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:clamp(16px,3dvh,28px);padding:clamp(20px,4dvh,40px) 0 175px}
 .message{align-self:start}
 h1{font-size:clamp(42px,12vw,68px);line-height:.96;white-space:normal;letter-spacing:-1px}
 h1 span{display:block}
 .eyebrow{margin-bottom:16px}
 .stage{align-self:center;justify-self:center;width:100%}
 .video-heading{font-size:10px;margin-bottom:10px}
 .video-caption{margin-top:18px;padding-top:8px}
}
@media(max-width:700px) and (max-height:700px){
 .campaign-layout{padding-top:16px;padding-bottom:132px;gap:14px}
 h1{font-size:clamp(32px,10vw,44px)}
 .eyebrow{font-size:9px;margin-bottom:10px}
 .video-heading{margin-bottom:8px}
 .video-caption{margin-top:12px;padding-top:6px}
 .host{width:140px}.host.host-right{width:85px}
 .campaign-stamp{left:126px;bottom:28px;font-size:13px}.campaign-stamp strong{font-size:20px}
}
@media(max-height:500px) and (orientation:landscape){
 .campaign{height:100dvh;min-height:0}
 .campaign-layout{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding-top:10px;padding-bottom:60px;gap:6px}
 .eyebrow{display:none}
 h1{font-size:clamp(24px,5.5vw,36px)}h1 span{display:inline}
 .stage{align-self:center;justify-self:center;width:min(100%,calc((100dvh - 180px)*var(--video-ratio,1.7778)))}
 .screen{min-height:0}
 .video-heading{display:none}
 .video-caption{margin-top:8px;padding-top:0}
 .host{width:75px}.host.host-right{width:60px}
 .campaign-stamp{left:90px;bottom:10px;font-size:10px;padding:4px 6px}.campaign-stamp strong{font-size:15px}
}
