:root {
      --ink:#153638; --muted:#526a6c; --soft:#e4f1ed; --paper:#f4f8f6;
      --surface:#fbfdfc; --line:#d1e1dc; --teal:#176964; --teal-dark:#0c4d49;
      --sand:#eaf1ee; --danger:#a7463a;
      --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
      --space-6:32px; --space-7:48px; --space-8:64px;
      --radius-sm:10px; --radius-md:16px; --radius-lg:24px; --radius-pill:999px;
      --radius-signature:24px 6px 24px 6px;
      --shadow-1:0 8px 24px rgba(14,77,74,.08);
      --shadow-2:0 16px 40px rgba(14,77,74,.12);
      --shadow-3:0 12px 28px rgba(14,77,74,.18);
      color-scheme:light;
    }
    @media (prefers-color-scheme: dark) {
      :root {
        --ink:#e8f2ef; --muted:#b3c7c3; --soft:#173f3d; --paper:#102624;
        --surface:#16302e; --line:#31514e; --sand:#183532; --teal:#78bcb4;
        --teal-dark:#2a766f; --danger:#ee8274;
        --shadow-1:0 8px 24px rgba(0,0,0,.22); --shadow-2:0 16px 40px rgba(0,0,0,.26);
        --shadow-3:0 12px 28px rgba(0,0,0,.3);
        color-scheme:dark;
      }
    }

    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body {
      margin:0; color:var(--ink); background:var(--paper);
      font-family:Geist,"Aptos","Segoe UI Variable",sans-serif;
      -webkit-font-smoothing:antialiased; line-height:1.55;
    }
    a { color:inherit; }
    .skip { position:absolute; left:-999px; top:8px; padding:10px 14px; background:#fff; color:#153638; border-radius:var(--radius-sm); z-index:20; }
    .skip:focus { left:12px; }
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior:auto; }
      *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
    }

    .nav { min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:6px 8px 6px 14px; border:1px solid var(--line); border-radius:var(--radius-pill); background:var(--surface); box-shadow:var(--shadow-1); }
    .nav .brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
    .nav .brand-mark { width:42px; height:42px; display:grid; place-items:center; overflow:hidden; border-radius:14px; box-shadow:0 10px 24px rgba(22,92,140,.18); }
    .nav .brand-mark svg { width:100%; height:100%; display:block; }
    .nav .brand strong { display:block; font-size:22px; letter-spacing:-.05em; }
    .nav .brand small { display:block; color:var(--muted); font-size:12px; font-weight:700; }
    .nav-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
    @media (max-width:560px) {
      .nav { align-items:flex-start; flex-direction:column; }
      .nav-actions { width:100%; }
    }

    .btn {
      min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:9px;
      padding:0 18px; border-radius:var(--radius-pill); border:1px solid var(--line);
      background:var(--surface); color:var(--ink); text-decoration:none; font-weight:800; font-size:14px;
      cursor:pointer; font-family:inherit; -webkit-tap-highlight-color:transparent;
      transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s cubic-bezier(.16,1,.3,1);
    }
    .btn.primary { color:#fff; border-color:transparent; background:var(--teal-dark); box-shadow:var(--shadow-3); }
    .btn.ghost { border-color:transparent; background:transparent; box-shadow:none; text-decoration:underline; text-underline-offset:3px; }
    @media (hover:hover) and (pointer:fine) {
      .btn:hover { transform:translateY(-2px); box-shadow:var(--shadow-2); }
      .btn.ghost:hover { transform:none; background:var(--soft); }
    }
    .btn:active { transform:translateY(0) scale(.98); }
    .btn:focus-visible { outline:3px solid rgba(23,105,100,.38); outline-offset:3px; }
    .btn:disabled { opacity:.5; cursor:not-allowed; box-shadow:none; transform:none; }
    @media (max-width:560px) {
      .hero-actions .btn, .nav-actions .btn { width:100%; }
    }

    :root {
      --paper:#F7F8F4; --surface:#FFF; --ink:#17272B; --muted:#627176;
      --teal:#196B68; --teal-dark:#10514F; --mint:#DCECE8; --line:#DFE7E5;
      --sand:#F1E6D5; --sun:#E8A45B; --success:#287A5C;
      --radius-card:20px 6px 20px 6px; --radius-row:12px 4px 12px 4px;
    }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; color:var(--ink); background:var(--paper); font-family:"Segoe UI Variable","Segoe UI",-apple-system,BlinkMacSystemFont,sans-serif; line-height:1.55; }
    a { color:inherit; }
    .skip { position:absolute; z-index:30; top:10px; left:-999px; padding:10px 14px; color:#fff; background:var(--teal-dark); border-radius:8px; }
    .skip:focus { left:12px; }
    .shell { width:min(100% - 32px, 1240px); margin:0 auto; }
    .topbar { position:sticky; z-index:10; top:12px; display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:68px; margin-top:12px; padding:8px 10px 8px 14px; border:1px solid color-mix(in srgb,var(--line) 88%,var(--surface)); border-radius:12px 4px 12px 4px; background:color-mix(in srgb,var(--surface) 92%,transparent); box-shadow:0 10px 28px rgba(16,81,79,.04); backdrop-filter:blur(16px) saturate(1.08); -webkit-backdrop-filter:blur(16px) saturate(1.08); }
    .brand { display:flex; align-items:center; gap:11px; text-decoration:none; min-width:max-content; }
    .brand-mark { display:grid; place-items:center; width:42px; height:42px; overflow:hidden; border-radius:14px 5px 14px 5px; }
    .brand-mark svg { width:42px; height:42px; }
    .brand strong { display:block; font-size:20px; letter-spacing:-.05em; }
    .brand small { display:block; color:var(--muted); font-size:11px; font-weight:650; }
    .nav-links { display:flex; align-items:center; gap:10px; font-size:13px; font-weight:700; }
    .nav-links a { display:inline-flex; align-items:center; min-height:40px; padding:0 8px; color:var(--muted); text-decoration:none; }
    .nav-links a:hover { color:var(--teal-dark); }
    button { font:inherit; } .button { min-height:46px; display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:0 18px; border:1px solid var(--teal-dark); border-radius:8px 3px 8px 3px; color:#fff; background:var(--teal-dark); font-size:13px; font-weight:700; text-decoration:none; transition:transform .18s cubic-bezier(.22,1,.36,1),background .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1); }
    .button.secondary { color:var(--teal-dark); border-color:var(--line); background:var(--surface); }
    .button svg { width:17px; height:17px; }
    .button:hover { transform:translateY(-1px); background:var(--teal); }
    .button.secondary:hover { border-color:var(--teal); background:var(--mint); }
    .button:active { transform:scale(.98); }
    :is(a,button):focus-visible { outline:3px solid color-mix(in srgb,var(--teal) 52%,transparent); outline-offset:3px; }
    .hero { display:grid; grid-template-columns:1.02fr .98fr; align-items:center; gap:clamp(36px,7vw,96px); min-height:calc(100dvh - 94px); padding:68px 0 72px; }
    .eyebrow { width:fit-content; display:inline-flex; align-items:center; min-height:30px; padding:0 10px; color:var(--teal-dark); border:1px solid color-mix(in srgb,var(--teal) 18%,var(--line)); border-radius:999px; background:var(--mint); font-size:11px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
    h1 { max-width:670px; margin:18px 0; font-size:clamp(50px,6.7vw,84px); font-weight:650; line-height:1; letter-spacing:-.06em; text-wrap:balance; }
    .lead { max-width:570px; margin:0; color:var(--muted); font-size:clamp(17px,2vw,20px); }
    .hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
    .hero-note { display:flex; gap:8px; align-items:flex-start; max-width:480px; margin:16px 0 0; color:var(--muted); font-size:13px; }
    .hero-note svg { flex:0 0 auto; width:17px; margin-top:2px; color:var(--success); }
    .hero-visual { position:relative; min-height:520px; overflow:hidden; border:0; border-radius:var(--radius-card); background:transparent; }
    .hero-visual img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; } .hero-carousel { position:absolute; inset:0; } .hero-slide { position:absolute; inset:0; margin:0; opacity:0; transition:opacity 1.2s cubic-bezier(.4,0,.2,1); will-change:opacity; } .hero-slide.is-active { opacity:1; }
    .rhythm-line { position:absolute; top:88px; right:0; left:0; height:72px; color:rgba(16,81,79,.36); }
    .rhythm-line path { stroke:currentColor; stroke-width:2; fill:none; }
    .app-preview { position:absolute; right:clamp(20px,5vw,58px); bottom:28px; width:min(78%,360px); overflow:hidden; border:7px solid var(--surface); border-radius:20px 6px 20px 6px; background:var(--surface); box-shadow:0 18px 34px rgba(16,81,79,.16); }
    .preview-top { display:flex; justify-content:space-between; align-items:center; padding:17px 16px 12px; }
    .preview-top span { color:#5f7475; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
    .preview-top b { font-size:14px; }
    .preview-hero { margin:0 12px; padding:17px; border-radius:16px 5px 16px 5px; color:#fff; background:#10514F; }
    .preview-hero small { display:block; opacity:.78; font-size:10px; } .preview-hero strong { display:block; margin-top:5px; font-size:19px; letter-spacing:-.05em; }
    .preview-list { display:grid; gap:7px; padding:13px 12px 15px; } .preview-item { display:grid; grid-template-columns:28px 1fr auto; gap:9px; align-items:center; padding:10px; border:1px solid #dfe7e5; border-radius:12px 4px 12px 4px; }
    .preview-item i { width:28px; height:28px; border-radius:9px 3px 9px 3px; background:#dcece8; } .preview-item b { font-size:11px; } .preview-item small { color:#627176; font-size:9px; } .preview-item em { color:#196b68; font-size:12px; font-style:normal; font-weight:850; }
    .visual-label { position:absolute; top:185px; left:24px; max-width:216px; padding:14px; border:1px solid color-mix(in srgb,var(--teal) 18%,var(--surface)); border-radius:12px 4px 12px 4px; color:var(--teal-dark); background:var(--surface); font-size:13px; font-weight:700; }
    .visual-label span { display:block; margin-top:4px; color:var(--muted); font-size:11px; font-weight:500; }
    .section { padding:clamp(42px,5.25vw,68px) 0; } .section-anchor { scroll-margin-top:100px; }
    .section-heading { max-width:700px; margin-bottom:30px; } h2 { margin:11px 0 0; font-size:clamp(31px,4.7vw,54px); font-weight:650; line-height:1.05; letter-spacing:-.045em; text-wrap:balance; } .section-copy { max-width:610px; margin:14px 0 0; color:var(--muted); font-size:17px; }
    .today-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
    .today-card { min-height:250px; display:flex; flex-direction:column; padding:22px; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface); }
    .card-number { color:var(--teal); font-size:12px; font-weight:900; letter-spacing:.08em; } .card-icon { display:grid; place-items:center; width:46px; height:46px; margin:17px 0; border-radius:14px 5px 14px 5px; color:var(--teal-dark); background:rgba(255,255,255,.68); } .card-icon svg { width:24px; } .today-card h3 { margin:0; font-size:23px; letter-spacing:-.045em; } .today-card p { margin:8px 0 0; color:var(--muted); font-size:14px; }
    .contour { display:grid; grid-template-columns:.83fr 1.17fr; gap:clamp(24px,5vw,70px); align-items:center; padding:clamp(24px,4vw,48px); border-radius:var(--radius-card); color:#fff; background:var(--teal-dark); }
    .contour .eyebrow { color:#e9f6f2; border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.1); } .contour h2 { max-width:500px; } .contour p { max-width:480px; color:#cae3dd; font-size:16px; }
    .contour-flow { display:grid; gap:9px; } .flow-row { display:grid; grid-template-columns:38px 1fr auto; gap:11px; align-items:center; min-height:62px; padding:10px 13px; border:1px solid rgba(255,255,255,.18); border-radius:var(--radius-row); background:rgba(255,255,255,.08); } .flow-row svg { width:20px; } .flow-row b { font-size:14px; } .flow-row small { color:#c5ded8; font-size:11px; } .flow-row span { color:#f0d09d; font-size:19px; }
    .devices { padding:clamp(25px,4vw,46px); border:1px solid var(--line); border-radius:var(--radius-card); background:linear-gradient(135deg,#eff7f5 0%,var(--surface) 52%,#f4eee5 100%); } .device-tree { display:flex; flex-direction:column; align-items:center; } .device-root { display:flex; gap:11px; align-items:center; } .device-root .brand-mark { width:54px; height:54px; border:1px solid var(--line); border-radius:16px 6px 16px 6px; background:var(--surface); } .device-root b { font-size:22px; letter-spacing:-.05em; } .device-stem { flex:0 0 auto; width:2px; height:24px; background:color-mix(in srgb,var(--teal) 45%,var(--line)); } .device-links { position:relative; display:grid; grid-template-columns:repeat(5,1fr); width:min(100%,1060px); height:26px; } .device-links::before { content:""; position:absolute; top:0; right:10%; left:10%; border-top:2px solid color-mix(in srgb,var(--teal) 45%,var(--line)); } .device-link { position:relative; } .device-link::before { content:""; position:absolute; top:0; left:50%; width:2px; height:16px; transform:translateX(-50%); background:color-mix(in srgb,var(--teal) 45%,var(--line)); } .device-link::after { content:""; position:absolute; top:16px; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color:var(--teal-dark); } .devices-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; align-items:start; width:min(100%,1060px); margin:0; padding:0; list-style:none; } .device-card { display:flex; flex-direction:column; align-items:center; padding:18px 14px 16px; border:1px solid color-mix(in srgb,var(--teal) 15%,var(--line)); border-radius:var(--radius-card); background:rgba(255,255,255,.76); overflow:hidden; } .device-frame { position:relative; overflow:hidden; color:#101315; background:#111; box-shadow:0 14px 26px rgba(16,81,79,.2); } .device-screen { display:block; width:100%; height:100%; object-fit:cover; object-position:top; } .device-frame--phone { width:auto; height:264px; aspect-ratio:860/1864; padding:7px; border:4px solid #1c2224; border-radius:26px; } .device-frame--phone::after { content:""; position:absolute; z-index:2; top:8px; left:50%; width:44px; height:12px; border-radius:9px; transform:translateX(-50%); background:#171a1c; } .device-frame--android { border-color:#1f4f7c; border-radius:21px; } .device-frame--android::after { top:auto; bottom:4px; width:26px; height:4px; background:#1f4f7c; } .device-frame--tablet { width:auto; height:298px; aspect-ratio:780/1688; padding:10px; border:7px solid #202426; border-radius:20px; } .device-frame--tablet::after { content:""; position:absolute; z-index:2; top:4px; left:50%; width:5px; height:5px; border-radius:50%; transform:translateX(-50%); background:#101315; } .device-frame--laptop { width:min(100%,238px); aspect-ratio:16/11; height:auto; padding:7px 7px 14px; border:5px solid #25292a; border-radius:12px 12px 4px 4px; } .device-frame--laptop::after { content:""; position:absolute; right:-16px; bottom:-9px; left:-16px; height:10px; border-radius:0 0 8px 8px; background:linear-gradient(#a2a9aa,#5b6568); } .device-frame--watch { display:grid; place-items:center; width:140px; height:190px; overflow:visible; border:7px solid #202426; border-radius:36px; } .device-frame--watch::before,.device-frame--watch::after { content:""; position:absolute; left:50%; width:62px; height:42px; transform:translateX(-50%); border-radius:16px 16px 7px 7px; background:#202426; } .device-frame--watch::before { bottom:calc(100% - 7px); } .device-frame--watch::after { top:calc(100% - 7px); transform:translateX(-50%) rotate(180deg); } .watch-screen { position:relative; z-index:1; display:grid; place-content:center; width:100%; height:100%; padding:15px; border-radius:27px; color:#ecf7f4; background:radial-gradient(circle at 62% 28%,#277d78,#0d2929 68%); text-align:center; } .watch-screen small { color:#b4d8d2; font-size:9px; } .watch-screen b { display:block; margin:3px 0; font-size:28px; line-height:1; letter-spacing:-.07em; } .device-card h3 { margin:15px 0 0; font-size:17px; letter-spacing:-.035em; } .device-card p { margin:4px 0 0; color:var(--muted); font-size:13px; text-align:center; } .devices-caption { max-width:720px; margin:26px 0 0; color:var(--muted); font-size:14px; text-align:center; }
    /* Device gallery: every platform shares a single visual stage and text baseline. */
    .devices-row { align-items:stretch; gap:12px; }
    .device-card { min-height:422px; padding:16px 12px 18px; }
    .device-stage { display:flex; align-items:center; justify-content:center; width:100%; height:286px; }
    .device-frame { flex:0 0 auto; }
    .device-frame--phone { height:258px; padding:7px; border:5px solid #252b2d; border-radius:30px; }
    .device-frame--phone::after { top:8px; width:46px; height:13px; border-radius:10px; background:#111517; }
    .device-frame--tablet { width:160px; height:270px; padding:9px; border:7px solid #202426; border-radius:22px; aspect-ratio:auto; }
    .device-frame--tablet::before { content:""; position:absolute; z-index:3; top:5px; left:50%; width:5px; height:5px; border-radius:50%; transform:translateX(-50%); background:#070909; }
    .device-frame--tablet::after { content:""; position:absolute; right:-19px; top:18px; width:5px; height:222px; border:1px solid #bdc1c2; border-radius:8px; transform:rotate(3deg); background:linear-gradient(90deg,#eef0ef,#aeb4b4 48%,#fafafa); box-shadow:1px 1px 3px rgba(0,0,0,.18); }
    .device-frame--android { border-color:#1c4f7c; border-radius:25px; }
    .device-frame--android::before { content:""; position:absolute; z-index:3; top:9px; left:50%; width:30px; height:4px; border-radius:5px; transform:translateX(-50%); background:#102d49; }
    .device-frame--android::after { top:auto; bottom:5px; width:28px; height:5px; background:#163f65; }
    .device-frame--watch { width:128px; height:164px; border:8px solid #1e2426; border-radius:39px; box-shadow:0 14px 26px rgba(16,81,79,.24); }
    .device-frame--watch::before,.device-frame--watch::after { width:68px; height:48px; border-radius:19px 19px 8px 8px; background:#171c1e; }
    .device-frame--watch::before { bottom:calc(100% - 8px); }
    .device-frame--watch::after { top:calc(100% - 8px); }
    .watch-screen { padding:12px; border-radius:29px; }
    .device-frame--laptop { width:190px; padding:6px 6px 14px; border-width:6px; }
    .device-card h3 { min-height:27px; margin-top:14px; }
    .device-card p { min-height:42px; margin-top:3px; }
    .device-frame--reference { overflow:visible; border:0 !important; background:transparent; box-shadow:none; }
    .device-frame--reference::before,.device-frame--reference::after { display:none; }
    .device-frame--reference .device-screen { position:absolute; z-index:1; display:block; margin:0; object-fit:cover; object-position:top; }
    .device-shell { position:absolute; z-index:2; inset:0; width:100%; height:100%; pointer-events:none; }
    .device-frame--iphone { width:130px; height:274px; aspect-ratio:auto; padding:0; }
    .device-frame--iphone .device-screen { top:4.75%; left:9.23%; width:81.54%; height:90.15%; border-radius:22px; }
    .device-frame--ipad { width:202px; height:244px; padding:0; border-radius:0; }
    .device-frame--ipad .device-screen { top:4.92%; left:4.95%; width:74.26%; height:89.75%; border-radius:12px; object-fit:contain; background:#f7f8f4; }
    .device-frame--android-ref { width:136px; height:283px; aspect-ratio:auto; padding:0; }
    .device-frame--android-ref .device-screen { top:7.07%; left:8.09%; width:83.82%; height:87.99%; border-radius:9px; }
    .device-frame--web-ref { width:210px; height:122px; padding:0; border-radius:0; }
    .device-frame--web-ref .device-screen { top:8.2%; left:5.72%; width:88.57%; height:71.31%; border-radius:1px; object-fit:contain; background:#f7f8f4; }
    @media (max-width:560px) { .device-frame--iphone { width:136px; height:286px; } .device-frame--ipad { width:214px; height:258px; } .device-frame--android-ref { width:142px; height:295px; } .device-frame--web-ref { width:228px; height:132px; } .device-stage { height:318px; } }
    @media (max-width:900px) { .device-card { min-height:400px; } .device-stage { height:270px; } }
    @media (max-width:560px) { .device-card { min-height:0; } .device-stage { height:282px; } }
    .boundaries { display:grid; grid-template-columns:minmax(280px,.88fr) minmax(0,1.12fr); gap:clamp(22px,4vw,50px); align-items:center; padding:clamp(20px,3vw,34px); border:1px solid color-mix(in srgb,var(--sun) 56%,var(--line)); border-radius:var(--radius-card); background:var(--sand); } .boundaries h2 { margin:0; font-size:clamp(26px,3vw,36px); } .boundaries p { max-width:620px; margin:12px 0 0; color:#5f5649; } .boundaries-photo { display:block; width:100%; min-height:255px; object-fit:cover; border-radius:var(--radius-row); }
    .access { display:grid; grid-template-columns:.9fr 1.1fr; gap:16px; padding:8px; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface); } .access-main { padding:34px; border-radius:16px 5px 16px 5px; color:#fff; background:var(--teal-dark); } .access-main h2 { margin-top:8px; } .access-main p { color:#d3e8e3; } .access-main .button { margin-top:22px; color:var(--teal-dark); border-color:#fff; background:#fff; } .access-main .button:hover { background:var(--mint); } .access-facts { display:grid; align-content:center; gap:10px; padding:20px; } .access-fact { display:grid; grid-template-columns:42px 1fr; gap:12px; align-items:center; padding:13px; border:1px solid var(--line); border-radius:var(--radius-row); } .access-fact svg { color:var(--teal); } .access-fact b { display:block; font-size:14px; } .access-fact small { color:var(--muted); font-size:12px; }
    .story-photo { display:block; width:100%; min-height:320px; object-fit:cover; border-radius:var(--radius-row); } .photo-card { display:grid; grid-template-rows:236px 1fr; min-width:0; padding:0; overflow:hidden; } .photo-card img { display:block; width:100%; height:236px; object-fit:cover; } .photo-card div { padding:18px 20px 22px; } .photo-card h3 { margin:0; font-size:22px; letter-spacing:-.04em; } .photo-card p { margin:8px 0 0; color:var(--muted); } .today-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    footer { display:flex; justify-content:space-between; gap:16px; padding:28px 0 40px; color:var(--muted); border-top:1px solid var(--line); font-size:13px; } footer nav { display:flex; gap:16px; flex-wrap:wrap; } footer a,.footer-link { color:var(--teal-dark); } .footer-link { padding:0; border:0; background:transparent; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
    .legal-modal { width:min(100% - 32px,720px); max-height:min(780px,calc(100dvh - 32px)); overflow:hidden; padding:0; border:1px solid var(--line); border-radius:var(--radius-card); color:var(--ink); background:var(--surface); box-shadow:0 28px 72px rgba(8,35,34,.34); } .legal-modal::backdrop { background:rgba(12,34,35,.58); } .legal-modal__panel { max-height:min(780px,calc(100dvh - 32px)); overflow:auto; padding:clamp(22px,4vw,40px); } .legal-modal__head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; } .legal-modal h2 { margin:9px 0 0; font-size:clamp(28px,4vw,42px); } .legal-modal h3 { margin:25px 0 7px; font-size:17px; } .legal-modal p,.legal-modal li { color:var(--muted); } .legal-modal ul { margin:8px 0; padding-left:20px; } .legal-modal__status { margin-top:18px; padding:14px 16px; border-left:3px solid var(--sun); background:var(--sand); } .legal-modal__status p { margin:5px 0 0; color:#5f5649; } .legal-modal__close { flex:0 0 auto; display:grid; place-items:center; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; color:var(--teal-dark); background:var(--surface); font-size:25px; line-height:1; cursor:pointer; } .legal-modal__close:hover { background:var(--mint); }
    @media (max-width:900px) { .topbar { position:relative; top:auto; flex-wrap:wrap; row-gap:10px; } .nav-links { order:3; width:100%; justify-content:space-around; padding:8px 0 0; border-top:1px solid var(--line); } .hero,.contour,.access { grid-template-columns:1fr; } .hero { min-height:0; padding:62px 0; } .hero-visual { min-height:460px; max-width:660px; } .today-grid { grid-template-columns:1fr; } .photo-card { grid-template-rows:auto 1fr; } .photo-card img { height:auto; aspect-ratio:16/10; } .device-links,.device-stem { display:none; } .device-tree { align-items:center; } .devices-row { grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,540px); } }
    @media (max-width:560px) { .shell { width:min(100% - 24px,1240px); } .topbar { align-items:center; padding:12px 10px; } .brand small { display:none; } .topbar .button { order:2; width:100%; max-width:none; } .nav-links { order:3; overflow-x:auto; justify-content:flex-start; gap:8px; padding-bottom:2px; font-size:12px; scrollbar-width:none; } .nav-links::-webkit-scrollbar { display:none; } .nav-links a { flex:0 0 auto; min-height:40px; display:grid; align-items:center; padding:4px 7px; } .button { min-height:44px; padding:0 14px; font-size:12px; } .section { padding:42px 0; } h1 { font-size:clamp(42px,13vw,56px); } .hero { padding:38px 0 48px; } .hero-visual { min-height:340px; } .app-preview { right:14px; bottom:16px; width:82%; } .visual-label { top:104px; left:15px; max-width:180px; } .contour,.access { padding:7px; } .contour > div:first-child,.access-main { padding:25px 18px; } .devices { padding:17px 12px; } .devices-row { grid-template-columns:1fr; width:min(100%,320px); } .device-frame--phone { height:238px; } .device-frame--tablet { height:300px; } .boundaries { grid-template-columns:1fr; gap:10px; padding:20px; } .legal-modal { width:calc(100% - 20px); max-height:calc(100dvh - 20px); } .legal-modal__panel { max-height:calc(100dvh - 20px); padding:20px; } footer { flex-direction:column; } }
    @media (max-width:900px) { .boundaries { grid-template-columns:1fr; } .boundaries-photo { min-height:0; aspect-ratio:16/9; } }
    @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; animation-duration:.01ms !important; } .hero-slide:not(:first-child) { display:none; } }
    @media (prefers-color-scheme:dark) { :root { --paper:#101719; --surface:#182124; --ink:#E8EFEF; --muted:#9BAAAA; --mint:#193c39; --line:#2D3A3D; --sand:#29261F; --teal:#7dbbb5; --teal-dark:#2a766f; } .hero-visual { background:var(--mint); } .app-preview { border-color:#2d3a3d; } .preview-top,.preview-list { background:#182124; } .preview-item { border-color:#2d3a3d; } .preview-item b { color:#e8efef; } .preview-item i { background:#29524d; } .today-card,.access,.access-fact { background:#182124; } .flow-row { background:rgba(255,255,255,.06); } .boundaries p { color:#d2c8b3; } }
    /* A single visual composition, not five unrelated cards. */
    .devices { padding:clamp(28px,4vw,48px) clamp(20px,4vw,54px) 30px; }
    .device-links,.devices-row { width:min(100%,1080px); }
    .devices-row { gap:20px; align-items:end; }
    .device-card { min-height:392px; justify-content:flex-end; padding:0 6px 12px; border:0; border-radius:0; background:transparent; overflow:visible; }
    .device-stage { height:288px; }
    .device-card h3 { min-height:0; margin:12px 0 0; line-height:1.2; }
    .device-card p { min-height:0; max-width:174px; margin:6px 0 0; line-height:1.38; }
    .devices-caption { margin-top:20px; }
    /* Final narrow-screen guard: the iPad reference and Pencil must not be clipped. */
    @media (max-width:560px) { .device-stage { height:318px; } .device-frame--iphone { width:136px; height:286px; } .device-frame--ipad { width:214px; height:258px; } .device-frame--android-ref { width:142px; height:295px; } .device-frame--web-ref { width:228px; height:132px; } }
    /* Landing QA pass: one predictable device stage, no screenshot bleed or clipped shells. */
    .devices { overflow:clip; }
    .device-stage { overflow:visible; }
    .device-frame--reference .device-screen { clip-path:inset(0 round inherit); }
    .device-frame--ipad .device-screen,.device-frame--web-ref .device-screen { object-fit:cover; object-position:top center; }
    .device-frame--ipad .device-shell,.device-frame--web-ref .device-shell { z-index:3; }
    /* One recognisable Ritm mark across devices; the real interface remains a quiet backdrop. */
    .device-frame--reference .device-screen { opacity:.15; }
    .device-brand-splash { position:absolute; z-index:2; top:50%; left:50%; display:grid; place-items:center; width:54px; height:54px; transform:translate(-50%,-50%); filter:drop-shadow(0 5px 10px rgba(16,81,79,.16)); }
    .device-brand-splash img { display:block; width:100%; height:100%; }
    .device-brand-splash--corner { top:10px; left:11px; width:25px; height:25px; transform:none; filter:none; }
    .device-frame--watch .watch-content { opacity:.15; }
    .device-frame--watch .device-brand-splash { width:66px; height:66px; overflow:hidden; border-radius:50%; }
    .device-frame--watch .device-brand-splash img { transform:scale(1.04); }
    /* Centre each mark inside its actual display aperture, not the transparent mockup canvas. */
    .device-frame--ipad .device-brand-splash { top:49.8%; left:42.1%; }
    .device-frame--web-ref .device-brand-splash { top:43.9%; left:50%; }
    @media (max-width:900px) { .devices { overflow:visible; } .device-card { min-height:370px; } }
    @media (max-width:560px) { .device-card { min-height:auto; padding-bottom:24px; } .device-stage { height:326px; } .device-frame--ipad { width:210px; height:253px; } .device-frame--web-ref { width:220px; height:127px; } }
    /* Motion is progressive enhancement: static content remains complete if JS is unavailable. */
    html.landing-motion-ready .landing-reveal { opacity:0; transform:translateY(18px); transition:opacity .62s cubic-bezier(.16,1,.3,1),transform .62s cubic-bezier(.16,1,.3,1); }
    html.landing-motion-ready .landing-reveal.is-revealed { opacity:1; transform:translateY(0); }
    html.landing-motion-ready .landing-reveal--hero:nth-child(2) { transition-delay:.08s; }
    html.landing-motion-ready .landing-reveal--hero:nth-child(3) { transition-delay:.16s; }
    html.landing-motion-ready .landing-reveal--hero:nth-child(4) { transition-delay:.24s; }
    @media (prefers-reduced-motion:reduce) { html.landing-motion-ready .landing-reveal { opacity:1; transform:none; transition:none; } }
