/* Semantic colours and shared dimensional scales (suffix = px).
   Media query breakpoints stay literal because native CSS cannot use var() there. */
:root {
  /* Governed typography: rem respects the user's default font size. */
  --font-family-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-family-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;
  --font-size-caption: 0.875rem;
  --font-size-small: 0.9375rem;
  --font-size-body: 1rem;
  --font-size-lead: 1.125rem;
  --font-size-heading-sm: 1.25rem;
  --font-size-heading-md: 1.5rem;
  --font-size-heading-lg: 1.875rem;
  --font-size-heading-xl: 2.25rem;
  --font-size-display-sm: 3rem;
  --font-size-display-md: 4rem;
  --font-size-display-lg: 5rem;
  --font-size-hero: 9.375rem;
  --letter-spacing-heading: -.025em;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --line-height-display: 1.15;
  --line-height-heading: 1.35;
  --line-height-body: 1.6;
  --line-height-reading: 1.8;

  --surface: var(--surface-raised);
  --spot-blue: #8bb4ff;
  --spot-rose: #ff9abe;
  --spot-violet: #c3a3ff;
  --spot-teal: #60ddcb;
  --spot-blue-wash: #1b345f;
  --spot-rose-wash: #51253b;
  --spot-violet-wash: #39265f;
  --spot-teal-wash: #153e3d;
  --spot-button-ink: #102135;
  --decor-cyan: #27d8cf;
  --decor-violet: #a47aff;
  --decor-amber: #ffc359;
  --tint-cyan: #163c45;
  --tint-violet: #302546;
  --tint-amber: #3b3222;
  --accent-purple: #d0b6ff;
  --surface-page: #0b1320;
  --surface-raised: #162435;
  --surface-tint: #203649;
  --text-primary: #edf3fa;
  --text-secondary: #b4c4d6;
  --accent: #94e3e5;
  --border-default: #40576d;
  --border-strong: #637f97;
  --focus-ring: #72e3f1;
  --action-bg: #a9e5e7;
  --action-ink: #102c39;
  --text-danger: #ffb5b5;
  --text-success: #98e1b4;
  --shadow-color: #00000030;
  --scrim: #020913b8;
  --control-size: 44px;
  --icon-size: 18px;
  --border-width: 1px;
  --focus-width: 3px;
  --radius-control: 8px;
  --text-sm: 12px;
  --layer-theme: 700;
  --brand-surface: #fafbf9;
  --brand-ink: #182739;
  --brand-muted: #465b6b;
  --brand-line: #c8d3d9;
  --radius-10: 10px;
  --radius-11: 11px;
  --radius-12: 12px;
  --radius-13: 13px;
  --radius-14: 14px;
  --radius-15: 15px;
  --radius-16: 16px;
  --radius-17: 17px;
  --radius-18: 18px;
  --radius-2: 2px;
  --radius-20: 20px;
  --radius-22: 22px;
  --radius-3: 3px;
  --radius-30: 30px;
  --radius-4: 4px;
  --radius-5: 5px;
  --radius-6: 6px;
  --radius-7: 7px;
  --radius-8: 8px;
  --radius-9: 9px;
  --size-1: 1px;
  --size-10: 10px;
  --size-100: 100px;
  --size-1030: 1030px;
  --size-105: 105px;
  --size-108: 108px;
  --size-110: 110px;
  --size-1100: 1100px;
  --size-118: 118px;
  --size-12: 12px;
  --size-120: 120px;
  --size-1200: 1200px;
  --size-13: 13px;
  --size-130: 130px;
  --size-14: 14px;
  --size-140: 140px;
  --size-144: 144px;
  --size-1460: 1460px;
  --size-150: 150px;
  --size-155: 155px;
  --size-16: 16px;
  --size-160: 160px;
  --size-1600: 1600px;
  --size-17: 17px;
  --size-1700: 1700px;
  --size-176: 176px;
  --size-18: 18px;
  --size-180: 180px;
  --size-190: 190px;
  --size-2: 2px;
  --size-20: 20px;
  --size-200: 200px;
  --size-21: 21px;
  --size-210: 210px;
  --size-213: 213px;
  --size-220: 220px;
  --size-225: 225px;
  --size-230: 230px;
  --size-24: 24px;
  --size-240: 240px;
  --size-244: 244px;
  --size-245: 245px;
  --size-25: 25px;
  --size-250: 250px;
  --size-255: 255px;
  --size-26: 26px;
  --size-260: 260px;
  --size-270: 270px;
  --size-28: 28px;
  --size-280: 280px;
  --size-285: 285px;
  --size-29: 29px;
  --size-290: 290px;
  --size-3: 3px;
  --size-30: 30px;
  --size-300: 300px;
  --size-31: 31px;
  --size-310: 310px;
  --size-32: 32px;
  --size-320: 320px;
  --size-33: 33px;
  --size-330: 330px;
  --size-34: 34px;
  --size-340: 340px;
  --size-35: 35px;
  --size-350: 350px;
  --size-355: 355px;
  --size-36: 36px;
  --size-360: 360px;
  --size-370: 370px;
  --size-380: 380px;
  --size-39: 39px;
  --size-390: 390px;
  --size-395: 395px;
  --size-4: 4px;
  --size-40: 40px;
  --size-400: 400px;
  --size-405: 405px;
  --size-410: 410px;
  --size-42: 42px;
  --size-420: 420px;
  --size-44: 44px;
  --size-440: 440px;
  --size-45: 45px;
  --size-450: 450px;
  --size-455: 455px;
  --size-46: 46px;
  --size-460: 460px;
  --size-470: 470px;
  --size-475: 475px;
  --size-48: 48px;
  --size-480: 480px;
  --size-490: 490px;
  --size-5: 5px;
  --size-50: 50px;
  --size-500: 500px;
  --size-52: 52px;
  --size-520: 520px;
  --size-53: 53px;
  --size-530: 530px;
  --size-54: 54px;
  --size-540: 540px;
  --size-55: 55px;
  --size-550: 550px;
  --size-56: 56px;
  --size-560: 560px;
  --size-57: 57px;
  --size-570: 570px;
  --size-58: 58px;
  --size-6: 6px;
  --size-60: 60px;
  --size-600: 600px;
  --size-610: 610px;
  --size-62: 62px;
  --size-620: 620px;
  --size-630: 630px;
  --size-640: 640px;
  --size-65: 65px;
  --size-650: 650px;
  --size-660: 660px;
  --size-68: 68px;
  --size-680: 680px;
  --size-690: 690px;
  --size-7: 7px;
  --size-72: 72px;
  --size-720: 720px;
  --size-73: 73px;
  --size-74: 74px;
  --size-740: 740px;
  --size-75: 75px;
  --size-750: 750px;
  --size-76: 76px;
  --size-760: 760px;
  --size-77: 77px;
  --size-78: 78px;
  --size-79: 79px;
  --size-8: 8px;
  --size-80: 80px;
  --size-810: 810px;
  --size-820: 820px;
  --size-85: 85px;
  --size-850: 850px;
  --size-88: 88px;
  --size-880: 880px;
  --size-9: 9px;
  --size-90: 90px;
  --size-900: 900px;
  --size-920: 920px;
  --size-93: 93px;
  --size-95: 95px;
  --size-98: 98px;
  --size-neg-1: -1px;
  --size-neg-2: -2px;
  --size-neg-3: -3px;
  --size-neg-4: -4px;
  --space-1: 1px;
  --space-10: 10px;
  --space-11: 11px;
  --space-12: 12px;
  --space-13: 13px;
  --space-14: 14px;
  --space-1434: 1434px;
  --space-1450: 1450px;
  --space-1472: 1472px;
  --space-1488: 1488px;
  --space-15: 15px;
  --space-16: 16px;
  --space-17: 17px;
  --space-18: 18px;
  --space-19: 19px;
  --space-2: 2px;
  --space-20: 20px;
  --space-21: 21px;
  --space-213: 213px;
  --space-22: 22px;
  --space-23: 23px;
  --space-24: 24px;
  --space-244: 244px;
  --space-25: 25px;
  --space-26: 26px;
  --space-27: 27px;
  --space-28: 28px;
  --space-29: 29px;
  --space-3: 3px;
  --space-30: 30px;
  --space-31: 31px;
  --space-32: 32px;
  --space-33: 33px;
  --space-34: 34px;
  --space-35: 35px;
  --space-36: 36px;
  --space-37: 37px;
  --space-38: 38px;
  --space-39: 39px;
  --space-4: 4px;
  --space-40: 40px;
  --space-42: 42px;
  --space-43: 43px;
  --space-44: 44px;
  --space-45: 45px;
  --space-46: 46px;
  --space-48: 48px;
  --space-49: 49px;
  --space-5: 5px;
  --space-50: 50px;
  --space-55: 55px;
  --space-6: 6px;
  --space-60: 60px;
  --space-62: 62px;
  --space-64: 64px;
  --space-65: 65px;
  --space-69: 69px;
  --space-7: 7px;
  --space-70: 70px;
  --space-72: 72px;
  --space-74: 74px;
  --space-75: 75px;
  --space-76: 76px;
  --space-77: 77px;
  --space-8: 8px;
  --space-80: 80px;
  --space-9: 9px;
  --space-90: 90px;
  --space-neg-100: -100px;
  --space-neg-15: -15px;
  --space-neg-17: -17px;
  --space-neg-18: -18px;
  --space-neg-20: -20px;
  --space-neg-24: -24px;
  --space-neg-28: -28px;
  --space-neg-60: -60px;
  --type-0p5: 0.5px;
  --type-0p6: 0.6px;
  --type-0p7: 0.7px;
  --type-1: 1px;
  --type-10: 10px;
  --type-11: 11px;
  --type-12: 12px;
  --type-13: 13px;
  --type-14: 14px;
  --type-15: 15px;
  --type-150: 150px;
  --type-16: 16px;
  --type-17: 17px;
  --type-18: 18px;
  --type-19: 19px;
  --type-1p1: 1.1px;
  --type-1p2: 1.2px;
  --type-1p3: 1.3px;
  --type-1p4: 1.4px;
  --type-1p5: 1.5px;
  --type-1p6: 1.6px;
  --type-1p7: 1.7px;
  --type-1p8: 1.8px;
  --type-2: 2px;
  --type-20: 20px;
  --type-21: 21px;
  --type-22: 22px;
  --type-23: 23px;
  --type-24: 24px;
  --type-25: 25px;
  --type-26: 26px;
  --type-27: 27px;
  --type-28: 28px;
  --type-29: 29px;
  --type-2p1: 2.1px;
  --type-2p3: 2.3px;
  --type-2p5: 2.5px;
  --type-30: 30px;
  --type-31: 31px;
  --type-32: 32px;
  --type-33: 33px;
  --type-34: 34px;
  --type-35: 35px;
  --type-36: 36px;
  --type-38: 38px;
  --type-39: 39px;
  --type-4: 4px;
  --type-40: 40px;
  --type-41: 41px;
  --type-42: 42px;
  --type-43: 43px;
  --type-44: 44px;
  --type-45: 45px;
  --type-46: 46px;
  --type-47: 47px;
  --type-48: 48px;
  --type-5: 5px;
  --type-50: 50px;
  --type-52: 52px;
  --type-55: 55px;
  --type-56: 56px;
  --type-58: 58px;
  --type-6: 6px;
  --type-64: 64px;
  --type-65: 65px;
  --type-7: 7px;
  --type-70: 70px;
  --type-72: 72px;
  --type-76: 76px;
  --type-8: 8px;
  --type-82: 82px;
  --type-9: 9px;
  --type-95: 95px;
  --type-neg-0p3: -0.3px;
  --type-neg-0p4: -0.4px;
  --type-neg-0p5: -0.5px;
  --type-neg-0p6: -0.6px;
  --type-neg-0p65: -0.65px;
  --type-neg-1: -1px;
  --type-neg-1p3: -1.3px;
  --type-neg-1p4: -1.4px;
  --type-neg-1p5: -1.5px;
  --type-neg-1p7: -1.7px;
  --type-neg-1p8: -1.8px;
  --type-neg-2: -2px;
  --type-neg-2p2: -2.2px;
  --type-neg-2p3: -2.3px;
  --type-neg-2p8: -2.8px;
  --type-neg-2p9: -2.9px;
  --type-neg-3: -3px;
  --type-neg-3p4: -3.4px;
  --type-neg-4: -4px;
  --type-neg-5: -5px;
  --type-neg-9: -9px;
}
/* Existing landing demo colours, centralised without changing rendered values. */
:root {
}

