/* ASCOT's public front door: campus photography, forest ink and sunny actions.
   Scoped to standalone documents; request handling and form behavior are unchanged. */
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) {
  --ink: #f7faf6;
  --ink-2: #eef5ec;
  --panel: #fff;
  --panel-2: #f2f7ee;
  --txt: #183e27;
  --mut: #526459;
  --dim: #526459;
  --line: #dae5d8;
  --line-2: #c2d5bd;
  --leaf: #28783a;
  --forest: #1f5a2e;
  --sun: #806500;
  --cyan: #28783a;
  --gold: #806500;
  --green: #28783a;
  --mint: #28783a;
  --amber: #806500;
  --red: #b52c35;
  --rose: #b52c35;
  --grad: linear-gradient(115deg,#1f5a2e,#28783a);
  --disp: 'Bricolage Grotesque',sans-serif;
  --body: 'Manrope',sans-serif;
  background: var(--ink);
  color: var(--txt);
  font-family: var(--body);
  color-scheme: light;
}
html:not([data-theme="light"]) body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) {
  --ink: #0d1f16;
  --ink-2: #162d20;
  --panel: #162d20;
  --panel-2: #1e3828;
  --txt: #edf5ea;
  --mut: #bbcdbd;
  --dim: #a6bea9;
  --line: #2c4935;
  --line-2: #496650;
  --leaf: #a3d5aa;
  --forest: #a3d5aa;
  --cyan: #bddd98;
  --gold: #f4c430;
  --amber: #f4c430;
  --green: #a3d5aa;
  --rose: #ffa3a6;
  --red: #ffa3a6;
  color-scheme: dark;
}
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) :is(h1,h2,h3,b) { font-family: var(--disp); }
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) :focus-visible { outline-color: #28783a; }
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) ::selection { background: #f4c430; color: #183e27; }
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) .brand-mark { filter: drop-shadow(0 5px 12px #183e2720); }
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) .brand small { color: var(--mut); }
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) a { color: inherit; }

