:root { --blue:#252351; --red:#cc2026; --white:#fff; --ink:#171633; --soft:#f3f1f0; --realce:"Realce", "Lato", cursive; }
* { box-sizing:border-box; }
html, body { margin:0; font-family:Lato, Arial, sans-serif; color:var(--ink); }
body { overflow:hidden; background:var(--blue); }
button, input, select { font:inherit; }
.experience { height:200vh; transform:translateY(0); transition:transform .85s cubic-bezier(.76,0,.24,1); }
.experience.is-initializing { transition:none; }
.experience.show-form { transform:translateY(-100vh); }
.page { min-height:100vh; height:100vh; position:relative; overflow:hidden; }
.cover { background:var(--blue); display:flex; align-items:center; justify-content:center; isolation:isolate; }
.toronto { position:absolute; width:max(108vw,1300px); height:auto; top:-30%; right:-24%; opacity:.18; z-index:-1; pointer-events:none; }
.institution-bar { position:absolute; top:0; left:50%; transform:translateX(-50%); width:min(600px,88vw); min-height:108px; padding:14px 18px; border-radius:0 0 28px 28px; background:var(--red); display:flex; align-items:center; justify-content:space-evenly; }
.institution-bar img { width:auto; height:80px; object-fit:contain; }
.institution-bar span { display:none; }
.cover-content { width:min(600px,76vw); text-align:center; padding-top:42px; }
.campaign-lockup { position:relative; width:100%; }
.campaign-logo { display:block; width:100%; max-height:52vh; object-fit:contain; }
.canada { position:absolute; width:29%; right:-9%; top:-7%; transform:rotate(7deg); filter:drop-shadow(0 8px 8px rgba(16,14,48,.18)); }
.signup-button, .submit-button { border:0; background:var(--red); color:#fff; font-weight:900; cursor:pointer; transition:transform .2s, background .2s, box-shadow .2s; }
.cover-actions { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:22px; }.signup-button { margin:0; padding:17px 29px; border-radius:999px; font-size:1.06rem; box-shadow:0 10px 22px rgba(18,16,62,.26); }
.notice-button { color:#fff; border:1px solid rgba(255,255,255,.8); border-radius:999px; padding:16px 22px; font-size:.92rem; font-weight:900; text-decoration:none; transition:background .2s, color .2s, transform .2s; }.notice-button:hover { background:#fff; color:var(--blue); transform:translateY(-3px); }
.signup-button span, .submit-button span { font-size:1.25em; margin-left:12px; }
.signup-button:hover, .submit-button:hover { transform:translateY(-3px); background:#e22a31; box-shadow:0 12px 22px rgba(18,16,62,.3); }
.scroll-cue { position:absolute; bottom:25px; color:#fff; border:0; background:transparent; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }.scroll-cue span { display:block; font-size:1.2rem; margin-top:4px; }
.registration { background:var(--soft); display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); }
.form-panel { padding:clamp(36px,6vw,82px) clamp(24px,8vw,110px); overflow:auto; }
.form-heading h2, .information h2 { font-size:clamp(2rem,3.5vw,3.35rem); line-height:.98; margin:0 0 14px; font-weight:900; max-width:580px; }
em { color:var(--red); font-family:var(--realce); font-style:italic; }.eyebrow { color:var(--red); font-size:.75rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; margin:0 0 13px; }.form-heading > p:last-child { margin:0 0 25px; line-height:1.45; }
.form-progress { margin:0 0 26px; }.progress-meta { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:9px; color:var(--blue); font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }.progress-meta strong { color:var(--red); font-weight:900; }.progress-label { text-align:right; }.progress-line { height:7px; overflow:hidden; border-radius:999px; background:#ddd9da; }.progress-line span { display:block; height:100%; width:50%; border-radius:inherit; background:var(--red); transition:width .35s ease; }.form-step { border:0; margin:0; padding:0; min-width:0; display:none; }.form-step.active { display:block; }.form-step legend { padding:0; margin:0 0 14px; color:var(--blue); font-size:1.05rem; font-weight:900; }.fields-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px; }.fields-grid .full { grid-column:1/-1; }
label { color:var(--blue); display:flex; flex-direction:column; font-size:.78rem; font-weight:700; gap:6px; }
input, select { appearance:none; width:100%; border:1px solid #d7d2d1; border-radius:6px; background:#fff; color:var(--ink); padding:12px; outline-color:var(--red); }
.consent-group { margin-top:17px; }.check-row { display:flex; align-items:flex-start; gap:9px; }.check-row + .check-row { margin-top:10px; }.consent-checkbox { -webkit-appearance:checkbox; appearance:checkbox; flex:0 0 18px; width:18px; height:18px; margin:0; accent-color:var(--red); cursor:pointer; }.check { display:block; margin:0; cursor:pointer; color:var(--blue); font-size:.78rem; line-height:1.35; font-weight:400; }.check a { color:var(--red); font-weight:700; }.privacy { margin-top:0; }
.privacy-details { margin-top:12px; color:var(--blue); font-size:.76rem; line-height:1.45; }.privacy-details summary { color:var(--red); cursor:pointer; font-weight:700; }.privacy-details p { margin:7px 0 0; }
.form-message { margin:0 0 20px; padding:13px 15px; border-radius:6px; font-size:.85rem; line-height:1.4; }.form-message ul { margin:7px 0 0; padding-left:18px; }.form-message.success { color:#164c31; border:1px solid #77b999; background:#e6f5ea; }.form-message.error { color:#8f1c21; border:1px solid #e3a5a7; background:#fff0f0; }.honeypot { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.thank-you { max-width:540px; margin-top:30px; padding:32px; border-radius:12px; background:#fff; box-shadow:0 14px 30px rgba(37,35,81,.1); }.thank-you-icon { width:45px; height:45px; display:grid; place-items:center; border-radius:50%; background:var(--red); color:#fff; font-size:1.35rem; font-weight:900; }.thank-you h3 { margin:18px 0 9px; color:var(--blue); font-size:1.55rem; font-weight:900; }.thank-you p { margin:0; color:var(--ink); line-height:1.55; }.thank-you-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }.thank-you-button, .thank-you-notice { display:inline-block; padding:12px 18px; border-radius:6px; font-size:.88rem; font-weight:900; text-decoration:none; transition:transform .2s, background .2s; }.thank-you-button { background:var(--blue); color:#fff; }.thank-you-notice { border:1px solid var(--blue); color:var(--blue); }.thank-you-button:hover { background:var(--red); transform:translateY(-2px); }.thank-you-notice:hover { background:var(--blue); color:#fff; transform:translateY(-2px); }
.submit-button { margin-top:22px; padding:13px 21px; border-radius:6px; font-size:.9rem; }.step-actions { display:flex; justify-content:space-between; align-items:end; }.step-actions .submit-button { margin-top:22px; }.previous-button { color:var(--blue); border:0; background:transparent; padding:13px 0; font-size:.9rem; font-weight:900; cursor:pointer; }
.information { background:var(--blue); color:white; padding:clamp(38px,7vw,100px) clamp(28px,5vw,78px); display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }.information::after { content:""; position:absolute; width:480px; height:480px; border:1px solid rgba(255,255,255,.2); border-radius:50%; top:-160px; right:-200px; pointer-events:none; }.information .eyebrow { color:#fff; }.information h2 { position:relative; z-index:1; }.institutional-placeholder { border:1px dashed rgba(255,255,255,.55); padding:22px; margin-top:20px; color:rgba(255,255,255,.8); font-size:.95rem; line-height:1.5; }.back-button { position:relative; z-index:1; color:white; border:0; background:transparent; padding:0; margin-top:35px; align-self:flex-start; cursor:pointer; font-weight:700; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:760px) { .institution-bar { min-height:108px; padding:14px 8px; }.registration { display:block; overflow:auto; }.form-panel { min-height:100vh; padding:38px 24px 52px; }.information { min-height:60vh; }.fields-grid { grid-template-columns:1fr; }.fields-grid .full { grid-column:auto; }.progress-meta { font-size:.65rem; }.cover-actions { flex-direction:column-reverse; gap:10px; }.signup-button, .notice-button { width:100%; }.scroll-cue { bottom:15px; }.campaign-logo { max-height:42vh; }.canada { right:-11%; }.experience.show-form { transform:translateY(-100vh); } }