:root[data-theme="light"] {
  --spot-blue: #2854db;
  --spot-rose: #b42667;
  --spot-violet: #7834c4;
  --spot-teal: #006f65;
  --spot-blue-wash: #dce8ff;
  --spot-rose-wash: #ffe0ec;
  --spot-violet-wash: #eadfff;
  --spot-teal-wash: #d4f6ed;
  --spot-button-ink: #ffffff;
  --decor-cyan: #00bcb2;
  --decor-violet: #8955ed;
  --decor-amber: #ffb82e;
  --tint-cyan: #e0f7f2;
  --tint-violet: #f0eaff;
  --tint-amber: #fff4d9;
  --accent-purple: #7134bb;
  --surface-page: #f7f9ff;
  --surface-raised: #ffffff;
  --surface-tint: #eaf2ff;
  --text-primary: #16233f;
  --text-secondary: #465675;
  --accent: #006b73;
  --border-default: #c1cfe5;
  --border-strong: #7386a5;
  --focus-ring: #315be8;
  --action-bg: #315be8;
  --action-ink: #ffffff;
  --text-danger: #a12636;
  --text-success: #17613b;
  --shadow-color: #19334e1a;
  --scrim: #0a213c80;
}
html,body { background:var(--surface-page);color:var(--text-primary); }

