:root { --night:#1a1e3b; --night-deep:#10152d; --panel:rgba(26,30,59,.94); --line:rgba(236,243,250,.3); --white:#f8fafc; --muted:#d0d9e1; --accent:#81c7ff; --action:#005caa; --action-hover:#1a3b72; --ok:#8ff0a9; --warn:#b9dcff; --err:#ff9d91; }
* { box-sizing:border-box; }
body { min-width:320px; min-height:100vh; margin:0; color:var(--white); font-family:Barlow,Arial,sans-serif; font-size:16px; background:var(--night-deep); }
button,input { font:inherit; }
.page-shell { position:relative; display:grid; min-height:100vh; padding:22px 28px; overflow-x:hidden; background:linear-gradient(90deg,rgba(26,30,59,.2) 0%,rgba(0,92,170,.05) 52%,rgba(16,21,45,.56) 100%),url("nato-airshow-hero.webp") center/cover no-repeat,var(--night); }
.page-shell::before { position:absolute; inset:0; content:""; pointer-events:none; opacity:.18; background:repeating-linear-gradient(90deg,transparent 0,transparent calc(10% - 1px),rgba(235,244,255,.18) calc(10% - 1px),rgba(235,244,255,.18) 10%); }
.paper-grain { position:absolute; inset:0; pointer-events:none; opacity:.08; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E"); }
.registration-card { position:relative; width:min(100%,1190px); margin:auto; padding:8px 0 14px; }
.brand-header { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:38px; }
.brand-logo { display:block; width:108px; height:auto; filter:grayscale(1) brightness(0) invert(1); }
.exhibition-label,.eyebrow,.terms-title { margin:0; font-family:"Barlow Condensed",Arial,sans-serif; font-size:13px; font-weight:700; letter-spacing:.17em; line-height:1; text-transform:uppercase; }
.exhibition-label { color:var(--accent); text-align:right; }
.content-grid { display:grid; grid-template-columns:minmax(0,1.17fr) minmax(360px,.83fr); gap:48px; align-items:stretch; padding:13px 0 18px; }
.offer { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:385px; padding:16px 0 8px; }
.offer::before { width:52px; height:4px; content:""; background:var(--accent); }
.offer-copy { position:relative; z-index:1; max-width:520px; }
.offer .eyebrow { display:none; }
h1 { margin:10px 0 0; color:var(--white); font-family:"Barlow Condensed",Impact,sans-serif; font-size:clamp(78px,10.4vw,142px); font-weight:800; line-height:.7; letter-spacing:-.045em; text-shadow:0 3px 18px rgba(1,7,13,.3); text-transform:uppercase; }
h1 strong { display:block; margin-top:6px; font-weight:800; }
h1 span { display:block; margin-top:18px; color:var(--accent); font-family:Barlow,Arial,sans-serif; font-size:15px; font-weight:700; letter-spacing:.32em; line-height:1; }
.intro { max-width:470px; margin:26px 0 0; color:var(--white); font-size:18px; font-weight:500; line-height:1.34; text-shadow:0 2px 12px rgba(1,7,13,.55); }
.discount-mark { position:relative; z-index:1; align-self:flex-end; width:265px; margin-top:16px; color:var(--accent); text-align:right; line-height:.62; text-shadow:0 2px 13px rgba(1,7,13,.5); }
.discount-mark::after { position:absolute; right:0; bottom:-13px; width:100%; height:6px; content:""; background:var(--accent); }
.discount-mark span { font-family:"Barlow Condensed",Impact,sans-serif; font-size:clamp(135px,16vw,208px); font-weight:800; letter-spacing:-.025em; }
.discount-mark small { display:inline-block; margin-left:8px; font-family:"Barlow Condensed",Impact,sans-serif; font-size:59px; font-weight:800; vertical-align:top; }
.discount-mark p { margin:16px 5px 0 0; font-family:"Barlow Condensed",Arial,sans-serif; font-size:15px; font-weight:700; letter-spacing:.16em; line-height:1; }
#registration-form { align-self:center; padding:26px; border:1px solid rgba(242,246,250,.5); background:var(--panel); box-shadow:13px 16px 0 rgba(0,0,0,.28); }
.field-group label { display:block; margin-bottom:8px; font-size:16px; font-weight:700; }
input[type="email"] { width:100%; min-height:62px; padding:13px 15px; color:var(--night); font-size:19px; font-weight:600; border:0; outline:3px solid transparent; background:#f8fbff; }
input[type="email"]:focus { outline-color:var(--accent); }
input[type="email"]::placeholder { color:#516174; }
input[type="email"].invalid { outline-color:var(--err); }
.field-help,.newsletter-help { margin:8px 0 0; color:var(--muted); font-size:14px; line-height:1.35; }
.newsletter-choice { display:flex; align-items:flex-start; gap:13px; margin:24px 0 0; color:var(--white); cursor:pointer; font-size:16px; font-weight:500; line-height:1.3; }
.newsletter-choice input { position:absolute; width:1px; height:1px; opacity:0; }
.checkbox-mark { flex:0 0 25px; width:25px; height:25px; border:2px solid var(--white); background:transparent; }
.newsletter-choice input:checked + .checkbox-mark { border-color:var(--accent); background:var(--accent) center/16px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m3 8 3.1 3L13 4.8' fill='none' stroke='%231a1e3b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.newsletter-choice input:focus-visible + .checkbox-mark { outline:3px solid var(--accent); outline-offset:3px; }
.newsletter-choice.invalid .checkbox-mark { border-color:var(--err); outline:2px solid var(--err); outline-offset:3px; }
.newsletter-help { margin-left:38px; }
.send-button { min-height:62px; padding:13px 19px; font-family:"Barlow Condensed",Arial,sans-serif; font-size:21px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
.send-button { width:100%; margin-top:26px; color:var(--white); border:0; background:var(--action); }
.send-button:hover { background:var(--action-hover); }
.send-button span { display:inline-block; margin-left:10px; }
.send-button:disabled { cursor:wait; opacity:.65; }
.send-button:focus-visible { outline:3px solid var(--white); outline-offset:3px; }
.status-message { display:none; margin:15px 0 0; padding:12px 14px; font-size:15px; font-weight:500; line-height:1.35; border-left:4px solid currentColor; }
.status-message.visible { display:block; }
.status-message.accepted { color:var(--ok); background:rgba(74,169,99,.12); }
.status-message.offline { color:var(--warn); background:rgba(129,199,255,.12); }
.status-message.limited,.status-message.closed,.status-message.invalid,.status-message.consent { color:var(--err); background:rgba(255,103,87,.12); }
.terms { display:grid; grid-template-columns:150px minmax(0,1fr); gap:20px; padding:12px 14px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(7,17,29,.86); text-shadow:0 2px 10px rgba(1,7,13,.45); }
.terms-title { color:var(--accent); }
.terms p:last-child { margin:0; color:var(--white); font-size:14px; line-height:1.4; }
.privacy-note { display:flex; align-items:flex-start; gap:9px; margin-top:0; padding:12px 14px; color:var(--white); font-size:13px; line-height:1.35; background:rgba(7,17,29,.86); text-shadow:0 2px 10px rgba(1,7,13,.45); }
.privacy-note svg { flex:0 0 auto; width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.55; }
.privacy-note a { color:var(--white); font-weight:600; text-underline-offset:3px; }
@media (max-width:900px) { .page-shell { display:block; padding:14px; background-position:42% center; } .registration-card { padding:8px 0 14px; } .content-grid { grid-template-columns:1fr; gap:24px; padding:13px 0 18px; } .offer { min-height:420px; } h1 { font-size:clamp(82px,24vw,145px); } .intro { max-width:440px; } .discount-mark { width:220px; } .discount-mark span { font-size:165px; } .terms { grid-template-columns:1fr; gap:8px; } }
@media (min-width:821px) and (max-height:820px) { .page-shell { padding:13px 28px; } .registration-card { padding:4px 0 10px; } .content-grid { gap:42px; padding:9px 0 12px; } .offer { min-height:338px; padding-top:10px; } h1 { font-size:clamp(70px,8.6vw,113px); } h1 span { margin-top:14px; } .intro { max-width:455px; margin-top:17px; font-size:16px; } .discount-mark { width:220px; margin-top:10px; } .discount-mark span { font-size:158px; } .discount-mark small { font-size:48px; } #registration-form { padding:20px; } input[type="email"],.send-button { min-height:54px; } .newsletter-choice { margin-top:17px; } .send-button { margin-top:17px; } .terms { padding:9px 0; } .privacy-note { margin-top:8px; } }
@media (min-width:901px) and (orientation:landscape) { .content-grid { grid-template-columns:minmax(0,42fr) minmax(0,58fr); gap:32px; } #registration-form { padding:28px 30px; } .field-group label { margin-bottom:9px; font-size:20px; } input[type="email"] { min-height:72px; font-size:24px; } .field-help,.newsletter-help { font-size:16px; } .newsletter-choice { align-items:center; min-height:48px; margin-top:24px; font-size:20px; } .checkbox-mark { flex-basis:34px; width:34px; height:34px; } .newsletter-help { margin-left:48px; } .send-button { min-height:72px; font-size:26px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition:none !important; } }
@media print { body { color:#000; background:#fff; } .page-shell { display:block; padding:0; background:#fff; } .paper-grain { display:none; } .registration-card { width:100%; color:#000; background:#fff; box-shadow:none; } .brand-logo { filter:none; } }
