/* A shared core and two product paths; page-specific composition, shared brand chrome. */
html.flutter-service-document{scroll-padding-top:0}
.flutter-service-page{--gutter:max(36px,calc((100vw - 1376px)/2));--flutter-blue:#416daf;--flutter-ink:#1a2b42;--flutter-muted:#52657e;--flutter-dark:#101b2d;--flutter-line:#cbd6e5;--flutter-header-height:108px;background:var(--paper);color:var(--flutter-ink)}
.flutter-service-page main{overflow:clip}
.flutter-section>*{min-width:0}
.flutter-service-page main :is(p,dt,dd,th,td){overflow-wrap:anywhere}
.flutter-service-page figure{margin:0}
.flutter-service-page em{font-style:normal;color:var(--flutter-blue)}
.flutter-service-page :is(h1,h2,h3,.flutter-statement){overflow-wrap:anywhere}
.flutter-service-page h2{font-size:3.5rem;line-height:1.14;letter-spacing:0}
.flutter-service-page h3{font-weight:550;letter-spacing:0;line-height:1.26}
.flutter-service-page p{font-size:1rem;line-height:1.85}
.flutter-service-page [hidden]{display:none!important}
.flutter-service-page .site-header{background:#e9eff7f5}
.flutter-service-page .site-header.compact{background:#f2f4f7f5}
.flutter-service-page .site-header.on-dark{background:#101b2df5}
.flutter-section{padding:106px var(--gutter);scroll-margin-top:calc(var(--flutter-header-height) + 28px)}
.flutter-kicker{display:block;font-size:.75rem;font-weight:650;line-height:1.8;letter-spacing:0}
.flutter-text-link{display:inline-flex;align-items:center;gap:20px;max-width:100%;width:fit-content;font-size:.9375rem;line-height:1.6;font-weight:600;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:6px}
.flutter-text-link:hover{text-decoration-color:currentColor}
.flutter-text-link svg,.flutter-button svg,.flutter-parent-link svg{width:22px;height:22px;stroke:currentColor;stroke-width:1.4;flex-shrink:0}
.flutter-button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;max-width:100%;padding:18px 22px;background:var(--flutter-blue);color:white;border-radius:8px;font-size:.9375rem;font-weight:600;line-height:1.5;transition:background .18s}
.flutter-button:hover{background:#31568c}
.flutter-section-heading{display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:70px;margin-bottom:48px}
.flutter-section-heading h2{margin-top:22px}
.flutter-section-heading>p{max-width:490px;justify-self:end;color:var(--flutter-muted)}
.flutter-hero{background:#e9eff7;padding:142px var(--gutter) 0}
.flutter-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:.8125rem;line-height:1.8;color:var(--flutter-muted)}
.flutter-breadcrumb a:hover{text-decoration:underline}
.flutter-hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:center;gap:24px;margin-top:56px;margin-bottom:54px}
.flutter-service-page .flutter-hero h1{font-size:1.125rem;line-height:1.7;font-weight:650;letter-spacing:0;margin:0 0 25px;color:#335990;max-width:none}
.flutter-statement{font-size:4.5rem;font-weight:550;line-height:1.1;letter-spacing:0}
.flutter-statement span{display:block}
.flutter-service-page .flutter-lead{max-width:525px;margin:29px 0 25px;font-size:1.0625rem;line-height:1.8;color:#435872}
.flutter-hero-art{min-width:0;transform:translateY(var(--flutter-art-travel,0px))}
.flutter-hero-art img{width:100%;height:auto;aspect-ratio:1.5;object-fit:contain;border-radius:10px}
.flutter-hero-art figcaption{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #bdccdf;padding-top:17px;margin-top:25px;font-size:.75rem;line-height:1.7;color:#52657e}
.flutter-hero-art figcaption>span:first-child{font-weight:650;letter-spacing:0}
.flutter-hero-art figcaption>span:last-child{text-align:right;max-width:190px}
.flutter-hero-foot{border-top:1px solid #bccbdd;padding:26px 0 30px;display:flex;align-items:center;justify-content:space-between;gap:40px}
.flutter-hero-foot p{font-size:.875rem;line-height:1.6;color:#52657e}
.flutter-hero-foot strong{font-weight:600;color:#1a2b42}
.flutter-hero-foot nav{display:flex;flex-wrap:wrap;gap:20px 32px;font-size:.875rem;font-weight:550;line-height:1.7}
.flutter-hero-foot nav a:hover{text-decoration:underline}
.flutter-decision{background:#f9fafc}
.flutter-scenario-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--flutter-line)}
.flutter-scenario-tabs button{display:flex;align-items:center;gap:18px;text-align:left;padding:24px 22px;background:transparent;border:0;border-bottom:3px solid transparent;color:var(--flutter-muted);font-size:1rem;font-weight:600;line-height:1.5;transition:color .15s,background .15s,border-color .15s}
.flutter-scenario-tabs button span{font-size:.75rem;font-weight:500}
.flutter-scenario-tabs button[aria-selected=true]{border-bottom-color:var(--flutter-blue);background:#e8eff8;color:#244c83}
.flutter-scenario-tabs button:hover{color:#1a2b42;background:#edf2f8}
.flutter-scenario-tabs button:focus-visible{outline-offset:-5px}
.flutter-scenario{display:grid;grid-template-columns:1fr 1.08fr;background:#edf2f8;min-height:430px;padding:47px;gap:64px}
.flutter-scenario+.flutter-scenario{border-top:1px solid var(--flutter-line)}
.flutter-scenario h3{font-size:2.375rem;margin:23px 0 20px}
.flutter-scenario-verdict>p{max-width:460px;color:var(--flutter-muted)}
.flutter-fit{display:block;width:fit-content;font-size:.75rem;line-height:1.7;letter-spacing:0;font-weight:650;color:#31578d;border-bottom:1px solid #86a3c8;padding-bottom:8px}
.flutter-fit-review{color:#765022;border-color:#c4a16d}
.flutter-scenario-reasons{margin:0;display:grid;align-content:start;gap:23px}
.flutter-scenario-reasons>div+div{border-top:1px solid var(--flutter-line);padding-top:22px}
.flutter-scenario-reasons dt{font-size:1rem;font-weight:650;line-height:1.6;margin-bottom:8px}
.flutter-scenario-reasons dd{font-size:1rem;line-height:1.8;color:var(--flutter-muted);margin:0}
.flutter-scenario-reasons dd a{text-decoration:underline;text-decoration-color:#8ea5c4;text-underline-offset:4px;color:#31578d}
.flutter-decision-bottom{display:flex;align-items:start;justify-content:space-between;gap:40px;margin-top:29px}
.flutter-decision-bottom p{max-width:560px;font-size:.9375rem;color:var(--flutter-muted)}
.flutter-decision-bottom a{flex-shrink:0;color:#31578d}
.flutter-foundation{background:var(--flutter-dark);color:#eff4fc}
.flutter-foundation em,.flutter-release em{color:#99b9e9}
.flutter-foundation-heading{max-width:830px;margin:0 auto;text-align:center}
.flutter-foundation-heading h2{margin:23px 0}
.flutter-foundation-heading>p{max-width:655px;margin:0 auto;color:#b7c6dc}
.flutter-architecture{max-width:1050px;margin:56px auto 0}
.flutter-shared-core{background:#416daf;color:#fff;padding:40px 45px;text-align:center;border:1px solid #6f94c6;border-radius:12px}
.flutter-shared-core h3{font-size:3rem;margin:14px 0}
.flutter-shared-core p{color:#e5efff}
.flutter-core-modules{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:24px}
.flutter-core-modules span{padding:10px 17px;font-size:.875rem;line-height:1.5;background:#204b814f;border:1px solid #9bb9e459;border-radius:4px}
.flutter-platform-pair{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-top:50px}
.flutter-platform-pair::before{content:'';position:absolute;top:0;left:50%;width:2px;height:25px;background:#789bcf}
.flutter-platform-pair::after{content:'';position:absolute;top:24px;left:25%;right:25%;height:2px;background:#9abff4;transform:scaleX(var(--flutter-flow,1));transform-origin:center}
.flutter-platform-pair article{position:relative;padding:31px 34px;background:#192a43;border:1px solid #3e5779;border-radius:8px}
.flutter-platform-pair article::before{content:'';position:absolute;top:-26px;left:50%;width:2px;height:25px;background:#789bcf}
.flutter-platform-pair h3{font-size:2rem;margin:12px 0}
.flutter-platform-pair p{color:#b7c6dc;max-width:360px}
.flutter-platform-pair .flutter-kicker{color:#a6bddc}
.flutter-architecture-note{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;margin-top:60px;padding-top:38px;border-top:1px solid #34465e}
.flutter-architecture-note h3{font-size:1.75rem}
.flutter-architecture-note p{color:#b7c6dc}
.flutter-architecture-note p+p{margin-top:18px}
.flutter-related-path{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-top:46px;padding:27px 0;border-top:1px solid #34465e;border-bottom:1px solid #34465e}
.flutter-related-path .flutter-kicker{color:#a5bddf}
.flutter-related-path p{margin-top:8px;max-width:670px}
.flutter-related-path a{flex-shrink:0;color:#bdd5f8}
.flutter-integrations .flutter-section-heading{margin-bottom:36px}
.flutter-integration-table{overflow:auto;border-top:1px solid var(--flutter-line)}
.flutter-integration-table table{width:100%;border-collapse:collapse;text-align:left}
.flutter-integration-table caption{text-align:left;color:var(--flutter-muted);font-size:.875rem;line-height:1.7;padding:22px 0}
.flutter-integration-table th,.flutter-integration-table td{padding:24px 26px;vertical-align:top;border-bottom:1px solid var(--flutter-line);font-size:1rem;line-height:1.8}
.flutter-integration-table thead th{background:#e6ecf4;font-size:.875rem;color:#435a77;font-weight:600}
.flutter-integration-table th:first-child{padding-left:0;width:18%}
.flutter-integration-table thead th:first-child{padding-left:18px}
.flutter-integration-table th[scope=row]{font-weight:600;color:#244875}
.flutter-integration-table td{color:var(--flutter-muted);width:41%}
.flutter-integration-table td:last-child{padding-right:0}
.flutter-native-bridge{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;padding:61px 0 50px}
.flutter-native-bridge h3{font-size:2.5rem;margin-top:22px}
.flutter-native-bridge>div:last-child{padding-top:37px;color:var(--flutter-muted)}
.flutter-native-bridge p+p{margin-top:18px}
.flutter-data-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;border-top:1px solid var(--flutter-line);padding-top:38px}
.flutter-data-pair h3{font-size:1.75rem;margin:19px 0}
.flutter-data-pair p{color:var(--flutter-muted)}
.flutter-data-pair p+p{margin-top:16px}
.flutter-performance{display:grid;grid-template-columns:.9fr 1.1fr;gap:35px 75px;background:#dfe9f7}
.flutter-performance-intro h2{margin:24px 0}
.flutter-performance-intro p{max-width:510px;color:#415775}
.flutter-performance-checks{list-style:none;padding:0;margin:0;align-self:center}
.flutter-performance-checks li{display:grid;grid-template-columns:38px 1fr;gap:13px 19px;padding:30px 0;border-top:1px solid #afc3df}
.flutter-check-number{font-size:.875rem;color:#4c6990;line-height:1.9}
.flutter-performance-checks h3{font-size:1.5rem;margin-bottom:13px}
.flutter-performance-checks p{color:#415775}
.flutter-check-output{grid-column:2;font-size:.75rem;line-height:1.7;font-weight:650;letter-spacing:0;color:#3a5983}
.flutter-performance-principle{grid-column:1/-1;border-top:1px solid #afc3df;padding-top:25px;color:#415775}
.flutter-release{background:#101b2d;color:#edf4ff}
.flutter-release .flutter-section-heading>p{color:#b7c6dc}
.flutter-release-common{border:1px solid #526f97;padding:28px 32px;background:#223b5d;display:flex;align-items:center;justify-content:space-between;gap:30px;border-radius:8px 8px 0 0}
.flutter-release-common .flutter-kicker{flex-shrink:0;color:#b9d2f5}
.flutter-release-common p{font-size:.9375rem;color:#e4ecf8}
.flutter-store-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid #3f5472;border-top:0}
.flutter-store-pair article{padding:38px 42px}
.flutter-store-pair article+article{border-left:1px solid #3f5472}
.flutter-store-index{font-size:.8125rem;letter-spacing:0;color:#a7c3e8}
.flutter-store-pair h3{font-size:3rem;margin:22px 0}
.flutter-store-pair p{color:#b7c6dc}
.flutter-store-pair p+p{margin-top:17px}
.flutter-store-pair a{color:#bdd5f8;margin-top:26px}
.flutter-maintenance{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;padding-top:55px}
.flutter-maintenance h3{font-size:2rem;margin-top:20px}
.flutter-maintenance>div:last-child{padding-top:3px}
.flutter-maintenance p{color:#b7c6dc}
.flutter-maintenance p+p{margin-top:18px}
.flutter-choice{display:grid;grid-template-columns:1fr 1fr;gap:90px}
.flutter-choice-heading h2{margin:24px 0}
.flutter-choice-heading p{max-width:540px;color:var(--flutter-muted)}
.flutter-react-slot{padding:35px;border:1px solid var(--flutter-line);align-self:center;background:#e8eef6}
.flutter-react-slot h3{font-size:1.6rem;margin:22px 0}
.flutter-react-slot p{color:var(--flutter-muted)}
.flutter-react-slot a{margin-top:25px;color:#31578d}
.flutter-contact{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;background:#e4ecf7;border-top:1px solid #cad6e7}
.flutter-contact-brief h2{margin:24px 0}
.flutter-contact-brief p{max-width:560px;color:#465d7c}
.flutter-parent-link{display:inline-flex;align-items:center;gap:19px;margin-top:28px;color:#31578d;font-size:.9375rem;line-height:1.7;max-width:100%;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#96afcf}
.flutter-contact-actions{align-self:center;min-width:0}
.flutter-contact-email{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #a9bdd9;margin-top:27px;padding-bottom:22px;font-size:1.75rem;line-height:1.7;font-weight:550;letter-spacing:0;overflow-wrap:anywhere}
.flutter-contact-email svg{width:27px;height:27px;stroke:currentColor;stroke-width:1.4;flex-shrink:0}
.flutter-contact-phone{display:block;font-size:1.25rem;margin:25px 0 20px;line-height:1.7}
.flutter-contact-note{margin-top:37px;padding-left:22px;border-left:2px solid #8caddb}
.flutter-contact-note span{display:block;font-size:.8125rem;color:#526a8b;line-height:1.8;margin-bottom:8px}
.flutter-contact-note p{line-height:1.65;color:#335783}
@media(max-width:1199px){.flutter-hero-grid{grid-template-columns:1.05fr 1fr;gap:22px}.flutter-statement{font-size:3.75rem}.flutter-scenario{padding:34px;gap:40px}.flutter-section-heading{gap:50px}.flutter-hero-art figcaption{display:block}.flutter-hero-art figcaption>span{display:block}.flutter-hero-art figcaption>span:last-child{margin-top:5px;text-align:left;max-width:none}.flutter-performance,.flutter-choice,.flutter-contact{gap:45px}.flutter-architecture-note,.flutter-native-bridge,.flutter-maintenance{gap:55px}.flutter-related-path a{flex-shrink:1;min-width:210px}.flutter-decision-bottom a{flex-shrink:1;min-width:230px}}
@media(max-width:1023px){.flutter-service-page{--gutter:32px;--flutter-header-height:96px}.flutter-section{padding-top:78px;padding-bottom:78px}.flutter-hero{padding-top:125px}.flutter-hero-grid{grid-template-columns:1fr;margin-top:36px;gap:35px}.flutter-hero-copy{max-width:750px}.flutter-statement{font-size:4rem}.flutter-service-page .flutter-lead{max-width:650px}.flutter-hero-art{max-width:700px;justify-self:center}.flutter-hero-art figcaption{display:flex}.flutter-hero-art figcaption>span:last-child{text-align:right;margin:0}.flutter-section-heading{gap:35px;grid-template-columns:1.1fr 1fr}.flutter-scenario-tabs button{padding:20px 16px;gap:12px}.flutter-scenario{gap:32px;padding:31px}.flutter-scenario h3{font-size:1.75rem}.flutter-decision-bottom{gap:24px}.flutter-architecture-note,.flutter-native-bridge,.flutter-maintenance{gap:35px}.flutter-data-pair{gap:35px}.flutter-performance{grid-template-columns:1fr;gap:32px}.flutter-performance-intro h2 br:last-of-type{display:none}.flutter-performance-intro p{max-width:640px}.flutter-performance-checks li{grid-template-columns:40px 1fr;gap:12px 22px}.flutter-choice,.flutter-contact{grid-template-columns:1fr;gap:36px}.flutter-contact-actions{max-width:650px;width:100%}.flutter-contact-email{font-size:1.8rem}.flutter-store-pair article{padding:30px}.flutter-release-common{display:block}.flutter-release-common p{margin-top:10px}.flutter-react-slot{max-width:720px}}
@media(max-width:760px){.flutter-service-page{--gutter:24px;--flutter-header-height:85px}.flutter-section{padding-top:62px;padding-bottom:62px;scroll-margin-top:calc(var(--flutter-header-height) + 20px)}.flutter-service-page h2{font-size:2.25rem;line-height:1.16}.flutter-hero{padding-top:112px}.flutter-breadcrumb{font-size:.75rem;gap:6px 9px}.flutter-hero-grid{gap:33px;margin-top:32px;margin-bottom:30px}.flutter-service-page .flutter-hero h1{font-size:1rem;margin-bottom:22px}.flutter-statement{font-size:2.375rem;letter-spacing:0}.flutter-service-page .flutter-lead{font-size:1rem;margin-top:23px}.flutter-hero-art figcaption{margin-top:17px;padding-top:13px;gap:15px}.flutter-hero-art figcaption>span:last-child{max-width:160px}.flutter-hero-foot{display:block;padding:24px 0}.flutter-hero-foot nav{margin-top:23px;gap:16px 21px;font-size:.875rem}.flutter-section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:29px}.flutter-section-heading h2{margin-top:18px}.flutter-section-heading>p{justify-self:start;max-width:none}.flutter-scenario-tabs{grid-template-columns:1fr;gap:1px}.flutter-scenario-tabs button{padding:17px 18px;min-height:55px;border-bottom:0;border-left:3px solid transparent}.flutter-scenario-tabs button[aria-selected=true]{border-left-color:var(--flutter-blue)}.flutter-scenario{grid-template-columns:1fr;gap:30px;padding:28px 22px;min-height:0}.flutter-scenario h3{font-size:1.7rem}.flutter-scenario h3 br{display:none}.flutter-scenario-reasons{gap:20px}.flutter-scenario-reasons>div+div{padding-top:19px}.flutter-scenario-reasons dd{line-height:1.85}.flutter-decision-bottom{display:block;margin-top:23px}.flutter-decision-bottom a{margin-top:20px}.flutter-foundation-heading{text-align:left}.flutter-foundation-heading h2{margin-top:18px}.flutter-architecture{margin-top:33px}.flutter-shared-core{padding:28px 20px}.flutter-shared-core h3{font-size:2.25rem}.flutter-shared-core p{font-size:.9375rem}.flutter-core-modules{gap:8px}.flutter-core-modules span{font-size:.8125rem;padding:8px 12px}.flutter-platform-pair{gap:12px;padding-top:38px}.flutter-platform-pair::before{height:19px}.flutter-platform-pair::after{top:18px}.flutter-platform-pair article{padding:22px 15px}.flutter-platform-pair article::before{top:-20px;height:19px}.flutter-platform-pair h3{font-size:1.5rem}.flutter-platform-pair .flutter-kicker{font-size:.75rem;letter-spacing:0}.flutter-platform-pair p{font-size:1rem;line-height:1.7}.flutter-architecture-note{grid-template-columns:1fr;gap:22px;padding-top:30px;margin-top:33px}.flutter-architecture-note h3{font-size:1.6rem}.flutter-related-path{display:block;margin-top:30px;padding:24px 0}.flutter-related-path a{margin-top:21px}.flutter-integration-table table{min-width:640px}.flutter-integration-table caption{max-width:calc(100vw - 48px)}.flutter-integration-table th,.flutter-integration-table td{padding:19px 20px}.flutter-native-bridge{grid-template-columns:1fr;gap:20px;padding:38px 0}.flutter-native-bridge h3{font-size:1.8rem;margin-top:18px}.flutter-native-bridge h3 br{display:none}.flutter-native-bridge>div:last-child{padding-top:0}.flutter-data-pair{grid-template-columns:1fr;gap:30px;padding-top:30px}.flutter-data-pair article+article{padding-top:30px;border-top:1px solid var(--flutter-line)}.flutter-data-pair h3{font-size:1.5rem;margin:16px 0}.flutter-performance{gap:27px}.flutter-performance-intro h2{margin:19px 0}.flutter-performance-checks li{grid-template-columns:27px 1fr;gap:12px;padding:26px 0}.flutter-performance-checks h3{font-size:1.4rem}.flutter-performance-principle{padding-top:22px}.flutter-store-pair{grid-template-columns:1fr}.flutter-store-pair article{padding:28px 23px}.flutter-store-pair article+article{border-left:0;border-top:1px solid #3f5472}.flutter-store-pair h3{font-size:2.3rem;margin:17px 0}.flutter-release-common{padding:24px}.flutter-maintenance{grid-template-columns:1fr;gap:21px;padding-top:34px}.flutter-maintenance h3{font-size:1.8rem;margin-top:17px}.flutter-choice-heading h2,.flutter-contact-brief h2{margin-top:18px}.flutter-react-slot{padding:26px 23px}.flutter-react-slot h3{font-size:1.5rem;margin:18px 0}.flutter-contact{gap:38px}.flutter-contact-actions{padding-top:30px;border-top:1px solid #bbcce3}.flutter-contact-email{font-size:1.25rem;gap:12px;margin-top:22px}.flutter-contact-email svg{width:22px;height:22px}.flutter-parent-link{font-size:.875rem}.flutter-contact-note{margin-top:28px}}
@media(max-width:370px){.flutter-service-page{--gutter:20px}.flutter-platform-pair{grid-template-columns:1fr;padding-top:25px;gap:18px}.flutter-platform-pair::after{display:none}.flutter-platform-pair::before{height:25px}.flutter-platform-pair article::before{display:none}.flutter-hero-art figcaption{display:block}.flutter-hero-art figcaption>span:last-child{max-width:none;margin-top:4px;text-align:left}}
@media(prefers-reduced-motion:reduce){html.flutter-service-document{scroll-behavior:auto}.flutter-hero-art{transform:none}.flutter-platform-pair::after{transform:scaleX(1)}.flutter-service-page .site-header,.flutter-button,.flutter-scenario-tabs button{transition-duration:.12s}}