/* Public landing: a white campus prospectus with a gold sign-up action. */
body.ascot-landing::before { opacity: .12; mix-blend-mode: multiply; }
body.ascot-landing .nav,
body.ascot-landing .nav.is-solid { background: #fffffff2; border-color: #dae5d8; backdrop-filter: blur(16px); color: #183e27; }
body.ascot-landing .nav .brand small { color: #526459; }
body.ascot-landing .nav-links a { color: #526459; }
body.ascot-landing .nav-links a:hover,
body.ascot-landing .nav-links a.is-here { color: #1f5a2e; background: #e8f3e7; }
body.ascot-landing .nav-burger { border-color: #c2d5bd; color: #1f5a2e; }
body.ascot-landing .btn-hero { background: #f4c430; color: #183e27; box-shadow: 0 9px 25px #9a751722; border-color: #d4ac21; }
body.ascot-landing .btn-hero:hover { background: #ffda59; box-shadow: 0 14px 30px #9a751733; }
body.ascot-landing .btn-ghost { color: var(--txt); background: var(--panel); border-color: var(--line-2); }
body.ascot-landing .btn-ghost:hover { background: var(--ink-2); border-color: var(--leaf); }
body.ascot-landing .hero { min-height: min(920px,100svh); padding-top: 142px; }
body.ascot-landing .hero-bg img { object-position: right center; opacity: .65; filter: saturate(.78); }
body.ascot-landing .hero-bg::after { background: linear-gradient(90deg,#f7faf6 0%,#f7faf6f5 31%,#f7faf6a0 70%,#f7faf638 100%),linear-gradient(0deg,#f7faf6 0%,#f7faf600 55%); }
body.ascot-landing .hero .wrap { width: 100%; }
body.ascot-landing .hero::after { content:'ASCOT'; position:absolute; right:7%; bottom:12%; font:700 clamp(60px,9vw,130px)/1 'Caveat',cursive; color:#1f5a2e38; transform:rotate(-8deg); pointer-events:none; z-index:-1; }
body.ascot-landing .kicker { color: #1f5a2e; border-color: #c2d5bd; background: #e8f3e7d9; }
body.ascot-landing h1 .accent { color: #1f5a2e; background: none; }
body.ascot-landing h1 .strike { color: #68766c; }
body.ascot-landing h1 .strike::after { background: #f4c430; }
body.ascot-landing .hero-sub { color: #526459; }
body.ascot-landing .hero-sub b { color: #183e27; }
body.ascot-landing .hero-stats { max-width: 780px; border-color: #c2d5bd; }
body.ascot-landing .hstat b { color: #1f5a2e; }
body.ascot-landing .hstat span { color: #526459; }
body.ascot-landing .scroll-hint { color: #526459; }
body.ascot-landing .marq-track span { -webkit-text-stroke-color: #588564; }
body.ascot-landing .tile,
body.ascot-landing .step,
body.ascot-landing .impact-grid .cell,
body.ascot-landing .pain-item { background: var(--panel); border-color: var(--line); box-shadow: 0 6px 22px #183e2706; }
body.ascot-landing .tile:hover { border-color: #9abf99; box-shadow: 0 18px 38px #183e2712; }
body.ascot-landing .t-ic { background: #e8f3e7; color: #28783a; border: 0; }
body.ascot-landing .tile:nth-child(3n) .t-ic { background: #fff5cc; color: #806500; }
body.ascot-landing .tile::after { background: radial-gradient(closest-side,#e8f3e7,transparent); }
body.ascot-landing .tile::before { background: radial-gradient(260px circle at var(--mx) var(--my),#80b58888,transparent 70%); }
body.ascot-landing .step::before { color: #28783a; background: none; }
body.ascot-landing .cta-panel { background: linear-gradient(145deg,#e8f3e7,var(--panel) 55%,#fff5cc); border-color: #c2d5bd; box-shadow: 0 12px 36px #183e2709; }
body.ascot-landing .cta-panel::before { background: conic-gradient(from var(--ang),transparent 0 70%,#28783a80 82%,#f4c430a0 90%,transparent 98%); }
body.ascot-landing .shot { box-shadow: 0 20px 50px #183e2718; }
body.ascot-landing .shot .tag { color: #ffe0c7; background: #1b382cee; }
body.ascot-landing .stamp { mix-blend-mode: normal; color: #b52c35; border-color: #b52c35; text-shadow: none; box-shadow: none; }
body.ascot-landing .qr-live { background: var(--panel); }
body.ascot-landing .spot { background: radial-gradient(420px circle at var(--sx) var(--sy),#b1d4a732,transparent 65%); }
body.ascot-landing .orb { background:#28783a80; }
body.ascot-landing .orb.o2,
body.ascot-landing .orb.o3 { background:#f4c43080; }
body.ascot-landing .intro { background: #f7faf6; color: #183e27; }

/* Sign-in and registration: quiet form pane, immersive campus story. */
body.ascot-auth .side { background: #1f5a2e; color: #fff; }
body.ascot-auth .side::after { background: linear-gradient(160deg,#143f23ef,#143f23a0 48%,#143f23f2); }
body.ascot-auth .side .brand,
body.ascot-auth .side h2,
body.ascot-auth .side .perk b,
body.ascot-auth .side .next-card b { color: #fff; }
body.ascot-auth .side h2 em { color: #f4c430; background: none; }
body.ascot-auth .side .brand small,
body.ascot-auth .side .perk span,
body.ascot-auth .side .next-card span,
body.ascot-auth .side-foot { color: #d6e7d7; }
body.ascot-auth .side .brand-mark { background:#fff; border-radius:10px; padding:5px; }
body.ascot-auth .next-card { background: #173f25d9; border-color: #a7c8a544; }
body.ascot-auth .next-card .nk { color: #f4c430; }
body.ascot-auth .next-card .nk .dot { background: #f4c430; box-shadow: 0 0 10px #f4c43066; }
body.ascot-auth .perk-ic { color: #f4c430; background: #ffffff16; border-color: #ffffff28; }
body.ascot-auth .pane { background: radial-gradient(60% 50% at 100% 0%,#e8f3e7,transparent 70%),var(--ink); }
body.ascot-auth .pane>.card { padding: 34px; max-width: 494px; background: var(--panel); border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 16px 48px #183e270b; }
body.ascot-register .pane>.card { max-width: 628px; }
body.ascot-auth .fg label { color: var(--mut); }
body.ascot-auth :is(input,select) { background-color: var(--ink-2); color: var(--txt); border-color: var(--line-2); }
body.ascot-auth :is(input,select):hover { border-color: #8eae8d; }
body.ascot-auth :is(input,select):focus { background-color: var(--panel); border-color: #28783a; box-shadow: 0 0 0 4px #28783a1a; }
body.ascot-auth input[type=date] { color-scheme: light; }
body.ascot-auth select option { background: var(--panel); }
body.ascot-auth .row-between a,
body.ascot-auth .foot-link a,
body.ascot-auth .consent a { color: var(--leaf); }
body.ascot-auth :is(.btn-next,.ascot-login .btn) { background: #f4c430; color: #183e27; box-shadow: 0 9px 24px #9a751722; }
body.ascot-login .btn { background: #f4c430; color: #183e27; box-shadow: 0 9px 24px #9a751722; }
body.ascot-auth :is(.btn-next,.btn):hover { box-shadow: 0 14px 30px #9a751733; }
body.ascot-auth .btn-back,
body.ascot-auth .alt-link { background: var(--panel); color: var(--mut); border-color: var(--line-2); }
body.ascot-auth .btn-back:hover,
body.ascot-auth .alt-link:hover { background: var(--ink-2); color: var(--txt); border-color: var(--leaf); }
body.ascot-auth .st.is-now .st-dot { background: #1f5a2e; color: #fff; border-color: #1f5a2e; box-shadow: 0 0 0 5px #e8f3e7; }
body.ascot-auth .st.is-done .st-dot { background: #e8f3e7; color: #28783a; border-color: #28783a; }
body.ascot-auth .alert-err { background: #fff0f0; color: #9f2630; border-color: #e8bdc0; }
body.ascot-auth .alert-ok { background: #e8f3e7; color: #1f5a2e; border-color: #a7cba6; }
body.ascot-auth .pw-eye:hover { background: #28783a10; }
body.ascot-auth .consent { background: var(--ink-2); }
body.ascot-auth .consent input:checked { background: #1f5a2e; }
body.ascot-auth .spin { border-color: #183e2730; border-top-color: #183e27; }
body.ascot-register .wiz.js { overflow:clip; }

/* Recovery and privacy use the same white-paper system as the signed-in app. */
body.ascot-recovery .auth-wrap { min-height: 100svh; background: radial-gradient(ellipse at top left,#e8f3e7,transparent 60%),var(--bg,#f7faf6); padding: 40px 20px; }
body.ascot-recovery .auth-card { border: 1px solid var(--border,#dae5d8); border-radius: 28px; box-shadow: 0 18px 60px #183e2710; }
body.ascot-recovery .auth-wrap::before,
body.ascot-recovery .auth-wrap::after,
body.ascot-recovery .auth-card::before { display:none; }
body.ascot-recovery .auth-card { background:var(--bg2,#fff); color:var(--text,#183e27); }
body.ascot-recovery .auth-card :is(label,.auth-title) { color:var(--text,#183e27); }
body.ascot-recovery .auth-card :is(.auth-subtitle,.auth-links,.otp-timer,.otp-divider) { color:var(--text-muted,#526459); }
body.ascot-recovery .auth-title { color: var(--text,#183e27); }
body.ascot-recovery .auth-card input { background: var(--surface-2,#eef5ec)!important; color: var(--text,#183e27)!important; border-color: var(--border2,#c2d5bd)!important; }
body.ascot-recovery .auth-card a { color: var(--accent,#28783a)!important; }
body.ascot-recovery .otp-inputs { gap: 7px; }
body.ascot-recovery .otp-inputs input { min-width: 0; flex: 1; max-width: 52px; padding: 0; }
body.ascot-recovery .otp-timer,
body.ascot-recovery .otp-divider { color: var(--text-muted,#526459); }
body.ascot-privacy .sec-hero { background: linear-gradient(135deg,#e8f3e7,var(--surface,#fff)); }
body.ascot-privacy .sec-pill.is-law { color: #1f5a2e; border-color: #a7cba6; background: #e8f3e7; }
body.ascot-privacy .sec-card { background:var(--bg2,#fff)!important; background-image:none!important; }
body.ascot-privacy .sec-card::before,
body.ascot-privacy .sec-card::after { display:none; }

/* Evaluation is a readable paper scorecard with green choices, gold submit. */
body.ascot-evaluation::before { background: radial-gradient(40% 50% at 18% 30%,#e8f3e7,transparent 70%),radial-gradient(35% 45% at 82% 18%,#fff5cc,transparent 70%); }
body.ascot-evaluation .top { background: var(--panel); }
body.ascot-evaluation .eyebrow { color: var(--leaf); }
body.ascot-evaluation :is(.fact,.field label,.field .lbl,.chip span,.stmt legend,.bars a) { color: var(--txt); }
body.ascot-evaluation :is(.fact b,.legend b) { color: var(--txt); }
body.ascot-evaluation .card { background: var(--panel); box-shadow: 0 8px 28px #183e2707; }
body.ascot-evaluation :is(input[type=text],input[type=email],select,textarea) { background-color: var(--ink-2); color: var(--txt); }
body.ascot-evaluation .sec-avg.on { color: #1f5a2e; background: #e8f3e7; border-color: #a7cba6; }
body.ascot-evaluation .submit { background: #f4c430; color: #183e27; box-shadow: 0 9px 28px #9a751722; }
body.ascot-evaluation .submit:hover { background: #ffda59; box-shadow: 0 14px 34px #9a751733; }
body.ascot-evaluation .alert { color: #9f2630; background: #fff0f0; border-color: #e8bdc0; }
body.ascot-evaluation .prog,
body.ascot-evaluation .bars .bar { background: #dce8d8; }
body.ascot-evaluation .thanks .mark { background: #1f5a2e; color: #fff; }
body.ascot-evaluation .pt input:checked+span { color: #fff; background: #1f5a2e; }
body.ascot-evaluation .pt input:checked+span small { color: #e2eee0; }
body.ascot-evaluation .chip input:checked+span { background: #1f5a2e; color: #fff; }
body.ascot-evaluation .chip.box input:checked+span::before { box-shadow: inset 0 0 0 3px #1f5a2e; }

/* Kiosk retains its carefully sized live camera flow. */
body.ascot-kiosk { --ink:#183e27; --muted:#526459; --paper:#f7faf6; --line:#dae5d8; --teal:#28783a; --mint:#e8f3e7; --amber:#f4c430; }
body.ascot-kiosk .k-launch { background: #f4c430; color: #183e27; border: 1px solid #d4ac21; }
body.ascot-kiosk .k-launch:hover { background: #ffda59; color: #183e27; }
body.ascot-kiosk .k-setup-story { background: linear-gradient(145deg,#e8f3e7,#fff5cc); }
body.ascot-kiosk .kiosk-way-camera { background: #1f5a2e; border-color: #1f5a2e; }
body.ascot-kiosk .kiosk-prog-fill { background: linear-gradient(90deg,#28783a,#f4c430); }
body.ascot-kiosk .k-stat-dot.late { background: #aa7e00; }
body.ascot-kiosk .k-button { transition: transform .22s ease,background .22s ease,box-shadow .22s ease; }
body.ascot-kiosk .k-button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px #183e2711; }

/* Responsive rules intentionally follow the desktop composition. */
@media(max-width:900px) {
  body.ascot-auth .shell { grid-template-columns: 1fr; }
  body.ascot-auth .side { display:none; }
  body.ascot-auth .pane { min-height: 100svh; padding: 28px 18px; }
  body.ascot-auth .pane>.card { padding: 28px; }
  body.ascot-register .pane>.card { max-width: 560px; }
}
@media(max-width:980px) { body.ascot-evaluation .rail .card { background: var(--panel); } }
@media(max-width:720px) {
  body.ascot-landing .nav-links { background: #fffffff7; }
  body.ascot-landing .hero { min-height: 850px; padding: 126px 0 76px; }
  body.ascot-landing .hero-bg img { opacity: .4; object-position: 70% center; }
  body.ascot-landing .hero-bg::after { background: linear-gradient(90deg,#f7faf6f0,#f7faf6bb),linear-gradient(0deg,#f7faf6,transparent 80%); }
  body.ascot-landing .hero::after { bottom: 8%; right: 5%; font-size: 64px; }
  body.ascot-landing .hero-stats { margin-top: 46px; }
  body.ascot-landing .hero-ctas .btn { flex: 1; padding-inline: 18px; }
  body.ascot-landing .nav-in { gap: 12px; }
  body.ascot-landing .nav-cta .btn-sm { padding-inline: 14px; }
}
@media(max-width:480px) {
  body.ascot-auth .pane { padding: 18px 12px; }
  body.ascot-auth .pane>.card { padding: 24px 20px; border-radius: 22px; }
  body.ascot-auth .st { gap: 6px; }
  body.ascot-auth .st-label { font-size: 11px; }
  body.ascot-auth .st-line { margin-inline: 7px; }
  body.ascot-auth .st-dot { width: 29px; height: 29px; }
  body.ascot-recovery .auth-wrap { padding: 24px 14px; }
  body.ascot-recovery .auth-card { padding: 26px 20px; }
  body.ascot-evaluation .top .brand span { font-size: 9px; letter-spacing:.08em; }
}
html:not([data-theme="light"]) body.ascot-landing .hero-bg::after { background: linear-gradient(90deg,#0d1f16 0%,#0d1f16ec 40%,#0d1f1660 100%),linear-gradient(0deg,#0d1f16,transparent 70%); }
html:not([data-theme="light"]) body.ascot-landing :is(.hero-sub,.hstat span,.scroll-hint) { color:#bbcdbd; }
html:not([data-theme="light"]) body.ascot-landing :is(.hero-sub b,.hstat b) { color:#edf5ea; }
html:not([data-theme="light"]) body.ascot-landing h1 .accent { color:#a3d5aa; }
html:not([data-theme="light"]) body.ascot-landing .cta-panel { background:linear-gradient(145deg,#1e3828,#162d20); }
html:not([data-theme="light"]) body.ascot-auth .pane { background:radial-gradient(60% 50% at 100% 0%,#1e3828,transparent 70%),var(--ink); }
html:not([data-theme="light"]) body.ascot-recovery .auth-wrap { background:radial-gradient(ellipse at top left,#1e3828,transparent 60%),#0d1f16; }
html:not([data-theme="light"]) body.ascot-auth input[type=date] { color-scheme:dark; }
html:not([data-theme="light"]) body.ascot-privacy .sec-hero { background:linear-gradient(135deg,#1e3828,#162d20); }
@media(prefers-reduced-motion:reduce) {
  body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-kiosk) *,
  body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-kiosk) *::before,
  body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-kiosk) *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  body.ascot-landing :is(.rv,h1 .w>span,h2 .sw>span),
  body.ascot-auth :is(.card,.card>*:not(.alert),.perk,.side h2,.next-card) { opacity:1; transform:none; }
  body.ascot-kiosk .k-button:hover { transform:none; }
}
/* Pass 2 — campus prospectus typography and confident paper surfaces. */
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation) {
  --txt:var(--ascot-text-heading); --mut:var(--ascot-text-secondary); --dim:var(--ascot-text-placeholder);
  --leaf:var(--ascot-text-link); --forest:var(--ascot-text-heading);
  --red:var(--ascot-text-error); --rose:var(--ascot-text-error); --amber:var(--ascot-text-warning);
  -webkit-font-smoothing:antialiased;
}
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-recovery,.ascot-privacy,.ascot-admin-gate) :is(p,li) { line-height:1.7; }
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-recovery,.ascot-privacy,.ascot-admin-gate) :is(h1,h2,h3) { color:var(--ascot-text-heading); }
body:is(.ascot-auth,.ascot-evaluation,.ascot-recovery,.ascot-admin-gate) :is(label,.lbl) { color:var(--ascot-text-label); }
body:is(.ascot-auth,.ascot-evaluation,.ascot-recovery,.ascot-admin-gate) :is(input,textarea)::placeholder { color:var(--ascot-text-placeholder)!important; opacity:1; }
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-recovery,.ascot-privacy) a:not(.btn,.btn-hero,.btn-ghost,.brand,.tile,.back,.nav-links a) { color:var(--ascot-text-link); }
body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-recovery,.ascot-privacy) a:not(.btn,.btn-hero,.btn-ghost,.brand,.tile,.back,.nav-links a):hover { color:var(--ascot-text-link-hover); }
body:is(.ascot-auth,.ascot-evaluation,.ascot-recovery,.ascot-admin-gate) :is(button,input,select,textarea):disabled { opacity:1; color:var(--ascot-text-disabled); background:var(--panel-2,var(--bg3)); cursor:not-allowed; box-shadow:none; }
body:is(.ascot-auth,.ascot-evaluation,.ascot-recovery,.ascot-admin-gate) :is(input,select,textarea):focus-visible { outline:3px solid var(--ascot-text-link); outline-offset:3px; }
body.ascot-landing .nav-links a { font-size:13px;font-weight:650; }
body.ascot-landing .hero { padding-top:150px;min-height:min(940px,100svh); }
body.ascot-landing h1 { font-size:clamp(56px,6.6vw,92px); letter-spacing:-.06em; max-width:10ch; }
body.ascot-landing h1 .strike { color:var(--ascot-text-secondary); }
body.ascot-landing h1 .strike::after { height:5px;transform:rotate(-3deg); }
body.ascot-landing .hero-sub { max-width:50ch; font-size:17px; line-height:1.8; }
body.ascot-landing .hero-stats { border-top:2px solid var(--line-2); padding-top:24px;gap:32px; }
body.ascot-landing .hstat b { font-size:34px;line-height:1.2;letter-spacing:-.04em; }
body.ascot-landing .hstat span { font-size:12px;letter-spacing:.01em; }
body.ascot-landing .hero-bg img { opacity:.78;object-position:75% 50%; }
body.ascot-landing .hero-bg::after { background:linear-gradient(90deg,#F7FAF6 0%,#F7FAF6F2 34%,#F7FAF6A0 59%,#F7FAF61A 100%),linear-gradient(0deg,#F7FAF6,transparent 65%); }
body.ascot-landing .kicker { box-shadow:none;letter-spacing:.12em;font-size:11px;padding:9px 14px; }
body.ascot-landing .tile { border-radius:24px;padding:30px; }
body.ascot-landing .tile h3 { letter-spacing:-.025em; }
body.ascot-landing .tile p { color:var(--ascot-text-secondary);font-size:14px; }
body.ascot-landing .t-ic { width:56px;height:56px;border-radius:18px; }
body.ascot-landing .t-ic .ascot-icon { width:40px;height:40px; }
body.ascot-landing .step { border-radius:24px; }
body.ascot-landing .cta-panel { border-radius:32px; }
html:not([data-theme="light"]) body.ascot-landing .nav,
html:not([data-theme="light"]) body.ascot-landing .nav.is-solid { background:#162D20F5;border-color:#496650;color:var(--ascot-text-heading); }
html:not([data-theme="light"]) body.ascot-landing .nav :is(.brand small,.nav-links a) { color:var(--ascot-text-secondary); }
html:not([data-theme="light"]) body.ascot-landing .nav-links a:is(:hover,.is-here) { color:var(--ascot-text-link);background:#1E3828; }
html:not([data-theme="light"]) body.ascot-landing :is(.nav-burger,.kicker,.t-ic) { color:var(--ascot-text-link);background:#1E3828;border-color:#496650; }
html:not([data-theme="light"]) body.ascot-landing .nav-links { background:#162D20F7; }
html:not([data-theme="light"]) body.ascot-landing .hero-bg::after { background:linear-gradient(90deg,#0D1F16 0%,#0D1F16F2 34%,#0D1F1690 59%,#0D1F1628 100%),linear-gradient(0deg,#0D1F16,transparent 65%); }
html:not([data-theme="light"]) body.ascot-landing .hero::after { color:#A8DDB06B; }
body.ascot-auth .side { padding:46px 52px; }
body.ascot-auth .side::after { background:linear-gradient(155deg,#143F23E8 2%,#143F238F 49%,#0D2C19F2 100%); }
body.ascot-auth .side h2 { max-width:14ch;font-size:clamp(34px,3.5vw,50px);letter-spacing:-.05em;line-height:1.08;color:var(--ascot-text-on-green); }
body.ascot-auth .side :is(.brand,.brand b,.perk b,.next-card b) { color:var(--ascot-text-on-green); }
body.ascot-auth .side :is(.brand small,.perk span,.next-card span,.side-foot,.side-foot a) { color:#D6E7D7; }
body.ascot-auth .side-foot a:hover { color:#FFF9E8; }
body.ascot-auth .next-card { border:1px solid #8EA98D66; background:#143F23E8;border-radius:22px;padding:22px; }
body.ascot-auth .next-card span { font-size:14px;line-height:1.55; }
body.ascot-auth .pane>.card { padding:38px;border-radius:28px;box-shadow:0 20px 60px #183E2710; border-top:4px solid #F4C430; }
body.ascot-auth .ascot-auth-eyebrow { font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.13em;color:var(--ascot-text-link);margin-bottom:12px; }
body.ascot-auth .fg label { font-size:11px;letter-spacing:.075em;color:var(--ascot-text-label); }
body.ascot-auth .sub { font-size:15px;line-height:1.65; }
body.ascot-auth :is(input,select) { min-height:54px;border-radius:13px;border-color:var(--line-2); }
body.ascot-auth .row-between a { font-size:13px; }
body.ascot-auth .btn { min-height:54px;border-radius:14px;box-shadow:0 8px 18px #9A75171A; }
body.ascot-auth .foot-link { font-size:13px; }
body.ascot-auth .st-label { color:var(--ascot-text-secondary);font-size:12px; }
body.ascot-auth .st.is-now .st-label { color:var(--ascot-text-heading);font-weight:800; }
body.ascot-auth .st:not(.is-now,.is-done) .st-dot { color:var(--ascot-text-secondary);background:var(--panel-2);border-color:var(--line-2); }
body.ascot-auth .perk { gap:14px; }
body.ascot-auth .perk-ic { width:46px;height:46px;border-radius:15px;background:#FFF9E815; }
body.ascot-auth .perk-ic .ascot-icon { width:32px;height:32px; }
body.ascot-auth .alert-err { color:var(--ascot-text-error);background:var(--panel-2);border-color:var(--ascot-text-error); }
html:not([data-theme="light"]) body.ascot-auth .alert-ok { color:var(--ascot-text-success);background:#1E3828;border-color:#496650; }
body.ascot-recovery .auth-wrap { background:radial-gradient(ellipse at 50% 0%,var(--surface-2,#E8F3E7),transparent 70%),var(--bg); }
body.ascot-recovery .auth-card { width:min(460px,100%);padding:36px; border-top:4px solid #F4C430;text-align:left; }
body.ascot-recovery .auth-card .auth-title { font:750 30px/1.15 'Bricolage Grotesque',sans-serif;letter-spacing:-.04em;margin-bottom:12px;text-align:left; }
body.ascot-recovery .auth-card .auth-subtitle { text-align:left;font-size:14px;line-height:1.7;margin-bottom:28px; }
.ascot-recovery-brand { display:flex;align-items:center;gap:12px;text-decoration:none;margin-bottom:26px;color:var(--ascot-text-heading)!important; }
.ascot-recovery-brand>span { font:800 18px/1.3 'Bricolage Grotesque',sans-serif; }
.ascot-recovery-brand small { display:block;font:600 10px/1.6 'Manrope',sans-serif;letter-spacing:.06em;color:var(--ascot-text-secondary); }
body.ascot-recovery .auth-card label { font-size:12px;font-weight:750; }
body.ascot-recovery .auth-card input { min-height:52px;border-radius:12px; }
body.ascot-recovery .auth-links { text-align:center;font-size:13px;margin-top:24px; }
body.ascot-recovery .auth-card .btn { min-height:52px;border-radius:12px; }
body.ascot-recovery .otp-inputs input { font-size:25px; }
body.ascot-recovery .otp-timer { font-size:13px; }
body.ascot-recovery .otp-divider { font-size:12px; }
body.ascot-recovery .auth-logo { margin:0 0 24px; }
body.ascot-privacy .sec-wrap { max-width:960px; }
body.ascot-privacy .sec-hero { padding:34px;border-radius:26px;border-top:4px solid #F4C430; }
body.ascot-privacy .sec-card { padding:30px;border-radius:22px;margin-bottom:20px; }
body.ascot-privacy .sec-card h2 { font-size:14px;letter-spacing:.035em; }
body.ascot-privacy .sec-card :is(p,li) { font-size:14px;line-height:1.8;color:var(--ascot-text-body); }
body.ascot-privacy .sec-card li { margin-top:7px; }
body.ascot-privacy .sec-card b { color:var(--ascot-text-heading); }
body.ascot-evaluation .hero { padding-top:50px;padding-bottom:38px; }
body.ascot-evaluation .hero h1 { letter-spacing:-.05em; }
body.ascot-evaluation .lead { line-height:1.75;color:var(--ascot-text-secondary); }
body.ascot-evaluation .card { border-radius:24px;padding:28px;border-color:var(--line); }
body.ascot-evaluation .sec-head h2 { font-size:25px;letter-spacing:-.035em; }
body.ascot-evaluation .sec-head p { color:var(--ascot-text-secondary);font-size:13px; }
body.ascot-evaluation .field :is(label,.lbl) { font-size:12px; }
body.ascot-evaluation .chip span { min-height:44px;align-content:center;border-radius:12px; }
body.ascot-evaluation .pt span { border-radius:13px;color:var(--ascot-text-heading); }
body.ascot-evaluation .pt span small { color:var(--ascot-text-secondary);font-size:10px; }
body.ascot-evaluation .pt input:checked+span :is(b,small) { color:#FFF9E8; }
body.ascot-evaluation .stmt legend { color:var(--ascot-text-body);line-height:1.65; }
body.ascot-evaluation .stmt legend i { color:var(--ascot-text-secondary); }
body.ascot-evaluation :is(.err,.has-err label) { color:var(--ascot-text-error); }
body.ascot-evaluation .score b { color:var(--ascot-text-heading); }
body.ascot-evaluation :is(.score span,.prog-txt,.rail-note,.bars em,.legend) { color:var(--ascot-text-secondary); }
body.ascot-evaluation .bars a { color:var(--ascot-text-label); }
body.ascot-evaluation .rail .card { border-top:4px solid #F4C430; }
body.ascot-admin-gate { background:radial-gradient(ellipse at 50% 0%,var(--bg3),transparent 70%),var(--bg);color:var(--ascot-text-body);font-family:'Manrope',sans-serif; }
body.ascot-admin-gate::before,body.ascot-admin-gate::after { display:none; }
body.ascot-admin-gate .av-card { width:min(500px,100%);padding:34px 36px;border-top:4px solid #F4C430;box-shadow:0 18px 55px #183E2712; }
body.ascot-admin-gate .av-hero { height:104px;margin-bottom:14px; }
body.ascot-admin-gate .av-card h1 { font-family:'Bricolage Grotesque',sans-serif;font-size:30px; }
body.ascot-admin-gate .av-sub { font-size:14px; }
body.ascot-admin-gate .av-field { border-radius:14px;background:var(--bg3);border-color:var(--control-border,#6E8972);box-shadow:none; }
body.ascot-admin-gate .av-field input { color:var(--ascot-text-body); }
body.ascot-admin-gate .av-submit { border-radius:14px;min-height:54px;box-shadow:0 8px 20px #9A751722;color:#183E27; }
body.ascot-admin-gate .av-submit:hover { box-shadow:0 12px 24px #9A75172B;transform:translateY(-2px); }
body.ascot-admin-gate .av-divider { color:var(--ascot-text-link);font-size:12px; }
body.ascot-admin-gate :is(.av-foot,.av-footnote) { color:var(--ascot-text-secondary);font-size:12px; }
body.ascot-admin-gate .av-error { background:var(--bg3);color:var(--ascot-text-error);border-color:var(--ascot-text-error); }
body.ascot-kiosk { --ink:#183E27;--muted:#526459;--paper:#F7FAF6;--line:#DAE5D8; }
body.ascot-kiosk .k-setup-form { padding:44px; }
body.ascot-kiosk .k-setup-form h1 { font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-.04em; }
body.ascot-kiosk .k-setup-form :is(label,select) { color:#284B36; }
body.ascot-kiosk .k-launch { min-height:54px;border-radius:13px; }
html:not([data-theme="light"]) body.ascot-kiosk { --ink:#F4F9F3;--muted:#B7CCBD;--paper:#0D1F16;--line:#496650;background:#0D1F16;color:#F4F9F3; }
html:not([data-theme="light"]) body.ascot-kiosk :is(.k-setup,.k-setup-form,.k-card,.kiosk-shell,.kiosk-pane) { background:#162D20;color:#F4F9F3;border-color:#496650; }
html:not([data-theme="light"]) body.ascot-kiosk .k-setup-story { background:linear-gradient(145deg,#1E3828,#233D25);color:#F4F9F3; }
html:not([data-theme="light"]) body.ascot-kiosk :is(h1,h2,h3,label,select) { color:#F4F9F3; }
html:not([data-theme="light"]) body.ascot-kiosk select { background:#1E3828;border-color:#78957E; }
html:not([data-theme="light"]) body.ascot-kiosk .k-setup-form :is(label,select) { color:#F4F9F3; }
/* An award stays on white paper even when its surrounding app is dark. */
body.erams-cert-body { padding:24px 24px 48px; }
body.erams-cert-body .erams-cert-toolbar { max-width:1040px;margin:0 auto 22px;gap:8px;flex-wrap:wrap; }
body.erams-cert-body .erams-certificate { max-width:1040px; }
body.erams-cert-body .erams-certificate-frame { position:relative;overflow:hidden;border:2px solid #1F5A2E!important;border-radius:6px;padding:36px 64px 30px;box-shadow:0 18px 45px #183E2712; }
body.erams-cert-body .erams-certificate-frame::before { content:'';position:absolute;inset:9px;border:1px solid #CDA72A;pointer-events:none; }
body.erams-cert-body .erams-certificate-frame::after { content:'';position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,#E8F3E7 0%,#E8F3E700 68%);right:-110px;top:-120px;pointer-events:none;z-index:0; }
body.erams-cert-body .erams-certificate-frame>* { position:relative;z-index:1; }
.erams-certificate-identity { display:flex;justify-content:center;align-items:center;gap:18px;text-align:left;margin-bottom:24px;color:#1F5A2E; }
.erams-certificate-identity img { width:66px;height:66px;object-fit:contain; }
.erams-certificate-identity span { font:750 19px/1.3 'Bricolage Grotesque',sans-serif; }
.erams-certificate-identity small { display:block;font:500 11px/1.7 'Manrope',sans-serif;letter-spacing:.06em; }
body.erams-cert-body .erams-certificate-badge { border-radius:4px;letter-spacing:.13em;font-size:10px;padding:6px 14px; }
body.erams-cert-body .erams-certificate-eyebrow { margin:22px 0 18px;font-size:12px;letter-spacing:.18em; }
body.erams-cert-body .erams-certificate-frame h1 { font:700 clamp(32px,4vw,48px)/1.18 'Bricolage Grotesque',sans-serif;letter-spacing:-.035em;margin-bottom:14px; }
body.erams-cert-body .erams-certificate-frame h2 { font:650 26px/1.35 'Bricolage Grotesque',sans-serif;letter-spacing:-.025em;margin:12px auto 22px;max-width:30ch; }
body.erams-cert-body .erams-certificate-lead { font-size:14px; }
body.erams-cert-body .erams-certificate-meta { display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:13px; }
body.erams-cert-body .erams-certificate-meta span { display:inline-flex;align-items:center;gap:6px; }
body.erams-cert-body .erams-certificate-meta .ascot-icon { width:22px;height:22px; }
body.erams-cert-body .erams-certificate-sub { font-size:12px;margin:18px auto 0;max-width:64ch; }
body.erams-cert-body .erams-certificate-footer { margin-top:28px;padding-top:24px;border-color:#D4DDCA; }
body.erams-cert-body .erams-certificate-footer small { font-size:10px;letter-spacing:.1em; }
body.erams-cert-body .erams-certificate-brand { font-size:10px;letter-spacing:.025em;margin-top:28px; }
@media(max-width:900px) {
  body.ascot-auth .pane>.card { max-width:520px; }
  body.ascot-register .pane>.card { max-width:620px; }
  body.ascot-auth .side { display:none; }
}
@media(max-width:720px) {
  body.ascot-landing .hero { min-height:840px;padding-top:126px;padding-bottom:60px; }
  body.ascot-landing h1 { font-size:clamp(46px,13vw,70px);max-width:10ch; }
  body.ascot-landing .hero-sub { font-size:15px;line-height:1.75; }
  body.ascot-landing .hero-stats { gap:16px;margin-top:36px; }
  body.ascot-landing .hstat b { font-size:27px; }
  body.ascot-landing .hstat span { font-size:11px; }
  body.ascot-landing .tile { padding:24px; }
  body.ascot-privacy .sec-hero { padding:24px; }
  body.ascot-privacy .sec-card { padding:22px; }
  body.erams-cert-body { padding:16px 12px 30px; }
  body.erams-cert-body .erams-cert-toolbar .btn { min-height:44px; }
  body.erams-cert-body .erams-certificate-frame { padding:28px 22px; }
  .erams-certificate-identity { flex-direction:column;gap:10px;text-align:center;margin-bottom:20px; }
  .erams-certificate-identity span { font-size:16px; }
  body.erams-cert-body .erams-certificate-eyebrow { font-size:10px;letter-spacing:.14em; }
  body.erams-cert-body .erams-certificate-frame h1 { font-size:32px; }
  body.erams-cert-body .erams-certificate-frame h2 { font-size:22px; }
  body.erams-cert-body .erams-certificate-meta { gap:10px;font-size:11px; }
  body.erams-cert-body .erams-certificate-footer { gap:18px; }
}
@media(max-width:480px) {
  body.ascot-auth .pane { padding:20px 14px; }
  body.ascot-auth .pane>.card { padding:26px 22px; }
  body.ascot-auth .ascot-auth-eyebrow { font-size:9px;letter-spacing:.08em; }
  body.ascot-auth .brand--mobile { margin-bottom:20px; }
  body.ascot-auth h1 { font-size:31px; }
  body.ascot-auth .fg { margin-bottom:16px; }
  body.ascot-auth .st-label { font-size:10px; }
  body.ascot-auth .sub { margin-bottom:24px;font-size:14px; }
  body.ascot-recovery .auth-card { padding:28px 22px; }
  body.ascot-recovery .auth-card .auth-title { font-size:28px; }
  body.ascot-evaluation .hero { padding-top:36px;padding-bottom:26px; }
  body.ascot-evaluation .card { padding:22px; }
  body.ascot-evaluation .sec-head h2 { font-size:23px; }
  body.ascot-evaluation .rail .card { padding:12px 18px;border-radius:20px 20px 0 0; }
  body.ascot-evaluation .rail .score b { font-size:28px; }
  body.ascot-evaluation .prog-txt { font-size:12px; }
  body.ascot-evaluation .pt span small { font-size:9px; }
  body.ascot-admin-gate .av-card { padding:28px 22px; }
  body.ascot-admin-gate .av-card h1 { font-size:28px; }
  body.ascot-kiosk .k-setup-form { padding:26px; }
}
@media print {
  body.erams-cert-body { padding:0;background:#FFF!important;color:#183E27!important; }
  body.erams-cert-body .erams-certificate { max-width:none; }
  body.erams-cert-body .erams-certificate-frame { box-shadow:none;border-radius:0;padding:26px 44px; }
  body.erams-cert-body .erams-certificate-frame::after { display:none; }
  body.erams-cert-body .erams-certificate-frame { -webkit-print-color-adjust:exact;print-color-adjust:exact; }
}
body:is(.ascot-landing,.ascot-auth) a.skip { background:#F4C430;color:#183E27!important; }
html:not([data-theme="light"]) body.ascot-kiosk .k-eyebrow { color:#A8DDB0; }
body.ascot-kiosk .k-card { padding:44px; }
body.ascot-kiosk .k-card h1 { font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-.04em; }
body.ascot-kiosk .k-field select { border-color:#6E8972; }
html:not([data-theme="light"]) body.ascot-kiosk :is(.k-setup-shell,.kiosk-header,.k-guide,.kiosk-progress,.kiosk-mode-bar,.kiosk-result) { background:#162D20;color:#F4F9F3;border-color:#496650; }
html:not([data-theme="light"]) body.ascot-kiosk .k-button:not(.k-launch) { background:#1E3828;color:#F4F9F3;border-color:#78957E; }
html:not([data-theme="light"]) body.ascot-kiosk .k-setup-art { mix-blend-mode:normal; }
@media(max-width:680px) { body.ascot-kiosk .k-card { padding:28px 24px; } }
body.ascot-landing .hero::after { color:var(--ascot-text-link);opacity:1; }
body.ascot-kiosk :is(.k-guide-intro p,.k-steps li>div>span,.k-participant small,.k-guide-note,.k-progress-summary,.kiosk-mode-bar) { color:var(--ascot-text-secondary); }
body.ascot-kiosk :is(.k-reader-state,.k-status) { color:var(--ascot-text-label); }
body.ascot-kiosk :is(.k-reader-state[data-state='busy'],#kioskConnection[data-state='offline']) { color:var(--ascot-text-warning); }
body.ascot-kiosk :is(.k-reader-state[data-state='error'],.k-reader-state[data-state='inputneeded'],#kioskConnection[data-state='error'],#kioskFlow[data-step='error'] .k-guide-intro h2) { color:var(--ascot-text-error); }
body.ascot-kiosk .kiosk-result.already { border-color:#DEC879; }
body.ascot-kiosk .kiosk-result.already .kiosk-result-icon { background:#FFF5CC;color:#795A08; }
body.ascot-kiosk .kiosk-result-pts { color:var(--ascot-text-success); }
body.ascot-kiosk .kiosk-way-camera :is(.k-way-head h2,.k-eyebrow,.k-camera-message strong,.kiosk-way-label strong) { color:#FFF9E8; }
body.ascot-kiosk .kiosk-way-camera :is(.k-camera-message p,.kiosk-way-label small,.k-status) { color:#D6E7D7; }
html:not([data-theme="light"]) body.ascot-kiosk :is(.k-participant,.k-steps li[aria-current='step'],.k-steps li.active,.k-step-icon) { background:#1E3828;border-color:#496650; }
body.ascot-kiosk :is(.k-icon.ascot-icon,.k-step-icon .ascot-icon) { width:28px;height:28px;object-fit:contain;flex:none; }
body.ascot-kiosk .k-camera-message>.ascot-icon { width:52px;height:52px;margin-bottom:16px; }
body.ascot-kiosk .k-reference>.ascot-icon { width:40px;height:40px; }
body.ascot-kiosk .kiosk-result-icon .ascot-icon { width:50px;height:50px; }
html[data-motion="reduce"] body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-kiosk,.ascot-recovery,.ascot-privacy,.ascot-admin-gate) *,
html[data-motion="reduce"] body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-kiosk,.ascot-recovery,.ascot-privacy,.ascot-admin-gate) *::before,
html[data-motion="reduce"] body:is(.ascot-landing,.ascot-auth,.ascot-evaluation,.ascot-kiosk,.ascot-recovery,.ascot-privacy,.ascot-admin-gate) *::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
html[data-motion="reduce"] body.ascot-landing :is(.rv,h1 .w>span,h2 .sw>span),
html[data-motion="reduce"] body.ascot-auth :is(.card,.card>*:not(.alert),.perk,.side h2,.next-card),
html[data-motion="reduce"] body.ascot-privacy .sec-anim { opacity:1;transform:none; }
body.ascot-auth .ctrl>.ascot-icon.lead { position:absolute;left:12px;top:50%;transform:translateY(-50%);width:24px;height:24px;pointer-events:none; }
body.ascot-auth .pw-eye>.ascot-icon { width:22px;height:22px; }
body.ascot-auth .next-card span>.ascot-icon { width:24px;height:24px;flex:none; }
body.ascot-auth .wiz h3>.ascot-icon { width:26px;height:26px; }
body.ascot-landing .pain-item>.ascot-icon { width:30px;height:30px;flex:none; }
body.ascot-landing .qr-live>.ascot-icon { width:90px;height:90px; }
body.ascot-privacy .sec-ic.ascot-icon { width:28px;height:28px;object-fit:contain;flex:none; }
body.ascot-recovery .auth-card>div>.ascot-icon { display:block;margin:0 auto; }
body.ascot-auth input:is([type="checkbox"],[type="radio"]) { min-height:21px;min-width:21px;width:21px;height:21px;padding:0; }
body.ascot-auth .fg.is-bad :is(input,select) { border-color:var(--ascot-text-error); }
body.ascot-auth .admin-gate { color:var(--ascot-text-body);background:var(--panel-2);border-color:var(--line-2); }
body.ascot-auth .admin-gate p { color:var(--ascot-text-secondary); }
html:not([data-theme="light"]) body.ascot-auth select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23AFC6B5' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); }
body.ascot-auth .done>.ascot-icon { width:72px;height:72px;margin:0 auto 24px; }
/* State proofs exposed legacy fallback fills; all controls now inherit actual mode surfaces. */
body.ascot-recovery .auth-card input { background:var(--bg3,#EEF5EC)!important; }
body.ascot-recovery .auth-card a.btn-primary { color:#183E27!important; }
body.ascot-admin-gate .av-field { background:var(--bg3,#EEF5EC); }
body.ascot-admin-gate .av-field input { background:transparent!important; }
body.ascot-admin-gate .av-field input::placeholder { color:var(--ascot-text-placeholder)!important; }
body.ascot-kiosk .k-step-number { opacity:1;color:var(--ascot-text-secondary); }
html:not([data-theme="light"]) body.ascot-kiosk .k-mode { background:#1E3828;color:#F4F9F3;border-color:#496650; }
body.ascot-landing .stamp { background:#FFF0F0;color:#A52A36;border-color:#A52A36; }
body.ascot-admin-gate .av-submit { background:#F4C430; }
body.ascot-admin-gate .av-submit:hover { background:#FFDA59; }
body.ascot-evaluation :is(h1 em,.sec-num) { background:none;color:var(--ascot-text-link);-webkit-text-fill-color:var(--ascot-text-link); }
html:not([data-theme="light"]) body.ascot-landing .hero::after { color:var(--ascot-text-link);opacity:1; }
body.ascot-admin-gate .av-field input { border:0!important;box-shadow:none!important; }
body.ascot-admin-gate .av-field input:focus,body.ascot-admin-gate .av-field input:focus-visible { outline:none!important;box-shadow:none!important; }
body.ascot-admin-gate .av-field:has(input:focus-visible) { outline:3px solid var(--ascot-text-link);outline-offset:3px; }
body.ascot-kiosk .k-setup-art { mask-image:none;mix-blend-mode:normal;width:min(256px,100%);height:auto;max-height:256px;align-self:center; }
@media(max-width:680px){body.ascot-kiosk .k-setup-art{max-height:180px;width:180px;margin:18px auto;}}
body.ascot-evaluation .verdict { background:none;color:var(--ascot-text-link);-webkit-text-fill-color:var(--ascot-text-link); }
@media(max-width:680px){body.ascot-landing .scroll-hint{display:none;}}
body.ascot-landing .marq-track span { color:var(--ascot-text-secondary);-webkit-text-stroke:0; }
body.ascot-landing .marq-track span:nth-child(odd) { color:var(--ascot-text-heading); }
body.ascot-landing .step::before { color:var(--ascot-text-link); }
body.ascot-landing h1 .strike { color:var(--ascot-text-heading); }
body.ascot-landing h1 .strike::after { display:none; }
body.ascot-landing .shot .tag { background:#183E27;color:#FFF9E8;border-color:#6E8972;backdrop-filter:none; }
body.ascot-landing .stamp { top:24%; }
body.ascot-landing .punch em { text-decoration:none;border:0;box-shadow:none; }
body.ascot-auth .side::after { background:linear-gradient(155deg,#143F23ED 2%,#143F23DB 49%,#0D2C19F5 100%); }
body.ascot-auth .ctrl>:is(input,select) { padding-left:46px;font-size:15px; }
@media(max-width:720px){body.ascot-landing .hero::after{top:96px;bottom:auto;right:24px;font-size:34px;transform:rotate(-6deg);}}

/* Pass 3: campus prospectus. Photograph and copy each receive their own plane. */
html[data-theme="light"] body.ascot-landing { --ink:#FFFFFF;--ink-2:#F2F7EE;background:#FFFFFF; }
body.ascot-landing .hero { display:block;min-height:900px;padding:148px 0 64px;background:var(--ink); }
body.ascot-landing .hero .wrap { position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:48px; }
body.ascot-landing .hero .wrap::before { content:'';grid-column:2;grid-row:1/5;border-radius:30px;background:url('assets/ascot/campus-banner.webp') 75% center/cover no-repeat;filter:saturate(1.06) contrast(1.025); }
body.ascot-landing .hero .wrap::after { content:'ASCOT';position:absolute;right:44px;top:20px;margin:0;padding:4px 20px 10px;background:#183E27;color:#FFF9E8;border:1px solid #6E8972;border-radius:18px;font:700 66px/1 'Caveat',cursive;pointer-events:none;z-index:1; }
body.ascot-landing .hero .wrap>:is(.kicker,h1,.hero-sub,.hero-ctas) { grid-column:1; }
body.ascot-landing .hero .kicker { justify-self:start;max-width:100%;font-size:10px;letter-spacing:.12em;line-height:1.7; }
body.ascot-landing .hero h1 { font-size:clamp(56px,6.1vw,88px);max-width:10ch; }
body.ascot-landing .hero-sub { margin:26px 0 30px;font-size:16px;line-height:1.8;max-width:49ch; }
body.ascot-landing .hero-stats { grid-column:1/-1;max-width:none;background:var(--ink);margin-top:44px;padding-top:24px;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px; }
body.ascot-landing .hero-bg { display:none; }
body.ascot-landing .hero-bg img { opacity:1;filter:saturate(1.06) contrast(1.025);object-position:right center; }
body.ascot-landing .hero-bg::after { background:linear-gradient(0deg,#183E272B,transparent 35%); }
html:not([data-theme="light"]) body.ascot-landing .hero-bg::after { background:linear-gradient(0deg,#0D1F162B,transparent 35%); }
body.ascot-landing .hero::after { content:none;display:none; }
body.ascot-landing .hero :is(.orb,.spot,.scroll-hint) { display:none; }
/* The campus image stays true to life; only the story is on forest paper. */
body.ascot-auth .side img.bgp { opacity:1;filter:saturate(1.06) contrast(1.025); }
body.ascot-auth .side::after { background:linear-gradient(180deg,#183E2720,transparent 40%,#183E2720); }
body.ascot-auth .side>.brand { align-self:flex-start;background:#173F25;padding:12px 16px;border:1px solid #6E8972;border-radius:17px; }
body.ascot-auth .side>div:not(.side-foot) { background:#173F25;border:1px solid #6E8972;border-top:3px solid #F4C430;border-radius:26px;padding:28px;max-width:460px;box-shadow:0 18px 50px #0D1F1638; }
body.ascot-auth .side h2 { font-size:clamp(32px,3.3vw,47px); }
body.ascot-auth .next-card { max-width:none;padding:18px 20px;background:#1E4B2D;border-color:#6E8972;box-shadow:none;backdrop-filter:none; }
body.ascot-auth .side-foot { align-self:flex-start;background:#173F25;padding:9px 14px;border:1px solid #6E8972;border-radius:12px;font-size:11px; }
body.ascot-auth .perk { margin-top:16px;gap:12px; }
body.ascot-auth .perk-ic { width:42px;height:42px;flex-basis:42px; }
body.ascot-auth .perk span { font-size:12px; }
@media(max-width:1100px) and (min-width:721px) {
 body.ascot-landing .hero .wrap { column-gap:32px; }
 body.ascot-landing .hero .kicker { font-size:9px;letter-spacing:.08em; }
 body.ascot-landing .hero h1 { font-size:64px; }
 body.ascot-landing .hero .wrap::after { font-size:54px; }
 body.ascot-landing .hero-ctas .btn { padding-inline:17px;font-size:13px; }
 body.ascot-auth .side { padding:38px 28px; }
 body.ascot-auth .side>div:not(.side-foot) { padding:22px; }
 body.ascot-auth .side h2 { font-size:35px; }
}
@media(max-width:720px) {
 body.ascot-landing .hero { min-height:0;padding:96px 0 40px; }
 body.ascot-landing .hero .wrap { display:block; }
 body.ascot-landing .hero .wrap::before { display:block;height:220px;margin-bottom:28px;border-radius:22px;background-position:right center; }
 body.ascot-landing .hero .wrap::after { position:absolute;right:36px;top:162px;margin:0;font-size:30px;border-radius:11px;padding:2px 12px 5px; }
 body.ascot-landing .hero .kicker { font-size:9px;letter-spacing:.08em;padding:8px 12px;line-height:1.65;margin-bottom:24px; }
 body.ascot-landing .hero h1 { font-size:clamp(46px,12.8vw,64px);max-width:10ch; }
 body.ascot-landing .hero-sub { font-size:15px;margin:22px 0 26px; }
 body.ascot-landing .hero-ctas { gap:10px; }
 body.ascot-landing .hero-ctas .btn { min-height:50px; }
 body.ascot-landing .hero-stats { margin-top:32px;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 20px; }
}
@media(max-width:360px) {
 body.ascot-auth .pane,body.ascot-auth .pane>.card { min-width:0; }
 body.ascot-register .st { gap:6px; }
 body.ascot-register .st-dot { width:30px;height:30px; }
 body.ascot-register .st-line { margin:0 5px; }
}
/* Reduced motion is also a complete first frame, including font-span reveals. */
@media(prefers-reduced-motion:reduce) {
 body.ascot-landing :is(.rv,h1 .w>span,h2 .sw>span),
 body.ascot-auth :is(.card,.card>*:not(.alert),.perk,.side h2,.next-card) { opacity:1!important;transform:none!important;animation:none!important; }
 body.ascot-auth .side img.bgp { animation:none!important;transform:none!important; }
}
