:root {
  --navy:#0078D4; --navy-deep:#0C2B45; --navy-soft:#e8f3fb; --cream:#ffffff;
  --paper:#f3f3f3; --ink:#1a1a1a; --muted:#5c5c5c; --line:#e1e1e1;
  --mist:#c5d8e6; --ok:#0f7b3b; --usa:#b31942; --bar:#f4f7fb;
  --bezel:#16191d; --bezel-hi:#2c3136; --glass:#0b0c0e;
  --shadow-hero:0 24px 56px rgba(6,16,24,.28); --shadow-card:0 8px 24px rgba(12,43,69,.08);
}
* { box-sizing:border-box }
html,body { margin:0; font-family:"Source Sans 3","Segoe UI",system-ui,sans-serif; background:var(--paper); color:var(--ink); overflow-x:clip; text-size-adjust:100%; -webkit-font-smoothing:antialiased; }
html { scroll-behavior:smooth; scroll-padding-top:5rem; }
h1,h2,h3,p,figure,ul,ol { margin:0; padding:0; }
a { color:var(--navy); }
button,input,textarea,select { font:inherit; }
img,video { max-width:100%; height:auto; }
h1,h2,h3 { font-family:"Newsreader",serif; font-optical-sizing:auto; font-weight:500; letter-spacing:-.018em; text-wrap:balance; }
h1 { font-size:clamp(1.55rem,7vw,2.55rem); line-height:1.18; color:var(--navy-deep); }
h2 { font-size:clamp(1.35rem,2.2vw,1.85rem); color:var(--navy-deep); margin:8px 0 12px; }
h3 { font-size:1.15rem; color:var(--navy-deep); margin:8px 0; }
p { text-wrap:pretty; }
.usa { height:4px; background:var(--usa); }
.site-nav { position:sticky; top:0; z-index:80; background:rgba(255,255,255,.95); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.bar { max-width:72rem; margin:0 auto; padding:8px 16px; padding-left:max(16px, env(safe-area-inset-left)); padding-right:max(16px, env(safe-area-inset-right)); display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.brand-wrap { display:flex; align-items:center; gap:10px; min-width:0; grid-column:1; grid-row:1; }
.brand { display:flex; align-items:center; gap:8px; color:var(--ink); text-decoration:none; min-width:0; }
.brand img { width:36px; height:36px; border-radius:8px; flex-shrink:0; }
.brand small { display:block; font-size:10px; font-weight:600; letter-spacing:.08em; color:var(--muted); }
.brand strong { display:block; font-size:15px; font-family:"Newsreader",serif; font-weight:500; }
.ver { display:none; }
.acct { display:none; }
#site-menu { display:none; grid-column:1 / -1; grid-row:2; }
#site-menu a { display:flex; min-height:48px; align-items:center; padding:0 12px; text-decoration:none; color:var(--ink); font-weight:600; font-size:16px; letter-spacing:.02em; border-radius:4px; }
#site-menu a.on { background:var(--navy); color:#fff; }
.end { display:flex; gap:8px; align-items:center; justify-self:end; grid-column:2; grid-row:1; }
.buy { display:inline-flex; min-height:44px; padding:0 14px; align-items:center; background:var(--navy); color:#fff; text-decoration:none; font-weight:700; border-radius:4px; }
.end .buy { display:none; }
.nav-toggle { min-height:44px; min-width:44px; padding:0 14px; border:1px solid var(--line); background:#fff; border-radius:4px; font:inherit; font-weight:700; color:var(--navy-deep); cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
#site-menu.is-open { display:flex; flex-direction:column; gap:4px; padding:8px 0 12px; border-top:1px solid var(--line); }
.hero { position:relative; background:var(--cream); overflow:hidden; padding:32px 16px 40px; }
.hero-map {
  position:absolute;
  right:0;
  top:48px;
  width:min(54%, 560px);
  height:360px;
  background:url("/usa-outline.svg") no-repeat right center / contain;
  opacity:.11;
  pointer-events:none;
  z-index:0;
}
.hero-grid { position:relative; z-index:1; max-width:72rem; margin:0 auto; display:grid; gap:32px; align-items:center; }
.hero-grid > * { min-width:0; }
.hero h1 { margin:20px 0 0; }
.hero .lead { color:var(--muted); max-width:28rem; line-height:1.7; font-size:16px; margin-top:24px; }
.hero img.wide { display:none; }
.win { position:relative; overflow:hidden; border-radius:16px; background:linear-gradient(180deg,var(--bezel-hi),var(--bezel)); padding:10px 8px 14px; box-shadow:var(--shadow-hero); }
.win::before { content:""; position:absolute; top:7px; left:50%; width:7px; height:7px; border-radius:999px; background:var(--glass); transform:translateX(-50%); }
.win img { width:100%; max-width:100%; height:auto; display:block; border-radius:4px; }
.win video { width:100%; max-width:100%; height:auto; display:block; border-radius:4px; background:#000; }
.stand { display:grid; justify-items:center; }
.stand i { width:4.5rem; height:.7rem; background:var(--bezel-hi); clip-path:polygon(18% 0,82% 0,100% 100%,0 100%); }
.stand b { width:10rem; height:.4rem; border-radius:999px; background:var(--bezel); }
.tour-grid { display:grid; gap:32px; align-items:center; }
.tour-grid > * { min-width:0; }
.tour-stage { display:flex; flex-direction:column; align-items:center; min-width:0; overflow:hidden; }
.tour-stage figure { width:100%; max-width:40rem; margin:0 auto; }
.tour-stage .win { width:100%; max-width:40rem; }
.wrap { max-width:72rem; margin:0 auto; padding:56px 16px; }
.band { background:var(--cream); }
.band.paper { background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.badge { font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--navy); margin:0; }
.usa-badge { display:inline-flex; align-items:center; gap:8px; }
.usa-badge svg { width:20px; height:14px; flex-shrink:0; display:block; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 20px; border-radius:4px; font-weight:700; text-decoration:none; background:var(--navy); color:#fff; border:0; font:inherit; cursor:pointer; }
.btn.ghost { background:#fff; color:var(--navy); border:1px solid var(--line); }
.actions { display:flex; flex-direction:column; gap:10px; margin:32px 0 0; }
.actions .btn { width:100%; }
.card { background:var(--cream); border:1px solid var(--line); border-radius:8px; padding:22px; box-shadow:var(--shadow-card); }
.grid-2,.grid-3,.grid-4 { display:grid; gap:16px; grid-template-columns:1fr; }
.stats { display:grid; gap:12px; grid-template-columns:1fr; }
.stat { display:flex; align-items:center; justify-content:space-between; gap:12px; background:var(--cream); border:1px solid var(--line); border-radius:8px; padding:14px 16px; }
.stat .copy { min-width:0; }
.stat b { display:block; }
.stat p { margin:4px 0 0; font-size:14px; color:var(--muted); }
.stat-ico { flex-shrink:0; display:block; }
.stat-ico.flag { width:36px; height:24px; }
.stat-ico.mark { width:28px; height:28px; }
.navyband { background:var(--navy-deep); color:var(--bar); }
.navyband h2, .navyband h3 { color:#fff; }
.navyband .mist { color:var(--mist); }
.navyband .card { background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.15); color:#fff; box-shadow:none; }
.tour-btn { text-align:left; width:100%; border:1px solid var(--line); background:var(--cream); border-radius:8px; padding:14px 16px; cursor:pointer; font:inherit; display:grid; gap:4px; }
.tour-btn strong { font-family:"Newsreader",serif; font-weight:500; font-size:18px; color:var(--navy-deep); }
.tour-btn span:last-child { font-size:14px; color:var(--muted); line-height:1.5; }
.tour-btn.on { border-color:var(--navy); background:var(--navy-soft); }
.sticky-buy { display:none; position:fixed; left:0; right:0; bottom:0; z-index:70; align-items:center; gap:12px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); border-top:1px solid var(--line); }
.sticky-buy.show { display:flex; }
.foot { background:var(--navy-deep); color:var(--mist); font-size:14px; }
.foot a { color:#fff; text-decoration:none; }
.foot a:hover { text-decoration:underline; }
.foot-grid { max-width:72rem; margin:0 auto; padding:48px 16px; display:grid; gap:40px; }
.foot h3 { margin:0; color:var(--navy); font-size:12px; font-family:"Source Sans 3",sans-serif; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.foot ul { list-style:none; padding:0; margin:12px 0 0; display:grid; gap:8px; }
.foot .brand-col { display:flex; align-items:center; gap:10px; }
.foot .brand-col strong { display:block; color:#fff; font-family:"Newsreader",serif; font-weight:500; font-size:16px; }
.foot .brand-col small { display:block; font-size:10px; letter-spacing:.08em; font-weight:600; }
.foot .tax-note { max-width:72rem; margin:0 auto; padding:0 16px 28px; font-size:12px; color:var(--mist); }
.license-grid { display:grid; gap:32px; }
label { display:grid; gap:6px; font-weight:700; font-size:14px; margin:0 0 12px; }
input,textarea { min-height:44px; border:1px solid var(--line); border-radius:4px; padding:8px 10px; font:inherit; font-size:16px; }
.muted { color:var(--muted); line-height:1.7; }
.hero-cap { margin:12px 0 0; text-align:center; font-size:12px; letter-spacing:.04em; color:var(--muted); }
.preview-ftp { border-top:1px solid rgba(255,255,255,.2); background:var(--usa); padding:20px 16px; }
.preview-ftp .inner { max-width:72rem; margin:0 auto; display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; }
.preview-ftp p { margin:0; color:#fff; font-weight:600; font-size:14px; }
.preview-ftp a { background:#fff; color:var(--navy-deep); min-height:44px; padding:0 20px; display:inline-flex; align-items:center; font-weight:700; border-radius:4px; }
@media (min-width:640px) {
  .actions { flex-direction:row; flex-wrap:wrap; }
  .actions .btn { width:auto; }
  .grid-2 { grid-template-columns:1fr 1fr; }
  .stats { grid-template-columns:1fr 1fr; }
  .foot-grid { grid-template-columns:1fr 1fr; }
  .license-grid .grid-3 { grid-template-columns:1fr 1fr 1fr; }
}
@media (min-width:768px) {
  .bar { grid-template-columns:1fr auto 1fr; padding:10px 16px; }
  .ver, .acct { display:inline-flex; align-items:center; }
  .nav-toggle { display:none; }
  #site-menu { display:flex; flex-direction:row; gap:2px; justify-content:center; grid-column:2; grid-row:1; }
  #site-menu a { min-height:44px; font-size:13px; font-weight:500; padding:0 10px; }
  #site-menu .nav-extra { display:none; }
  .end { grid-column:3; justify-self:end; }
  .end .buy { display:inline-flex; }
  .grid-3 { grid-template-columns:1fr 1fr 1fr; }
  .tour-grid { grid-template-columns:5fr 7fr; }
}
@media (min-width:1024px) {
  .hero { padding:64px 16px 80px; }
  .hero-map { display:none; }
  .hero-grid { grid-template-columns:1fr 1fr; gap:64px; }
  .hero-stage { position:relative; overflow:hidden; border-radius:12px; }
  .hero img.wide { display:block; width:100%; height:100%; aspect-ratio:4/3; object-fit:cover; border-radius:12px; }
  .hero-stage .win { position:absolute; left:8%; width:84%; top:11%; padding:16px 14px 20px; border-radius:20px; }
  .hero-stage .win img { aspect-ratio:16/10; object-fit:cover; object-position:top; }
  .hero-stage .stand { display:none; }
  .sticky-buy { display:none !important; }
  .stats { grid-template-columns:1fr 1fr 1fr 1fr; }
  .grid-4 { grid-template-columns:1fr 1fr 1fr 1fr; }
  .foot-grid { grid-template-columns:1fr 1fr 1fr 1fr; }
  .license-grid { grid-template-columns:5fr 7fr; align-items:start; }
  .tour-grid { grid-template-columns:5fr 7fr; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto } * { transition:none !important } }
.k { font-family:ui-monospace,Consolas,monospace; font-weight:700; letter-spacing:.04em; word-break:break-all; }
.note { margin:16px 0; padding:14px 16px; border:1px solid var(--line); border-left:3px solid var(--navy); border-radius:8px; background:#fff; font-size:13px; color:var(--muted); }
.form-err { color:#c42b1c; font-weight:700; min-height:1.2em; }
.form-row { display:grid; gap:12px; }
@media (min-width:640px) { .form-row { grid-template-columns:1fr 1fr; } }
.fax-line { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.captcha-box { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid var(--line); border-radius:4px; background:#f9f9f9; }
.captcha-check { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:600; }
.captcha-mark { width:22px; height:22px; border:2px solid var(--navy); border-radius:3px; background:#fff; }
.captcha-puzzle { display:flex; align-items:center; gap:8px; }
.captcha-sum { display:flex; align-items:center; gap:6px; margin:0; font-family:"Newsreader",serif; font-size:22px; color:var(--navy-deep); user-select:none; }
.captcha-sum b { display:inline-block; padding:2px 8px; border:1px solid var(--line); background:var(--navy-soft); }
.captcha-puzzle input { width:3.2rem; min-height:44px; text-align:center; font-size:18px; font-weight:700; }
.captcha-refresh { min-height:44px; padding:0 10px; border:1px solid var(--line); background:#fff; border-radius:4px; font:inherit; font-weight:600; color:var(--navy); }
