/* Keep public page styling separate from the Flutter application. */
/* Own copy preserves these glyphs when Flutter subsets its app icon font. */
@font-face {
  font-family:'BodErMaterialIcons';
  src:url('fonts/materialicons-regular.otf') format('opentype');
  font-weight:normal;
  font-style:normal;
  font-display:block;
}
#landing { font-family:'Segoe UI',Arial,sans-serif; color:#1a2359; background:#fff; border-top:4px solid #1a2359; }
#landing * { box-sizing:border-box; }
#landing .wrap { width:min(100% - 112px, 1760px); margin-inline:auto; }
#landing .header { background:white; border-bottom:1px solid #e4e8f4; }
#landing .nav { min-height:80px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
#landing .brand { display:flex; align-items:center; gap:12px; font-size:24px; font-weight:750; }
#landing .brand img { object-fit:contain; }
#landing nav { display:flex; gap:38px; }
#landing a { color:inherit; text-decoration:none; }
#landing nav a { font-size:16px; color:#465780; }
#landing a:hover { text-decoration:underline; text-underline-offset:5px; }
#landing button { background:#1a2359; color:#fff; border:1px solid #1a2359; border-radius:9px; padding:12px 28px; font:600 15px 'Segoe UI',sans-serif; cursor:pointer; }
#landing button:hover { background:#30418b; }
#landing button:disabled { opacity:.65; cursor:wait; }
#landing a:focus-visible, #landing button:focus-visible { outline:3px solid #4a7aff; outline-offset:5px; }
#landing .hero { background:#eef1f8; }
#landing .hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; padding-block:88px; }
#landing h1 { font-size:clamp(52px,4.6vw,76px); line-height:1.04; font-weight:800; letter-spacing:-2px; margin:0 0 18px; }
#landing h1 span { color:#4a7aff; }
#landing .hero-copy h2 { font-size:24px; margin:0 0 20px; letter-spacing:-.5px; }
#landing .hero-copy p { max-width:590px; color:#5a6580; font-size:18px; line-height:1.85; margin:0; }
#landing .overview { background:white; border:1px solid #e0e5f3; border-radius:20px; padding:26px; }
#landing .overview > h2 { font-size:18px; margin:0 0 22px; }
#landing .activity { display:flex; gap:16px; padding:19px 0; border-top:1px solid #edf0f7; align-items:center; }
#landing h3 { font-size:18px; line-height:1.4; margin:0 0 10px; }
#landing .activity h3 { font-size:16px; margin:0 0 6px; }
#landing .activity p { color:#5a6580; font-size:14px; line-height:1.6; margin:0; }
#landing .symbol { display:block; flex-shrink:0; font-family:'BodErMaterialIcons'; font-weight:normal; font-style:normal; font-size:30px; line-height:1; letter-spacing:normal; text-transform:none; white-space:nowrap; direction:ltr; -webkit-font-smoothing:antialiased; margin-bottom:24px; }
#landing .activity .symbol { width:32px; text-align:center; margin:0; }
#landing .green { color:#298054; } #landing .blue { color:#497bea; } #landing .gold { color:#a47b0d; } #landing .pink { color:#b64f87; } #landing .purple { color:#8653be; } #landing .mint { color:#218a79; }
#landing .section { padding-block:80px; scroll-margin-top:24px; }
#landing .section-heading { text-align:center; margin-bottom:54px; }
#landing .eyebrow { text-transform:uppercase; letter-spacing:2px; color:#4a7aff; font-size:12px; font-weight:700; margin:0 0 16px; }
#landing .section-heading h2 { font-size:clamp(28px,2.7vw,40px); font-weight:800; letter-spacing:-1px; margin:0 0 14px; }
#landing .section-heading > p:last-child { color:#5a6580; font-size:17px; margin:0; line-height:1.7; }
#landing .feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
#landing article { background:white; border:1px solid #e0e5f3; border-radius:17px; padding:32px; }
#landing article p { color:#5a6580; font-size:15px; line-height:1.85; margin:0; }
#landing .steps { background:#f4f6fc; }
#landing .step-number { color:#4a7aff; font-size:24px; font-weight:750; margin-bottom:22px; }
#landing .contact { background:#1a2359; text-align:center; padding-block:84px; }
#landing .contact .eyebrow { color:#98a7ff; }
#landing .contact h2 { color:white; font-size:clamp(32px,3vw,46px); letter-spacing:-1px; margin:22px 0 14px; }
#landing .contact h2 span { color:#8999ff; }
#landing .contact > .wrap > p:not(.eyebrow) { color:#c1cae8; font-size:17px; line-height:1.7; }
#landing .contact-links { display:flex; justify-content:center; flex-wrap:wrap; gap:20px 44px; margin-top:36px; }
#landing .contact-links a { color:white; font-size:18px; text-decoration:underline; text-underline-offset:6px; }
#landing .footer { display:flex; justify-content:space-between; gap:20px; padding-block:26px; color:#637398; font-size:13px; }
@media(max-width:1000px) { #landing .wrap { width:calc(100% - 56px); } #landing .hero-grid { gap:32px; padding-block:64px; } #landing .feature-grid { gap:18px; } #landing article { padding:24px; } }
@media(max-width:760px) { #landing .nav { flex-wrap:wrap; padding-block:18px; gap:20px; } #landing nav { order:3; width:100%; justify-content:center; gap:30px; } #landing nav a { font-size:14px; } #landing .hero-grid { grid-template-columns:1fr; padding-block:48px; gap:36px; } #landing .hero-copy p { font-size:16px; } #landing .hero-copy h2 { font-size:21px; } #landing .feature-grid { grid-template-columns:1fr; } #landing .section { padding-block:52px; } #landing .section-heading { margin-bottom:32px; } #landing .contact { padding-block:56px; } #landing .overview { padding:22px; } }
@media(max-width:400px) { #landing .wrap { width:calc(100% - 36px); } #landing h1 { font-size:48px; } #landing .footer { flex-direction:column; } }
/* Visible immediately while the Flutter engine and app initialize. */
#app-splash[hidden] { display:none; }
#app-splash { position:fixed; inset:0; z-index:10000; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; background:#fff; color:#1a2359; font-family:'Segoe UI',Arial,sans-serif; text-align:center; outline:none; }
#app-splash img { object-fit:contain; }
#app-splash .splash-name { margin-top:16px; font-size:28px; font-weight:750; }
#app-splash .splash-spinner { width:28px; height:28px; margin-top:32px; border:3px solid #e4e8f4; border-top-color:#4a7aff; border-radius:50%; animation:splash-spin .9s linear infinite; }
#splash-status { max-width:420px; color:#5a6580; font-size:14px; line-height:1.7; margin-top:20px; }
#splash-retry { border:0; border-radius:8px; padding:12px 24px; background:#1a2359; color:white; font:600 14px 'Segoe UI',sans-serif; cursor:pointer; }
#splash-retry:focus-visible { outline:3px solid #4a7aff; outline-offset:4px; }
#app-splash.failed .splash-spinner { display:none; }
@keyframes splash-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { #app-splash .splash-spinner { animation:none; } }
