@mavea/mavea 1.0.17 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +59 -3
- package/DISCLAIMER.md +4 -1
- package/PRIVACY.md +14 -8
- package/README.md +67 -24
- package/TERMS.md +11 -1
- package/THIRD-PARTY.txt +25248 -621
- package/bin/mavea.mjs +156 -147
- package/dist/.vite/manifest.json +2333 -1738
- package/dist/assets/AnnotationLayer-ClU-e6qL.css +1 -0
- package/dist/assets/AnnotationLayer-IiuYsoSa.js +0 -0
- package/dist/assets/AppCommandPalette-Dm3SedPO.js +1 -0
- package/dist/assets/AtlasView-B82UfrEX.js +1 -0
- package/dist/assets/BlockEmpty-B82uCse8.js +1 -0
- package/dist/assets/BriefingPlayer-C0D_2ILa.js +1 -0
- package/dist/assets/CanvasSkeleton-CcHXJqdq.js +2 -0
- package/dist/assets/CardEditor-DABIhGdQ.js +1 -0
- package/dist/assets/CheckLogRail-BOaXnqWK.css +1 -0
- package/dist/assets/CheckLogRail-BU_rmAFH.js +1 -0
- package/dist/assets/{CodeOutput-H8TQzjqL.js → CodeOutput-DF892aIR.js} +3 -3
- package/dist/assets/CommandPalette-E3reEqYR.js +1 -0
- package/dist/assets/ConversationVideoStudio-CIAMxElj.css +1 -0
- package/dist/assets/ConversationVideoStudio-DEZBpJUz.js +1 -0
- package/dist/assets/CourseLessonReader-Bpt-DkJo.js +2 -0
- package/dist/assets/CourseRail-C8MJG-zf.js +1 -0
- package/dist/assets/CoursesApp-DFVkhP2f.js +2 -0
- package/dist/assets/CrossExamPanel-CdIYUu-B.js +1 -0
- package/dist/assets/DashPresent-DwWDtjrU.js +1 -0
- package/dist/assets/DashboardDetail-D4wkiTux.js +2 -0
- package/dist/assets/DashboardLoopGate-B5UBPsvU.js +2 -0
- package/dist/assets/DashboardLoopRuntime-CAnZX234.js +1 -0
- package/dist/assets/DashboardOverview-C3hv9sm1.js +1 -0
- package/dist/assets/DashboardSettings-eMhHliVh.js +1 -0
- package/dist/assets/{DashboardsApp-Dx-EsaPW.css → DashboardsApp-B6yUtkKB.css} +1 -1
- package/dist/assets/DashboardsApp-BwFtTdWa.js +2 -0
- package/dist/assets/{DeepZoomApp-CQaTT2Uh.js → DeepZoomApp-CxdcUeFJ.js} +2 -2
- package/dist/assets/DelegatePanel-B0kIu8Et.js +33 -0
- package/dist/assets/DemoGallery-B__X0_H3.js +1 -0
- package/dist/assets/DropSelect-C3uYlej-.js +1 -0
- package/dist/assets/DropSelect-DilESAgA.css +1 -0
- package/dist/assets/ExportModal-CDGlhpdH.js +2 -0
- package/dist/assets/ExtractionPreview-CloJnrQi.js +18 -0
- package/dist/assets/{FallbackCard-B489rTd9.js → FallbackCard-ap_4wOfj.js} +1 -1
- package/dist/assets/FeatureUseNotice-CwHstxBh.js +1 -0
- package/dist/assets/FlagshipCTA-uoeGMQas.js +1 -0
- package/dist/assets/FlagshipCommandPalette-CHsD5BSH.js +1 -0
- package/dist/assets/FlagshipShowcase-D53Q_4m0.js +1 -0
- package/dist/assets/FlashcardsApp-CnLfEnDH.js +1 -0
- package/dist/assets/ForecastPanel-zPUh2ClQ.js +1 -0
- package/dist/assets/GalleryApp-2Ffc6CY6.js +1 -0
- package/dist/assets/{HonestByDesign-CCOt31nx.js → HonestByDesign-5jIu2ZC8.js} +1 -1
- package/dist/assets/{HowItWorks-auW5XXCZ.js → HowItWorks-BiJF84EM.js} +1 -1
- package/dist/assets/LegalApp-zC-rvTww.js +1 -0
- package/dist/assets/{LegalMarkdownDocument-DBjLz9Yf.js → LegalMarkdownDocument-CJ-gRHdX.js} +2 -2
- package/dist/assets/LegalPageShell-CmxGCdqJ.css +1 -0
- package/dist/assets/LegalPageShell-Dyd4Uh3r.js +1 -0
- package/dist/assets/LeverPanel-D1SNRGdm.js +1 -0
- package/dist/assets/Library-DmdzY2se.js +1 -0
- package/dist/assets/LibraryOverlay-_xpWdhLN.js +1 -0
- package/dist/assets/LiveApp-BNae3fDZ.css +1 -0
- package/dist/assets/LiveApp-DjcJQURO.js +78 -0
- package/dist/assets/LiveSettings-BceODlOb.js +6 -0
- package/dist/assets/MindMapViewerDrawer-BuDodC0s.js +1 -0
- package/dist/assets/MindShape-CBcCC7hP.js +1 -0
- package/dist/assets/MindShape-CaPeUo-a.css +1 -0
- package/dist/assets/{Orb-B0NEVfqL.js → Orb-D8lhTdmY.js} +1 -1
- package/dist/assets/PinToDashboard-DBIXvhlF.js +1 -0
- package/dist/assets/PlanReview-DUQ7OMvV.js +1 -0
- package/dist/assets/Presence-CKSoyuhE.js +1 -0
- package/dist/assets/PresentationDeck-C518t9pP.js +1 -0
- package/dist/assets/PrismApp-DRLl8841.js +2 -0
- package/dist/assets/PrismAskController-QRwxRP8D.js +37 -0
- package/dist/assets/PrismBriefingPlayer-Kyb8Vs_w.js +2 -0
- package/dist/assets/PrismOverlay-Bj7tCu5Q.js +105 -0
- package/dist/assets/PrismWorkbench-BCnhkp-S.js +1 -0
- package/dist/assets/{PrivacyApp-rhzy-5HG.js → PrivacyApp-DHSRr8wq.js} +16 -10
- package/dist/assets/Recap-T9DtFaEk.js +1 -0
- package/dist/assets/ReelJelly-D5e-jt-8.js +1 -0
- package/dist/assets/ReplayCard-CKo5reXy.js +2 -0
- package/dist/assets/ReplayCard-Cs6mzTRa.css +1 -0
- package/dist/assets/ReplayOverlay-DqAwLshS.js +1 -0
- package/dist/assets/ReplayOverlay-DzkcTnCA.css +1 -0
- package/dist/assets/RewindOverlay-CkJIETE0.js +1 -0
- package/dist/assets/RippleApp-C76VTaZK.js +2 -0
- package/dist/assets/RippleAskController-CdlMlRH8.js +34 -0
- package/dist/assets/RippleOverlay-Mvz3CXhD.js +6 -0
- package/dist/assets/SeeDontRead-BkySmnP3.js +1 -0
- package/dist/assets/ShareModal-Cl3ryjgK.js +2 -0
- package/dist/assets/{ShareModal-PobtP7AJ.css → ShareModal-D1QuQEko.css} +1 -1
- package/dist/assets/ShipCascade-Bf-qDWMb.js +1 -0
- package/dist/assets/ShipCourse-Cy5ldKLE.js +1 -0
- package/dist/assets/{ShipGate-BYYu9WVq.js → ShipGate-D4BP41-h.js} +1 -1
- package/dist/assets/ShipHotspots-lGioTtf1.js +1 -0
- package/dist/assets/{ShipIncident-Xod2gbjc.js → ShipIncident-DMLb14Lx.js} +1 -1
- package/dist/assets/ShipMigration-ZnzL-1rC.js +1 -0
- package/dist/assets/ShipOnboarding-DUxtx2Vr.js +1 -0
- package/dist/assets/ShipRead-CJJmY-wy.js +1 -0
- package/dist/assets/ShipRollout-Dt2TgI0L.js +1 -0
- package/dist/assets/ShipSuggestions-BrAXTjAR.js +1 -0
- package/dist/assets/ShipWorkspace-_MtKAiKH.js +2 -0
- package/dist/assets/SignatureLoop-Cdkifjb8.js +1 -0
- package/dist/assets/SrsReview-B1B2VekR.css +1 -0
- package/dist/assets/SrsReview-DhWNYYv7.js +1 -0
- package/dist/assets/SynthesisApp-C5udWwng.js +2 -0
- package/dist/assets/SynthesisOverlay-1o-CJsyX.js +66 -0
- package/dist/assets/{TermsApp-Dk2jpxq-.js → TermsApp-DIAESAZs.js} +13 -3
- package/dist/assets/TopbarMenu-DQXxqSWY.js +1 -0
- package/dist/assets/TopicCanvas-DkzJORfl.js +2 -0
- package/dist/assets/TourPrism-Bxp--s0i.js +1 -0
- package/dist/assets/TrackerTile-CyPD0A6b.js +2 -0
- package/dist/assets/TwoSurfaces-C_0XBpwA.js +1 -0
- package/dist/assets/UnderstoodPanel-DmJph4el.js +1 -0
- package/dist/assets/WhyMachineOverlay-QDSZx5Y7.js +1 -0
- package/dist/assets/WorldOverlay-DRdBQMnb.css +1 -0
- package/dist/assets/WorldOverlay-DorHCLzw.js +1 -0
- package/dist/assets/WowFeatures-DNEeO2pr.js +1 -0
- package/dist/assets/ZoomDeck-qdlPe_yl.js +1 -0
- package/dist/assets/__vite-browser-external-gfE6fZcA.js +1 -0
- package/dist/assets/alternateFinishes-Cgks49KV.js +494 -0
- package/dist/assets/annotationAuto-BmKrZ3hU.js +1 -0
- package/dist/assets/annotationReel-K2FYv-3B.js +1 -0
- package/dist/assets/annotations-CftUUB13.js +1 -0
- package/dist/assets/attachments-BW-vki-E.js +1 -0
- package/dist/assets/backup-PaRBwjJy.js +1 -0
- package/dist/assets/blockLabel-FogyzEQY.js +1 -0
- package/dist/assets/blockTypes-DUDdP3pB.js +1 -0
- package/dist/assets/buildShip-BgFg98tH.js +1 -0
- package/dist/assets/cache-CvbSI-pr.js +1 -0
- package/dist/assets/canvas-BlkTFnVo.js +1 -0
- package/dist/assets/capture-CL9ENM-c.js +2 -0
- package/dist/assets/catalog-Db9GWM6N.js +1 -0
- package/dist/assets/{cfo.generated-Bjl5OGay.js → cfo.generated-j5CXp1Zz.js} +1 -1
- package/dist/assets/chapters-Dqm4iLDa.js +1 -0
- package/dist/assets/charts2-CaKGzkgJ.js +1 -0
- package/dist/assets/checkLogModel-BMtruriG.js +1 -0
- package/dist/assets/{citation-BcvmjKS8.js → citation-BsSvaaer.js} +1 -1
- package/dist/assets/{codeContext-0UMRSGRr.js → codeContext-goNoLAIr.js} +1 -1
- package/dist/assets/compiler-runtime-qQQXpJgv.js +1 -0
- package/dist/assets/{compose-BJ9EfcQS.js → compose-D-OsDiU9.js} +1 -1
- package/dist/assets/confirmAdd-CZPBG1xe.js +1 -0
- package/dist/assets/{contentVault-DzTYWcbD.js → contentVault-xfUwSJ3i.js} +1 -1
- package/dist/assets/coreIcons-BzqW7Qiz.js +1 -0
- package/dist/assets/cpp-CJIxL8VH.js +1 -0
- package/dist/assets/cpp-Cts1PyIS.js +1 -0
- package/dist/assets/csv-DAqzYXUs.js +5 -0
- package/dist/assets/dash-composer-DeNWVwpU.css +1 -0
- package/dist/assets/dashboardEvents-D-wLCp1A.js +2 -0
- package/dist/assets/dashboards-CdzGklae.css +1 -0
- package/dist/assets/dataPending-lZUzUEo6.js +1 -0
- package/dist/assets/{diagrams-CaSfjT4I.js → diagrams-1DJMD4j-.js} +1 -1
- package/dist/assets/display-BrieMea1.js +1 -0
- package/dist/assets/dist-DRo0JOkC.js +14 -0
- package/dist/assets/{dist-DIKAXwpM.js → dist-kNHRtoqd.js} +21 -21
- package/dist/assets/emphasize-BqCIst-B.js +1 -0
- package/dist/assets/empty-BO1NC9qY.js +1 -0
- package/dist/assets/engine-2U7mvPIl.js +1 -0
- package/dist/assets/engine-BF8FqSbi.css +1 -0
- package/dist/assets/explode-qQ7Fzt6V.js +15 -0
- package/dist/assets/facts-BUGuVUIc.js +1 -0
- package/dist/assets/fit-CMu7prjb.js +1 -0
- package/dist/assets/fitText-DQ2omSN0.js +1 -0
- package/dist/assets/format-q0LwBjID.js +1 -0
- package/dist/assets/{format-hc2QOoIu.js → format-rPI6ZwwH.js} +1 -1
- package/dist/assets/friendlyAsk-BBdRZIar.js +1 -0
- package/dist/assets/{generate-8odaTyr4.js → generate-C9vOL1C2.js} +3 -3
- package/dist/assets/generateBeats-DpDpBcgV.js +1 -0
- package/dist/assets/{generateCourse-Cj_-vDWu.js → generateCourse-DU281tDE.js} +1 -1
- package/dist/assets/generateLive-_x2tWkBH.js +51 -0
- package/dist/assets/githubBrowser-BDiuD9dz.js +1 -0
- package/dist/assets/githubToken-Bwa7V9YT.js +1 -0
- package/dist/assets/history-D2EH2X6D.js +1 -0
- package/dist/assets/homeTarget-CsO8nY7z.js +1 -0
- package/dist/assets/http-Lar_UMKb.js +2 -0
- package/dist/assets/{icons-CHVz6kv_.js → icons-gLFQTv74.js} +1 -1
- package/dist/assets/incident-D3bmMmES.js +10 -0
- package/dist/assets/index-CfcUMOBf.js +22 -0
- package/dist/assets/index-D4FIsool.css +1 -0
- package/dist/assets/index.es-yrxxdux0.js +5 -0
- package/dist/assets/jspdf.es.min-Bbaa2Qun.js +79 -0
- package/dist/assets/jsx-runtime-DeHZSEgm.js +1 -0
- package/dist/assets/katex-CiJ_n4H9.js +257 -0
- package/dist/assets/keyVault-Aw5Y2PjT.js +1 -0
- package/dist/assets/kokoro-CdL8Kl48.js +1 -0
- package/dist/assets/layout-CEoNLr-w.js +1 -0
- package/dist/assets/{layout-CkO0Psde.js → layout-CHn3XWJd.js} +1 -1
- package/dist/assets/learn-CXstDWJf.js +1 -0
- package/dist/assets/ledger-Cv0LBflx.js +1 -0
- package/dist/assets/lib-B7OE1ZQQ.js +1 -0
- package/dist/assets/liveSchema-B4bQtO88.js +100 -0
- package/dist/assets/maplibre-gl-CrDadnl3.js +801 -0
- package/dist/assets/maplibre-gl-worker-DZ7nj4vd.js +11 -0
- package/dist/assets/{mastery-D7xYf5D7.js → mastery-CUfDeuqO.js} +2 -2
- package/dist/assets/{media-CsrUl279.js → media-BvwzACIX.js} +1 -1
- package/dist/assets/{model-BE0UHu1w.js → model-DxwoIVpo.js} +1 -1
- package/dist/assets/motion-BY_Egaxm.js +1 -0
- package/dist/assets/motion-DxHSlPN6.js +1 -0
- package/dist/assets/{neighborhoods-DFqKm9Xi.js → neighborhoods-D7QjURnE.js} +1 -1
- package/dist/assets/nextFrame-12y0UrAd.js +1 -0
- package/dist/assets/notes-CUeZ1cYu.js +1 -0
- package/dist/assets/{number-DXgzss0v.js → number-Bmf7DqLj.js} +1 -1
- package/dist/assets/officeDoc-GU6Cssjf.js +3 -0
- package/dist/assets/openWorld-BHTJM39n.js +1 -0
- package/dist/assets/openchemlib-Cz_MN0FG.js +23 -0
- package/dist/assets/{owners-FXDGInVq.js → owners-HRBX7JN_.js} +1 -1
- package/dist/assets/parseDiff-D8uBQ9mQ.js +2 -0
- package/dist/assets/pdf-CUAVYiYW.js +54 -0
- package/dist/assets/pdf.worker.min-CHFwMXne.mjs +29 -0
- package/dist/assets/pen-BAEq0JnM.js +24 -0
- package/dist/assets/{perfProbe-Xs39DqMh.js → perfProbe-3Ip5n0yx.js} +1 -1
- package/dist/assets/{php-CYrBA5iX.js → php-CQT4wx5i.js} +1 -1
- package/dist/assets/pin-BwWjjqmt.js +1 -0
- package/dist/assets/pin-D-4Zjiik.css +1 -0
- package/dist/assets/planTracker-BI9z_0gW.js +1 -0
- package/dist/assets/portal-BJzn-Tgn.js +1 -0
- package/dist/assets/{pptxgen.es-CveAizg8.js → pptxgen.es-zw8PIOkD.js} +11 -11
- package/dist/assets/predictions-CkVKHq-5.js +1 -0
- package/dist/assets/preload-helper-CiWYd9n-.js +1 -0
- package/dist/assets/preloadableLazy-MIX1ApBW.js +1 -0
- package/dist/assets/{prewarm-K5WcvrNh.js → prewarm-CheeUP2L.js} +1 -1
- package/dist/assets/prism.generated-BQkO5r6r.js +41 -0
- package/dist/assets/{prismExtract.worker-Cws9K1NG.js → prismExtract.worker-OxGWMXXN.js} +1 -1
- package/dist/assets/prismGround.worker-C9hyveb3.js +1 -0
- package/dist/assets/prismLayout.worker-CJa4orCT.js +1 -0
- package/dist/assets/providers-B2OCzEo1.js +1 -0
- package/dist/assets/purify.es-JEAr64Sr.js +3 -0
- package/dist/assets/{queue-J4h7E3uc.js → queue-Adae4IzW.js} +1 -1
- package/dist/assets/quietHours-DCMczU9R.js +1 -0
- package/dist/assets/quizResult-DB8yeqDr.js +1 -0
- package/dist/assets/react-BZJXY1be.js +1 -0
- package/dist/assets/ready-Ba6nk9O1.js +1 -0
- package/dist/assets/ready-DZY1bETr.js +1 -0
- package/dist/assets/receipts-ClyzFFGD.js +1 -0
- package/dist/assets/{reference-sJzyMiL4.js → reference-BjexflMu.js} +1 -1
- package/dist/assets/registry-4mMEt1Xy.css +1 -0
- package/dist/assets/registry-7poQfBaM.js +4 -0
- package/dist/assets/registry-9QjeHgKs.js +1 -0
- package/dist/assets/registry-B0GIHERt.js +1 -0
- package/dist/assets/{registry-DpaaVbmL.css → registry-B1KQ1VPZ.css} +1 -1
- package/dist/assets/registry-B5S3brjM.css +1 -0
- package/dist/assets/registry-BFbfXK-W.js +1 -0
- package/dist/assets/registry-BM9FDQxO.js +1 -0
- package/dist/assets/registry-BRbEINOV.js +1 -0
- package/dist/assets/registry-BSX3aFUw.js +1 -0
- package/dist/assets/registry-BZuT2Epw.css +1 -0
- package/dist/assets/registry-Bv1f5UU4.js +2 -0
- package/dist/assets/registry-C28gYnVq.js +1 -0
- package/dist/assets/registry-CPImC7mO.js +1 -0
- package/dist/assets/registry-CPiwQhAm.js +1 -0
- package/dist/assets/registry-CcOO8UZr.js +1 -0
- package/dist/assets/registry-ChQGee7C.js +1 -0
- package/dist/assets/registry-Ci65uThi.js +1 -0
- package/dist/assets/{registry-upbw6pyj.css → registry-CuVk7MAI.css} +1 -1
- package/dist/assets/registry-CvylL2BN.css +1 -0
- package/dist/assets/registry-D4Xdd7dO.js +1 -0
- package/dist/assets/registry-D8O0apUT.js +2 -0
- package/dist/assets/registry-DLyrLfe-.js +1 -0
- package/dist/assets/registry-DO4hGO5e.js +1 -0
- package/dist/assets/{registry-Xzq_Rpmm.css → registry-DScSjt8p.css} +1 -1
- package/dist/assets/registry-D_4_HlMg.js +1 -0
- package/dist/assets/registry-Daypk4uR.js +1 -0
- package/dist/assets/registry-Dd1lcXrO.js +2 -0
- package/dist/assets/{registry-DWcNVyI2.css → registry-DpMI23iE.css} +1 -1
- package/dist/assets/registry-DuP_q42N.js +1 -0
- package/dist/assets/registry-Vp8VuMV0.js +9 -0
- package/dist/assets/registry-WHd1PwU3.js +1 -0
- package/dist/assets/registry-Xl8mAnKq.js +1 -0
- package/dist/assets/registry-tkd3UhWn.css +1 -0
- package/dist/assets/{registry-ei6fIgBT.css → registry-twSIyxJQ.css} +1 -1
- package/dist/assets/registry-types-D3q_LrlV.js +1 -0
- package/dist/assets/registry-w4R6c89s.js +48 -0
- package/dist/assets/{relate-CEND9Qlk.js → relate-BXcg3Ioz.js} +1 -1
- package/dist/assets/replay-rSsGKjEc.js +1 -0
- package/dist/assets/rolldown-runtime-DkW27tQK.js +1 -0
- package/dist/assets/route-D4kd-D3B.js +1 -0
- package/dist/assets/{ruby-BhrksQMt.js → ruby-D_UtGFHI.js} +1 -1
- package/dist/assets/run-CkaYNX89.js +23 -0
- package/dist/assets/run-aj7robML.js +21 -0
- package/dist/assets/run-ndUTOxjM.js +21 -0
- package/dist/assets/safeImageUrl-BINWXOTz.js +1 -0
- package/dist/assets/screen-DFWKge3-.js +1 -0
- package/dist/assets/search-ZN7v_P5B.js +1 -0
- package/dist/assets/seed-DN4mRJp-.js +1 -0
- package/dist/assets/shapes-C5fjibEc.js +42 -0
- package/dist/assets/shard005-Dp5TM33O.js +1 -0
- package/dist/assets/shard006-DpJfkjmW.js +1 -0
- package/dist/assets/shard007-CIQN8OfZ.js +1 -0
- package/dist/assets/shard008-BFiyL7r6.js +1 -0
- package/dist/assets/shard009-0s30Tkk9.js +1 -0
- package/dist/assets/shard010-DPhgF5ck.js +1 -0
- package/dist/assets/shard011-C2jVsC25.js +1 -0
- package/dist/assets/shard012-DYtN5yzJ.js +1 -0
- package/dist/assets/shard013-1D6_Qy9C.js +1 -0
- package/dist/assets/shard014-D8s7GHnm.js +1 -0
- package/dist/assets/shard015-16W6KgnL.js +1 -0
- package/dist/assets/shard016-B4PpWmro.js +1 -0
- package/dist/assets/shard017-BO1sA5b3.js +1 -0
- package/dist/assets/shard018-D4gn8z25.js +1 -0
- package/dist/assets/shard019-vSbfaqRA.js +1 -0
- package/dist/assets/shard020-DwbHP8bp.js +1 -0
- package/dist/assets/{shard021-2FE-tze4.js → shard021-BhEyVVAL.js} +1 -1
- package/dist/assets/shard022-BdT7zFy3.js +1 -0
- package/dist/assets/shard023-Dga_NQcm.js +1 -0
- package/dist/assets/shard024-CXHofcxc.js +1 -0
- package/dist/assets/shard025-a4CQKYw1.js +1 -0
- package/dist/assets/shard026-0rhLKfDL.js +1 -0
- package/dist/assets/shard027-C9GMfOtn.js +1 -0
- package/dist/assets/shard028-D9__rPnw.js +1 -0
- package/dist/assets/shard029-BSdYKGgG.js +1 -0
- package/dist/assets/shard030-DceOU7pS.js +1 -0
- package/dist/assets/shard031-C6_p076r.js +1 -0
- package/dist/assets/shard032-Cah16sJi.js +1 -0
- package/dist/assets/shard033-D-iobGzc.js +1 -0
- package/dist/assets/shard034-DIyfCKl8.js +1 -0
- package/dist/assets/shard035-BHWs8v0a.js +1 -0
- package/dist/assets/shard036-AhOPHqzq.js +1 -0
- package/dist/assets/shard037-CuAGDOOu.js +1 -0
- package/dist/assets/shard038-CYdtnPjK.js +1 -0
- package/dist/assets/shard039-DgvXKOyi.js +1 -0
- package/dist/assets/shard040-DO012waT.js +1 -0
- package/dist/assets/shard041-BeUicA1R.js +1 -0
- package/dist/assets/shard042-D2zbq14A.js +1 -0
- package/dist/assets/shard043-BKoTEB-H.js +1 -0
- package/dist/assets/shard044-bmYKfH3A.js +1 -0
- package/dist/assets/shard045-i_R1olD9.js +1 -0
- package/dist/assets/shard046-CFk2L0GQ.js +1 -0
- package/dist/assets/shard047-pjHCnVaT.js +1 -0
- package/dist/assets/shard048-Cc7tGz6R.js +1 -0
- package/dist/assets/shard049-C9eoD-6Z.js +1 -0
- package/dist/assets/shard050-V3c_ZDrB.js +1 -0
- package/dist/assets/shard051-D1ISwZzf.js +1 -0
- package/dist/assets/shard052-Dy09xx3S.js +1 -0
- package/dist/assets/shard053-Bi4Z4cwW.js +1 -0
- package/dist/assets/shard054-BoC-LNYu.js +1 -0
- package/dist/assets/shard055-D2NJeMN1.js +1 -0
- package/dist/assets/shard056-sSFMbxXN.js +1 -0
- package/dist/assets/shard057-DhNK5nyZ.js +1 -0
- package/dist/assets/shard058-Du4SjxeD.js +1 -0
- package/dist/assets/shard059-fGiLnJzG.js +1 -0
- package/dist/assets/shard060-l84MDY2t.js +1 -0
- package/dist/assets/shard061-B3aIa7Aa.js +1 -0
- package/dist/assets/{shard061-C9A8iNiq.js → shard062-BJ8OX6CJ.js} +1 -1
- package/dist/assets/shard063-CMo-7Qit.js +1 -0
- package/dist/assets/shard064-B0EEOnfG.js +1 -0
- package/dist/assets/shard065-D-StlUHp.js +1 -0
- package/dist/assets/share-kW3pZ027.js +1 -0
- package/dist/assets/shikiHighlight-BwX78OP8.js +153 -0
- package/dist/assets/speed-K5_Ebj-8.js +1 -0
- package/dist/assets/spokenText-C88IQJ0M.js +1 -0
- package/dist/assets/spreadLabels-CQ8hufvK.js +1 -0
- package/dist/assets/src-DG1n-LFe.js +1 -0
- package/dist/assets/store-B39HvB_l.js +1 -0
- package/dist/assets/store-BWLbFXiY.js +1 -0
- package/dist/assets/{store-BMRQiV1z.js → store-BfHRbVKz.js} +1 -1
- package/dist/assets/store-D-f8ZuaK.js +1 -0
- package/dist/assets/store-D2IJF4SA.js +0 -0
- package/dist/assets/store-DpObYU1u.js +1 -0
- package/dist/assets/store-gohr8YVT.js +1 -0
- package/dist/assets/{streamParse-DRgMHWye.js → streamParse-B-Gjwa9T.js} +1 -1
- package/dist/assets/svgLabel-BQMDdcT2.js +1 -0
- package/dist/assets/swift-CyEgAFGc.js +1 -0
- package/dist/assets/theme-7IrMJ70_.js +1 -0
- package/dist/assets/threads-Cu2t3070.js +1 -0
- package/dist/assets/tiles-CBiVVjtT.css +1 -0
- package/dist/assets/tiles-pdNi6MGe.js +1 -0
- package/dist/assets/types-C42I77wh.js +1 -0
- package/dist/assets/types-CaO6xOn5.js +1 -0
- package/dist/assets/useDashboardLoop-B_YA5jLs.js +5 -0
- package/dist/assets/useDashboards-GafZIADI.js +1 -0
- package/dist/assets/{useFocusTrap-DbfG6zbM.js → useFocusTrap-DBtkeyRy.js} +1 -1
- package/dist/assets/useInView-CXTOAEV3.js +1 -0
- package/dist/assets/useLedger-1WVXef68.js +1 -0
- package/dist/assets/useLiveConfig-DWz7BRdk.js +1 -0
- package/dist/assets/useSpatialCanvas-CfmZOXXP.js +1 -0
- package/dist/assets/useSpotlightWalk-DxlxBezO.js +1 -0
- package/dist/assets/useSrsCards-C27o39fF.js +1 -0
- package/dist/assets/useStudy-CFIuakaM.js +1 -0
- package/dist/assets/{useTimeout-BRYvu2jQ.js → useTimeout-Cm4yzted.js} +1 -1
- package/dist/assets/{useValidatedImage-D2fhA198.js → useValidatedImage-BQi2c66o.js} +1 -1
- package/dist/assets/useZoomGesture-CN0p0lHL.js +1 -0
- package/dist/assets/validate-CnG23_8J.js +1 -0
- package/dist/assets/verbatim-DBTj9sPD.js +1 -0
- package/dist/assets/walkSync-AAocUygp.js +1 -0
- package/dist/assets/worker-D7eK-Ya8.js +2 -0
- package/dist/demo-assets/CREDITS.md +75 -24
- package/dist/demo-assets/pdf/cfd-primer.pdf +0 -0
- package/dist/demo-assets/video/azores-film.webm +0 -0
- package/dist/fonts/LICENSE.txt +32 -28
- package/dist/fonts/OFL-1.1.txt +81 -0
- package/dist/fonts/PROVENANCE.md +38 -0
- package/dist/index.html +24 -17
- package/dist/legal/DISCLAIMER.md +4 -1
- package/dist/legal/PRIVACY.md +14 -8
- package/dist/legal/TERMS.md +11 -1
- package/dist/legal/THIRD-PARTY.txt +25248 -621
- package/dist/pdfjs/LICENSE_JBIG2 +196 -0
- package/dist/pdfjs/LICENSE_OPENJPEG +39 -0
- package/dist/pdfjs/LICENSE_PDFJS_JBIG2 +13 -0
- package/dist/pdfjs/LICENSE_PDFJS_OPENJPEG +22 -0
- package/dist/pdfjs/LICENSE_PDFJS_QCMS +22 -0
- package/dist/pdfjs/LICENSE_QCMS +21 -0
- package/dist/pdfjs/jbig2.wasm +0 -0
- package/dist/pdfjs/openjpeg.wasm +0 -0
- package/dist/pdfjs/qcms_bg.wasm +0 -0
- package/docker-compose.yml +40 -7
- package/docs/media/answer-ink.jpg +0 -0
- package/docs/media/canvas-view.jpg +0 -0
- package/docs/media/deck-export.jpg +0 -0
- package/docs/media/deep-zoom.jpg +0 -0
- package/docs/media/doc-export.jpg +0 -0
- package/docs/media/doc-prism.jpg +0 -0
- package/docs/media/repo-course.jpg +0 -0
- package/docs/media/think-map.jpg +0 -0
- package/docs/media/trip-plan.jpg +0 -0
- package/docs/media/voice-scrub.jpg +0 -0
- package/package.json +72 -60
- package/voice/start-whisper.sh +28 -0
- package/voice/whisper.Dockerfile +44 -0
- package/dist/assets/AppCommandPalette-B3E1gTd4.js +0 -1
- package/dist/assets/AtlasView-B8b67dk0.js +0 -1
- package/dist/assets/BlockEmpty-DQkdduUE.js +0 -1
- package/dist/assets/BriefingPlayer-CRKTlKa3.js +0 -1
- package/dist/assets/CanvasSkeleton-cQ6KF-6z.js +0 -2
- package/dist/assets/CardEditor-DzJXb0G7.js +0 -1
- package/dist/assets/CheckLogRail-C6nouD1Y.js +0 -1
- package/dist/assets/CheckLogRail-F4AlgAcc.css +0 -1
- package/dist/assets/CommandPalette-CSvgbXxg.js +0 -1
- package/dist/assets/CourseLessonReader-1KDKwxIj.js +0 -2
- package/dist/assets/CourseRail-BijCpApU.js +0 -1
- package/dist/assets/CoursesApp-BWkdYL07.js +0 -2
- package/dist/assets/CrossExamPanel-Cn7b5y7B.js +0 -1
- package/dist/assets/DashPresent-B025i7iJ.js +0 -1
- package/dist/assets/DashboardDetail-CZLnxgp0.js +0 -2
- package/dist/assets/DashboardLoopRuntime-7MpMUcMg.js +0 -1
- package/dist/assets/DashboardOverview-COyleu7v.js +0 -1
- package/dist/assets/DashboardSettings-DUfUqbsp.js +0 -1
- package/dist/assets/DashboardsApp-6xMz2qCP.js +0 -2
- package/dist/assets/DelegatePanel-D4OrMa2D.js +0 -33
- package/dist/assets/DemoGallery-Bt92vKqc.js +0 -1
- package/dist/assets/DropSelect-Q310fTbf.js +0 -1
- package/dist/assets/ExportModal-D0zXlC8w.js +0 -2
- package/dist/assets/ExtractionPreview-0SZYynDs.js +0 -18
- package/dist/assets/FeatureUseNotice-CoK5HkbR.js +0 -1
- package/dist/assets/FlagshipCTA-D845jkdt.js +0 -1
- package/dist/assets/FlagshipCommandPalette-DHMnyG7j.js +0 -1
- package/dist/assets/FlagshipShowcase-BuR3PZvU.js +0 -1
- package/dist/assets/FlashcardsApp-BzWb4cRP.js +0 -1
- package/dist/assets/ForecastPanel-lTnux0EB.js +0 -1
- package/dist/assets/GalleryApp-D0NGZ1_t.js +0 -1
- package/dist/assets/LegalApp-DXDomKFv.js +0 -1
- package/dist/assets/LegalPageShell-BG5UUk-9.js +0 -1
- package/dist/assets/LegalPageShell-C_HottbD.css +0 -1
- package/dist/assets/LeverPanel-CvYnTLjh.js +0 -1
- package/dist/assets/Library-Cl1gE9Qg.js +0 -1
- package/dist/assets/LibraryOverlay-CX4cJLqD.js +0 -1
- package/dist/assets/LiveApp-CDckMWYX.js +0 -61
- package/dist/assets/LiveApp-Dj_6EQuL.css +0 -1
- package/dist/assets/LiveSettings-DgfIXanM.js +0 -6
- package/dist/assets/MindMapViewerDrawer-ClU9wgSH.js +0 -1
- package/dist/assets/MindShape-DjHtMW_5.css +0 -1
- package/dist/assets/MindShape-yF19n9qq.js +0 -1
- package/dist/assets/PinToDashboard-CpIDAcIU.js +0 -1
- package/dist/assets/PlanReview-CPcqOxjp.js +0 -1
- package/dist/assets/Presence-CHGZ1JRp.js +0 -1
- package/dist/assets/PresentationDeck-CrtiWjiM.js +0 -1
- package/dist/assets/PrismApp-D7RbekoX.js +0 -2
- package/dist/assets/PrismAskController-D6_7Epdb.js +0 -37
- package/dist/assets/PrismBriefingPlayer-Dq5_KRU3.js +0 -2
- package/dist/assets/PrismOverlay-CduGpA8D.js +0 -131
- package/dist/assets/Quiz-CUwtekfu.js +0 -1
- package/dist/assets/Recap-BPg2xEPo.js +0 -1
- package/dist/assets/ReelJelly-LWeMsFpj.js +0 -1
- package/dist/assets/ReplayCard-C3dGQfxG.js +0 -2
- package/dist/assets/ReplayOverlay-C9W603B5.js +0 -1
- package/dist/assets/RewindOverlay-BIWmxQlx.js +0 -1
- package/dist/assets/RippleApp-C9-KFvkn.js +0 -2
- package/dist/assets/RippleAskController-DEKz-6Vn.js +0 -34
- package/dist/assets/RippleOverlay-CfXvnUHE.js +0 -6
- package/dist/assets/SeeDontRead-DrG1qBxJ.js +0 -1
- package/dist/assets/ShareModal-eJ6sdMpf.js +0 -32
- package/dist/assets/ShipCascade-BP8qL0yM.js +0 -1
- package/dist/assets/ShipCourse-BoqW58VU.js +0 -1
- package/dist/assets/ShipHotspots-_9XPhZg2.js +0 -1
- package/dist/assets/ShipMigration-BdkaiJ9D.js +0 -1
- package/dist/assets/ShipOnboarding-CblWatXR.js +0 -1
- package/dist/assets/ShipRead-BBn7xkOF.js +0 -1
- package/dist/assets/ShipRollout-i5BY3YnP.js +0 -1
- package/dist/assets/ShipSuggestions-liytLgC-.js +0 -1
- package/dist/assets/ShipWorkspace-C3VQwGn1.js +0 -2
- package/dist/assets/SignatureLoop-Ba7plTb5.js +0 -1
- package/dist/assets/SrsReview-BoaYb6XN.js +0 -1
- package/dist/assets/SrsReview-DmGdGxT0.css +0 -1
- package/dist/assets/SynthesisApp-Ch0tWRBS.js +0 -2
- package/dist/assets/SynthesisOverlay-DMZndCzV.js +0 -66
- package/dist/assets/TopicCanvas-DX0Z1ZHv.js +0 -2
- package/dist/assets/TourPrism-6fWPMU4Z.js +0 -1
- package/dist/assets/TrackerTile-BboQpBGy.js +0 -2
- package/dist/assets/TwoSurfaces-Cabk1rES.js +0 -1
- package/dist/assets/UnderstoodPanel-B6jfiKx1.js +0 -1
- package/dist/assets/WhyMachineOverlay-BRNibJSf.js +0 -1
- package/dist/assets/WowFeatures-C7f4qzIf.js +0 -1
- package/dist/assets/ZoomDeck-BtlVyhwv.js +0 -1
- package/dist/assets/__vite-browser-external-BufR4LQa.js +0 -1
- package/dist/assets/alternateFinishes-CVUX4x0C.js +0 -494
- package/dist/assets/annotationAuto-BjWqgseH.js +0 -1
- package/dist/assets/annotationReel-B5A2RZkx.js +0 -1
- package/dist/assets/annotations-D2K9A5GB.js +0 -1
- package/dist/assets/backup-d46KwktS.js +0 -1
- package/dist/assets/blockLabel-DAqaHKy3.js +0 -1
- package/dist/assets/cache-BumECILO.js +0 -1
- package/dist/assets/canvas-BuMP6u6i.js +0 -1
- package/dist/assets/catalog-Bv0dWU_C.js +0 -1
- package/dist/assets/chapters-Cbe53c3W.js +0 -1
- package/dist/assets/charts2-tyUiQPff.js +0 -1
- package/dist/assets/chunk-BVpWp9h4.js +0 -1
- package/dist/assets/confirmAdd-CWWtX1VN.js +0 -1
- package/dist/assets/cpp-BGdv8dzs.js +0 -1
- package/dist/assets/cpp-CNAAXZl-.js +0 -1
- package/dist/assets/dashboardEvents-Be4sftHN.js +0 -2
- package/dist/assets/dashboards-rcWxdoXI.css +0 -1
- package/dist/assets/dist-xRGLOZwv.js +0 -14
- package/dist/assets/explode-WBykfhqW.js +0 -13
- package/dist/assets/facts-BBTt3ImG.js +0 -1
- package/dist/assets/fit-CuHWhwsj.js +0 -1
- package/dist/assets/fitText-CDFmCQzl.js +0 -1
- package/dist/assets/format-DlZTyeMy.js +0 -1
- package/dist/assets/generateBeats-b64CL54v.js +0 -1
- package/dist/assets/generateLive-CMbGT3eM.js +0 -52
- package/dist/assets/githubBrowser-DywfDeYx.js +0 -1
- package/dist/assets/githubToken-DtcLYqwm.js +0 -11
- package/dist/assets/homeTarget-BcZYH3DY.js +0 -1
- package/dist/assets/http-CJCtjYpA.js +0 -2
- package/dist/assets/index-CepQEz75.css +0 -1
- package/dist/assets/index-Dbr1j8Fe.js +0 -22
- package/dist/assets/index.es-CRLiWwiA.js +0 -5
- package/dist/assets/jspdf.es.min-ydC1TxUW.js +0 -79
- package/dist/assets/jsx-runtime-DaSxXjOY.js +0 -1
- package/dist/assets/katex-BMCG0xok.js +0 -257
- package/dist/assets/keyVault-DEsNh9FR.js +0 -1
- package/dist/assets/kokoro-DsmNzulR.js +0 -1
- package/dist/assets/layout-BFQOzXtG.js +0 -1
- package/dist/assets/leaflet-src-C_xhOQY7.js +0 -1
- package/dist/assets/learn-DVfqN-nf.js +0 -1
- package/dist/assets/lib-B6qSkBPa.js +0 -1
- package/dist/assets/liveSchema-B1MGdSkK.js +0 -99
- package/dist/assets/motion-luJxBPnj.js +0 -1
- package/dist/assets/notes-3WQ6b0Mi.js +0 -1
- package/dist/assets/officeDoc-B6nEhNp4.js +0 -3
- package/dist/assets/openchemlib-nMLMmg26.js +0 -23
- package/dist/assets/pdf-RyoPCIGN.js +0 -11
- package/dist/assets/pdf.worker.min-yatZIOMy.mjs +0 -21
- package/dist/assets/pin-Bya3BL_a.css +0 -1
- package/dist/assets/pin-Cj-LMfpK.js +0 -1
- package/dist/assets/planTracker-7AMCQPNx.js +0 -1
- package/dist/assets/portal-zyqZwnb1.js +0 -1
- package/dist/assets/predictions-CYS7Vo39.js +0 -1
- package/dist/assets/prism.generated-BhbHDHR6.js +0 -41
- package/dist/assets/prismGround.worker-CIvKqxm2.js +0 -1
- package/dist/assets/prismLayout.worker-CZO2CY7B.js +0 -1
- package/dist/assets/providers-wzm7E8Pa.js +0 -1
- package/dist/assets/purify.es-adlwq8Pz.js +0 -3
- package/dist/assets/quietHours-BklvMqsV.js +0 -1
- package/dist/assets/react-BQSORdFI.js +0 -1
- package/dist/assets/registry-1h9idbfk.js +0 -2
- package/dist/assets/registry-2zthbrHC.js +0 -1
- package/dist/assets/registry-4O5l9cd5.js +0 -1
- package/dist/assets/registry-5a-E7vEN.css +0 -1
- package/dist/assets/registry-BRB85vr4.js +0 -2
- package/dist/assets/registry-BVHiKEwE.css +0 -1
- package/dist/assets/registry-BcZXBr3y.css +0 -1
- package/dist/assets/registry-BdMZ_4cm.js +0 -2
- package/dist/assets/registry-Bnp_yh8G.js +0 -4
- package/dist/assets/registry-C1IrZBk8.js +0 -1
- package/dist/assets/registry-C5DK98Hl.js +0 -1
- package/dist/assets/registry-CK0-re_Q.js +0 -49
- package/dist/assets/registry-COrl_Heq.js +0 -1
- package/dist/assets/registry-CQUQlrSx.js +0 -1
- package/dist/assets/registry-CXa3qXl3.js +0 -1
- package/dist/assets/registry-C_baBbqq.js +0 -5
- package/dist/assets/registry-CjY5POtx.js +0 -1
- package/dist/assets/registry-CoBAqOlY.js +0 -1
- package/dist/assets/registry-D5oMqeSa.js +0 -1
- package/dist/assets/registry-DJj-o3MQ.js +0 -1
- package/dist/assets/registry-DVzLacl_.css +0 -1
- package/dist/assets/registry-DfCCnIfu.js +0 -1
- package/dist/assets/registry-DfgFkD3J.js +0 -1
- package/dist/assets/registry-Dhlx1mF4.js +0 -1
- package/dist/assets/registry-Dkc7hN5T.js +0 -1
- package/dist/assets/registry-DmQlNN3y.js +0 -1
- package/dist/assets/registry-DnEh7nbX.js +0 -1
- package/dist/assets/registry-VD94nLXO.js +0 -1
- package/dist/assets/registry-aIH-Im5Y.css +0 -1
- package/dist/assets/registry-mFD4P5dI.js +0 -1
- package/dist/assets/registry-sDzDmht4.js +0 -1
- package/dist/assets/registry-types-DMuK0vJ6.js +0 -1
- package/dist/assets/run-BYP2YlZT.js +0 -23
- package/dist/assets/run-DSVvshaB.js +0 -21
- package/dist/assets/run-Dc2ZJz6n.js +0 -21
- package/dist/assets/safeImageUrl-CUkucDUu.js +0 -1
- package/dist/assets/screen-DLR7p_yP.js +0 -1
- package/dist/assets/search-Be63DJkp.js +0 -1
- package/dist/assets/shapes-Cw7tCHIp.js +0 -1
- package/dist/assets/shard005-DLVkh9IH.js +0 -1
- package/dist/assets/shard006-B6efKHov.js +0 -1
- package/dist/assets/shard007-AFdZLe38.js +0 -1
- package/dist/assets/shard008-LbSBzwRx.js +0 -1
- package/dist/assets/shard009-D_6-SUDb.js +0 -1
- package/dist/assets/shard010-DbOj-uZW.js +0 -1
- package/dist/assets/shard011-BYSz7EEW.js +0 -1
- package/dist/assets/shard012-B5Ypj7OV.js +0 -1
- package/dist/assets/shard013-BtsliNIe.js +0 -1
- package/dist/assets/shard014-15sjmk68.js +0 -1
- package/dist/assets/shard015-nnXrqru_.js +0 -1
- package/dist/assets/shard016-BayXFE13.js +0 -1
- package/dist/assets/shard017-Cy4cGexs.js +0 -1
- package/dist/assets/shard018-aO-BYJ8H.js +0 -1
- package/dist/assets/shard019-gxaTeA3I.js +0 -1
- package/dist/assets/shard020-BibJdMI0.js +0 -1
- package/dist/assets/shard022-IXiyG-JK.js +0 -1
- package/dist/assets/shard023-314F6NJS.js +0 -1
- package/dist/assets/shard024-cN5rpQ_X.js +0 -1
- package/dist/assets/shard025-KKTaXOGE.js +0 -1
- package/dist/assets/shard026-C2Dkd1t6.js +0 -1
- package/dist/assets/shard027-Xy-8x9As.js +0 -1
- package/dist/assets/shard028-Bul-klUj.js +0 -1
- package/dist/assets/shard029-BbRSUcUZ.js +0 -1
- package/dist/assets/shard030-GYllsFVC.js +0 -1
- package/dist/assets/shard031-DMigeiyn.js +0 -1
- package/dist/assets/shard032-CcvmzK0l.js +0 -1
- package/dist/assets/shard033-11AU702M.js +0 -1
- package/dist/assets/shard034-Bx3urxjM.js +0 -1
- package/dist/assets/shard035-DBdEeyCt.js +0 -1
- package/dist/assets/shard036-vYgoRBqS.js +0 -1
- package/dist/assets/shard037-DP4MMw91.js +0 -1
- package/dist/assets/shard038-ffxsv7d6.js +0 -1
- package/dist/assets/shard039-C1JHHNp9.js +0 -1
- package/dist/assets/shard040-JbVvCSO_.js +0 -1
- package/dist/assets/shard041-5L_eFwGx.js +0 -1
- package/dist/assets/shard042-C9nsGL79.js +0 -1
- package/dist/assets/shard043-Dx_9HSKI.js +0 -1
- package/dist/assets/shard044-B3QQNC4A.js +0 -1
- package/dist/assets/shard045-B7z0WHO6.js +0 -1
- package/dist/assets/shard046-D1yDablJ.js +0 -1
- package/dist/assets/shard047-DJi3AgeT.js +0 -1
- package/dist/assets/shard048-D_2ipfUr.js +0 -1
- package/dist/assets/shard049-1aGgWZdd.js +0 -1
- package/dist/assets/shard050-Bjwa0Og4.js +0 -1
- package/dist/assets/shard051-Cx_GAk3v.js +0 -1
- package/dist/assets/shard052-LaeOD3V5.js +0 -1
- package/dist/assets/shard053-D-da7Foj.js +0 -1
- package/dist/assets/shard054-CM8eSRQk.js +0 -1
- package/dist/assets/shard055-QRpDl4Vs.js +0 -1
- package/dist/assets/shard056-DkY7CQm3.js +0 -1
- package/dist/assets/shard057-BVCgf7o0.js +0 -1
- package/dist/assets/shard058-93aGtdrX.js +0 -1
- package/dist/assets/shard059-rJE9X1_I.js +0 -1
- package/dist/assets/shard060-Lu_hfl1r.js +0 -1
- package/dist/assets/shard062-BBIpEYZO.js +0 -1
- package/dist/assets/shard063-C_uen3Ub.js +0 -1
- package/dist/assets/shard064-DAHUsHST.js +0 -1
- package/dist/assets/share-QHGHNDhQ.js +0 -1
- package/dist/assets/shikiHighlight-SCFIB43b.js +0 -153
- package/dist/assets/speed-DwPw9KSv.js +0 -1
- package/dist/assets/spokenText-D4zPX9JY.js +0 -1
- package/dist/assets/src-B-t8Mww-.js +0 -2
- package/dist/assets/store-DXmC_fP2.js +0 -0
- package/dist/assets/store-Dn23_Ymr.js +0 -1
- package/dist/assets/store-DoJn3lBF.js +0 -1
- package/dist/assets/store-DrBDvqXF.js +0 -1
- package/dist/assets/swift-DonLKvLd.js +0 -1
- package/dist/assets/threads-CkMgrSDP.js +0 -1
- package/dist/assets/useDashboardLoop-C8Mcbcto.js +0 -5
- package/dist/assets/useLiveConfig-BW1WkpTc.js +0 -1
- package/dist/assets/useSpatialCanvas-C5TNlpeK.js +0 -1
- package/dist/assets/useSpotlightWalk-dA3IdI-1.js +0 -1
- package/dist/assets/useSrsCards-C7Xni9C0.js +0 -1
- package/dist/assets/useStudy-DHRIx8p-.js +0 -1
- package/dist/assets/useZoomGesture-BsPXvLw2.js +0 -1
- package/dist/assets/verbatim-CBMzUDlf.js +0 -1
- package/dist/assets/worker-BbLKfGzm.js +0 -2
- package/dist/demo-assets/video/azores-film.mp4 +0 -0
- /package/dist/assets/{shard065-C2edvdvh.js → shard066-C2edvdvh.js} +0 -0
- /package/dist/assets/{shard066-DFcuVhZm.js → shard067-DFcuVhZm.js} +0 -0
- /package/dist/assets/{shard067-BN8DM8JZ.js → shard068-BN8DM8JZ.js} +0 -0
- /package/dist/assets/{shard068-i464K77p.js → shard069-i464K77p.js} +0 -0
- /package/dist/assets/{shard069-Dm9m2a5U.js → shard070-Dm9m2a5U.js} +0 -0
- /package/dist/assets/{shard070-BPVvR8GH.js → shard071-BPVvR8GH.js} +0 -0
- /package/dist/assets/{shard071-Bal_0d9L.js → shard072-Bal_0d9L.js} +0 -0
- /package/dist/assets/{shard072-CBQu62kt.js → shard073-CBQu62kt.js} +0 -0
- /package/dist/assets/{shard073-D5BRae0w.js → shard074-D5BRae0w.js} +0 -0
- /package/dist/assets/{shard074-DtFvcBnZ.js → shard075-DtFvcBnZ.js} +0 -0
- /package/dist/assets/{queue-DHeyJ32F.css → templates-DHeyJ32F.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./chunk-BVpWp9h4.js";import{n as t}from"./http-CJCtjYpA.js";import{n}from"./githubToken-DtcLYqwm.js";var r=e({compareRefs:()=>x,fetchCodeowners:()=>T,fetchFileCommits:()=>E,fetchFileContents:()=>C,fetchPrDiff:()=>b,fetchRepoTree:()=>S,searchCallers:()=>w}),i=25e3,a=2e5,o=24e3,s=4e3,c=`https://api.github.com`,l=`application/vnd.github+json`,u=`application/vnd.github.v3.diff`,d=/^[A-Za-z0-9._-]+$/,f=`Couldn’t reach GitHub — check your connection (a VPN or network blocker can also break it), then try again.`,p=`Add the repo as owner/name, or paste a full GitHub link.`,m=(e,t)=>e.length>t?e.slice(0,t):e;function h(e){let[t,n]=(e??``).trim().split(`/`);return!t||!n||!d.test(t)||!d.test(n)?null:{owner:t,name:n,slug:`${t}/${n}`}}async function g(e){let t=await n();return t?{accept:e,authorization:`Bearer ${t}`}:{accept:e}}function _(e,t,n){return e.status===404?t&&(n?`${t} — if it’s private, make sure your token grants access to this repo (fine-grained tokens only see the repos you select).`:`${t} — if it’s private, add a GitHub token below.`):e.status===401?`That GitHub token was rejected — check it, or remove it to read public repos.`:(e.status===403||e.status===429)&&e.headers.get(`x-ratelimit-remaining`)===`0`?`GitHub rate-limited this device — add a token below for a much higher limit.`:e.status===403?`GitHub blocked that request — a private repo needs a token that can read it.`:`GitHub couldn’t serve that request — check the link and try again.`}async function v(e,n,r,a){let o,s=await g(n),c=`authorization`in s;try{o=await t(e,{method:`GET`,headers:s},i,a)}catch{return{ok:!1,detail:f}}return o.ok?{ok:!0,res:o}:{ok:!1,detail:_(o,r,c)}}function y(e){let t=atob(e.replace(/\s/g,``)),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return new TextDecoder().decode(n)}async function b(e,t,n){let r=h(t);if(!r)return{ok:!1,detail:p};let i=e.trim();if(!/^\d+$/.test(i))return{ok:!1,detail:`A pull-request number looks like 4821.`};let o=`Couldn’t find PR #${i} in ${r.slug}`,s=`${c}/repos/${r.owner}/${r.name}/pulls/${i}`,d=await v(s,l,o,n);if(!d.ok)return{ok:!1,detail:d.detail};let f=await d.res.json().catch(()=>({})),g=typeof f.title==`string`?f.title:``,_=await v(s,u,o,n);if(!_.ok)return{ok:!1,detail:_.detail};let y=m(await _.res.text(),a);return y.trim()?{ok:!0,detail:`Loaded PR #${i}${g?`: ${g}`:``} from ${r.slug}`,diff:y,label:`${r.slug} #${i}`,title:g}:{ok:!1,detail:`PR #${i} has no diff to analyze.`}}async function x(e,t,n,r){let i=h(n);if(!i)return{ok:!1,detail:p};let o=e.trim(),s=t.trim();if(!o||!s)return{ok:!1,detail:`Enter a base and a head ref (branch, tag, or SHA).`};let l=`${encodeURIComponent(o)}...${encodeURIComponent(s)}`,d=`Couldn’t compare ${o}...${s} in ${i.slug} — check the refs`,f=await v(`${c}/repos/${i.owner}/${i.name}/compare/${l}`,u,d,r);if(!f.ok)return{ok:!1,detail:f.detail};let g=m(await f.res.text(),a);return g.trim()?{ok:!0,detail:`Compared ${o}...${s} in ${i.slug}`,diff:g,label:`${i.slug} ${o}...${s}`}:{ok:!1,detail:`No changes between ${o} and ${s}.`}}async function S(e,t,n){let r=h(t);if(!r)return{ok:!1,detail:p};let i=(e??``).trim()||`HEAD`,a=`Couldn’t find ${r.slug} @ ${i}`,o=await v(`${c}/repos/${r.owner}/${r.name}/commits/${encodeURIComponent(i)}`,l,a,n);if(!o.ok)return{ok:!1,detail:o.detail};let u=await o.res.json().catch(()=>({})),d=typeof u.sha==`string`?u.sha:i,f=typeof u.commit?.tree?.sha==`string`?u.commit.tree.sha:d,m=await v(`${c}/repos/${r.owner}/${r.name}/git/trees/${encodeURIComponent(f)}?recursive=1`,l,a,n);if(!m.ok)return{ok:!1,detail:m.detail};let g=await m.res.json().catch(()=>({})),_=(Array.isArray(g.tree)?g.tree:[]).filter(e=>e&&e.type===`blob`&&typeof e.path==`string`).map(e=>e.path).slice(0,s);return _.length===0?{ok:!1,detail:`No files found in ${r.slug} @ ${i}.`}:{ok:!0,detail:`Loaded ${_.length} files from ${r.slug}`,paths:_,label:r.slug,truncated:!!g.truncated||_.length>=s,sha:d}}async function C(e,t,n){let r=h(n),i=(e??``).trim();if(!r||!i||i.includes(`..`))return{ok:!1};let a=i.split(`/`).map(encodeURIComponent).join(`/`),s=(t??``).trim(),u=await v(`${c}/repos/${r.owner}/${r.name}/contents/${a}${s?`?ref=${encodeURIComponent(s)}`:``}`,l,``);if(!u.ok)return{ok:!1};let d=await u.res.json().catch(()=>({}));if(d.type!==`file`||typeof d.content!=`string`)return{ok:!1};try{return{ok:!0,content:m(y(d.content),o)}}catch{return{ok:!1}}}async function w(e,t){let n=h(t),r=(e??``).trim();if(!n||!/^[A-Za-z_$][\w$]*$/.test(r))return{ok:!1,files:[]};let i=await v(`${c}/search/code?q=${encodeURIComponent(`${r} repo:${n.slug}`)}&per_page=20`,l,``);if(!i.ok)return{ok:!1,files:[]};let a=await i.res.json().catch(()=>({}));return{ok:!0,files:(Array.isArray(a.items)?a.items:[]).map(e=>e?.path).filter(e=>typeof e==`string`).slice(0,20)}}async function T(e,t){for(let n of[`.github/CODEOWNERS`,`CODEOWNERS`,`docs/CODEOWNERS`]){let r=await C(n,t,e);if(r.ok&&r.content)return r.content}return``}async function E(e,t,n){let r=h(t),i=(e??``).trim();if(!r||!i||i.includes(`..`))return[];let a=new URLSearchParams({path:i,per_page:`10`}),o=(n??``).trim();o&&a.set(`sha`,o);let s=await v(`${c}/repos/${r.owner}/${r.name}/commits?${a.toString()}`,l,``);if(!s.ok)return[];let u=await s.res.json().catch(()=>[]),d=new Map;if(Array.isArray(u))for(let e of u){let t=typeof e?.author?.login==`string`&&e.author.login||typeof e?.commit?.author?.name==`string`&&e.commit.author.name||``;t&&d.set(t,(d.get(t)??0)+1)}return[...d.entries()].map(([e,t])=>({login:e,count:t})).sort((e,t)=>t.count-e.count).slice(0,6)}export{w as a,r as i,E as n,C as r,T as t};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{r as e,t}from"./keyVault-DEsNh9FR.js";var n=60;function r(e){return e.split(`/`).pop()||e}function i(e){let t=e.lastIndexOf(`/`);return t>0?e.slice(0,t):`(root)`}var a=/(?:export\s+(?:default\s+)?)?(?:async\s+)?(?:function|class|interface|type|enum|struct|trait|impl|const|let|var|def|fn|func)\s+([A-Za-z_$][\w$]*)/g,o=/\b([A-Za-z_$][\w$]*)\s*\(/g,s=new Set(`if.for.while.switch.catch.return.function.await.typeof.super.const.let.var.new.class.import.export.require.console.String.Number.Boolean.Array.Object.Promise.Map.Set.Math.JSON`.split(`.`));function c(e,t){let n=[],r;for(e.lastIndex=0;(r=e.exec(t))!==null;)r[1]&&n.push(r[1]);return n}function l(e,t){let n=[];for(let r of e.hunks)for(let e of r.lines)e.t===t&&n.push(e.c);return n}function u(e){let t=new Set,n=new Set;for(let n of l(e,`add`))for(let e of c(a,n))t.add(e);for(let t of l(e,`del`))for(let e of c(a,t))n.add(e);return{added:t,removed:n}}function d(e){let t=new Map;for(let n of l(e,`del`))for(let e of c(o,n))s.has(e)||t.set(e,n);for(let n of l(e,`add`))for(let e of c(o,n)){if(s.has(e))continue;let r=t.get(e);if(r&&r.replace(/\s/g,``)!==n.replace(/\s/g,``))return e}return null}function f(e){return/\.(test|spec)\.[a-z]+$|(^|\/)(tests?|__tests__|__mocks__|e2e)\//.test(e.toLowerCase())}function p(e){return/\.sql$|(^|\/)migrations?\//.test(e.toLowerCase())}function m(e){return/\.(json|ya?ml|toml|ini|env|lock)$|(^|\/)(config|\.config)/.test(e.toLowerCase())}function h(e){return/(^|\/)(package\.json|cargo\.toml|pyproject\.toml|go\.mod|gemfile|build\.gradle)$/i.test(e.toLowerCase())}function g(e){return/(^|\/)(pnpm-lock\.ya?ml|package-lock\.json|yarn\.lock|cargo\.lock|poetry\.lock|go\.sum|gemfile\.lock)$/i.test(e.toLowerCase())}function _(e){let t=/["']?([@\w./-]+)["']?\s*[:=]\s*["']?[\^~>=<]*\s*([0-9][\w.+-]*)/,n=new Map;for(let r of l(e,`del`)){let e=t.exec(r);e&&e[1]&&e[2]&&n.set(e[1],e[2])}let r=[];for(let i of l(e,`add`)){let e=t.exec(i);e&&e[1]&&e[2]&&n.has(e[1])&&n.get(e[1])!==e[2]&&!r.includes(e[1])&&r.push(e[1])}return r}function v(e){let t=r(e.path),{added:n,removed:a}=u(e),o=e=>[...e][0];if(e.status===`deleted`){let e=o(a)??t;return{kind:`breaking`,risk:`breaks`,title:`Remove ${e}`,intent:`Deletes ${e}${a.size>1?` and others`:``} from ${t}.`,phrase:`removes ${e}`,risks:[{level:`breaks`,text:`Anything importing ${e} breaks — confirm there are no remaining callers.`}],symbols:[...a]}}if(f(e.path))return{kind:`test`,risk:`safe`,title:`Tests in ${t}`,intent:`Adds or updates tests in ${t}.`,phrase:`adds tests in ${i(e.path)}`,risks:[],symbols:[]};if(p(e.path)){let n=l(e,`add`).join(` `).toUpperCase(),r=/\bNOT NULL\b|\bDROP\b|\bALTER\b/.test(n);return{kind:`config`,risk:r?`breaks`:`watch`,title:`Migration ${t}`,intent:`A schema change in ${t}.`,phrase:`migrates the schema`,risks:r?[{level:`breaks`,text:`${t} alters a table — on a large table this can lock writes. Check the row count.`}]:[],symbols:[]}}if(g(e.path))return{kind:`config`,risk:`safe`,title:`Lockfile ${t}`,intent:`Regenerates ${t} to match the dependency changes — machine-written, not reviewed by hand.`,phrase:`updates the lockfile`,risks:[],symbols:[]};if(h(e.path)){let n=_(e);if(n.length>0){let e=n.slice(0,4).join(`, `),r=n.length>4?`, +${n.length-4} more`:``,i=n.length===1?`dependency`:`dependencies`;return{kind:`config`,risk:`watch`,title:`Bump ${n.length} ${i}`,intent:`Updates ${n.length} ${n.length===1?`package`:`packages`} in ${t} (${e}${r}).`,phrase:`bumps ${n.length} ${i}`,risks:[{level:`watch`,text:`A version bump can carry breaking changes or a compromised release — skim the changelogs for any majors before merging.`}],symbols:[]}}return{kind:`config`,risk:`watch`,title:`Update ${t}`,intent:`Changes ${t} (scripts or config, not a clean version bump).`,phrase:`updates ${t}`,risks:[],symbols:[]}}if(m(e.path))return{kind:`config`,risk:`watch`,title:`Config ${t}`,intent:`Changes configuration in ${t}.`,phrase:`updates ${t}`,risks:[],symbols:[...n,...a]};if(e.status===`added`){let e=o(n);return{kind:`behavior`,risk:`watch`,title:e?`Add ${e}`:`Add ${t}`,intent:e?`Adds ${e}${n.size>1?` and other symbols`:``} in ${t}.`:`Adds ${t}.`,phrase:e?`adds ${e}`:`adds ${t}`,risks:[],symbols:[...n]}}let s=d(e);if(s)return{kind:`interface`,risk:`breaks`,title:`Change ${s}() signature`,intent:`Changes the call signature of ${s} in ${t}.`,phrase:`changes the ${s} signature`,risks:[{level:`breaks`,text:`Callers of ${s} on the old shape break — they may still compile but fail at runtime.`}],symbols:[s,...n,...a]};let c=[...a].find(e=>!n.has(e));if(c)return{kind:`breaking`,risk:`breaks`,title:`Remove ${c}`,intent:`Removes ${c} from ${t}.`,phrase:`removes ${c}`,risks:[{level:`breaks`,text:`${c} is gone — anything that referenced it breaks.`}],symbols:[...a]};let v=o(n)??o(a);return{kind:`behavior`,risk:`watch`,title:v?`Update ${v}`:`Update ${t}`,intent:v?`Reworks ${v} in ${t}.`:`Updates ${t} (+${e.add} / −${e.del}).`,phrase:v?`reworks ${v}`:`updates ${t}`,risks:[],symbols:[...n,...a]}}function y(e){let t=[];return e.hunks.forEach((e,r)=>{r>0&&t.push({t:`ctx`,c:`⋯`});for(let r of e.lines)if(t.push({t:r.t,c:r.c}),t.length>=n)return}),t.length>=n&&t.push({t:`ctx`,c:`… diff truncated`}),t}function b(e,t){if(t.size===0)return!1;for(let n of[`add`,`del`,`ctx`])for(let r of l(e,n))for(let e of c(o,r))if(t.has(e))return!0;return!1}var x=(e,t)=>{let n={safe:0,watch:1,breaks:2};return n[e]>=n[t]?e:t},S=(e,t,n)=>e===`breaks`?`breaks`:t?`migration`:n?`safe`:`affected`;function C(e,t){let n=e.files.filter(e=>!e.binary),a=n.map(v),o=n.map((e,t)=>{let o=a[t],s=new Set(o.symbols),c=[];return n.forEach((e,n)=>{n===t||s.size===0||b(e,s)&&c.push({name:r(e.path),ref:e.path,scope:`in-pr`,status:o.risk===`breaks`?`breaks`:`affected`})}),{id:`c${t}`,subsystem:i(e.path).toUpperCase(),file:e.path,kind:o.kind,risk:o.risk,title:o.title,intent:o.intent,why:``,diff:{file:e.path,add:e.add,del:e.del,lines:y(e)},blastRadius:[],blastFiles:1+c.length,blastOutside:0,links:c,risks:o.risks,symbols:o.symbols.length?o.symbols.slice(0,6):void 0}}),s=new Map;n.forEach(e=>{let t=i(e.path);s.has(t)||s.set(t,s.size)});let c=new Map,u=new Map,d=new Map;n.forEach((e,t)=>{let n=i(e.path);c.set(n,x(c.get(n)??`safe`,a[t].risk)),p(e.path)&&u.set(n,!0),f(e.path)||d.set(n,!0)});let m=[{id:`pr`,label:t||`this change`,sub:`THIS CHANGE`,type:`pr`,status:`affected`,scope:`in-pr`}],h=[],g=[...s.keys()].map(e=>({ar:e,count:n.filter(t=>i(t.path)===e).length})).sort((e,t)=>t.count-e.count).slice(0,9),_=new Map;g.forEach(({ar:e,count:t},n)=>{let r=`n${n}`;_.set(e,r);let i=S(c.get(e)??`safe`,!!u.get(e),!d.get(e));m.push({id:r,label:e,sub:`${t} file${t===1?``:`s`}`,type:`module`,status:i,scope:`in-pr`}),h.push({from:`pr`,to:r,verb:`changes`,status:i})});let C=new Set;n.forEach((e,t)=>{let r=i(e.path),o=_.get(r);if(!o||a[t].symbols.length===0)return;let s=new Set(a[t].symbols);n.forEach((e,n)=>{if(n===t)return;let c=i(e.path);if(c===r)return;let l=_.get(c);if(!l||!b(e,s))return;let u=`${l}->${o}`;C.has(u)||(C.add(u),h.push({from:l,to:o,verb:`calls`,status:a[t].risk===`breaks`?`breaks`:`affected`}))})});let w=o.filter(e=>e.risk===`breaks`),T=n.some(e=>f(e.path)),E=o.reduce((e,t)=>x(e,t.risk),`safe`),D=[];for(let e of w.slice(0,4))D.push({id:`b-${e.id}`,label:`breaking change reviewed — ${e.title}`,status:`pending`,actor:`human`});D.push({id:`tests`,label:T?`tests touched in this change`:`a test covers the changed paths`,status:T?`met`:`pending`,actor:`agent`}),D.push({id:`human`,label:`reviewed and understood by a human`,status:`pending`,actor:`human`});let O={decision:E===`breaks`?`block`:E===`watch`?`watch`:`pass`,shipSafe:E===`safe`,unackedP0:w.length,requires:[],deployOrder:`unset`,conditions:D,rationale:w.length?`${w.length} breaking change${w.length===1?``:`s`} to clear before merge: ${w.map(e=>e.title).join(`; `)}. In-repo callers are flagged; cross-repo callers need a connected graph.`:E===`watch`?`No outright breaks detected in the diff, but the changed paths warrant a review.`:`Only low-risk changes (tests/config) detected in the diff.`},k=n.find(e=>p(e.path)),A=k?{file:k.path,sql:l(k,`add`).slice(0,6),rows:`unknown`,lockCost:`depends on the table size — verify the row count before running`,expand:[{title:`Add it nullable`,detail:`Add the column without NOT NULL — instant, no rewrite.`},{title:`Backfill in batches`,detail:`Fill existing rows off-peak so replicas keep up.`},{title:`Then set NOT NULL`,detail:`A fast validate once every row is populated.`}],note:`Row count and lock time aren’t in the diff — confirm against the real table before you run it.`}:void 0,j=n.length===1?`file`:`files`,M=[...s.keys()],N=M.slice(0,3).join(`, `),P={safe:0,watch:1,breaks:2},F=[...o].sort((e,t)=>P[t.risk]-P[e.risk]),I=a.slice().sort((e,t)=>P[t.risk]-P[e.risk]).slice(0,3).map(e=>e.phrase),L=I.length>0?I.slice(0,-1).join(`, `)+(I.length>1?` and `:``)+I[I.length-1]:`touches ${n.length} ${j}`;return{pr:{repo:t||``,title:`${n.length} ${j} changed`,added:e.add,removed:e.del,files:n.length,p0Ways:w.length||void 0,summary:`This change ${L}`+(N?` — across ${M.length} area${M.length===1?``:`s`} (${N})`:``)+`, +${e.add} / −${e.del}.`,risks:F.flatMap(e=>e.risks&&e.risks.length?e.risks:e.risk===`safe`?[]:[{level:e.risk,text:`${e.title} — ${e.file}`}]).slice(0,3),readScope:`Read from the diff: ${n.length} ${j} across ${M.length} area${M.length===1?``:`s`}.`},nodes:m,edges:h,changes:o,cascades:[],rollout:[],workTypes:[],hotspots:[],suggestions:[],suppressedNits:0,modules:[],migration:A,gate:O,provenance:{source:`pasted-diff`,example:!1,notes:[`Built from the diff itself — what each change does, and the in-repo callers it touches.`,`Cross-repo callers, contracts, and traffic need a connected graph, so they’re left out rather than guessed.`]}}}function w(e){let t=e.trim();return t.startsWith(`"`)&&t.endsWith(`"`)&&(t=t.slice(1,-1)),(t.startsWith(`a/`)||t.startsWith(`b/`))&&(t=t.slice(2)),t}function T(){return{path:``,status:`modified`,add:0,del:0,hunks:[],binary:!1}}function E(e){let t=[],n=null,r=null,i=!1,a=()=>{n&&r&&n.hunks.push(r),r=null},o=()=>{a(),n&&(n.path||n.hunks.length)&&t.push(n),n=null,i=!1},s=e.split(`
|
|
2
|
-
`);for(let e of s){let t=e.replace(/\r$/,``);if(t.startsWith(`diff --git`)){o(),n=T();let e=/^diff --git (.+?) (.+)$/.exec(t);e&&(n.oldPath=w(e[1]??``),n.path=w(e[2]??``));continue}if(t.startsWith(`new file mode`)){n&&(n.status=`added`);continue}if(t.startsWith(`deleted file mode`)){n&&(n.status=`deleted`);continue}if(t.startsWith(`rename from `)){n&&(n.status=`renamed`,n.oldPath=w(t.slice(12)));continue}if(t.startsWith(`rename to `)){n&&(n.path=w(t.slice(10)));continue}if(t.startsWith(`Binary files`)||t.startsWith(`GIT binary patch`)){n&&(n.binary=!0);continue}if(!(t.startsWith(`index `)||t.startsWith(`similarity index`))){if(t.startsWith(`--- `)){let e=t.slice(4).trim();n&&i&&o(),n||=T(),i=!0;let r=e===`/dev/null`?``:w(e);r&&(n.oldPath=r),e===`/dev/null`&&(n.status=`added`);continue}if(t.startsWith(`+++ `)){let e=t.slice(4).trim();n||=T();let r=e===`/dev/null`?``:w(e);r?n.path=r:n.oldPath&&(n.path=n.oldPath),e===`/dev/null`&&(n.status=`deleted`);continue}if(t.startsWith(`@@`)){a(),r={header:t,lines:[]};continue}if(r&&n){t.startsWith(`+`)?(r.lines.push({t:`add`,c:t.slice(1)}),n.add+=1):t.startsWith(`-`)?(r.lines.push({t:`del`,c:t.slice(1)}),n.del+=1):t.startsWith(` `)?r.lines.push({t:`ctx`,c:t.slice(1)}):t.startsWith(`\\`)||t===``&&r.lines.push({t:`ctx`,c:``});continue}}}o();let c=t.filter(e=>e.path||e.oldPath);for(let e of c)!e.path&&e.oldPath&&(e.path=e.oldPath);return{files:c,add:c.reduce((e,t)=>e+t.add,0),del:c.reduce((e,t)=>e+t.del,0)}}function D(e){return/^(diff --git |--- |\+\+\+ |@@ )/m.test(e)||/\n@@ .*@@/.test(e)}var O=[`safe`,`watch`,`breaks`],k=[`P0`,`P1`,`P2`,`P3`],A=e=>typeof e==`string`&&O.includes(e),j=e=>typeof e==`string`&&k.includes(e),M=e=>typeof e==`string`?e.trim():``,N=`You are a principal engineer reviewing a code change for a teammate who is nervous about merging it. Your job is to make them UNDERSTAND it — what it does, why, what it could break, and in what order to ship it safely. You ground every claim in the diff and, when provided, the real file contents and the real callers found across the repo. You NEVER invent a caller, a file, a number, or production traffic that the inputs do not support — when unsure, you say so. You write in clear, concrete prose (no hedging filler). You reply with STRICT JSON only — no prose, no markdown fences.
|
|
3
|
-
|
|
4
|
-
`+[`Review the code change in the user message and return JSON of exactly this shape:`,`{`,` "summary": "2-4 sentences: what this change does, why it matters, and the single thing to watch — plain language a nervous reviewer can act on",`,` "risks": [ { "level": "breaks|watch|safe", "text": "a before-you-merge risk, worst first" } ],`,` "changes": [ { "id": "<one of the given ids>", "intent": "what this file's change does", "why": "why it is part of this change", "risk": "breaks|watch|safe" } ],`,` "cascades": [ { "trigger": "the change that starts the chain", "hops": [ { "label": "the next thing it breaks/affects", "context": "who/where, e.g. '2 callers in webhooks/'", "severity": "breaks|watch|safe" } ], "incident": "where the chain ends if it ships wrong", "incidentSeverity": "P0|P1|P2|P3", "caughtBeforeMerge": "what to do first so the chain never starts" } ],`,` "gateRationale": "one paragraph: should this merge, and under what conditions",`,` "suggestions": [ { "category": "CONCURRENCY|COMPATIBILITY|RESILIENCE|OBSERVABILITY|SECURITY|DATA", "title": "Did you consider …?", "gist": "one line", "why": "the reasoning", "evidence": "cite file:line", "fix": "the concrete fix" } ]`,`}`,``,`Rules: ground every claim in the inputs. Cite file:line in "evidence". 0-3 risks, 0-2 cascades, `,`0-5 suggestions — only ones you can prove. Use the exact change ids given. If real callers are `,`provided, the cascade hops MUST reference those actual files; if none are provided, keep the `,`cascade to what the diff shows and say the blast is in-repo only. Output the fields in the order `,`above (summary first) so a reader sees the verdict while the rest streams. Omit anything you are unsure of.`].join(`
|
|
5
|
-
`);function P(e,t,n){let r=e.changes.map(e=>`- ${e.id}: ${e.file} (${e.title})`).join(`
|
|
6
|
-
`),i=t.length>14e3?t.slice(0,14e3)+`
|
|
7
|
-
…[diff truncated]`:t;return[`CHANGE IDS:`,r,...n?[``,`REAL CODE CONTEXT (file contents + actual callers found in the repo):`,n]:[],``,`DIFF:`,i].join(`
|
|
8
|
-
`)}function F(e){if(!Array.isArray(e))return;let t=e.map(e=>{let t=e;return{level:A(t.level)?t.level:`watch`,text:M(t.text)}}).filter(e=>e.text.length>0);return t.length?t:void 0}function I(e){if(!Array.isArray(e))return;let t=e.map(e=>{let t=e,n={id:M(t.id)};return M(t.intent)&&(n.intent=M(t.intent)),M(t.why)&&(n.why=M(t.why)),A(t.risk)&&(n.risk=t.risk),n}).filter(e=>e.id.length>0);return t.length?t:void 0}function L(e){if(!Array.isArray(e))return;let t=e.map((e,t)=>{let n=e,r=M(n.title);return r?{id:`s${t}`,category:M(n.category)||`REVIEW`,title:r,gist:M(n.gist),why:M(n.why),evidence:M(n.evidence),fix:M(n.fix)}:null}).filter(e=>e!==null);return t.length?t:void 0}function R(e){if(!Array.isArray(e))return;let t=[];for(let n of e){let e=n,r=M(e.trigger),i=Array.isArray(e.hops)?e.hops.map(e=>{let t=e;return{label:M(t.label),context:M(t.context),severity:A(t.severity)?t.severity:`watch`}}).filter(e=>e.label.length>0):[];!r||i.length===0||t.push({trigger:r,hops:i,incident:M(e.incident),incidentSeverity:j(e.incidentSeverity)?e.incidentSeverity:`P2`,caughtBeforeMerge:M(e.caughtBeforeMerge)})}return t.length?t:void 0}function z(e){let t=e;if(typeof e==`string`){let n=e.replace(/```json\s*|```/gi,``),r=n.indexOf(`{`),i=n.lastIndexOf(`}`);if(r<0||i<=r)return null;try{t=JSON.parse(n.slice(r,i+1))}catch{return null}}if(!t||typeof t!=`object`)return null;let n=t,r=F(n.risks),i=I(n.changes),a=L(n.suggestions),o=R(n.cascades),s=M(n.gateRationale)||void 0,c=M(n.summary)||void 0;return!c&&!r?.length&&!i?.length&&!a?.length&&!o?.length&&!s?null:{summary:c,risks:r,changes:i,suggestions:a,cascades:o,gateRationale:s}}function B(e,t,n){let r=new Map(t.changes?.map(e=>[e.id,e])??[]);return{...e,pr:{...e.pr,summary:t.summary||e.pr.summary,risks:t.risks&&t.risks.length?t.risks:e.pr.risks},changes:e.changes.map(e=>{let t=r.get(e.id);return t?{...e,intent:t.intent||e.intent,why:t.why||e.why,risk:t.risk??e.risk}:e}),cascades:t.cascades&&t.cascades.length?t.cascades:e.cascades,suggestions:t.suggestions&&t.suggestions.length?t.suggestions:e.suggestions,gate:t.gateRationale?{...e.gate,rationale:t.gateRationale}:e.gate,provenance:{...e.provenance,notes:[e.provenance.notes?.[0]??`Built from the diff — what each change does, and the in-repo callers it touches.`,n?`The read, cascade, and suggestions are ${n}'s analysis.`:`The read, cascade, and suggestions are the model’s analysis.`,...e.provenance.notes?.slice(2)??[]]}}}function V(e){let t=e.trim(),n=t.split(`
|
|
9
|
-
`).find(e=>e.trim().length>0)?.trim()??t,r=n.length>160?n.slice(0,160)+`…`:n,i;/\b(p0|sev[\s-]?0|sev[\s-]?1|critical|fatal|outage|down)\b/i.test(t)?i=`P0`:/\b(p1|sev[\s-]?2|high|error|5\d\d)\b/i.test(t)?i=`P1`:/\b(p2|warn|degraded)\b/i.test(t)&&(i=`P2`);let a=(/(?:service|svc|app)[:=]\s*([a-z0-9._-]+)/i.exec(t)||/\b([a-z0-9-]+(?:-service|-api|-app|-svc))\b/i.exec(t)||/\[([a-z0-9._-]+)\]/i.exec(t))?.[1];return{symptom:r,severity:i,...a?{service:a}:{}}}function H(e,t){let n=V(e),r=(t?.hotspots??[]).filter(e=>e.ask).map(e=>({name:e.ask.name,team:e.ask.team,why:e.ask.why})),i=(t?.nodes??[]).filter(e=>e.team&&e.type!==`pr`).slice(0,3).map(e=>({name:e.team,team:e.label,why:`owns ${e.label}`})),a=r.length?r.slice(0,3):i;return{symptom:n.symptom,...n.severity?{severity:n.severity}:{},...n.service?{service:n.service}:{},chain:[],rootCause:t?`Ripple will trace this back through the attached change — connect deploys and traces to confirm the exact cause.`:`Attach the suspect change (paste its diff or load the PR) so Ripple can trace the symptom back to a line.`,rollback:[],whoToWake:a,timeline:[{time:`now`,label:`Alert received — ${n.symptom}`}],evidence:t?`Grounded in the attached change; the link to this symptom is Ripple’s read until deploys/traces are connected.`:`From the alert text alone. Connect a change, deploys, or traces to trace the cause.`}}function U(e){let t=e;if(typeof e==`string`){let n=e.replace(/```json\s*|```/gi,``),r=n.indexOf(`{`),i=n.lastIndexOf(`}`);if(r<0||i<=r)return null;try{t=JSON.parse(n.slice(r,i+1))}catch{return null}}if(!t||typeof t!=`object`)return null;let n=t,r=e=>typeof e==`string`?e.trim():``,i=Array.isArray(n.chain)?n.chain.map(e=>{let t=e;return{label:r(t.label),context:r(t.context)}}).filter(e=>e.label.length>0):void 0,a=Array.isArray(n.rollback)?n.rollback.map(r).filter(e=>e.length>0):void 0,o=Array.isArray(n.whoToWake)?n.whoToWake.map(e=>{let t=e;return{name:r(t.name),team:r(t.team),why:r(t.why)}}).filter(e=>e.name.length>0):void 0,s=r(n.rootCause)||void 0;return!i?.length&&!a?.length&&!o?.length&&!s?null:{...s?{rootCause:s}:{},...i?{chain:i}:{},...a?{rollback:a}:{},...o?{whoToWake:o}:{}}}function W(e,t){return{...e,rootCause:t.rootCause||e.rootCause,chain:t.chain&&t.chain.length?t.chain:e.chain,rollback:t.rollback&&t.rollback.length?t.rollback:e.rollback,whoToWake:e.whoToWake.length?e.whoToWake:t.whoToWake??[]}}function G(e,t){let n=(t?.changes??[]).map(e=>`- ${e.file}: ${e.title} — ${e.intent}`).join(`
|
|
10
|
-
`);return[`A production alert just fired. Working BACKWARDS from the symptom to the likely cause, return JSON:`,`{`,` "chain": [ { "label": "a step from the symptom toward the cause", "context": "where/when" } ],`,` "rootCause": "the most likely root cause, stated honestly as your read",`,` "rollback": [ "a step to safely roll back — to copy and run yourself" ],`,` "whoToWake": [ { "name": "person/team", "team": "area", "why": "why them" } ]`,`}`,`Rules: reason only from the alert and the change below — do not invent services, deploys, or`,`people you have no basis for. The rollback is a DRAFT the human runs; never phrase it as an`,`action you take. If you are unsure of the cause, say so in rootCause.`,``,`ALERT:`,e.slice(0,4e3),``,t?.changes.length?`THE SUSPECT CHANGE:`:`No change attached.`,n].join(`
|
|
11
|
-
`)}function K(e,t){let n=H(e,t);return t?{...t,incident:n,provenance:{...t.provenance,notes:[`Incident: ${n.symptom}`,...t.provenance.notes??[]]}}:{pr:{repo:``,title:n.symptom,summary:`A production alert fired: ${n.symptom}. Attach the suspect change to trace it back.`,risks:n.severity?[{level:`breaks`,text:`${n.severity} — ${n.symptom}`}]:[]},nodes:[],edges:[],changes:[],cascades:[],rollout:[],workTypes:[],hotspots:[],suggestions:[],suppressedNits:0,modules:[],gate:{decision:`watch`,shipSafe:!1,unackedP0:0,requires:[],deployOrder:`unset`,conditions:[],rationale:`An incident, not a change to ship.`},incident:n,provenance:{source:`pasted-diff`,example:!1,notes:[`Incident from a pasted alert. Attach the suspect change to trace the cause.`]}}}var q=`mavea-ripple-gh-token`;function J(){try{localStorage.removeItem(q)}catch{}}async function Y(){try{if(typeof localStorage>`u`)return``;let e=localStorage.getItem(q);return e?await t(e):``}catch{return``}}function X(){try{return typeof localStorage<`u`&&!!localStorage.getItem(q)}catch{return!1}}async function Z(t){let n=t.trim();if(typeof localStorage>`u`)return!1;if(!n)return J(),!1;try{let t=await e(n);return localStorage.setItem(q,t),!0}catch{return J(),!1}}async function Q(){await Z(``)}export{D as _,K as a,U as c,I as d,F as f,z as g,R as h,Z as i,N as l,B as m,Y as n,G as o,L as p,X as r,W as s,Q as t,P as u,E as v,C as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./store-DrBDvqXF.js";function t(){let t=!1;try{t=!!localStorage.getItem(e)}catch{}return t?{href:`#/live`,label:`Live`}:{href:`#/`,label:`Mavéa`}}export{t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
async function e(e,t,n,r){let i=new AbortController,a=setTimeout(()=>i.abort(),n),o=r?AbortSignal.any([r,i.signal]):i.signal;try{return await fetch(e,{...t,signal:o})}finally{clearTimeout(a)}}async function t(e){try{let t=(await e.text()).slice(0,2e3);if(!t)return``;let n=``,r=``;try{let e=a(JSON.parse(t)),i=a(e.error);n=o(i.status)||o(i.type)||o(i.code),r=o(i.message)||o(e.message)}catch{}let i=[n,r||(n?``:t)].filter(Boolean).join(`: `);return i?` — ${i.replace(/\s+/g,` `).trim().slice(0,160)}`:``}catch{return``}}var n=3e4;async function r(e,t){let n;try{return await Promise.race([e.read(),new Promise((e,r)=>{n=setTimeout(()=>r(Error(`stream stalled`)),t)})])}finally{clearTimeout(n)}}async function i(e,t,i=n){let a=e.body?.getReader();if(!a)return;let o=new TextDecoder,s=``;try{for(;;){let{done:e,value:n}=await r(a,i);s+=e?o.decode():o.decode(n,{stream:!0});let c;for(;(c=s.indexOf(`
|
|
2
|
-
`))>=0;){let e=s.slice(0,c).trim();if(s=s.slice(c+1),!e.startsWith(`data:`))continue;let n=e.slice(5).trim();if(!(!n||n===`[DONE]`))try{if(t(JSON.parse(n))){await a.cancel().catch(()=>{});return}}catch{}}if(e)break}}catch(e){throw await a.cancel().catch(()=>{}),e}}function a(e){return e&&typeof e==`object`?e:{}}function o(e){return typeof e==`string`?e:``}function s(e){return Array.isArray(e)?e:[]}function c(e){return typeof e==`number`&&Number.isFinite(e)?e:0}export{t as a,a as i,e as n,i as o,c as r,o as s,s as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{box-sizing:border-box}:root{--surface-default:#0a0e15;--surface-deep:#070a10;--surface-elevated:#131925;--surface-elevated-2:#19202e;--surface-glass:#ffffff0b;--surface-glass-strong:#ffffff12;--line:#ffffff14;--line-soft:#ffffff0d;--line-strong:#ffffff24;--text-primary:#eef2f8;--text-secondary:#9aa7bb;--text-muted:#798392;--text-faint:#424c5b;--presence:#6e8cff;--presence-soft:#8aa0ff;--presence-deep:#4458c9;--insight:#3ed8a6;--insight-soft:#6fe8c0;--warning:#f5b95c;--warning-soft:#ffce8a;--danger:#ff7a85;--glow-presence:#6e8cff59;--glow-insight:#3ed8a64d;--glow-warning:#f5b95c52;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-full:999px;--btn-h:38px;--btn-pad:0 14px;--chip-pad:6px 12px;--bar-glass-bg:color-mix(in oklab, var(--surface-deep) 82%, transparent);--bar-glass-blur:blur(16px);--bar-h:60px;--glass-blur-strong:blur(16px);--glass-blur-soft:blur(12px);--glass-blur-faint:blur(10px);--s-xs:4px;--s-sm:8px;--s-2:12px;--s-md:16px;--s-lg:24px;--s-xl:32px;--s-2xl:48px;--s-3xl:64px;--canvas-col-max:clamp(1280px, 84vw, 1640px);--m-instant:80ms;--m-fast:.16s;--m-normal:.28s;--m-expressive:.55s;--m-cinematic:.9s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--motion-scale:1;--shadow-raised:0 1px 0 #ffffff0a inset, 0 8px 24px -12px #000000b3;--shadow-floating:0 18px 50px -18px #000c, 0 2px 0 #ffffff0d inset;--shadow-modal:0 40px 120px -30px #000000d9;--font:"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", "Geist Mono", monospace;--topic-tint:#6e8cff;--app-anchor:#0e1320;--scrim-rgb:4, 6, 10;--grid-line:#ffffff0f;--grid-strong:#ffffff1f;--track:#ffffff12;--hover-line:#ffffff2e;--cell-empty:#ffffff0a;--slide-bg:linear-gradient(150deg, #11182a, #0a0e15);--replay-bg:linear-gradient(165deg, #15122a, #0a0e15);--replay-stage-bg:radial-gradient(80% 80% at 50% 30%, #1a2342, #0a0e15)}:root[data-theme=light]{--surface-default:#f3f5fb;--surface-deep:#e9edf5;--surface-elevated:#fff;--surface-elevated-2:#f6f8fc;--surface-glass:#1c28420b;--surface-glass-strong:#1c284214;--line:#1c28421f;--line-soft:#1c284212;--line-strong:#1c284233;--text-primary:#161c2b;--text-secondary:#4d5a70;--text-muted:#606876;--text-faint:#a7afbe;--presence-deep:#3346b0;--glow-presence:#6e8cff29;--glow-insight:#14a06e24;--glow-warning:#d6962829;--shadow-raised:0 1px 0 #ffffffb3 inset, 0 10px 26px -16px #1e2d504d;--shadow-floating:0 20px 50px -22px #1e2d504d, 0 1px 0 #fffc inset;--shadow-modal:0 40px 110px -34px #1e2d5066;--app-anchor:#fff;--scrim-rgb:232, 237, 246;--grid-line:#1c284214;--grid-strong:#1c284229;--track:#1c284214;--hover-line:#1c28423d;--cell-empty:#1c28420d;--slide-bg:linear-gradient(150deg, #fff, #eef2fb);--replay-bg:linear-gradient(165deg, #f6f3ff, #eaf0fb);--replay-stage-bg:radial-gradient(80% 80% at 50% 30%, #dfe6ff, #eef2fb)}:root[data-theme=light] ::selection{background:#6e8cff38}:root[data-theme=light] ::-webkit-scrollbar-thumb{background:#1c284229 padding-box padding-box}#mavea-toasts{z-index:90;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;top:70px;left:50%;transform:translate(-50%)}.toast{border-radius:var(--r-full);background:var(--surface-elevated-2);border:1px solid var(--line-strong);color:var(--text-primary);box-shadow:var(--shadow-floating);opacity:0;transition:opacity var(--m-normal) var(--ease-out), transform var(--m-normal) var(--ease-out);align-items:center;gap:9px;padding:11px 16px;font-size:13.5px;font-weight:500;display:inline-flex;transform:translateY(-8px)scale(.98)}.toast.show{opacity:1;transform:none}.toast-dot{border-radius:var(--r-full);background:var(--insight);width:7px;height:7px;box-shadow:0 0 6px var(--glow-insight)}.topbar{align-items:center;gap:var(--s-sm);height:60px;padding:0 var(--s-lg);z-index:40;background:var(--bar-glass-bg);-webkit-backdrop-filter:var(--bar-glass-blur);flex-wrap:nowrap;display:flex;position:absolute;top:0;left:0;right:0}.topbar .topbar-icon-btn{margin-left:0}.brand{letter-spacing:-.01em;--slot:var(--scroll-dock,0);align-items:center;gap:10px;font-weight:600;display:flex}.mavea-app.face-homed .brand{--slot:1}.brand-name,.brand-sep,.workspace-name{transform:translateX(calc((var(--slot,0) - 1) * 31px));transition:transform .22s var(--ease-out)}@media (prefers-reduced-motion:reduce){.brand-name,.brand-sep,.workspace-name{transition:none}}.brand-link{appearance:none;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;margin:0;padding:0;font-weight:600}.brand-link:focus-visible{outline:2px solid var(--presence);outline-offset:4px}.jelly-mark{width:21px;height:17px;box-shadow:0 0 10px var(--glow-presence);background:linear-gradient(135deg,#63e0bd,#a4b4ff 55%,#ffa5c3);border-radius:52% 52% 30% 30%/68% 68% 22% 22%;position:relative}.jelly-mark:before{content:"";background:radial-gradient(.9px .9px at 34% 53%,#252c55 92%,#0000),radial-gradient(.9px .9px at 66% 53%,#252c55 92%,#0000),radial-gradient(1.5px 1.5px at 34% 51%,#fff 92%,#0000),radial-gradient(1.5px 1.5px at 66% 51%,#fff 92%,#0000),radial-gradient(2.2px .7px at 50% 73%,#fff 88%,#0000),radial-gradient(1.6px 1.2px at 21% 66%,#ff9fb699 92%,#0000),radial-gradient(1.6px 1.2px at 79% 66%,#ff9fb699 92%,#0000);position:absolute;inset:0}.jelly-mark:after{content:"";background:linear-gradient(#63e0bd,#0000) 4% 0/2px 100% no-repeat,linear-gradient(#a4b4ff,#0000) 50% 0/2px 100% no-repeat,linear-gradient(#ffa5c3,#0000) 96% 0/2px 100% no-repeat;height:8px;position:absolute;top:88%;left:22%;right:22%}.brand-dot{opacity:0;margin-top:-3px;transition:opacity .1s ease-out}.mavea-app.face-homed .brand-dot,.mavea-app.live-voice:not(.face-homed):not(.in-wizard) .brand-dot{opacity:0}.brand-name{font-size:16px}.mavea-app.face-homed .brand-name{margin-left:12px}.brand-sep{background:var(--line);width:1px;height:18px;margin:0 2px}.workspace-name{color:var(--text-secondary);white-space:nowrap;font-size:14px}.topbar-spacer{flex:1}.ctrl-cluster{align-items:center;gap:4px;min-width:0;display:flex}.ctrl[data-tip],.pill-btn[data-tip]{position:relative}.ctrl[data-tip]:after,.pill-btn[data-tip]:after{content:attr(data-tip);color:#f3f5fb;white-space:nowrap;border-radius:var(--r-sm);pointer-events:none;opacity:0;z-index:200;background:#141821f5;border:1px solid #ffffff1f;padding:5px 8px;font-size:11px;font-weight:500;line-height:1;transition:opacity .1s,transform .1s;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%)translateY(-3px);box-shadow:0 6px 20px -6px #00000080}.ctrl[data-tip]:hover:after,.pill-btn[data-tip]:hover:after{opacity:1;transform:translate(-50%)translateY(0)}.ctrl{border-radius:var(--r-sm);width:38px;height:38px;color:var(--text-secondary);transition:background var(--m-fast), color var(--m-fast), border-color var(--m-fast);background:0 0;border:1px solid #0000;place-items:center;display:grid}.ctrl:hover{background:var(--surface-glass);color:var(--text-primary)}.ctrl.active{color:var(--presence-soft);background:#6e8cff1f;border-color:#6e8cff40}.ctrl.warn-off{color:var(--warning)}.ctrl svg{width:19px;height:19px}.pill-btn{border-radius:var(--r-sm);white-space:nowrap;border:1px solid var(--line);background:var(--surface-glass);height:38px;color:var(--text-primary);transition:background var(--m-fast), border-color var(--m-fast), transform var(--m-fast);align-items:center;gap:8px;padding:0 16px;font-size:13.5px;font-weight:500;display:flex}.pill-btn:hover{background:var(--surface-glass-strong);border-color:var(--line-strong)}.pill-btn:active{transform:translateY(1px)}.pill-btn svg{width:16px;height:16px}.topbar-text-btn{cursor:pointer;font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--text-primary);background:0 0;border:none;padding:4px 6px;font-size:11px;font-weight:600}.topbar-text-btn:hover{color:var(--presence-soft)}.topbar-search-btn{align-items:center;gap:6px;display:inline-flex}.topbar-search-ic{width:13px;height:13px}.topbar-search-kbd{letter-spacing:0;text-transform:none}.cmdk-kbd{border:1px solid var(--line-soft);background:var(--surface-glass);color:var(--text-faint);font-family:var(--font-data);border-radius:5px;flex:none;padding:1px 5px;font-size:10px}@media (width<=768px){.topbar-search-kbd{display:none}}@media (width<=430px){.topbar-search-label{display:none}}.topbar-badge{border-radius:var(--r-full);background:var(--presence);color:#fff;letter-spacing:0;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:9px;font-weight:700;line-height:1;display:inline-flex}.more-menu-root{display:inline-flex;position:relative}.more-menu-trigger{align-items:center;gap:5px;display:inline-flex}.more-menu-caret{opacity:.55;border-top:4px solid;border-left:3.5px solid #0000;border-right:3.5px solid #0000;width:0;height:0}.more-menu{width:min(320px,100vw - 28px);max-height:calc(100dvh - 72px);left:auto;right:0;overflow-y:auto}.more-menu-row{border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;text-align:left;font:inherit;background:0 0;border:none;flex-direction:column;align-items:stretch;gap:4px;padding:10px 12px;display:flex}.more-menu-row:hover,.more-menu-row:focus-visible{background:var(--surface-glass-strong);outline:none}.more-menu-name{color:var(--text-primary);font-size:12.5px;font-weight:700}.more-menu-blurb{color:var(--text-muted);font-size:11.5px;line-height:1.3}.more-panel{overscroll-behavior:contain;width:min(360px,100vw - 28px);max-height:min(80vh,560px);overflow-y:auto}.more-panel-trigger{letter-spacing:.16em}.more-panel-section{flex-direction:column;display:flex}.more-panel-divider{background:var(--line);height:1px;margin:4px 6px}.more-panel-heading{font-family:var(--font-data);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:6px 12px 3px;font-size:9.5px;font-weight:700}.stage{position:absolute;inset:0}.presence-stage{justify-content:center;align-items:center;gap:var(--s-md);padding:40px 24px calc(var(--dock-h,76px) + 40px);text-align:center;transition:opacity var(--m-expressive) var(--ease-out);flex-direction:column;display:flex;position:absolute;inset:0}.presence-stage.with-files{padding-bottom:calc(var(--dock-h,76px) + 40px);justify-content:flex-end;overflow-y:auto}.presence-layer.idlehome .presence{--face-size:132px}.presence-layer.idlehome .presence-positioner{--dock:var(--scroll-dock,0);transform:translateX(calc(var(--home-x,0px) * var(--dock))) translateY(calc((130px - 50vh) * (1 - var(--dock)) + var(--home-y,0px) * var(--dock))) scale(calc(1 - .77 * var(--dock)));transition:transform 90ms ease-out}.presence-layer.idlehome .presence .mascot .shimmer{opacity:calc(.3 - .6 * var(--scroll-dock,0))}.presence-layer.idlehome .presence .mascot .curtain .beads{opacity:calc(.38 - .76 * var(--scroll-dock,0))}.presence-layer.idlehome .presence .mascot .band.b1{opacity:calc(.1 - .2 * var(--scroll-dock,0))}.presence-layer.idlehome .presence .mascot .band.b2{opacity:calc(.08 - .16 * var(--scroll-dock,0))}.presence-layer.idlehome .presence .mascot .glint.g2{opacity:calc(.85 - 1.7 * var(--scroll-dock,0))}.presence-layer.idlehome .presence .mascot .eye{transform:scale(calc(1 + .35 * var(--scroll-dock,0)))}.presence-layer.idlehome .presence .mascot .smile{stroke-width:calc(3.6 + 2.4 * var(--scroll-dock,0))}.presence-layer.idlehome.corner .presence-positioner{transform:translate(calc(50vw - 56px),calc(50vh - 48px))scale(.36)}.play-banner{border-radius:var(--r-full);height:36px;color:var(--presence-soft);background:#6e8cff1f;border:1px solid #6e8cff4d;align-items:center;gap:10px;margin-right:10px;padding:0 6px 0 13px;font-size:13px;display:inline-flex}.play-banner svg{width:14px;height:14px}.play-title{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:600;overflow:hidden}.play-prog{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.play-stop,.play-pause{border-radius:var(--r-full);background:var(--track);width:26px;height:26px;color:var(--text-secondary);border:none;place-items:center;display:grid}.play-stop:hover,.play-pause:hover{background:var(--grid-strong);color:var(--text-primary)}.play-stop svg,.play-pause svg{width:13px;height:13px}.greeting{letter-spacing:-.02em;text-wrap:balance;max-width:16ch;font-size:clamp(26px,3.4vw,40px);font-weight:600;line-height:1.1}.greeting .accent{color:var(--presence-soft)}.subgreeting{color:var(--text-secondary);max-width:46ch;font-size:16px;line-height:1.5}.caption{letter-spacing:-.01em;min-height:30px;color:var(--text-primary);text-wrap:balance;max-width:24ch;font-size:clamp(18px,2vw,24px);font-weight:500;line-height:1.25}.caption .muted{color:var(--text-muted)}.status-pill{border-radius:var(--r-full);background:var(--surface-glass);border:1px solid var(--line);height:32px;color:var(--text-secondary);letter-spacing:.01em;-webkit-backdrop-filter:var(--glass-blur-soft);backdrop-filter:var(--glass-blur-soft);align-items:center;gap:9px;padding:0 14px 0 12px;font-size:13px;display:inline-flex}.status-dot{border-radius:var(--r-full);background:var(--presence);width:7px;height:7px;box-shadow:0 0 7px var(--glow-presence)}.status-dot.think{background:var(--warning);box-shadow:0 0 7px var(--glow-warning);animation:dotpulse 1.4s var(--ease-in-out) infinite}.status-dot.read{background:var(--insight);box-shadow:0 0 7px var(--glow-insight)}@keyframes dotpulse{0%,to{opacity:1}50%{opacity:.35}}.try-row{flex-wrap:wrap;justify-content:center;gap:10px;max-width:720px;display:flex}.try-chip{border-radius:var(--r-full);white-space:nowrap;background:var(--surface-glass);border:1px solid var(--line);color:var(--text-secondary);transition:all var(--m-fast) var(--ease-out);padding:10px 16px;font-size:14px;font-weight:450}.try-chip:hover{color:var(--text-primary);background:#6e8cff14;border-color:#6e8cff59;transform:translateY(-1px)}.live-examples{grid-template-columns:1fr 1fr;gap:8px;display:grid}.live-example{text-align:center;border-radius:var(--r-md);background:var(--surface-glass);border:1px solid var(--line);min-height:52px;color:var(--text-secondary);cursor:pointer;transition:all var(--m-fast) var(--ease-out);justify-content:center;align-items:center;padding:10px 14px;font-size:13px;font-weight:450;line-height:1.35;display:flex}.live-example:hover:not(:disabled){color:var(--text-primary);background:#6e8cff14;border-color:#6e8cff59;transform:translateY(-1px)}.live-example:disabled{opacity:.5;cursor:default}@media (width<=480px){.live-examples{grid-template-columns:1fr}}.entry-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.entry-action{white-space:nowrap;border-radius:var(--r-full);background:var(--surface-elevated);border:1px solid var(--line);height:46px;color:var(--text-primary);box-shadow:var(--shadow-raised);transition:all var(--m-fast) var(--ease-out);align-items:center;gap:10px;padding:0 20px;font-size:14.5px;font-weight:500;display:flex}.entry-action:hover{border-color:var(--line-strong);background:var(--surface-elevated-2);transform:translateY(-1px)}.entry-action.primary{background:linear-gradient(180deg, var(--presence), var(--presence-deep));box-shadow:0 6px 18px -10px var(--glow-presence);color:#fff;border-color:#0000}.entry-action.primary.is-active{outline:2px solid var(--presence-soft);outline-offset:2px}.entry-action svg{width:18px;height:18px}.live-badge{border-radius:var(--r-full);letter-spacing:.02em;height:24px;color:var(--presence-deep);background:var(--presence-soft);border:1px solid var(--presence-soft);align-items:center;gap:6px;margin-left:4px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.live-badge .live-dot{background:var(--presence);width:7px;height:7px;box-shadow:0 0 0 0 var(--glow-presence);border-radius:50%;animation:1.6s ease-out infinite live-pulse}@keyframes live-pulse{0%{box-shadow:0 0 0 0 var(--glow-presence)}70%{box-shadow:0 0 0 6px #0000}to{box-shadow:0 0 #0000}}.live-notice{border-radius:var(--r-lg,14px);text-align:left;background:var(--surface-elevated);border:1px solid var(--line);max-width:560px;box-shadow:var(--shadow-raised);color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:10px;margin:16px auto 0;padding:12px 16px;font-size:13.5px;display:flex}.live-notice.warn{border-color:#e6aa3c66}.live-notice.ok{border-color:var(--presence-soft)}.live-notice-dot{border-radius:50%;flex:none;width:9px;height:9px}.live-notice-dot.probing{background:var(--text-tertiary,#888);animation:1.6s ease-out infinite live-pulse}.live-notice-dot.warn{background:#e6aa3c}.live-notice-dot.ok{background:var(--presence)}.live-notice-text{flex:200px;line-height:1.4}.live-notice-text.dim{color:var(--text-tertiary,#999);flex-basis:100%;font-size:12.5px}.live-notice-retry{border-radius:var(--r-full);background:var(--presence);color:#fff;cursor:pointer;border:none;height:30px;padding:0 14px;font-size:12.5px;font-weight:600}.live-notice-retry:disabled{opacity:.5;cursor:default}.presence{--face-size:180px;--mascot-bell-1:#63e0bd;--mascot-bell-2:#a4b4ff;--mascot-bell-3:#ffa5c3;--mascot-cur-1:#63e0bd;--mascot-cur-2:#a4b4ff;--mascot-cur-3:#c3a5ff;--mascot-cur-4:#ffa5c3;--mascot-bell-op:.9;--mascot-glow:#9eb0ff57;--mascot-mix:100%;--mascot-anchor:#26324e;--aura-conic:conic-gradient(from 0deg, var(--mascot-cur-1), var(--mascot-cur-2), var(--mascot-cur-3), var(--mascot-cur-4), var(--mascot-cur-1));--aura-spin:9s;--aura-glow:var(--mascot-glow);--aura-halo:var(--mascot-glow);width:var(--face-size);height:var(--face-size);transition:transform var(--m-expressive) var(--ease-spring), filter var(--m-normal) var(--ease-out);will-change:transform;place-items:center;display:grid;position:relative}:root[data-theme=light] .presence{--mascot-mix:80%;--aura-halo:color-mix(in srgb, var(--mascot-glow) 50%, transparent)}.presence .aura{background:radial-gradient(circle at 50% 42%, var(--aura-halo), transparent 66%);filter:blur(12px);opacity:.9;transition:background var(--m-normal), opacity var(--m-normal);animation:breathe calc(3.8s / var(--motion-scale,1)) var(--ease-in-out) infinite;animation-play-state:var(--ambient-play,running);border-radius:50%;position:absolute;inset:-24%}.presence .mascot{width:calc(var(--face-size) * var(--mascot-fit,1.1));height:calc(var(--face-size) * var(--mascot-fit,1.1) * 1.1);margin-top:calc(var(--face-size) * .15);animation:mascot-bob calc(5.4s / var(--motion-scale,1)) var(--ease-in-out) infinite;animation-play-state:var(--ambient-play,running);overflow:visible}.presence .mascot .curtain{transform-box:fill-box;transform-origin:top}.presence .mascot .curtains.long .curtain{animation:mascot-curtain calc(5.8s / var(--motion-scale,1)) var(--ease-in-out) infinite;animation-play-state:var(--ambient-play,running)}.presence .mascot .curtain.c1{--cur:color-mix(in oklab, var(--mascot-cur-1) var(--mascot-mix), var(--mascot-anchor))}.presence .mascot .curtain.c2{--cur:color-mix(in oklab, var(--mascot-cur-2) var(--mascot-mix), var(--mascot-anchor));animation-delay:-1.3s}.presence .mascot .curtain.c3{--cur:color-mix(in oklab, var(--mascot-cur-3) var(--mascot-mix), var(--mascot-anchor));animation-delay:-2.6s}.presence .mascot .curtain.c4{--cur:color-mix(in oklab, var(--mascot-cur-4) var(--mascot-mix), var(--mascot-anchor));animation-delay:-3.9s}.presence .mascot .curtain path{fill:none;stroke:var(--cur);stroke-linecap:round;transition:stroke-width var(--m-normal) var(--ease-out), opacity var(--m-normal) var(--ease-out)}.presence .mascot .curtain .tube{stroke-width:10px;opacity:.2}.presence .mascot .curtain .strand{stroke-width:3.5px;opacity:.65}.presence .mascot .curtain .beads{stroke-width:3.8px;stroke-dasharray:.1 8;opacity:.38}.presence .mascot .curtain .shimmer{stroke:#fff;stroke-width:1.4px;opacity:.3;animation:mascot-shimmer calc(4.4s / var(--motion-scale,1)) var(--ease-in-out) infinite;animation-play-state:var(--ambient-play,running)}.presence .mascot .curtains.long .beads{animation:mascot-flow calc(11s / var(--motion-scale,1)) linear infinite;animation-play-state:var(--ambient-play,running)}.presence .mascot .curtains.long .c2 .beads{animation-duration:calc(13s / var(--motion-scale,1));animation-delay:-2.3s}.presence .mascot .curtains.long .c3 .beads{animation-duration:calc(15s / var(--motion-scale,1));animation-delay:-4.6s}.presence .mascot .curtains.long .c4 .beads{animation-duration:calc(17s / var(--motion-scale,1));animation-delay:-6.9s}.presence .mascot .curtains.long .c2 .shimmer{animation-delay:-.9s}.presence .mascot .curtains.long .c3 .shimmer{animation-delay:-1.8s}.presence .mascot .curtains.long .c4 .shimmer{animation-delay:-2.7s}.presence .mascot .curtains.short{display:none}.presence .mascot .curtains.short .tube{stroke-width:9px}.presence .mascot .curtain.found{--cur:#3ed8a6;display:none}.presence .mascot .glyph{display:none}.presence .mascot .glyph .stroke{fill:none;stroke-width:4.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100}.presence .mascot .glyph.question .stroke{stroke:#c3a5ff}.presence .mascot .glyph.question .dot{fill:#c3a5ff;transform-box:fill-box;transform-origin:50%}.presence .mascot .glyph.heart .stroke{stroke:#ff8ab0}.presence .mascot .glyph.idea .stroke{stroke:#ffe9b0}.presence .mascot .glyph.idea .halo{fill:#ffe9b0;opacity:.14}.presence .mascot .glyph.check .stroke{stroke:#3ed8a6}.presence .mascot .bell{transform-origin:100px 80px;animation:mascot-swell calc(4.6s / var(--motion-scale,1)) var(--ease-in-out) infinite;animation-play-state:var(--ambient-play,running);filter:drop-shadow(0 0 8px var(--mascot-glow));transition:filter var(--m-normal) var(--ease-out), rotate var(--m-normal) var(--ease-out)}.presence .mascot .bell-body{opacity:var(--mascot-bell-op);transition:opacity var(--m-normal) var(--ease-out)}.presence .mascot .bell-stop{transition:stop-color .6s var(--ease-out)}.presence .mascot .bell-stop.s1{stop-color:color-mix(in oklab, var(--mascot-bell-1) var(--mascot-mix), var(--mascot-anchor))}.presence .mascot .bell-stop.s2{stop-color:color-mix(in oklab, var(--mascot-bell-2) var(--mascot-mix), var(--mascot-anchor))}.presence .mascot .bell-stop.s3{stop-color:color-mix(in oklab, var(--mascot-bell-3) var(--mascot-mix), var(--mascot-anchor))}.presence .mascot .bell-sheen{fill:none;stroke:#eafff6;stroke-width:4px;stroke-linecap:round;opacity:.5}.presence .mascot .band{fill:none;stroke:#fff;stroke-linecap:round}.presence .mascot .band.b1{stroke-width:5px;opacity:.1}.presence .mascot .band.b2{stroke-width:4px;opacity:.08}.presence .mascot .cheek{fill:#ff9fb6;opacity:.35;transition:opacity var(--m-normal) var(--ease-out)}.presence .mascot .brow{fill:none;stroke:#fff;stroke-width:3.4px;stroke-linecap:round;opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity var(--m-normal) var(--ease-out), transform var(--m-normal) var(--ease-out)}.presence .mascot .eyes{transition:transform var(--m-normal) var(--ease-out)}.presence .mascot .eye{transform-box:fill-box;transform-origin:50%;transition:transform var(--m-normal) var(--ease-out)}.presence .mascot .blink{transform-box:fill-box;transform-origin:50%;animation:mascot-blink calc(5.2s / var(--motion-scale,1)) var(--ease-in-out) infinite;transition:opacity var(--m-normal) var(--ease-out)}.presence .mascot .ball{fill:#fff}.presence .mascot .pupil{fill:#252c55;transform-box:fill-box;transform-origin:50%;transition:transform var(--m-normal) var(--ease-out)}.presence .mascot .glint{fill:#fff}.presence .mascot .glint.g2{opacity:.85}.presence .mascot .crescent,.presence .mascot .closed{fill:none;stroke:#fff;stroke-linecap:round;opacity:0;transition:opacity var(--m-normal) var(--ease-out)}.presence .mascot .crescent{stroke-width:5px}.presence .mascot .closed{stroke-width:4.6px}.presence .mascot .mouth path,.presence .mascot .mouth circle{transition:opacity var(--m-normal) var(--ease-out), transform var(--m-normal) var(--ease-out)}.presence .mascot .smile{fill:none;stroke:#fff;stroke-width:3.6px;stroke-linecap:round;transform-box:fill-box;transform-origin:50% 0}.presence .mascot .frown{fill:none;stroke:#fff;stroke-width:3.4px;stroke-linecap:round;opacity:0}.presence .mascot .oo{fill:#fff;opacity:0}.presence .mascot .mouth-open{opacity:0;transform-box:fill-box;transform-origin:50% 0}.presence .mascot .mouth-fill{fill:#fff}.presence .mascot .tongue{fill:#ffb3c0}.presence .mascot .sparks{opacity:0}.presence .mascot .sparks path{fill:none;stroke:#c3d0ff;stroke-width:3px;stroke-linecap:round}.presence .mascot .zzz{opacity:0}.presence .mascot .zzz text{fill:#fff;filter:drop-shadow(0 1px 2px #18121e99);opacity:0;transform-box:fill-box;transform-origin:50%;font-size:15px;font-weight:700}.presence .mascot .zzz text+text{font-size:11px}.presence[data-state=idle]{transform:none}.presence[data-state=idle][data-gaze=center] .mascot .eyes{animation:mascot-look 9s var(--ease-in-out) infinite}.presence[data-state=listening],.presence[data-state=loading]{--mascot-bell-op:1}.presence[data-state=listening] .aura,.presence[data-state=loading] .aura{opacity:1;animation-duration:calc(2.4s / var(--motion-scale,1))}.presence[data-state=listening] .mascot .eye{transform:scale(1.1)}.presence[data-state=listening] .mascot .curtains.long .curtain{animation-duration:calc(9s / var(--motion-scale,1))}.presence[data-state=listening] .mascot .curtains.long .beads{opacity:.22;animation-play-state:paused}.presence[data-state=loading] .mascot .curtains.long .tube{stroke-width:13px;opacity:.18}.presence[data-state=loading] .mascot .curtains.long .strand{stroke-width:7px;opacity:.35}.presence[data-state=loading] .mascot .curtains.long .shimmer{opacity:0}.presence[data-state=loading] .mascot .curtains.long .beads{stroke-width:4.2px;opacity:1;animation-duration:calc(2.4s / var(--motion-scale,1))}.presence[data-state=loading] .mascot .curtains.long .c2 .beads{animation-duration:calc(2.8s / var(--motion-scale,1));animation-delay:-.7s}.presence[data-state=loading] .mascot .curtains.long .c3 .beads{animation-duration:calc(3.2s / var(--motion-scale,1));animation-delay:-1.4s}.presence[data-state=loading] .mascot .curtains.long .c4 .beads{animation-duration:calc(3.6s / var(--motion-scale,1));animation-delay:-2.1s}.presence[data-state=loading] .mascot .eye{transform:scale(.85)}.presence[data-state=reading] .mascot .eye{transform:scale(.88)}.presence[data-state=thinking] .mascot .curtains.long{display:none}.presence[data-state=thinking] .mascot .curtains.short,.presence[data-state=thinking] .mascot .glyph.question{display:inline}.presence[data-state=thinking] .mascot .glyph.question .stroke{animation:mascot-drawin calc(5s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-state=thinking] .mascot .glyph.question .dot{animation:mascot-glyphpop calc(5s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-state=thinking] .mascot .eye.l{transform:scale(1.12)}.presence[data-state=thinking] .mascot .eye.r{transform:scale(.76)}.presence[data-state=thinking] .mascot .smile{opacity:0}.presence[data-state=thinking] .mascot .oo{opacity:1}.presence[data-state=speaking]{animation:mascot-talk-body calc(1.1s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-state=speaking] .aura{opacity:1;animation-duration:calc(1.7s / var(--motion-scale,1))}.presence[data-state=speaking] .mascot .bell{animation-duration:calc(2.6s / var(--motion-scale,1))}.presence[data-state=speaking] .mascot .smile{opacity:.35}.presence[data-state=speaking] .mascot .mouth-open{animation:mascot-talk calc(.9s / var(--motion-scale,1)) var(--ease-in-out) infinite}:root[data-voice-sync=on] .presence[data-state=speaking] .mascot .mouth-open{opacity:clamp(0, calc(var(--voice-energy,0) * 6), 1);transform:scaleY(calc(.25 + .75 * var(--voice-energy,0)));transition:none;animation:none}:root[data-voice-sync=on] .presence[data-state=speaking] .mascot .smile{opacity:clamp(.15, calc(1 - var(--voice-energy,0) * 3), .6);transition:none}.presence[data-state=speaking][data-emotion=surprised] .mascot .curtains.long{display:none}.presence[data-state=speaking][data-emotion=surprised] .mascot .curtains.short,.presence[data-state=speaking][data-emotion=surprised] .mascot .glyph.idea{display:inline}.presence[data-state=speaking][data-emotion=surprised] .mascot .glyph.idea .stroke{animation:mascot-drawin calc(5s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-state=speaking][data-emotion=surprised] .mascot .glyph.idea .stroke:nth-of-type(2){animation-delay:.18s}.presence[data-state=speaking][data-emotion=surprised] .mascot .glyph.idea .stroke:nth-of-type(3){animation-delay:.36s}.presence-layer.is-mem-save .presence .mascot .glyph.check{display:inline}.presence-layer.is-mem-save .presence .mascot .glyph.check .stroke{animation:mascot-drawin 2.6s var(--ease-in-out) both}.presence[data-state=acting]{--mascot-bell-1:#63e0bd;--mascot-bell-2:#7dd8c0;--mascot-bell-3:#a4b4ff;--mascot-cur-1:#63e0bd;--mascot-cur-2:#7dd8c0;--mascot-cur-3:#8fe8cc;--mascot-cur-4:#a4b4ff;--mascot-bell-op:.92;--mascot-glow:#3ed8a65c}.presence[data-state=acting] .mascot .curtains.long .curtain.c2{display:none}.presence[data-state=acting] .mascot .curtain.found{--cur:#3ed8a6;display:inline}.presence[data-state=acting] .mascot .curtain.found .beads{stroke-width:4.2px;opacity:1;animation:mascot-flow calc(2.6s / var(--motion-scale,1)) linear infinite}.presence[data-state=acting] .mascot .found-dot{fill:#3ed8a6;animation:mascot-shimmer calc(2.2s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-state=acting] .mascot .blink{opacity:0;animation-play-state:paused}.presence[data-state=acting] .mascot .crescent{opacity:1}.presence[data-emotion=warm],.presence[data-emotion=celebrate],.presence[data-emotion=laugh]{--mascot-bell-1:#ffa5c3;--mascot-bell-2:#c3a5ff;--mascot-bell-3:#a4b4ff;--mascot-cur-1:#ffa5c3;--mascot-cur-2:#ffc3d3;--mascot-cur-3:#c3a5ff;--mascot-cur-4:#a4b4ff;--mascot-bell-op:.92;--mascot-glow:#ff8ab05c}.presence[data-emotion=warm] .mascot .blink,.presence[data-emotion=celebrate] .mascot .blink,.presence[data-emotion=laugh] .mascot .blink{opacity:0;animation-play-state:paused}.presence[data-emotion=warm] .mascot .crescent,.presence[data-emotion=celebrate] .mascot .crescent,.presence[data-emotion=laugh] .mascot .crescent,.presence[data-emotion=warm] .aura{opacity:1}.presence[data-emotion=concerned]{--mascot-bell-1:#d8a58e;--mascot-bell-2:#a49ac0;--mascot-bell-3:#d093a8;--mascot-cur-1:#d8a58e;--mascot-cur-2:#a49ac0;--mascot-cur-3:#b893c0;--mascot-cur-4:#d093a8;--mascot-bell-op:.78;--mascot-glow:var(--glow-warning)}.presence[data-emotion=concerned] .mascot .brow{opacity:.9}.presence[data-emotion=concerned] .mascot .brow.l{transform:rotate(10deg)translateY(2px)}.presence[data-emotion=concerned] .mascot .brow.r{transform:rotate(-10deg)translateY(2px)}.presence[data-emotion=concerned] .mascot .smile{opacity:0}.presence[data-emotion=concerned] .mascot .frown{opacity:1}.presence[data-emotion=concerned] .mascot .eyes{transform:translateY(2px)}.presence[data-emotion=concerned] .mascot .curtains.long .curtain{animation-duration:calc(8.6s / var(--motion-scale,1))}.presence[data-emotion=concerned] .aura{opacity:1}.presence[data-emotion=celebrate] .mascot .curtains.long{display:none}.presence[data-emotion=celebrate] .mascot .curtains.short,.presence[data-emotion=celebrate] .mascot .glyph.heart{display:inline}.presence[data-emotion=celebrate] .mascot .glyph.heart .stroke{animation:mascot-drawin calc(5s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-emotion=celebrate] .mascot .smile,.presence[data-emotion=laugh] .mascot .smile{opacity:0}.presence[data-emotion=celebrate] .mascot .mouth-open,.presence[data-emotion=laugh] .mascot .mouth-open{opacity:1}.presence[data-emotion=celebrate] .mascot .sparks{opacity:1;animation:mascot-shimmer 1.4s var(--ease-in-out) infinite}.presence[data-emotion=celebrate] .mascot .jelly{transform-box:fill-box;transform-origin:50%;animation:mascot-joy calc(1.7s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-emotion=laugh] .mascot .jelly{transform-box:fill-box;transform-origin:50%;animation:mascot-giggle calc(.65s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-emotion=wink] .mascot .eye.r .blink{opacity:0;animation-play-state:paused}.presence[data-emotion=wink] .mascot .eye.r .crescent{opacity:1}.presence[data-emotion=surprised] .mascot .eye{transform:scale(1.25)}.presence[data-emotion=surprised] .mascot .pupil{transform:scale(.8)}.presence[data-emotion=surprised] .mascot .smile{opacity:0}.presence[data-emotion=surprised] .mascot .oo{opacity:1}.presence[data-emotion=surprised] .mascot .bell{animation-duration:calc(2.2s / var(--motion-scale,1))}.presence[data-emotion=curious] .mascot .eye.l{transform:scale(1.14)}.presence[data-emotion=curious] .mascot .eye.r{transform:scale(.78)}.presence[data-emotion=curious] .mascot .brow.r{opacity:.9;transform:translateY(-3px)}.presence[data-emotion=curious] .mascot .smile{opacity:0}.presence[data-emotion=curious] .mascot .oo{opacity:1}.presence[data-emotion=curious] .mascot .jelly{transform-box:fill-box;transform-origin:50%;animation:mascot-tilt calc(3.2s / var(--motion-scale,1)) var(--ease-in-out) infinite}.presence[data-emotion=sleepy]{--mascot-bell-1:#2a6e58;--mascot-bell-2:#3c4a86;--mascot-bell-3:#7a4a62;--mascot-cur-1:#2a6e58;--mascot-cur-2:#3c4a86;--mascot-cur-3:#5a4a86;--mascot-cur-4:#7a4a62;--mascot-bell-op:.6;--mascot-glow:#5a6e8c40}.presence[data-emotion=sleepy] .mascot .blink{opacity:0;animation-play-state:paused}.presence[data-emotion=sleepy] .mascot .closed{opacity:1}.presence[data-emotion=sleepy] .mascot .curtains.long .beads,.presence[data-emotion=sleepy] .mascot .curtains.long .shimmer{opacity:0}.presence[data-emotion=sleepy] .mascot .curtains.long .curtain{animation-duration:calc(11s / var(--motion-scale,1))}.presence[data-emotion=sleepy] .mascot .bell{filter:none;animation-duration:calc(7s / var(--motion-scale,1))}.presence[data-emotion=sleepy] .mascot .cheek{opacity:.2}.presence[data-emotion=sleepy] .mascot .zzz{opacity:1}.presence[data-emotion=sleepy] .mascot .zzz text{animation:mascot-zzz 2.6s var(--ease-in-out) infinite}.presence[data-emotion=sleepy] .mascot .zzz text+text{animation-delay:1.3s}.presence[data-emotion=focused] .mascot .eye{transform:scale(.78)}.presence[data-emotion=focused] .mascot .smile{transform:scaleY(.55)}.presence[data-emotion=focused] .mascot .eyes{animation:none}.presence[data-gaze=down] .mascot .eyes{transform:translateY(4px)}.presence[data-gaze=down] .mascot .pupil{transform:translateY(1.5px)}.presence[data-gaze=left] .mascot .eyes{transform:translate(-6px)}.presence[data-gaze=left] .mascot .pupil{transform:translate(-1.8px)}.presence[data-gaze=right] .mascot .eyes{transform:translate(6px)}.presence[data-gaze=right] .mascot .pupil{transform:translate(1.8px)}.presence[data-gaze=right] .mascot .bell{rotate:-2deg}.presence[data-gaze=up] .mascot .eyes{transform:translateY(-3px)}.presence[data-gaze=up] .mascot .pupil{transform:translateY(-1.5px)}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}@keyframes mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.5%)}}@keyframes mascot-swell{0%,to{transform:scale(1)}50%{transform:scale(1.035,.97)}}@keyframes mascot-blink{0%,91%,96%,to{transform:scaleY(1)}93.5%{transform:scaleY(.1)}}@keyframes mascot-look{0%,34%,to{transform:translate(0)}40%,56%{transform:translate(-4px)}62%,78%{transform:translate(3px)}}@keyframes mascot-curtain{0%,to{transform:skew(0)}50%{transform:skew(3.5deg)}}@keyframes mascot-flow{to{stroke-dashoffset:-100px}}@keyframes mascot-drawin{0%{stroke-dashoffset:100px;opacity:0}8%{opacity:1}38%{stroke-dashoffset:0}82%{stroke-dashoffset:0;opacity:1}94%{opacity:0}to{stroke-dashoffset:100px;opacity:0}}@keyframes mascot-glyphpop{0%,30%{opacity:0;transform:scale(.6)}42%,82%{opacity:1;transform:scale(1)}94%,to{opacity:0;transform:scale(.6)}}@keyframes mascot-shimmer{0%,to{opacity:.45}50%{opacity:1}}@keyframes mascot-talk{0%,to{opacity:.65;transform:scaleY(.2)}45%{opacity:1;transform:scaleY(1)}}@keyframes mascot-talk-body{0%,to{transform:scale(1)}22%{transform:scale(1.05)}48%{transform:scale(1.015)}74%{transform:scale(1.06)}}@keyframes mascot-joy{0%,to{transform:scale(1)}30%{transform:scale(1.08,.92)}60%{transform:scale(.96,1.05)}80%{transform:scale(1.03,.98)}}@keyframes mascot-giggle{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}@keyframes mascot-tilt{0%,to{transform:rotate(0)}50%{transform:rotate(4deg)}}@keyframes mascot-zzz{0%{opacity:0;transform:translateY(3px)}30%,70%{opacity:.85}to{opacity:0;transform:translateY(-8px)}}@keyframes idle-perk{0%,46%,82%,to{opacity:1}56%,72%{opacity:1.35}}@media (prefers-reduced-motion:reduce){.presence .aura,.presence .mascot,.presence .mascot .jelly,.presence .mascot .bell,.presence .mascot .curtain,.presence .mascot .beads,.presence .mascot .shimmer,.presence .mascot .glyph .stroke,.presence .mascot .glyph .dot,.presence .mascot .sparks,.presence .mascot .zzz text,.presence .mascot .eyes,.presence[data-state]{animation:none}.presence .mascot .glyph .stroke{stroke-dashoffset:0;opacity:1}.presence .mascot .glyph .dot{opacity:1}.presence .mascot .zzz text{opacity:.85}.presence[data-state=speaking] .mascot .mouth-open{opacity:1;transform:scaleY(.55)}}.presence-layer.corner .presence{--mascot-fit:1.3}.presence-layer.corner .presence[data-state=listening],.presence-layer.corner .presence[data-state=thinking],.presence-layer.corner .presence[data-state=loading],.presence-layer.corner .presence[data-state=speaking]{animation:none;transform:none}.presence-layer.corner .presence .mascot{margin-top:calc(var(--face-size) * .06);animation:none}.presence-layer.corner .presence .mascot .jelly{animation:none}.presence-layer.corner .presence .mascot .bell{filter:none}.presence-layer.corner .presence .mascot .curtains.long{display:none}.presence-layer.corner .presence .mascot .curtains.short{display:inline}.presence-layer.corner .presence .mascot .band,.presence-layer.corner .presence .mascot .glint.g2,.presence-layer.corner .presence .mascot .bell-sheen{display:none}.presence-layer.corner .presence .mascot .eye{transform:scale(1.3)}.presence-layer.corner .presence .mascot .smile{stroke-width:5px}.presence-layer.corner .presence[data-state=listening] .aura{opacity:1;background:radial-gradient(circle at 50% 42%,#8aa0ffa6,#0000 66%)}.presence-layer.corner .presence[data-state=speaking] .aura{opacity:1;animation-duration:calc(1.2s / var(--motion-scale,1))}.presence-layer.corner .presence .aura{filter:blur(8px);inset:-22%}.presence-layer{z-index:46;pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.presence-positioner{transition:transform var(--m-cinematic) var(--ease-spring);will-change:transform}.presence-layer .presence{--face-size:150px}.presence-layer:not(.corner):not(.idlehome) .presence{--face-size:clamp(160px, 24vmin, 248px)}.presence-layer:not(.corner):not(.idlehome) .presence-positioner{transform:translateY(-9dvh)}.presence-layer.corner .presence-positioner{transform:translate(var(--home-x,calc(-50vw + 33px)), var(--home-y,calc(-50vh + 30px))) scale(calc(var(--home-scale,.14) * var(--dock-zoom,1)))}:root[data-resizing] .presence-positioner{transition:none}.presence-layer.corner{--dock-zoom:1.55}.presence-layer.corner .presence-positioner,.presence-layer.corner .presence{will-change:auto}.presence-scrim{z-index:44;background:radial-gradient(78% 78% at 50% 44%, transparent 38%, rgba(var(--scrim-rgb), .22));opacity:0;pointer-events:none;transition:opacity var(--m-expressive) var(--ease-out);position:absolute;inset:0}.presence-scrim.show{opacity:1;pointer-events:auto}.presence-positioner{position:relative}.presence-seed{pointer-events:none;background:radial-gradient(circle, var(--glow-presence) 0%, transparent 68%);opacity:0;width:150px;height:150px;animation:presence-seed-burst var(--m-cinematic) var(--ease-out) both;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.4)}@keyframes presence-seed-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.4)}28%{opacity:.6}to{opacity:0;transform:translate(-50%,-50%)scale(2.3)}}@media (prefers-reduced-motion:reduce){.presence-seed{display:none}}.center-caption{z-index:47;text-align:center;max-width:min(54ch, calc(100vw - var(--rail-w,0px) - 64px));letter-spacing:-.01em;max-height:calc(58dvh - 232px);color:var(--text-primary);text-wrap:pretty;animation:capIn var(--m-normal) var(--ease-out);pointer-events:none;font-size:clamp(18px,2vw,25px);font-weight:500;line-height:1.3;position:fixed;top:calc(50% - 9dvh + 96px);left:50%;overflow:hidden;transform:translate(-50%)}@keyframes capIn{0%{opacity:0;transform:translateY(6px)}}.center-caption{animation:capInCenter var(--m-normal) var(--ease-out)}@keyframes capInCenter{0%{opacity:0;transform:translate(-50%,6px)}}.presence.is-hidden{opacity:0;pointer-events:none;transform:scale(.6)}.presence.is-hidden,.presence.is-hidden *,.presence.is-hidden :before,.presence.is-hidden :after{animation-play-state:paused!important}.muted-badge{border-radius:var(--r-full);background:var(--surface-elevated);border:1px solid var(--line);width:22px;height:22px;color:var(--warning);place-items:center;display:grid;position:absolute;bottom:-4px;right:-4px}.muted-badge svg{width:13px;height:13px}.suggest{white-space:nowrap;border-radius:var(--r-full);background:var(--surface-glass);border:1px solid var(--line);height:34px;color:var(--text-secondary);-webkit-backdrop-filter:var(--glass-blur-soft);backdrop-filter:var(--glass-blur-soft);transition:all var(--m-fast) var(--ease-out);align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:500;display:inline-flex}.suggest:hover{color:var(--text-primary);background:#6e8cff1a;border-color:#6e8cff66;transform:translateY(-1px)}.suggest svg{opacity:.8;width:14px;height:14px}.suggest .lead{color:var(--text-muted)}.composer{background:var(--surface-elevated);border:1px solid var(--line-strong);border-radius:var(--r-full);width:min(780px,100%);box-shadow:var(--shadow-floating);transition:border-color var(--m-fast), box-shadow var(--m-fast);align-items:center;gap:10px;padding:9px 9px 9px 16px;display:flex}.composer:focus-within{box-shadow:var(--shadow-floating), 0 0 0 4px #6e8cff1f;border-color:#6e8cff80}.composer-input{min-width:0;color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:15px}.composer-input::placeholder{color:var(--text-muted)}.composer-tool{border-radius:var(--r-full);border:1px solid var(--line);width:38px;height:38px;color:var(--text-secondary);transition:all var(--m-fast);background:0 0;flex-shrink:0;place-items:center;display:grid}.composer-tool:hover{color:var(--text-primary);border-color:var(--line-strong);background:var(--surface-glass)}.composer-tool svg{width:18px;height:18px}.composer-tool:disabled{opacity:.4;cursor:not-allowed}.composer-tool:disabled:hover{color:var(--text-secondary);border-color:var(--line);background:0 0}.composer-tool.is-pulsing{color:var(--presence);border-color:color-mix(in oklab, var(--presence) 55%, var(--line));animation:1.05s ease-out 2 composer-tool-pulse}@keyframes composer-tool-pulse{0%{box-shadow:0 0 0 0 color-mix(in oklab, var(--presence) 45%, transparent)}70%{box-shadow:0 0 0 8px color-mix(in oklab, var(--presence) 0%, transparent)}to{box-shadow:0 0 0 0 color-mix(in oklab, var(--presence) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.composer-tool.is-pulsing{animation:none}}.attach-strip{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.attach-chip{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-glass);max-width:100%;color:var(--text-secondary);align-items:center;gap:8px;padding:4px 6px 4px 8px;font-size:12px;display:inline-flex}.attach-chip svg{flex:none;width:14px;height:14px}.attach-thumb{border-radius:var(--r-sm);object-fit:cover;flex:none;width:22px;height:22px}.attach-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.attach-explode{border-radius:var(--r-full);border:1px solid color-mix(in oklab, var(--presence) 45%, transparent);background:color-mix(in oklab, var(--presence) 14%, transparent);color:var(--presence);cursor:pointer;transition:background var(--m-fast), border-color var(--m-fast);flex:none;align-items:center;gap:4px;padding:3px 11px;font-size:11px;font-weight:600;display:inline-flex}.attach-explode:hover{background:color-mix(in oklab, var(--presence) 22%, transparent);border-color:color-mix(in oklab, var(--presence) 60%, transparent)}.attach-compare{background:color-mix(in oklab, var(--presence) 20%, transparent);border-color:color-mix(in oklab, var(--presence) 55%, transparent)}.attach-remove{border-radius:var(--r-full);width:18px;height:18px;color:var(--text-secondary);transition:color var(--m-fast);background:0 0;border:none;flex:none;place-items:center;display:grid}.attach-remove:hover{color:var(--text-primary)}.attach-error{color:var(--warning);align-self:center;font-size:12px}.mic-btn-wrap{flex-shrink:0;position:relative}.mic-btn{border-radius:var(--r-full);color:#fff;background:linear-gradient(180deg, var(--presence), var(--presence-deep));width:44px;height:44px;box-shadow:0 8px 22px -8px var(--glow-presence);transition:transform var(--m-fast), filter var(--m-fast);border:none;flex-shrink:0;place-items:center;display:grid;position:relative}.mic-btn:hover{filter:brightness(1.08)}.mic-btn:active{transform:scale(.96)}.mic-btn svg{width:20px;height:20px}.mic-btn.listening{animation:micpulse 1.6s var(--ease-in-out) infinite}.mic-btn.mic-off{background:var(--surface-elevated-2);color:var(--warning);box-shadow:none}@keyframes micpulse{0%{box-shadow:0 8px 22px -8px var(--glow-presence), 0 0 0 0 #6e8cff80}70%{box-shadow:0 8px 22px -8px var(--glow-presence), 0 0 0 14px #6e8cff00}to{box-shadow:0 8px 22px -8px var(--glow-presence), 0 0 0 0 #6e8cff00}}.live-listen{color:var(--text-secondary);flex:1;align-items:center;gap:10px;font-size:14px;display:flex}.wave{align-items:center;gap:3px;height:22px;display:inline-flex}.wave i{background:var(--presence-soft);width:3px;animation:waveform 1s var(--ease-in-out) infinite;border-radius:2px}.wave i:nth-child(2){animation-delay:.12s}.wave i:nth-child(3){animation-delay:.24s}.wave i:nth-child(4){animation-delay:.36s}.wave i:nth-child(5){animation-delay:.1s}.wave i:nth-child(6){animation-delay:.3s}.wave i:nth-child(7){animation-delay:.2s}@keyframes waveform{0%,to{height:5px}50%{height:20px}}.send-btn{border-radius:var(--r-full);color:#fff;background:linear-gradient(180deg, var(--presence), var(--presence-deep));width:44px;height:44px;box-shadow:0 8px 22px -8px var(--glow-presence);transition:transform var(--m-fast), opacity var(--m-fast);border:none;flex-shrink:0;place-items:center;display:grid}.send-btn:disabled{opacity:.4;cursor:default;box-shadow:none}.send-btn:not(:disabled):hover{filter:brightness(1.08)}.send-btn svg{width:18px;height:18px}.rail-mobile-toggle{display:none}@media (width<=768px){.mavea-app.with-rail{--rail-w:0px}.topbar-session-toggle{display:none}.side-rail{border-right:none;border-top:1px solid var(--line);width:auto;max-height:calc(100dvh - 64px);top:auto;right:0;box-shadow:0 -12px 32px -18px #00000073}.side-rail .rail-head,.side-rail .rail-chat{display:none}.side-rail.chat-open{height:min(68dvh,540px)}.side-rail.chat-open .rail-head{display:flex}.side-rail.chat-open .rail-chat{flex:auto;display:flex}.rail-mobile-toggle{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-elevated);color:var(--text-secondary);font:500 12.5px/1 var(--font);cursor:pointer;align-self:center;align-items:center;gap:7px;margin:8px auto 0;padding:6px 14px;display:inline-flex}.rail-mobile-toggle svg{width:14px;height:14px;color:var(--presence-soft)}.rail-head{padding:12px 16px 10px}.rail-dock{padding:10px 10px calc(12px + env(safe-area-inset-bottom,0px))}.canvas-stage{padding-left:14px;padding-right:14px}.with-rail .canvas-stage,.with-rail .presence-stage{padding-bottom:108px}.with-rail .topbar{gap:8px;padding:0 12px}.with-rail .topbar .workspace-name,.with-rail .topbar .brand-sep,.with-rail .topbar .topbar-icon-btn:not(.appearance-trigger){display:none}}@media (width<=430px){.topbar{gap:8px;padding:0 12px}.more-menu-root,.topbar-divider{display:none!important}}@media (pointer:coarse){:where(button,[role=button],summary,select,label[for]):not(.card *){position:relative}:where(button,[role=button],summary,select,label[for]):not(.card *):before{content:"";border-radius:inherit;pointer-events:auto;background:0 0;width:max(100%,44px);height:max(100%,44px);position:absolute;top:50%;left:50%;translate:-50% -50%}:where(.jelly-mark,.presence,.ic):before{content:none}}.card-eyebrow .ic{filter:drop-shadow(0 0 5px)}.card-grid .card{transition:transform var(--m-normal) var(--ease-out), border-color var(--m-normal), box-shadow var(--m-normal)}.card-grid>div:not(.dimmed):hover .card{border-color:var(--line-strong);transform:translateY(-2px)}.live-chip{font:inherit;color:var(--text-primary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-full);cursor:pointer;transition:border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);padding:7px 14px;font-size:13px}.live-chip:hover:not(:disabled){border-color:var(--presence);background:var(--surface-glass-strong)}.live-chip:disabled{opacity:.5;cursor:default}.settings-session-only{border-radius:var(--r-full);background:var(--surface-glass-strong);border:1px solid var(--line-strong);height:18px;color:var(--warning);letter-spacing:.03em;text-transform:none;align-items:center;padding:0 7px;font-size:10.5px;font-weight:500;display:inline-flex}.settings-transfer-row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px;display:flex}.settings-transfer-btn{font:inherit;color:var(--text-muted);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--m-fast) var(--ease-out), color var(--m-fast) var(--ease-out);background:0 0;padding:4px 10px;font-size:12px}.settings-transfer-btn:hover{border-color:var(--line-strong);color:var(--text-secondary)}.settings-import-error{color:var(--warning);flex:100%;font-size:12px}.ls-tabs{background:var(--track);border:1px solid var(--line);border-radius:var(--r-md);gap:2px;padding:3px;display:flex}.ls-tab{border-radius:calc(var(--r-md) - 2px);color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:none;flex:1;padding:7px 10px;font-size:13px;font-weight:500;transition:background .12s,color .12s}.ls-tab.active{background:var(--surface-elevated);color:var(--text-primary);font-weight:600;box-shadow:0 1px 3px #0000001f}.ls-body{flex-direction:column;gap:14px;max-height:min(480px,100vh - 220px);padding-right:2px;display:flex;overflow-y:auto}.settings-model-connect{flex-direction:column;gap:14px;width:100%;display:flex}.settings-api-key-field{scroll-margin-block:80px}.provider-responsibility{border:1px solid var(--line-strong);border-radius:var(--r-md);background:color-mix(in oklab, var(--surface-elevated) 88%, var(--warning) 12%);color:var(--text-secondary);padding:12px 14px;font-size:11.5px;line-height:1.5}.provider-responsibility strong{color:var(--text-primary);margin-bottom:4px;font-size:12px;display:block}.provider-responsibility p{margin:0}.provider-responsibility p+p{margin-top:8px}.provider-responsibility-link{color:var(--presence);font-size:11px;font-weight:650;text-decoration:none;display:inline-block}.provider-responsibility-links{flex-wrap:wrap;gap:6px 14px;margin-top:8px;display:flex}.provider-responsibility-link:hover,.provider-responsibility-link:focus-visible{text-underline-offset:3px;text-decoration:underline}:root{--fs-scale:1;--fs-2xs:clamp(calc(9px * var(--fs-scale)), calc(2.6cqi * var(--fs-scale)), calc(10.5px * var(--fs-scale)));--fs-xs:clamp(calc(10px * var(--fs-scale)), calc(3cqi * var(--fs-scale)), calc(11.5px * var(--fs-scale)));--fs-sm:clamp(calc(11px * var(--fs-scale)), calc(3.4cqi * var(--fs-scale)), calc(13px * var(--fs-scale)));--fs-md:clamp(calc(12.5px * var(--fs-scale)), calc(3.9cqi * var(--fs-scale)), calc(14.5px * var(--fs-scale)));--fs-lg:clamp(calc(14px * var(--fs-scale)), calc(4.6cqi * var(--fs-scale)), calc(17px * var(--fs-scale)));--fs-xl:clamp(calc(17px * var(--fs-scale)), calc(6cqi * var(--fs-scale)), calc(22px * var(--fs-scale)));--fs-2xl:clamp(calc(22px * var(--fs-scale)), calc(9cqi * var(--fs-scale)), calc(34px * var(--fs-scale)));--fs-stat:clamp(calc(28px * var(--fs-scale)), calc(13cqi * var(--fs-scale)), calc(56px * var(--fs-scale)));--fs-hero:clamp(calc(34px * var(--fs-scale)), calc(17cqi * var(--fs-scale)), calc(72px * var(--fs-scale)));--sp-fluid-xs:clamp(4px, 1.4cqi, 7px);--sp-fluid-sm:clamp(7px, 2.4cqi, 11px);--sp-fluid-md:clamp(11px, 3.4cqi, 16px)}:root[data-font-scale=smaller]{--fs-scale:.9}:root[data-font-scale=larger]{--fs-scale:1.2}.card{container-type:inline-size}.askable{position:relative}.block-actions{z-index:3;pointer-events:none;opacity:0;transition:opacity var(--m-fast) var(--ease-out);align-items:center;gap:6px;display:flex;position:absolute;top:10px;right:10px}:where(.askable,.addable,.flashcardable):hover>.block-actions,:where(.askable,.addable,.flashcardable):focus-within>.block-actions,.focus-hero-card:hover .block-actions{opacity:1}.block-actions:has(.is-flashed){opacity:1}@media (hover:none){.block-actions{opacity:1}}.block-actions>*{pointer-events:auto}:where(.askable,.addable,.flashcardable){--block-actions-w:140px}:where(.askable,.addable,.flashcardable) .tbl-head{padding-right:var(--block-actions-w)}:where(.askable,.addable,.flashcardable) .tbl-head>.card-eyebrow{flex:100%}:is(.askable,.addable,.flashcardable) .card-eyebrow{padding-right:var(--block-actions-w);flex-wrap:wrap}.block-action-pill,.block-ask{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-glass-strong);color:var(--text-secondary);font:inherit;cursor:pointer;transition:color var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out), background var(--m-fast) var(--ease-out);align-items:center;gap:5px;padding:4px 9px;font-size:12px;line-height:1;display:inline-flex}.block-action-pill svg,.block-ask svg{flex:none;width:14px;height:14px}.block-pill-label{letter-spacing:.01em;white-space:nowrap;font-weight:600;display:none}:where(.askable,.addable,.flashcardable):hover .block-action-pill,:where(.askable,.addable,.flashcardable) .block-action-pill:focus-visible,.focus-hero-card:hover .block-action-pill{border-color:var(--presence);color:var(--text-primary)}.picked .block-ask{border-color:var(--presence);color:var(--presence)}.card-grid>div.picked>.card,.card-grid>div.picked>.fit-box .card{border-color:color-mix(in oklab, var(--presence) 55%, var(--line-strong));box-shadow:0 0 0 1px color-mix(in oklab, var(--presence) 45%, transparent), var(--shadow-raised)}.block-cards.is-flashed,:where(.askable,.addable,.flashcardable):hover .block-cards.is-flashed{color:var(--insight);background:color-mix(in oklab, var(--insight) 18%, var(--surface-elevated));border-color:var(--insight)}.block-cards.is-flashed .block-pill-label{display:inline}.card:has(~.block-actions):has(>.card-eyebrow:first-child){padding-top:40px}.fit-box:has(~.block-actions) .card:has(>.card-eyebrow:first-child){padding-top:40px}.zoom-scrim{z-index:80;background:color-mix(in oklab, var(--text-primary) 28%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;padding:28px;display:grid;position:fixed;inset:0}.zoom-sheet{border-radius:var(--r-lg);background:var(--surface-elevated);border:1px solid var(--line-strong);width:min(920px,92vw);max-height:88vh;box-shadow:var(--shadow-modal);padding:32px;position:relative;overflow:auto}.zoom-sheet-toolbar{z-index:1;background:color-mix(in oklab, var(--surface-elevated) 92%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-bottom:1px solid var(--line);justify-content:flex-end;align-items:center;gap:8px;margin:-32px -32px 12px;padding:12px;display:flex;position:sticky;top:0}.zoom-sheet-zoom-btn,.zoom-sheet-x{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-glass-strong);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;place-items:center;display:grid}.zoom-sheet-zoom-btn:hover,.zoom-sheet-x:hover{border-color:var(--presence);color:var(--text-primary)}.zoom-sheet-zoom-btn:disabled{opacity:.4;cursor:default}.zoom-sheet-zoom-btn svg,.zoom-sheet-x svg{width:15px;height:15px}.zoom-sheet-zoom-level{text-align:center;font-variant-numeric:tabular-nums;min-width:3.5ch;color:var(--text-secondary);font-size:.8rem}.zoom-sheet-body{margin-bottom:24px}.zoom-sheet-body .block-actions{display:none}.dash-pill-text{white-space:normal}.dash-pill .cards-pill-btn{flex:none;align-items:center;gap:4px;display:inline-flex}.dash-pill .cards-pill-btn svg{width:13px;height:13px}.card-grid>div.dimmed .block-actions{display:none}@media (hover:none){:is(.askable,.addable,.flashcardable)>.block-actions{opacity:1}.composer-tool,.rail-dock .composer .mic-btn,.rail-dock .composer .send-btn,.rail-dock .composer .composer-tool,.ctrl{width:44px;height:44px}.pill-btn{min-height:44px}}.pin-dock{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.pin-strip,.pin-suggests{flex-wrap:wrap;gap:8px;display:flex}.pin-chip{border-radius:var(--r-full);border:1px solid color-mix(in oklab, var(--presence) 45%, var(--line));background:var(--surface-glass);max-width:100%;color:var(--text-secondary);align-items:center;gap:8px;padding:4px 6px 4px 10px;font-size:12px;display:inline-flex}.pin-chip svg{width:14px;height:14px;color:var(--presence);flex:none}.pin-name{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.pin-remove{border-radius:var(--r-full);width:18px;height:18px;color:var(--text-secondary);cursor:pointer;transition:color var(--m-fast);background:0 0;border:none;flex:none;place-items:center;display:grid}.pin-remove:hover{color:var(--text-primary)}.pin-fuse-chip{color:var(--presence);border-color:color-mix(in oklab, var(--presence) 35%, var(--line))}.pin-fuse-chip:hover{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 10%, transparent)}.ask-hint{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface-glass);color:var(--text-secondary);align-items:center;gap:9px;margin-bottom:14px;padding:9px 12px;font-size:13px;display:flex}.ask-hint>svg{width:15px;height:15px;color:var(--presence);flex:none}.ask-hint strong{color:var(--text-primary);font-weight:600}.ask-hint-x{border-radius:var(--r-full);width:20px;height:20px;color:var(--text-secondary);cursor:pointer;transition:color var(--m-fast);background:0 0;border:none;flex:none;place-items:center;margin-left:auto;display:grid}.ask-hint-x:hover{color:var(--text-primary)}.ask-hint-x svg{width:13px;height:13px}:root[data-theme=light] .card-grid>div.spotlit>.card,:root[data-theme=light] .card-grid>div.spotlit>.fit-box .card{box-shadow:0 0 0 1px color-mix(in oklab, var(--topic-tint) 45%, transparent), var(--shadow-floating), 0 22px 48px -30px color-mix(in oklab, var(--topic-tint) 55%, transparent)}:root[data-voice-sync=on] .presence[data-state=speaking]{transform:scale(calc(1 + .08 * var(--voice-energy,0)));transition:none;animation:none}:root[data-voice-sync=on] .presence-layer.corner .presence[data-state=speaking]{transform:none}:root[data-voice-sync=on] .presence[data-state=speaking] .aura{opacity:calc(.82 + .4 * var(--voice-energy,0))}@media (prefers-reduced-motion:no-preference){.presence-layer:not(.corner) .presence[data-state=idle] .aura{animation:breathe calc(3.8s / var(--motion-scale,1)) var(--ease-in-out) infinite, idle-perk 9s var(--ease-in-out) infinite;animation-play-state:var(--ambient-play,running)}}.oauth-settings,.oauth-rows{gap:12px;display:grid}.oauth-row{border:1px solid var(--grid-line);border-radius:10px;gap:6px;padding:12px;display:grid}.oauth-row-head{gap:2px;display:grid}.oauth-service-name{color:var(--text);font-size:13.5px;font-weight:600}.oauth-service-desc{color:var(--text-muted);font-size:12px}.oauth-tier{letter-spacing:.02em;color:var(--presence);background:color-mix(in oklab, var(--presence) 14%, transparent);border-radius:var(--r-full);vertical-align:middle;margin-left:8px;padding:1px 7px;font-size:10.5px;font-weight:600}.oauth-service-setup{color:var(--text-muted);opacity:.85;font-size:11.5px}.oauth-row-status{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.oauth-connected{color:var(--insight);font-size:13px;font-weight:500}.oauth-disconnect{color:var(--text-muted);border:1px solid var(--grid-line);border-radius:var(--r-sm);cursor:pointer;background:0 0;padding:3px 8px;font-size:12px}.oauth-disconnect:hover{color:var(--danger);border-color:var(--danger)}.oauth-device-prompt{gap:8px;font-size:13px;display:grid}.oauth-user-code{letter-spacing:.1em;color:var(--presence);background:var(--surface-2);border-radius:var(--r-sm);padding:8px 12px;font-family:monospace;font-size:22px;font-weight:700;display:inline-block}.oauth-sub-form{gap:8px;display:grid}.oauth-text-input{border:1px solid var(--grid-line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);box-sizing:border-box;width:100%;padding:8px 10px;font-size:13.5px}.oauth-text-input:focus{border-color:var(--presence);outline:none}.oauth-msg-warn{color:var(--warning);font-size:12px}.oauth-skip-link{color:var(--text-muted);font-size:12px;text-decoration:underline}.oauth-link{color:var(--presence)}.action-edit-fields{gap:10px;margin-block:10px;display:grid}.action-edit-field{gap:4px;display:grid}.action-edit-label{color:var(--text-muted);font-size:12px;font-weight:500}.action-edit-input{border:1px solid var(--grid-line);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);box-sizing:border-box;width:100%;padding:8px 10px;font-size:13.5px}.action-edit-input:focus{border-color:var(--presence);outline:none}.action-edit-textarea{resize:vertical;font-family:inherit}.action-error{align-items:center;gap:8px;margin-top:8px;display:flex}.action-error-msg{color:var(--danger);font-size:13px}.card-grid.bloom-on{--mb-lead:.15s;--mb-seed-dur:calc(var(--m-expressive) * var(--motion-scale));--mb-draw-dur:calc(var(--m-cinematic) * var(--motion-scale));--mb-fill-dur:calc(var(--m-expressive) * var(--motion-scale));--mb-num-dur:calc(var(--m-expressive) * var(--motion-scale));--mb-cap-dur:calc(var(--m-normal) * var(--motion-scale))}@media (prefers-reduced-motion:no-preference){.card-grid.bloom-on .card.reveal{animation:mb-seed var(--mb-seed-dur) var(--ease-out) var(--delay,0s) backwards}.card-grid.bloom-on [data-kind=insight] .big,.card-grid.bloom-on [data-kind=kpi] .kpi-val,.card-grid.bloom-on [data-kind=gauge] .gauge-num{animation:mb-number var(--mb-num-dur) var(--ease-out) calc(var(--delay,0s) + var(--mb-lead)) backwards}.card-grid.bloom-on [data-kind=breakdown] .cat-bar i{animation:mb-wipe var(--mb-fill-dur) var(--ease-out) calc(var(--delay,0s) + var(--mb-lead)) backwards}.card-grid.bloom-on [data-kind=breakdown] .cat-row:nth-of-type(2) .cat-bar i{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + 60ms)}.card-grid.bloom-on [data-kind=breakdown] .cat-row:nth-of-type(3) .cat-bar i{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + .12s)}.card-grid.bloom-on [data-kind=breakdown] .cat-row:nth-of-type(4) .cat-bar i{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + .18s)}.card-grid.bloom-on [data-kind=breakdown] .cat-row:nth-of-type(5) .cat-bar i{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + .24s)}.card-grid.bloom-on [data-kind=breakdown] .cat-row:nth-of-type(n+6) .cat-bar i{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + .3s)}.card-grid.bloom-on [data-kind=bars] .bar-fill{animation:mb-rise var(--mb-fill-dur) var(--ease-out) calc(var(--delay,0s) + var(--mb-lead)) backwards}.card-grid.bloom-on [data-kind=bars] .bar-col:nth-of-type(2) .bar-fill{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + 55ms)}.card-grid.bloom-on [data-kind=bars] .bar-col:nth-of-type(3) .bar-fill{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + .11s)}.card-grid.bloom-on [data-kind=bars] .bar-col:nth-of-type(4) .bar-fill{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + .165s)}.card-grid.bloom-on [data-kind=bars] .bar-col:nth-of-type(5) .bar-fill{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + .22s)}.card-grid.bloom-on [data-kind=bars] .bar-col:nth-of-type(n+6) .bar-fill{animation-delay:calc(var(--delay,0s) + var(--mb-lead) + .275s)}.card-grid.bloom-on [data-kind=chart] .tc-line{stroke-dasharray:1;stroke-dashoffset:0;animation:mb-draw var(--mb-draw-dur) var(--ease-out) calc(var(--delay,0s) + var(--mb-lead)) backwards}.card-grid.bloom-on [data-kind=chart] .tc-area{animation:mb-fade var(--mb-fill-dur) var(--ease-out) calc(var(--delay,0s) + var(--mb-lead) + var(--mb-draw-dur) * .45) backwards}.card-grid.bloom-on [data-kind=gauge] .gauge-arc{animation:mb-arc var(--mb-draw-dur) var(--ease-out) calc(var(--delay,0s) + var(--mb-lead)) backwards}.card-grid.bloom-on [data-kind] .insight-summary{animation:mb-cap var(--mb-cap-dur) var(--ease-out) calc(var(--delay,0s) + var(--mb-lead) + .14s) backwards}}@keyframes mb-seed{0%{box-shadow:0 0 #0000}42%{box-shadow:0 0 34px -2px var(--glow-presence)}to{box-shadow:var(--shadow-raised)}}@keyframes mb-number{0%{opacity:0;filter:blur(7px);transform:translateY(4px)scale(.965)}55%{opacity:1}to{opacity:1;filter:blur();transform:none}}@keyframes mb-wipe{0%{width:0}}@keyframes mb-rise{0%{clip-path:inset(100% 0 0);opacity:.4}to{clip-path:inset(0);opacity:1}}@keyframes mb-draw{0%{stroke-dashoffset:1px}}@keyframes mb-fade{0%{opacity:0}}@keyframes mb-arc{0%{stroke-dashoffset:1px}}@keyframes mb-cap{0%{opacity:0;transform:translateY(5px)}}:root[data-perf=lite]{--ambient-play:paused;--bar-glass-blur:none;--bar-glass-bg:var(--surface-deep);--glass-blur-strong:none;--glass-blur-soft:none;--glass-blur-faint:none}:root[data-perf=lite] .presence .aura{filter:none}:root[data-perf=lite] .transcript,:root[data-perf=lite] .suggest,:root[data-perf=lite] .status-pill{background:var(--surface-elevated)}:root[data-perf=lite] .vlib-bar{background:var(--surface-deep)}:root[data-perf=lite] .fl-composer{background:var(--surface-elevated)}:root[data-perf=lite] .fl-dock,:root[data-perf=lite] .fl-node{background:var(--surface-elevated-2)}:root[data-perf=lite] .fl-composer{-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-perf=lite] .ovw-scrim,:root[data-perf=lite] .lib-ov-scrim{-webkit-backdrop-filter:none;backdrop-filter:none;background:color-mix(in oklab, var(--surface-default) 92%, transparent)}:root[data-perf=lite] .fl-landing{--fl-aurora-blur:none;--fl-aurora-bg-a:var(--fl-aurora-calm-a);--fl-aurora-bg-b:var(--fl-aurora-calm-b)}:root[data-perf=lite] .fl-landing:before,:root[data-perf=lite] .fl-landing:after{animation:none}:root{--app-bg:var(--surface-deep);--font-display:"Newsreader", Georgia, "Times New Roman", serif;--font-body:"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "SF Pro Display", system-ui, sans-serif;--font-ui:var(--font-body);--font-data:"IBM Plex Mono", ui-monospace, "SF Mono", "JetBrains Mono", monospace;--font:var(--font-body);--font-voice:var(--font-display);--voice-size:clamp(calc(19px * var(--fs-scale,1)), calc((15.5px + 1vw) * var(--fs-scale,1)), calc(34px * var(--fs-scale,1)));--voice-lh:1.25;--voice-weight:300;--prov-inferred:#e2a33c;--evidence-strong-bg:#3ed8a624;--evidence-strong-fg:var(--insight);--evidence-partial-bg:#f5b95c24;--evidence-partial-fg:var(--warning)}:root[data-theme=light]{--voice-weight:400;--prov-inferred:#b97a1e;--evidence-strong-bg:#e5f6ee;--evidence-strong-fg:#18a36b;--evidence-partial-bg:#fbf3df;--evidence-partial-fg:#c98a1b}body{background:var(--app-bg)}.voice-text{font-family:var(--font-voice);font-size:var(--voice-size);font-weight:var(--voice-weight);line-height:var(--voice-lh);letter-spacing:-.005em;text-wrap:pretty}.bubble.mavea,.center-caption,.drawer-claim{font-family:var(--font-voice)}.card-eyebrow{font-family:var(--font-data);font-size:calc(11px * var(--fs-scale,1));font-variant-numeric:tabular-nums}.live-badge{font-family:var(--font-data);letter-spacing:.08em;text-transform:uppercase;font-size:11px}.conf{font-family:var(--font-data);font-variant-numeric:tabular-nums}.source-chip .mono{font-family:var(--font-data)}:root[data-presence-style=pip] .presence .mascot{filter:saturate(1.3)}:root[data-presence-style=pip] .presence .mascot .glint.g2{opacity:1}:root[data-presence-style=pip] .presence .mascot .cheek{opacity:.45}:root[data-presence-style=aura] .presence .mascot .jelly{animation:mascot-hueflow calc(9s / var(--motion-scale,1)) linear infinite;animation-play-state:var(--ambient-play,running)}:root[data-presence-style=aura][data-theme=light] .presence{--hue-amp:14deg}@keyframes mascot-hueflow{0%,to{filter:hue-rotate()}50%{filter:hue-rotate(var(--hue-amp,28deg))}}:root[data-presence-style=bead] .presence{--mascot-bell-op:.8}:root[data-presence-style=bead] .presence .mascot .bell{filter:none}:root[data-presence-style=bead] .presence .mascot .curtain .strand,:root[data-presence-style=bead] .presence .mascot .curtain .shimmer{opacity:0}:root[data-presence-style=bead] .presence .mascot .curtain .tube{stroke-width:8px;opacity:.14}:root[data-presence-style=bead] .presence .mascot .curtain .beads{stroke-width:5px;stroke-dasharray:.1 10;opacity:.6}:root[data-presence-style=bead] .presence .mascot .curtains.long .curtain{animation-duration:calc(8s / var(--motion-scale,1))}@media (prefers-reduced-motion:reduce){:root[data-presence-style=aura] .presence .mascot .jelly{animation:none}}.presence-stage.flagship{text-align:left;justify-content:flex-start;align-items:stretch;padding:0;scroll-padding-top:72px;display:block;overflow:hidden auto}.presence-ghost{background:radial-gradient(circle at 50% 42%, color-mix(in oklab, var(--presence) 38%, transparent), color-mix(in oklab, var(--presence) 14%, transparent) 55%, transparent 76%);width:132px;height:132px;animation:1.1s ease-in-out infinite fl-ghostpulse;animation-play-state:var(--ambient-play,running);border-radius:50%}.fl-landing{--fl-blue:#6aa8ff;--fl-pink:#ff7aa0;--fl-col:min(92vw, 1080px);--fl-col-wide:min(94vw, 1180px);color:var(--text-primary);font-family:var(--font);background:radial-gradient(1600px 900px at 50% 160px, color-mix(in oklab, var(--presence) 6%, transparent), transparent 70%);position:relative}@media (width>=2200px){.fl-landing{background:linear-gradient(90deg, color-mix(in oklab, var(--surface-deep) 70%, transparent), transparent 16% 84%, color-mix(in oklab, var(--surface-deep) 70%, transparent)), radial-gradient(1600px 900px at 50% 160px, color-mix(in oklab, var(--presence) 6%, transparent), transparent 70%)}}.fl-landing{--fl-aurora-blur:blur(95px);--fl-aurora-full-a:conic-gradient(from 120deg, #5b50e0, #3a7bd5, #1fb6a6, #7b50e0, #5b50e0);--fl-aurora-full-b:conic-gradient(from 300deg, #7b50e0, #c14fd0, #3a7bd5, #1fb6a6, #7b50e0);--fl-aurora-calm-a:radial-gradient(circle at 38% 34%, #4b53d8, transparent 68%);--fl-aurora-calm-b:radial-gradient(circle at 62% 30%, #9b4fc8, transparent 68%);--fl-aurora-bg-a:var(--fl-aurora-full-a);--fl-aurora-bg-b:var(--fl-aurora-full-b)}.fl-landing:before,.fl-landing:after{content:"";width:min(78vw,1400px);height:min(72vh,860px);filter:var(--fl-aurora-blur);opacity:.32;pointer-events:none;z-index:0;animation:28s ease-in-out infinite fl-flowA;animation-play-state:var(--ambient-play,running);border-radius:46% 54% 60% 40%;position:absolute;top:-160px}.fl-landing:before{background:var(--fl-aurora-bg-a);left:max(-14vw,50% - 1250px)}.fl-landing:after{opacity:.26;background:var(--fl-aurora-bg-b);animation-name:fl-flowB;animation-duration:34s;right:max(-14vw,50% - 1250px)}:root[data-theme=light] .fl-landing{--fl-aurora-full-a:conic-gradient(from 120deg, #7a63ff, #4a90e8, #22c4aa, #9a5ce8, #7a63ff);--fl-aurora-full-b:conic-gradient(from 300deg, #9a5ce8, #d564d8, #4a90e8, #22c4aa, #9a5ce8);--fl-aurora-calm-a:radial-gradient(circle at 38% 34%, #6a71e8, transparent 68%);--fl-aurora-calm-b:radial-gradient(circle at 62% 30%, #b06ad8, transparent 68%)}:root[data-theme=light] .fl-landing:before{mix-blend-mode:multiply;opacity:.22}:root[data-theme=light] .fl-landing:after{mix-blend-mode:multiply;opacity:.18}.fl-section{z-index:1;width:var(--fl-col);margin:96px auto 0;padding:0 24px;position:relative}.fl-section.fl-hero-section{width:100%;max-width:none;margin:0 auto;padding:0 24px}.fl-section.fl-wide{width:var(--fl-col-wide)}.fl-section.fl-cta-section{width:100%;max-width:none;margin-top:40px}.fl-reveal{opacity:1}.fl-deferred{content-visibility:auto;contain-intrinsic-size:auto var(--fl-reserve,480px)}.fl-deferred:empty{min-height:var(--fl-reserve,480px)}.fl-deferred:has(>.fl-section-loading){min-height:var(--fl-reserve,480px)}.fl-section-loading{min-height:var(--fl-reserve,480px)}@media (prefers-reduced-motion:no-preference){.fl-reveal{opacity:0;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transform:translateY(28px)}.fl-reveal.in{opacity:1;transform:none}}.fl-landing{--fl-ink-presence:var(--presence-soft);--fl-ink-insight:var(--insight);--fl-ink-warning:var(--warning);--fl-ink-blue:var(--fl-blue)}:root[data-theme=light] .fl-landing{--fl-ink-presence:var(--presence-deep);--fl-ink-insight:#0c805d;--fl-ink-warning:#96660a;--fl-ink-blue:#2f66c9}.tone-presence{--tone:var(--presence)}.tone-blue{--tone:var(--fl-ink-blue)}.tone-green,.tone-insight{--tone:var(--fl-ink-insight)}.tone-amber,.tone-warning{--tone:var(--fl-ink-warning)}.tone-pink{--tone:var(--fl-pink)}.fl-head{text-align:center;max-width:62ch;margin:0 auto 40px}.fl-eyebrow{font-family:var(--font-data);letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px;font-size:12px}.fl-title{font-family:var(--font-voice);letter-spacing:-.02em;color:var(--text-primary);font-size:clamp(30px,4.4vw,52px);font-weight:400;line-height:1.06}.fl-title em{font-style:italic}.fl-sub{max-width:52ch;color:var(--text-secondary);text-wrap:pretty;margin:16px auto 0;font-size:16.5px;line-height:1.55}.fl-grad{background:linear-gradient(108deg, var(--fl-ink-presence), color-mix(in oklab, var(--fl-ink-presence) 45%, var(--fl-ink-insight)) 52%, var(--fl-ink-insight));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.fl-hero{text-align:center;flex-direction:column;align-items:center;max-width:760px;margin:0 auto;padding-top:64px;display:flex}.fl-hero-orbspace{height:clamp(150px,20vh,195px)}.fl-hero-title{font-family:var(--font-voice);letter-spacing:-.022em;text-wrap:balance;max-width:15ch;color:var(--text-primary);font-size:clamp(34px,7vw,92px);font-weight:400;line-height:1}.fl-hero-title em{background:linear-gradient(108deg, var(--fl-ink-presence), color-mix(in oklab, var(--fl-ink-presence) 45%, var(--fl-ink-insight)) 50%, var(--fl-ink-insight));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-style:italic}.fl-hero-lede{max-width:54ch;color:var(--text-secondary);text-wrap:pretty;margin-top:22px;font-size:18px;line-height:1.6}.fl-composer{border:1px solid var(--line);background:color-mix(in oklab, var(--surface-elevated) 86%, transparent);-webkit-backdrop-filter:blur(20px)saturate(1.1);width:min(680px,94vw);max-width:100%;box-shadow:var(--shadow-floating);border-radius:18px;align-items:center;gap:12px;margin-top:34px;padding:8px 8px 8px 20px;display:flex}.fl-composer:focus-within{outline:2px solid var(--presence-soft);outline-offset:2px}.fl-composer-field{flex:1;min-width:0;display:flex;position:relative}.fl-composer-input{width:100%;min-width:0;font:16.5px var(--font);color:var(--text-primary);background:0 0;border:0;outline:none}.fl-composer-ghost{color:var(--text-muted);font:16.5px var(--font);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;animation:fl-ghosttext .26s var(--ease-out);align-content:center;position:absolute;inset:0;overflow:hidden}@keyframes fl-ghosttext{0%{opacity:0;transform:translateY(4px)}}.fl-composer-actions{flex:none;gap:8px;display:flex}.fl-composer-btn{border:1px solid var(--line);background:var(--surface-glass);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;transition:background var(--m-fast), transform var(--m-fast);border-radius:11px;place-items:center;display:grid}.fl-composer-btn svg{width:18px;height:18px}.fl-composer-btn:hover{background:color-mix(in oklab, var(--presence) 18%, transparent);color:var(--text-primary)}.fl-composer-btn.primary{color:#fff;background:linear-gradient(120deg, var(--presence), var(--fl-blue));box-shadow:0 8px 20px -6px var(--glow-presence);border:none}.fl-composer-btn.primary:hover{transform:scale(1.06)}.fl-hero-hint{font-family:var(--font-data);color:var(--text-faint);margin-top:14px;font-size:12px}.fl-chips{flex-wrap:wrap;justify-content:center;gap:9px;margin:14px 0 0;display:flex}.fl-chip{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-glass);font:13px var(--font);color:var(--text-secondary);cursor:pointer;transition:background var(--m-fast), color var(--m-fast);padding:8px 14px}.fl-chip:hover{background:color-mix(in oklab, var(--presence) 16%, transparent);color:var(--text-primary)}.fl-explore-root{display:inline-flex;position:relative}.fl-explore-trigger{align-items:center;gap:5px;display:inline-flex}.fl-explore-caret{opacity:.55;border-top:3.5px solid;border-left:3px solid #0000;border-right:3px solid #0000;width:0;height:0}.fl-explore-label-compact{width:17px;height:17px;display:none}.fl-explore-item.fl-explore-item--compact{display:none}.fl-explore-menu{min-width:240px;max-width:min(300px,100vw - 24px);top:calc(100% + 10px);left:auto;right:0}.fl-explore-item{border-radius:var(--r-sm);color:inherit;cursor:pointer;text-align:left;font:inherit;width:100%;transition:background var(--m-fast);background:0 0;border:none;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.fl-explore-item:hover{background:var(--surface-glass-strong)}.fl-explore-name{color:var(--text-primary);font-size:13px;font-weight:600}.fl-explore-sub{color:var(--text-muted);font-size:11.5px;line-height:1.3}.fl-orb{width:var(--orb,84px);height:calc(var(--orb,84px) * 1.1);filter:drop-shadow(0 10px 22px var(--glow-presence));flex:none;position:relative}.fl-orb svg{width:100%;height:100%;display:block;overflow:visible}.fl-orb-stop.s1{stop-color:#63e0bd}.fl-orb-stop.s2{stop-color:#a4b4ff}.fl-orb-stop.s3{stop-color:#ffa5c3}.fl-orb-bell{opacity:.95}.fl-orb-sheen{fill:none;stroke:#eafff6;stroke-width:4px;stroke-linecap:round;opacity:.5}.fl-orb-strands path{fill:none;stroke-width:3.5px;stroke-linecap:round;opacity:.7}.fl-orb-strands .c1{stroke:#63e0bd}.fl-orb-strands .c2{stroke:#a4b4ff}.fl-orb-strands .c3{stroke:#c3a5ff}.fl-orb-strands .c4{stroke:#ffa5c3}.fl-orb-cheek{fill:#ff9fb6;opacity:.35}.fl-orb-ball,.fl-orb-glint{fill:#fff}.fl-orb-pupil{fill:#252c55}.fl-orb-smile{fill:none;stroke:#fff;stroke-width:3.6px;stroke-linecap:round}.fl-window{border:1px solid var(--line);background:var(--surface-elevated);box-shadow:var(--shadow-modal);border-radius:24px;overflow:hidden}.fl-window-bar{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:12px 16px;display:flex}.fl-light{border-radius:50%;flex:none;width:10px;height:10px}.fl-light.r{background:#ff5f57}.fl-light.y{background:#febc2e}.fl-light.g{background:#28c840}.fl-window-title{align-items:center;gap:8px;min-width:0;margin-left:6px;display:flex}.fl-orb-inline{filter:none}.fl-window-brand{letter-spacing:-.02em;flex:none;font-size:14px;font-weight:800}.fl-dot-sep{color:var(--text-faint);flex:none}.fl-window-topic{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.fl-live{font-family:var(--font-data);color:var(--fl-ink-insight);flex:none;align-items:center;gap:5px;font-size:10px;display:inline-flex}.fl-live-dot{background:var(--insight);border-radius:50%;width:6px;height:6px}.fl-window-body{grid-template-columns:160px 1fr;min-height:430px;display:grid}.fl-rail{border-right:1px solid var(--line-soft);flex-direction:column;gap:14px;padding:18px 14px;display:flex}.fl-rail-head{font-family:var(--font-data);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);justify-content:space-between;align-items:center;font-size:9px;display:flex}.fl-rail-chip{border:1px solid var(--line);background:var(--surface-glass);color:var(--text-secondary);border-radius:7px;padding:3px 8px}.fl-rail-row{border-radius:9px;padding:9px 10px}.fl-rail-row.active{background:color-mix(in oklab, var(--presence) 12%, transparent);border:1px solid color-mix(in oklab, var(--presence) 28%, transparent)}.fl-rail-title{font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--tone,var(--text-secondary));margin-bottom:4px;font-size:8.5px}.fl-rail-snip{align-items:baseline;gap:8px;display:flex}.fl-rail-time{font-family:var(--font-data);color:var(--text-faint);flex:none;font-size:9px}.fl-rail-text{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.fl-canvas{flex-direction:column;gap:20px;min-width:0;padding:24px 26px 80px;display:flex;position:relative}.fl-finding{position:relative}.fl-finding-kicker{font-family:var(--font-data);letter-spacing:.14em;text-transform:uppercase;color:var(--fl-ink-insight);align-items:center;gap:7px;margin-bottom:9px;font-size:10px;display:flex}.fl-finding-kicker svg{width:12px;height:12px;fill:var(--fl-ink-insight)}.fl-finding-title{letter-spacing:-.01em;color:var(--text-primary);margin-bottom:7px;font-size:20px;font-weight:700}.fl-finding-text{color:var(--text-secondary);max-width:62ch;font-size:14.5px;line-height:1.55}.fl-caret{vertical-align:-2px;background:var(--presence-soft);width:2px;height:1em;animation:1.1s step-end infinite fl-caret;animation-play-state:var(--ambient-play,running);margin-left:2px;display:inline-block}.fl-badge{border-radius:var(--r-sm);font-family:var(--font-data);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;padding:4px 9px;font-size:9.5px;display:inline-flex}.fl-finding .fl-badge{position:absolute;top:0;right:0}.fl-badge.inferred{background:color-mix(in oklab, var(--warning) 16%, transparent);border:1px solid color-mix(in oklab, var(--warning) 36%, transparent);color:var(--fl-ink-warning)}.fl-badge.grounded{background:color-mix(in oklab, var(--insight) 16%, transparent);border:1px solid color-mix(in oklab, var(--insight) 36%, transparent);color:var(--fl-ink-insight)}.fl-fig-label{font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:7px;margin-bottom:10px;font-size:10px;display:flex}.fl-map{border:1px solid var(--line-soft);background:var(--surface-default);border-radius:14px;height:200px;position:relative;overflow:hidden}.fl-map-art{width:100%;height:100%;position:absolute;inset:0}.fl-m-land{fill:color-mix(in oklab, var(--fl-blue) 5%, var(--surface-default))}.fl-m-minor{fill:none;stroke:color-mix(in oklab, var(--text-muted) 14%, transparent);stroke-width:1px}.fl-m-major{fill:none;stroke:color-mix(in oklab, var(--text-muted) 30%, transparent);stroke-width:2.5px;stroke-linecap:round}.fl-m-park{fill:color-mix(in oklab, var(--insight) 18%, transparent)}.fl-m-river{fill:none;stroke:color-mix(in oklab, var(--fl-blue) 30%, var(--surface-default));stroke-width:5px;stroke-linecap:round}.fl-m-water{fill:color-mix(in oklab, var(--fl-blue) 30%, var(--surface-default))}.fl-m-shore{fill:none;stroke:color-mix(in oklab, var(--fl-blue) 45%, var(--surface-elevated));stroke-width:2px}.fl-m-current{fill:none;stroke:color-mix(in oklab, var(--fl-blue) 35%, transparent);stroke-width:1.5px;stroke-linecap:round}.fl-map-zoom{border:1px solid var(--line-strong);box-shadow:var(--shadow-raised);border-radius:7px;flex-direction:column;display:flex;position:absolute;top:8px;left:8px;overflow:hidden}.fl-map-zoom span{background:var(--surface-elevated);width:24px;height:24px;color:var(--text-secondary);place-items:center;font-size:15px;display:grid}.fl-map-zoom span:first-child{border-bottom:1px solid var(--line-soft)}.fl-pin{color:#fff;background:var(--tone,var(--presence));border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid;position:absolute;box-shadow:0 4px 10px #0000004d}.fl-map-attr{font-family:var(--font-data);color:var(--text-faint);font-size:8px;position:absolute;bottom:5px;right:6px}.fl-fig-note{font-family:var(--font-data);color:var(--text-faint);margin-top:8px;font-size:10px}.fl-canvas .fl-finding,.fl-canvas .fl-fig,.fl-canvas .fl-mini,.fl-canvas .fl-dock{opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);transform:translateY(12px)}.fl-reveal.in .fl-canvas :is(.fl-finding,.fl-fig,.fl-mini,.fl-dock){opacity:1;transform:none}.fl-reveal.in .fl-canvas .fl-finding{transition-delay:50ms}.fl-reveal.in .fl-canvas .fl-fig{transition-delay:.4s}.fl-reveal.in .fl-canvas .fl-cardrow .fl-mini:first-child{transition-delay:.85s}.fl-reveal.in .fl-canvas .fl-cardrow .fl-mini:last-child{transition-delay:1s}.fl-reveal.in .fl-canvas .fl-dock{transition-delay:1.2s}.fl-map .fl-pin{opacity:0}.fl-reveal.in .fl-map .fl-pin{animation:fl-pindrop .48s var(--ease-out) forwards;animation-delay:calc(.75s + var(--pin-i,0) * .12s)}.fl-pin.ring:after{content:"";border:2px solid var(--tone,var(--presence));opacity:0;border-radius:50%;position:absolute;inset:-4px}.fl-reveal.in .fl-pin.ring:after{animation:fl-pinring 1s var(--ease-out) 1.35s}.fl-canvas .fl-bar-fill{width:0;transition:width .7s var(--ease-out)}.fl-reveal.in .fl-canvas .fl-bar-fill{width:var(--w,100%);transition-delay:calc(1.05s + var(--bar-i,0) * .15s)}.fl-canvas .fl-tip{opacity:0;transition:opacity .45s var(--ease-out), transform .45s var(--ease-out);transform:translate(-6px)}.fl-reveal.in .fl-canvas .fl-tip{opacity:1;transition-delay:calc(1.45s + var(--tip-i,0) * .15s);transform:none}.fl-canvas .fl-tip svg path{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .5s var(--ease-out)}.fl-reveal.in .fl-canvas .fl-tip svg path{stroke-dashoffset:0;transition-delay:calc(1.55s + var(--tip-i,0) * .15s)}@keyframes fl-pindrop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}@keyframes fl-pinring{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.fl-cardrow{grid-template-columns:1fr 1fr;gap:16px;display:grid}.fl-mini{border:1px solid var(--line-soft);background:var(--surface-default);border-radius:14px;min-width:0;padding:16px}.fl-mini-label{font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:14px;font-size:9.5px}.fl-bar{margin-bottom:13px}.fl-bar-top{justify-content:space-between;margin-bottom:6px;font-size:12.5px;display:flex}.fl-bar-name{color:var(--text-primary);font-weight:600}.fl-bar-tag{color:var(--text-muted)}.fl-bar-track{border-radius:var(--r-full);background:var(--track);height:6px;overflow:hidden}.fl-bar-fill{border-radius:var(--r-full);background:var(--tone,var(--presence));height:100%}.fl-tip{align-items:flex-start;gap:9px;margin-bottom:11px;display:flex}.fl-tip svg{fill:none;width:14px;height:14px;stroke:var(--insight);stroke-width:2.6px;flex:none;margin-top:1px}.fl-tip span{color:var(--text-secondary);font-size:12.5px;line-height:1.4}.fl-dock{border-radius:var(--r-full);border:1px solid var(--line);background:color-mix(in oklab, var(--surface-elevated-2) 88%, transparent);-webkit-backdrop-filter:var(--glass-blur-soft);box-shadow:var(--shadow-floating);align-items:center;gap:12px;padding:7px 7px 7px 8px;display:flex;position:absolute;bottom:18px;left:26px;right:26px}.fl-dock-mic,.fl-dock-send{color:#fff;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;display:grid}.fl-dock-mic{background:linear-gradient(120deg, var(--presence), var(--fl-blue))}.fl-dock-send{background:linear-gradient(120deg, var(--presence), var(--fl-blue) 80%)}.fl-dock-mic svg,.fl-dock-send svg{fill:none;stroke:currentColor;stroke-width:2px;width:15px;height:15px}.fl-dock-text{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.fl-dock-mark{font-family:var(--font-data);border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-glass);color:var(--text-secondary);flex:none;align-items:center;gap:6px;padding:7px 13px;font-size:11px;display:inline-flex}.fl-dock-mark svg{fill:none;stroke:currentColor;stroke-width:2px;width:11px;height:11px}.fl-panels{flex-direction:column;gap:64px;display:flex}.fl-panel{grid-template-columns:1fr 1.05fr;align-items:center;gap:46px;display:grid}.fl-panel.reverse .fl-panel-copy{order:2}.fl-panel.reverse .fl-panel-visual{order:1}.fl-panel-eyebrow{font-family:var(--font-data);letter-spacing:.14em;text-transform:uppercase;color:var(--tone,var(--presence));margin-bottom:14px;font-size:11px}.fl-panel-title{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:14px;font-size:clamp(24px,3vw,36px);font-weight:700;line-height:1.05}.fl-panel-body{color:var(--text-secondary);max-width:42ch;font-size:16.5px;line-height:1.6}.fl-card{border:1px solid var(--line);background:var(--surface-elevated);box-shadow:var(--shadow-raised);border-radius:20px;padding:24px;position:relative;overflow:hidden}.fl-ink-label{font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);margin-bottom:16px;font-size:10px}.fl-ink-plot{position:relative}.fl-ink-bars{align-items:flex-end;gap:14px;height:140px;display:flex}.fl-ink-barcol{flex:1;align-items:flex-end;height:100%;display:flex}.fl-ink-bar{background:linear-gradient(180deg, color-mix(in oklab, var(--presence) 50%, transparent), color-mix(in oklab, var(--fl-blue) 32%, transparent));border-radius:5px 5px 0 0;width:100%}.fl-ink-bar.peak{background:linear-gradient(180deg, var(--presence-soft), var(--fl-blue))}.fl-hl-sweep{background:color-mix(in oklab, var(--presence) 24%, transparent);border:1.5px solid color-mix(in oklab, var(--presence) 55%, transparent);transform-origin:bottom;width:calc(16.6667% - 1.66667px);height:100%;animation:6.5s ease-in-out infinite fl-hlsweep;animation-play-state:var(--ambient-play,running);border-radius:7px;position:absolute;bottom:0;right:0}.fl-hl-chip{border-radius:var(--r-full);border:1px solid var(--line);background:color-mix(in oklab, var(--surface-elevated-2) 92%, transparent);box-shadow:var(--shadow-raised);font:600 12px var(--font);color:var(--text-primary);animation:6.5s ease-in-out infinite fl-hlchip;animation-play-state:var(--ambient-play,running);align-items:center;gap:6px;padding:7px 12px;display:inline-flex;position:absolute;top:-6px;right:12%}.fl-hl-chip svg{fill:none;width:12px;height:12px;stroke:var(--fl-ink-presence);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}@keyframes fl-hlsweep{0%,16%{opacity:0;transform:scaleY(0)}30%,88%{opacity:1;transform:scaleY(1)}97%,to{opacity:0;transform:scaleY(1)}}@keyframes fl-hlchip{0%,30%{opacity:0;transform:translateY(4px)}42%,88%{opacity:1;transform:none}97%,to{opacity:0}}.fl-pen-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.fl-pen-head .fl-ink-label{margin-bottom:0}.fl-pen-value{font:700 15px var(--font);color:var(--text-primary);align-items:baseline;gap:7px;display:inline-flex}.fl-pen-delta{font:600 10px var(--font-data);letter-spacing:.04em;color:var(--insight);font-style:normal}.fl-pen-plot{width:100%;height:164px;overflow:visible}.fl-pen-grid line{stroke:color-mix(in oklab, var(--line) 65%, transparent);stroke-width:1px}.fl-pen-grid line.base{stroke:var(--line);stroke-width:1.5px}.fl-pen-fill-top{stop-color:color-mix(in oklab, var(--fl-blue) 20%, transparent)}.fl-pen-fill-bot{stop-color:transparent}.fl-pen-area{fill:url(#fl-pen-fill);stroke:none}.fl-pen-line{fill:none;stroke:var(--fl-blue);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.fl-pen-dots circle{fill:var(--surface-elevated);stroke:var(--fl-blue);stroke-width:2px}.fl-pen-axis text{font-family:var(--font-data);letter-spacing:.06em;fill:var(--text-faint);text-anchor:middle;font-size:9px}.fl-pen-trend{fill:none;stroke:var(--fl-ink-presence);stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.fl-reveal.in .fl-pen-trend{animation:fs-draw .9s var(--ease-out) .3s forwards}.fl-pen-star{fill:none;stroke:var(--fl-ink-warning);stroke-width:2px;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}.fl-reveal.in .fl-pen-star{animation:fs-draw .6s var(--ease-out) 1.3s forwards}.fl-pen-options{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.fl-pen-chip{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-default);font:600 12.5px var(--font);color:var(--text-secondary);padding:8px 13px;position:relative}.fl-pen-chip.kept{border-color:color-mix(in oklab, var(--insight) 45%, var(--line));color:var(--text-primary)}.fl-pen-strike{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.fl-pen-strike path{fill:none;stroke:var(--danger);stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1px}.fl-reveal.in .fl-pen-strike path{animation:fs-draw .45s var(--ease-out) 1.9s forwards}.fl-walk-stage{align-items:center;gap:20px;display:flex}.fl-walk-presenter{flex-direction:column;flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.fl-walk-say{border:1px solid var(--line);background:var(--surface-default);border-radius:4px 14px 14px;align-self:stretch;padding:11px 13px 12px;position:relative}.fl-walk-caps{min-height:36px;margin-top:8px;display:block;position:relative}.fl-walk-line{font:500 13px/1.35 var(--font);color:var(--text-primary);opacity:0;animation:9s ease-in-out infinite fl-walkcap;animation-play-state:var(--ambient-play,running);position:absolute;inset:0}.fl-walk-line.l2{animation-delay:3s}.fl-walk-line.l3{animation-delay:6s}@keyframes fl-walkcap{0%,2%{opacity:0;transform:translateY(3px)}8%,28%{opacity:1;transform:none}33%,to{opacity:0;transform:none}}.fl-walk-items{flex-direction:column;flex:1.15;gap:12px;display:flex;position:relative}.fl-walk-item{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-default);align-items:center;gap:10px;height:44px;padding:0 14px;display:flex}.fl-walk-k{font:600 10.5px var(--font-data);letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint)}.fl-walk-v{font:700 16px var(--font);color:var(--text-primary)}.fl-walk-up{font:600 11px var(--font-data);color:var(--insight);margin-left:auto}.fl-walk-spark{fill:none;width:100%;height:24px;stroke:var(--fl-blue);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.fl-walk-spot{border:2px solid var(--presence);background:color-mix(in oklab, var(--presence) 9%, transparent);height:52px;box-shadow:0 0 0 4px color-mix(in oklab, var(--presence) 11%, transparent);pointer-events:none;animation:9s ease-in-out infinite fl-walkspot;animation-play-state:var(--ambient-play,running);border-radius:14px;position:absolute;top:-4px;left:-5px;right:-5px}@keyframes fl-walkspot{0%{opacity:0;transform:translateY(0)}4%,30%{opacity:1;transform:translateY(0)}36%,63%{opacity:1;transform:translateY(56px)}69%,94%{opacity:1;transform:translateY(112px)}98%,to{opacity:0;transform:translateY(112px)}}.fl-instruments{grid-template-columns:repeat(4,1fr);align-content:center;gap:12px;min-height:230px;display:grid}.fl-instrument{border-radius:var(--r-md);border:1px solid var(--line-soft);background:var(--surface-default);font:500 10px var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);opacity:0;flex-direction:column;align-items:center;gap:7px;padding:14px 8px;display:flex}.fl-instrument svg{fill:none;width:26px;height:26px;stroke:var(--fl-ink-presence);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.fl-reveal.in .fl-instrument{animation:fs-pop .42s var(--ease-out) forwards;animation-delay:calc(var(--in-i,0) * 90ms)}.fl-ghostwrap{min-height:230px}.fl-ghost-said{align-items:center;gap:10px;margin-bottom:18px;display:flex}.fl-wave{flex:none;align-items:center;gap:3px;height:22px;display:flex}.fl-wave i{border-radius:var(--r-full);background:var(--presence-soft);width:3px;height:20px;animation:1.6s ease-in-out infinite fl-wave;animation-delay:calc(var(--i) * 80ms);animation-play-state:var(--ambient-play,running);transform:scaleY(.3)}.fl-ghost-words{color:var(--text-primary);font-size:14.5px}.fl-ghost-cards{gap:12px;display:flex}.fl-ghost{border:1.5px dashed color-mix(in oklab, var(--presence) 50%, transparent);border-radius:var(--r-md);animation:2.6s ease-in-out infinite fl-ghostform;animation-play-state:var(--ambient-play,running);flex:1;min-width:0;padding:14px}.fl-ghost.delay{border-color:color-mix(in oklab, var(--fl-blue) 50%, transparent);animation-delay:.5s}.fl-ghost-tag{font-family:var(--font-data);color:var(--text-faint);margin-bottom:8px;font-size:9px}.fl-ghost-bars{align-items:flex-end;gap:5px;height:50px;display:flex}.fl-ghost-bars i{background:color-mix(in oklab, var(--presence) 50%, transparent);border-radius:3px 3px 0 0;flex:1}.fl-ghost svg{width:100%;height:50px}.fl-ghost svg polyline{fill:none;stroke:color-mix(in oklab, var(--fl-blue) 60%, transparent);stroke-width:2.5px}.fl-mindmap{height:264px;padding:0}.fl-mindmap-links{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.fl-mindmap-links path{fill:none;stroke:color-mix(in oklab, var(--presence) 40%, transparent);stroke-width:1.4px;stroke-dasharray:2 7;animation:4s linear infinite fl-dash;animation-play-state:var(--ambient-play,running)}.fl-mindmap-hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fl-node{border-radius:var(--r-md);background:color-mix(in oklab, var(--surface-elevated-2) 88%, transparent);-webkit-backdrop-filter:var(--glass-blur-faint);border:1px solid color-mix(in oklab, var(--tone,var(--presence)) 45%, transparent);box-shadow:var(--shadow-raised);white-space:nowrap;animation:7s ease-in-out infinite fl-float;animation-play-state:var(--ambient-play,running);padding:9px 13px;position:absolute;transform:translate(-50%,-50%)}.fl-node-label{color:var(--text-primary);font-size:12.5px;font-weight:700}.fl-node-meta{font-family:var(--font-data);color:var(--tone,var(--presence));margin-top:2px;font-size:9px}.fl-blank{padding:30px}.fl-blank-sentence{font-family:var(--font-voice);color:var(--text-primary);font-size:clamp(19px,2.4vw,26px);line-height:1.55}.fl-blank-num.good{color:var(--insight)}.fl-blank-hole{font-family:var(--font-data);color:var(--fl-ink-presence);animation:2.4s ease-in-out infinite fl-blankglow;animation-play-state:var(--ambient-play,running);border-radius:9px;align-items:center;gap:6px;margin:0 3px;padding:3px 12px;font-size:.6em;display:inline-flex}.fl-blank-pending{color:var(--text-faint)}.fl-blank-options{flex-wrap:wrap;gap:9px;margin-top:22px;display:flex}.fl-blank-btn{border:1px solid var(--line);background:var(--surface-glass);color:var(--text-secondary);cursor:pointer;font:600 13.5px var(--font);transition:background var(--m-fast);border-radius:11px;align-items:center;gap:8px;padding:10px 15px;display:flex}.fl-blank-btn:hover{background:color-mix(in oklab, var(--presence) 16%, transparent)}.fl-blank-icon{color:var(--fl-ink-presence)}.fl-compare{grid-template-columns:1fr 1fr;align-items:stretch;gap:22px;display:grid}.fl-compare-wall,.fl-compare-seen{border-radius:20px;padding:26px;position:relative;overflow:hidden}.fl-compare-wall{border:1px solid var(--line);background:var(--surface-elevated)}.fl-compare-seen{border:1px solid color-mix(in oklab, var(--presence) 35%, transparent);background:linear-gradient(160deg, color-mix(in oklab, var(--presence) 16%, transparent), color-mix(in oklab, var(--insight) 8%, transparent));flex-direction:column;display:flex}.fl-compare-label{font-family:var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:18px;font-size:11px}.fl-compare-label.accent{color:var(--fl-ink-presence)}.fl-wall-lines{opacity:.7;flex-direction:column;gap:9px;display:flex}.fl-wall-line{border-radius:var(--r-full);background:var(--wall,var(--line-strong));opacity:0;height:9px}.fl-compare.sd-play .fl-wall-line{animation:fl-wall-appear .4s var(--ease-out) forwards;animation-delay:calc(var(--wl-i,0) * 65ms)}.fl-wall-line.data{background-image:linear-gradient(color-mix(in oklab, var(--presence) 42%, transparent), color-mix(in oklab, var(--presence) 42%, transparent));background-repeat:no-repeat;background-size:0% 100%}.fl-compare.sd-play .fl-wall-line.data{animation:fl-wall-appear .4s var(--ease-out) forwards, fl-wall-mark .5s var(--ease-out) forwards, fl-wall-dim .6s var(--ease-out) forwards;animation-delay:calc(var(--wl-i,0) * 65ms), calc(1.05s + var(--wl-i,0) * 40ms), calc(1.75s + var(--wl-i,0) * 60ms)}.fl-compare.sd-play .fl-compare-wall{animation:fl-wall-recede .6s var(--ease-out) 2.45s forwards}.fl-compare-hand{font-family:var(--font-voice);color:var(--danger);opacity:0;font-size:21px;font-style:italic;position:absolute;bottom:18px;right:20px;transform:rotate(-7deg)}.fl-compare.sd-play .fl-compare-hand{animation:fl-hand-in .45s var(--ease-out) .8s forwards}.fl-seen-stat{align-items:baseline;gap:10px;display:flex}.fl-seen-num{font-family:var(--font-voice);color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:46px;line-height:1}.fl-seen-delta{color:var(--fl-ink-insight);opacity:0;font-size:15px;font-weight:700}.fl-compare.sd-play .fl-seen-delta{animation:fs-pop .42s var(--ease-out) 2.15s forwards}.fl-seen-cap{color:var(--text-secondary);margin:6px 0 18px;font-size:13.5px}.fl-seen-bars{align-items:flex-end;gap:9px;height:90px;margin-top:auto;display:flex}.fl-seen-bar{background:color-mix(in oklab, var(--presence) 70%, var(--surface-deep));border-radius:4px 4px 0 0;flex:1;height:0}.fl-compare.sd-play .fl-seen-bar{animation:fl-seen-grow .6s var(--ease-out) forwards;animation-delay:calc(1.25s + var(--sb-i,0) * .13s)}.fl-seen-bar.peak{background:linear-gradient(180deg, var(--presence-soft), var(--fl-blue))}.fl-seen-note{font-family:var(--font-data);color:var(--text-faint);margin-top:10px;font-size:10px}@keyframes fl-wall-appear{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes fl-wall-mark{to{background-size:100% 100%}}@keyframes fl-wall-dim{to{opacity:.38}}@keyframes fl-wall-recede{to{opacity:.6;filter:saturate(.6);transform:scale(.985)}}@keyframes fl-hand-in{0%{opacity:0;transform:rotate(-10deg)translateY(4px)}to{opacity:1;transform:rotate(-7deg)}}@keyframes fl-seen-grow{0%{height:0}to{height:var(--h,100%)}}.fl-trust{grid-template-columns:repeat(3,1fr);gap:20px;display:grid;position:relative}.fl-trust-spine{pointer-events:none;opacity:.5;width:96%;height:40px;position:absolute;top:50%;left:2%;transform:translateY(-50%)}.fl-trust-spine path{fill:none;stroke:color-mix(in oklab, var(--presence) 40%, transparent);stroke-width:1.4px;stroke-dasharray:1;stroke-dashoffset:1px}.fl-reveal.in .fl-trust-spine path{animation:fs-draw 1.2s var(--ease-out) .15s forwards}.fl-trust-card{border:1px solid var(--line);background:var(--surface-elevated);opacity:0;transition:opacity .5s var(--ease-out), transform .5s var(--ease-out);border-top:3px solid #0000;border-radius:20px;padding:26px;position:relative;transform:translateY(10px)}.fl-trust-card.grounded{border-top-color:color-mix(in oklab, var(--insight) 55%, transparent)}.fl-trust-card.inferred{border-top-color:color-mix(in oklab, var(--warning) 55%, transparent)}.fl-trust-card.keys{border-top-color:color-mix(in oklab, var(--fl-blue) 55%, transparent)}.fl-reveal.in .fl-trust-card{opacity:1;transform:none}.fl-reveal.in .fl-trust-card.grounded{transition-delay:.25s}.fl-reveal.in .fl-trust-card.inferred{transition-delay:.45s}.fl-reveal.in .fl-trust-card.keys{transition-delay:.65s}.fl-trust-demo{border-top:1px dashed var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;margin-top:16px;padding-top:14px;display:flex}.fl-src-chip{font-family:var(--font-data);border-radius:var(--r-sm);border:1px solid color-mix(in oklab, var(--insight) 30%, var(--line));background:color-mix(in oklab, var(--insight) 8%, transparent);color:var(--text-secondary);opacity:0;padding:5px 9px;font-size:10px}.fl-reveal.in .fl-src-chip{animation:fs-pop .42s var(--ease-out) forwards;animation-delay:calc(.8s + var(--src-i,0) * .14s)}.fl-stamp-value{font:600 13.5px var(--font);color:var(--text-primary)}.fl-stamp-badge{opacity:0}.fl-reveal.in .fl-stamp-badge{animation:fl-stamp .34s var(--ease-out) 1.1s forwards}@keyframes fl-stamp{0%{opacity:0;transform:scale(1.5)rotate(-6deg)}to{opacity:1;transform:none}}.fl-key-boundary{border:1.5px dashed color-mix(in oklab, var(--fl-blue) 40%, var(--line));border-radius:var(--r-md);align-items:center;gap:10px;padding:10px 13px;display:inline-flex;position:relative}.fl-key-boundary i{font:500 9px var(--font-data);letter-spacing:.08em;text-transform:uppercase;color:var(--fl-ink-blue);background:var(--surface-elevated);padding:0 5px;font-style:normal;position:absolute;top:-7px;left:10px}.fl-key-glyph,.fl-key-lock{fill:none;width:18px;height:18px;stroke:var(--fl-ink-blue);stroke-width:1.8px;stroke-linecap:round}.fl-key-glyph{opacity:0}.fl-reveal.in .fl-key-glyph{animation:fl-key-slide .5s var(--ease-out) 1.3s forwards}.fl-reveal.in .fl-key-lock{animation:fl-lock-click .32s var(--ease-out) 1.85s}@keyframes fl-key-slide{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes fl-lock-click{0%,to{transform:none}50%{transform:scale(1.08)}}.fl-trust-card>.fl-badge{margin-bottom:18px}.fl-trust-icon{background:color-mix(in oklab, var(--fl-blue) 16%, transparent);border:1px solid color-mix(in oklab, var(--fl-blue) 32%, transparent);border-radius:11px;place-items:center;width:42px;height:42px;margin-bottom:18px;display:grid}.fl-trust-icon svg{fill:none;width:20px;height:20px;stroke:var(--fl-blue);stroke-width:2px}.fl-trust-title{color:var(--text-primary);margin-bottom:8px;font-size:18px;font-weight:700}.fl-trust-body{color:var(--text-secondary);font-size:14px;line-height:1.55}.fl-tabs{flex-wrap:wrap;justify-content:center;gap:9px;margin-bottom:32px;display:flex}.fl-tab{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-glass);color:var(--text-secondary);font:600 13.5px var(--font);cursor:pointer;white-space:nowrap;transition:border-color var(--m-fast), color var(--m-fast), background var(--m-fast);padding:9px 18px}.fl-tab:hover{border-color:var(--line-strong);color:var(--text-primary)}.fl-tab.active{color:#fff;background:linear-gradient(120deg, var(--presence), var(--fl-blue));box-shadow:0 8px 20px -6px var(--glow-presence);border-color:#0000}.fl-demo-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,258px),1fr));gap:18px;display:grid}.fl-demo-card{text-align:left;cursor:pointer;border:1px solid var(--line);border-left:3px solid var(--accent,var(--presence));background:radial-gradient(150px 100px at top right, color-mix(in oklab, var(--accent,var(--presence)) 8%, transparent), transparent 70%), var(--surface-elevated);width:100%;box-shadow:var(--shadow-raised);transition:transform var(--m-fast), box-shadow var(--m-fast), border-color var(--m-fast);border-radius:16px;flex-direction:column;padding:18px;font-family:inherit;display:flex}.fl-demo-card:hover{box-shadow:var(--shadow-floating);border-color:color-mix(in oklab, var(--presence) 40%, transparent);transform:translateY(-3px)}.fl-demo-top{align-items:center;gap:11px;margin-bottom:14px;display:flex}.fl-demo-avatar{color:#fff;background:linear-gradient(135deg, var(--accent,var(--presence)), color-mix(in oklab, var(--accent,var(--presence)) 66%, black));border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:15px;font-weight:700;display:grid}.fl-demo-avatar.emoji{color:var(--text-primary);background:color-mix(in oklab, var(--accent,var(--presence)) 18%, transparent);font-size:19px}.fl-demo-who{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.fl-demo-name{color:var(--text-primary);text-wrap:balance;font-size:15px;font-weight:700;line-height:1.25}.fl-demo-role{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.fl-demo-badge{font-family:var(--font-data);letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r-sm);background:color-mix(in oklab, var(--accent,var(--presence)) 16%, transparent);color:var(--accent-ink,var(--accent,var(--presence)));white-space:nowrap;flex:none;align-self:flex-start;padding:3px 7px;font-size:8.5px}.fl-demo-blurb{color:var(--text-secondary);min-height:42px;margin-bottom:18px;font-size:14px;line-height:1.5}.fl-demo-play{color:var(--accent-ink,var(--accent,var(--presence)));align-items:center;gap:8px;margin-top:auto;font-size:13px;font-weight:600;display:flex}:root[data-theme=light] .fl-demo-card{--accent-ink:color-mix(in oklab, var(--accent,var(--presence)) 62%, var(--text-primary))}.fl-demo-play svg{width:13px;height:13px;transition:transform var(--m-fast)}.fl-demo-card:hover .fl-demo-play svg{transform:translate(2px)}.fl-demo-card:disabled{cursor:default}.fl-demo-card:disabled:not(.is-loading){opacity:.5}.fl-demo-card:disabled:hover{box-shadow:var(--shadow-raised);transform:none}.fl-demo-spinner{animation:.8s linear infinite spin}.fl-tiles{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px;display:grid}.fl-tile{border:1px solid var(--line);background:var(--surface-elevated);border-radius:18px;flex-direction:column;gap:14px;padding:18px;display:flex;overflow:hidden}.fl-tile-label{font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-size:10px}.fl-tile-body{flex:1;justify-content:center;align-items:center;min-height:130px;display:flex}.fl-tiles-foot{text-align:center;margin-top:22px}.fl-link-btn{font-family:var(--font-data);color:var(--text-muted);cursor:pointer;transition:color var(--m-fast);background:0 0;border:none;font-size:12px}.fl-link-btn:hover{color:var(--fl-ink-presence)}.fl-funnel{flex-direction:column;align-items:center;gap:5px;width:100%;display:flex}.fl-funnel-row{border-radius:var(--r-sm);color:#fff;justify-content:space-between;align-items:center;height:25px;padding:0 11px;font-size:11px;font-weight:600;display:flex}.fl-funnel-val{opacity:.85;font-weight:500}.fl-funnel-row.tone-a{background:var(--presence)}.fl-funnel-row.tone-b{background:color-mix(in oklab, var(--presence) 78%, var(--insight))}.fl-funnel-row.tone-c{background:color-mix(in oklab, var(--presence) 45%, var(--insight))}.fl-funnel-row.tone-d{background:color-mix(in oklab, var(--insight) 80%, var(--presence));justify-content:center}.fl-funnel-row.tone-e{background:var(--insight);justify-content:center}.fl-radar{align-items:center;gap:14px;display:flex}.fl-radar svg{width:148px;height:136px}.fl-radar-grid{fill:none;stroke:var(--line-soft);stroke-width:1px}.fl-radar-mid{fill:color-mix(in oklab, var(--text-muted) 18%, transparent);stroke:color-mix(in oklab, var(--text-muted) 50%, transparent);stroke-width:1px}.fl-radar-you{fill:color-mix(in oklab, var(--presence) 22%, transparent);stroke:var(--presence);stroke-width:1.6px}.fl-radar-legend{flex-direction:column;gap:8px;font-size:11.5px;display:flex}.fl-radar-legend span{color:var(--text-secondary);align-items:center;gap:7px;display:flex}.fl-radar-legend span:before{content:"";border-radius:50%;width:9px;height:9px}.fl-radar-legend .dot-you:before{background:var(--presence)}.fl-radar-legend .dot-band:before{background:var(--text-muted)}.fl-donut{align-items:center;gap:18px;display:flex}.fl-donut svg{width:92px;height:92px;transform:rotate(-90deg)}.fl-donut-arc{fill:none;stroke-width:9px}.fl-donut-arc.tone-presence{stroke:var(--presence)}.fl-donut-arc.tone-insight{stroke:var(--insight)}.fl-donut-arc.tone-warning{stroke:var(--warning)}.fl-donut-legend{flex-direction:column;gap:7px;font-size:11.5px;display:flex}.fl-donut-legend span{color:var(--text-secondary);align-items:center;gap:8px;display:flex}.fl-donut-legend span:before{content:"";background:var(--tone,var(--presence));border-radius:50%;width:9px;height:9px}.fl-donut-legend b{color:var(--text-muted);margin-left:auto;font-weight:500}.fl-network svg{width:100%;height:130px}.fl-network line{stroke:var(--line-soft);stroke-width:1.5px}.fl-network .n-insight{fill:var(--insight)}.fl-network .n-warning{fill:var(--warning)}.fl-network .n-presence{fill:var(--presence)}.fl-heat{grid-template-columns:60px 1fr 1fr 1fr;gap:4px;width:100%;font-size:9.5px;display:grid}.fl-heat-h{font-family:var(--font-data);color:var(--text-faint);text-align:center}.fl-heat-region{color:var(--text-secondary);align-items:center;display:flex}.fl-heat-cell{text-align:center;color:var(--text-primary);border-radius:5px;padding:7px 0}.fl-conf{flex-direction:column;gap:12px;width:100%;display:flex}.fl-conf-cap{color:var(--text-secondary);font-size:12.5px}.fl-conf-stat{align-items:baseline;gap:8px;display:flex}.fl-conf-num{color:var(--fl-ink-insight);font-size:34px;font-weight:700;line-height:1}.fl-conf-sub{color:var(--text-muted);font-size:11px}.fl-conf-bars{gap:4px;height:8px;display:flex}.fl-conf-bars i{border-radius:var(--r-full)}.fl-conf-bars .c1{background:var(--insight)}.fl-conf-bars .c2{background:color-mix(in oklab, var(--insight) 70%, white)}.fl-conf-bars .c3{background:color-mix(in oklab, var(--insight) 45%, white)}.fl-conf-bars .c4{background:var(--warning)}.fl-conf-legend{color:var(--text-muted);flex-wrap:wrap;gap:10px;font-size:10.5px;display:flex}.fl-conf-legend span{align-items:center;gap:5px;display:flex}.fl-conf-legend span:before{content:"";border-radius:50%;width:8px;height:8px}.fl-conf-legend .c1:before{background:var(--insight)}.fl-conf-legend .c2:before{background:color-mix(in oklab, var(--insight) 70%, white)}.fl-conf-legend .c4:before{background:var(--warning)}.fl-surfaces{grid-template-columns:1fr 1fr;gap:22px;display:grid}.fl-surface{border:1px solid var(--line);background:var(--surface-elevated);border-radius:22px;flex-direction:column;padding:30px;display:flex}.fl-surface.live{border-color:color-mix(in oklab, var(--presence) 40%, transparent);background:linear-gradient(160deg, color-mix(in oklab, var(--presence) 18%, transparent), color-mix(in oklab, var(--insight) 8%, transparent))}.fl-surface-tag{font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;margin-bottom:14px;font-size:11px}.fl-surface-tag.insight{color:var(--fl-ink-insight)}.fl-surface-tag.live{color:var(--fl-ink-presence)}.fl-surface-title{letter-spacing:-.01em;color:var(--text-primary);margin-bottom:10px;font-size:22px;font-weight:700}.fl-surface-body{color:var(--text-secondary);margin-bottom:18px;font-size:14.5px;line-height:1.55}.fl-surface-chips{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:18px;display:flex}.fl-surface-chip{font-family:var(--font-data);border-radius:var(--r-sm);background:var(--surface-glass-strong);border:1px solid var(--line);color:var(--text-secondary);padding:6px 11px;font-size:11px}.fl-ghost-btn{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-glass);color:var(--text-primary);cursor:pointer;font:600 14px var(--font);transition:background var(--m-fast);align-self:flex-start;margin-top:auto;padding:13px 22px}.fl-ghost-btn:hover{background:color-mix(in oklab, var(--presence) 14%, transparent)}.fl-ghost-btn.live{color:#fff;background:linear-gradient(120deg, var(--presence), var(--fl-blue));box-shadow:0 8px 22px -8px var(--glow-presence);border:none}.fl-cta{text-align:center;z-index:1;padding:110px 24px;position:relative;overflow:hidden}.fl-cta-ghost{width:74px;height:54px;color:var(--text-primary);opacity:0;pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.fl-cta-ghost svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.fl-reveal.in .fl-cta-ghost{animation:fl-ghost-settle .9s var(--ease-out) forwards, fl-ghost-drift 40s ease-in-out infinite;animation-delay:calc(var(--g-i,0) * .12s), calc(1.2s + var(--g-i,0) * .12s);animation-play-state:running, var(--ambient-play,running)}@keyframes fl-ghost-settle{0%{opacity:0;transform:translate(calc(-50% + var(--gx,0px)), calc(-50% + var(--gy,0px))) scale(.9)}to{opacity:var(--go,.12);transform:translate(-50%,-50%)}}@keyframes fl-ghost-drift{0%,to{translate:0}50%{translate:0 -8px}}.fl-cta-orb{animation:5s ease-in-out infinite fl-breathe;animation-play-state:var(--ambient-play,running);margin:0 auto 30px}.fl-cta-title{font-family:var(--font-voice);letter-spacing:-.022em;text-wrap:balance;max-width:16ch;color:var(--text-primary);margin:0 auto;font-size:clamp(34px,5.4vw,72px);font-weight:400;line-height:1}.fl-cta-title em{font-style:italic}.fl-cta-btn{border-radius:var(--r-full);cursor:pointer;font:700 17px var(--font);color:#fff;background:linear-gradient(180deg, var(--presence-soft), var(--presence) 52%, var(--presence-deep));box-shadow:inset 0 1px 0 oklab(100% 0 5.96046e-8/.35), 0 18px 44px -10px var(--glow-presence);transition:transform var(--m-normal), box-shadow var(--m-normal);border:none;align-items:center;gap:11px;margin-top:36px;padding:19px 34px;display:inline-flex}.fl-cta-btn svg{fill:none;stroke:currentColor;stroke-width:2.3px;width:19px;height:19px}.fl-cta-btn:hover{box-shadow:inset 0 1px 0 oklab(100% 0 5.96046e-8/.35), 0 26px 58px -10px var(--glow-presence);transform:translateY(-3px)}.fl-cta-note{font-family:var(--font-data);color:var(--text-faint);margin-top:18px;font-size:12px}.fl-nav{align-items:center;gap:18px;display:flex}.fl-nav-link{min-width:48px;min-height:48px;font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);cursor:pointer;transition:color var(--m-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0 4px;font-size:12px;display:inline-flex}.fl-nav-link:hover{color:var(--text-primary)}.fl-nav-cta{border-radius:var(--r-full);cursor:pointer;min-height:48px;font:700 13px var(--font);color:#fff;background:linear-gradient(180deg, var(--presence-soft), var(--presence) 52%, var(--presence-deep));box-shadow:inset 0 1px 0 oklab(100% 0 5.96046e-8/.35), 0 8px 22px -8px var(--glow-presence);white-space:nowrap;transition:transform var(--m-fast);border:none;padding:10px 18px}[data-theme=light] .fl-nav-cta{box-shadow:inset 0 1px oklab(100% 0 5.96046e-8/.3),0 4px 16px -4px #3346b059}.fl-nav-cta:hover{transform:translateY(-1px)}.fl-nav-theme{border-radius:var(--r-md);width:48px;height:48px;color:var(--text-secondary);cursor:pointer;transition:color var(--m-fast), border-color var(--m-fast), background var(--m-fast);background:0 0;border:1px solid #0000;flex:0 0 48px;place-items:center;padding:0;display:inline-grid}.fl-nav-theme:hover{color:var(--text-primary);border-color:var(--line);background:var(--surface-glass)}.fl-nav-theme:focus-visible{outline:2px solid var(--presence);outline-offset:2px}.fl-nav-theme svg{width:16px;height:16px}.fl-nav .topbar-search-btn{min-width:48px;min-height:48px;color:var(--text-secondary);justify-content:center;font-size:12px;font-weight:400}.fl-nav .topbar-search-btn:hover{color:var(--text-primary)}.fl-theme-fab{z-index:40;position:fixed;bottom:18px;right:18px}.fl-theme-fab .fl-nav-theme{border:1px solid var(--line);border-radius:var(--r-full);background:color-mix(in oklab, var(--surface-elevated) 82%, transparent);-webkit-backdrop-filter:var(--glass-blur-soft);box-shadow:var(--shadow-raised)}.fl-theme-fab .fl-nav-theme:hover{border-color:var(--line-strong);background:var(--surface-elevated)}:root[data-theme=light] .fl-landing :is(.fl-chip,.fl-composer-btn:not(.primary),.fl-tab:not(.active),.fl-blank-btn,.fl-dock-mark,.fl-rail-chip,.fl-ghost-btn:not(.live),.fs-after-item){border-color:var(--line-strong);background:oklab(100% 0 5.96046e-8/.72)}@media (width>=1920px){.fl-landing{--fl-col:min(74vw, 1280px);--fl-col-wide:min(78vw, 1480px)}.fl-section{margin-top:128px}.fl-hero{max-width:880px}.fl-hero-orbspace{height:clamp(170px,20vh,230px)}.fl-hero-title{font-size:clamp(92px,5vw,116px)}.fl-hero-lede{font-size:19px}.fl-title{font-size:clamp(52px,2.6vw,62px)}.fl-sub{font-size:17.5px}.fl-cta-title{font-size:clamp(72px,4vw,92px)}.fl-demo-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.fl-window-body{grid-template-columns:190px 1fr}}@media (width<=980px){.fl-trust{grid-template-columns:1fr 1fr}.fl-trust-card:last-child{grid-column:1/-1}}@media (width<=760px){.fl-nav{gap:8px}.fl-theme-fab{bottom:8px;right:8px}.fl-window-body{grid-template-columns:1fr}.fl-rail{display:none}.fl-panel,.fl-panel.reverse{grid-template-columns:1fr;gap:24px}.fl-panel.reverse .fl-panel-copy,.fl-panel.reverse .fl-panel-visual{order:0}.fl-compare,.fl-trust,.fl-surfaces,.fl-cardrow{grid-template-columns:1fr}.fl-nav-link:not(.fl-explore-trigger),.fl-explore-label-full{display:none}.fl-explore-label-compact{display:inline-flex}.fl-explore-item.fl-explore-item--compact{display:flex}.fl-explore-item--compact:last-of-type{border-bottom:1px solid var(--line-soft);margin-bottom:5px;padding-bottom:11px}.fl-node{white-space:normal;max-width:40vw;padding:7px 10px}.fl-node-label{font-size:11px}.fs-grid{grid-template-columns:1fr}}@media (width<=430px){.fl-nav{gap:8px}.fl-instruments{grid-template-columns:repeat(2,1fr)}.fl-nav-theme,.fl-nav .topbar-search-btn{flex-basis:40px;min-width:40px}.fl-nav-cta{padding:10px 13px;font-size:12px}}@media (width<=390px){.fl-section{padding:0 16px}.fl-dock-mark{display:none}}@media (width<=360px){.topbar .brand-name{display:none}}@media (prefers-reduced-motion:reduce){.fl-landing:before,.fl-landing:after,.fl-caret,.fl-hl-sweep,.fl-hl-chip,.fl-composer-ghost,.fl-wave i,.fl-ghost,.fl-mindmap-links path,.fl-node,.fl-blank-hole,.fl-cta-orb,.presence-ghost{animation:none!important}.fl-hl-sweep,.fl-hl-chip{opacity:1;transform:none}.fl-pen-trend,.fl-pen-star,.fl-pen-strike path{stroke-dashoffset:0;animation:none!important}.fl-walk-spot,.fl-walk-line{animation:none!important}.fl-walk-spot{opacity:1;transform:translateY(0)}.fl-walk-line.l1{opacity:1}.fl-instrument{opacity:1;animation:none!important}.fl-canvas :is(.fl-finding,.fl-fig,.fl-mini,.fl-dock,.fl-tip),.fl-map .fl-pin{opacity:1;transition:none;transform:none;animation:none!important}.fl-canvas .fl-bar-fill{width:var(--w,100%);transition:none}.fl-canvas .fl-tip svg path{stroke-dashoffset:0;transition:none}.fl-pin.ring:after{display:none}.fl-wall-line,.fl-compare-hand,.fl-seen-delta{opacity:1;animation:none!important}.fl-wall-line.data{opacity:.38;background-size:100% 100%}.fl-compare-wall{opacity:.6;filter:saturate(.6);animation:none!important}.fl-seen-bar{height:var(--h,100%);animation:none!important}.presence-ghost{opacity:.8}.fl-landing{--fl-aurora-blur:none;--fl-aurora-bg-a:var(--fl-aurora-calm-a);--fl-aurora-bg-b:var(--fl-aurora-calm-b)}}@keyframes fl-ghostpulse{0%,to{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@keyframes fl-flowA{0%,to{transform:translate(-12%)rotate(-8deg)scale(1.1)}50%{transform:translate(10%,4%)rotate(-4deg)scale(1.25)}}@keyframes fl-flowB{0%,to{transform:translate(8%,2%)rotate(6deg)scale(1.2)}50%{transform:translate(-8%,-3%)rotate(10deg)scale(1.05)}}@keyframes fl-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fl-caret{0%,to{opacity:0}50%{opacity:1}}@keyframes fl-ghostform{0%,to{opacity:.55;transform:translateY(6px)scale(.99)}50%{opacity:.9;transform:none}}@keyframes fl-dash{to{stroke-dashoffset:-32px}}@keyframes fl-wave{0%,to{transform:scaleY(.22)}50%{transform:scaleY(1)}}@keyframes fl-float{0%,to{transform:translate(-50%,-50%)}50%{transform:translate(-50%,calc(-50% - 6px))}}@keyframes fl-blankglow{0%,to{box-shadow:0 0 0 1px color-mix(in oklab, var(--presence) 50%, transparent), 0 0 14px color-mix(in oklab, var(--presence) 30%, transparent);background:color-mix(in oklab, var(--presence) 12%, transparent)}50%{box-shadow:0 0 0 1px color-mix(in oklab, var(--presence) 90%, transparent), 0 0 28px color-mix(in oklab, var(--presence) 55%, transparent);background:color-mix(in oklab, var(--presence) 24%, transparent)}}.fs-root{flex-direction:column;gap:18px;display:flex}.fs-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:10px;display:grid}.fs-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-elevated);transition:transform .24s var(--ease-out), border-color .24s var(--ease-out), box-shadow .24s var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.fs-card:hover{border-color:color-mix(in oklab, var(--presence) 40%, var(--line));box-shadow:var(--shadow-raised);transform:translateY(-3px)}.fs-card-body{flex-direction:column;gap:6px;padding:16px 18px 18px;display:flex}.fs-card-name{color:var(--text-primary);margin:0;font-size:16px;font-weight:650}.fs-card-line{color:var(--text-secondary);margin:0;font-size:13.5px;line-height:1.5}.fs-card-cta{border-radius:var(--r-full);border:1px solid var(--line);color:var(--fl-ink-presence);font:600 13px/1 var(--font);cursor:pointer;transition:border-color var(--m-fast), background var(--m-fast);background:0 0;align-self:flex-start;align-items:center;gap:7px;margin-top:8px;padding:8px 14px;display:inline-flex}.fs-card-cta:hover{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 8%, transparent)}.fs-scene{aspect-ratio:16/9;border-bottom:1px solid var(--line);background:radial-gradient(circle at 1px 1px, var(--grid-line) 1px, transparent 0) 0 0 / 24px 24px, linear-gradient(180deg, var(--surface-default), var(--surface-sunken,var(--surface-default)));position:relative;overflow:hidden}.fs-prism-doc{border:1px solid var(--line);background:repeating-linear-gradient(180deg, color-mix(in oklab, var(--text-muted) 26%, transparent) 0 2px, transparent 2px 9px) 12px 12px / calc(100% - 24px) calc(100% - 24px) no-repeat, var(--surface-elevated);width:21%;height:64%;box-shadow:var(--shadow-raised);opacity:0;border-radius:7px;position:absolute;top:18%;left:6%}.fl-reveal.in .fs-prism-doc{animation:fs-pop .42s var(--ease-out) .12s forwards}.fs-prism-hl{background:color-mix(in oklab, var(--presence) 30%, transparent);transform-origin:0;border-radius:3px;width:80%;height:9%;position:absolute;left:10%;transform:scaleX(0)}.fs-prism-hl.short{width:62%}.fl-reveal.in .fs-prism-hl{animation:fs-hl-sweep .42s var(--ease-out) .7s forwards}.fl-reveal.in .fs-prism-hl.short{animation-delay:1.1s}@keyframes fs-hl-sweep{to{transform:scaleX(1)}}.fs-prism-region{font:700 9px/1 var(--font);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklab, var(--fl-ink-presence) 55%, var(--text-muted));border-radius:var(--r-full);background:color-mix(in oklab, var(--presence) 9%, transparent);box-shadow:0 0 42px 16px color-mix(in oklab, var(--presence) 8%, transparent);padding:4px 8px;position:absolute}.fs-prism-pages{font:500 8px/1 var(--font-data,var(--font));color:var(--text-faint);text-align:right;opacity:0;flex-direction:column;justify-content:space-between;display:flex;position:absolute;top:8%;bottom:8%;right:6px}.fl-reveal.in .fs-prism-pages{animation:fs-pop .48s var(--ease-out) 1.5s forwards}.fs-prism-pages i{font-style:normal}.fs-prism-pages i.cited{color:var(--fl-ink-presence);font-weight:700}.fs-prism-thread{width:100%;height:100%;position:absolute;inset:0}.fs-prism-thread path{fill:none;stroke:var(--presence);stroke-width:1.6px;opacity:.45;stroke-dasharray:1;stroke-dashoffset:1px}.fl-reveal.in .fs-prism-thread path{animation:fs-draw 1.4s var(--ease-out) .5s forwards}@keyframes fs-draw{to{stroke-dashoffset:0}}.fs-prism-claim{border:1px solid var(--line);background:var(--surface-elevated);box-shadow:var(--shadow-raised);font:600 10.5px/1.3 var(--font);color:var(--text-primary);opacity:0;border-radius:10px;flex-direction:column;gap:3px;padding:8px 10px;display:flex;position:absolute}.fs-prism-claim i{font:700 8px/1 var(--font);letter-spacing:.12em;color:var(--fl-ink-presence);font-style:normal}.fl-reveal.in .fs-prism-claim{animation:fs-claim-fly .56s var(--ease-out) forwards}@keyframes fs-claim-fly{0%{opacity:0;transform:translate(var(--fx,0px), var(--fy,0px)) scale(.72)}to{opacity:1;transform:none}}.fs-ripple svg{width:100%;height:100%;position:absolute;inset:0}.fs-ripple-edge{fill:none;stroke-width:1.4px;opacity:.55;stroke:var(--line-strong,var(--line));stroke-dasharray:1;stroke-dashoffset:1px}.fl-reveal.in .fs-ripple-edge{animation:fs-draw .7s var(--ease-out) .3s forwards}.fs-ripple-edge.is-breaks{stroke:var(--warning)}.fs-ripple-edge.is-safe{stroke:var(--insight)}.fs-ripple-ring{fill:none;stroke:var(--presence);stroke-width:1.2px;opacity:0;transform-box:fill-box;transform-origin:50%}.fl-reveal.in .fs-ripple-ring{animation:fs-ripple-wave 1.4s var(--ease-out) .25s}.fl-reveal.in .fs-ripple-ring.late{animation-delay:.75s}@keyframes fs-ripple-wave{0%{opacity:.55;transform:scale(.4)}to{opacity:0;transform:scale(2.6)}}.fs-ripple-diff{fill:none;stroke-width:2px;opacity:.3;stroke-linecap:round}.fs-ripple-diff.add{stroke:var(--insight)}.fs-ripple-diff.del{stroke:var(--danger,var(--warning))}.fs-ripple-course{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-elevated);box-shadow:var(--shadow-raised);font:600 9.5px/1 var(--font-data,var(--font));letter-spacing:.06em;color:var(--text-secondary);opacity:0;align-items:center;gap:7px;padding:6px 11px;display:inline-flex;position:absolute;bottom:7%;left:50%;transform:translate(-50%)}.fs-ripple-course i{gap:3px;display:inline-flex}.fs-ripple-course b{background:var(--track);border-radius:50%;width:5px;height:5px}.fl-reveal.in .fs-ripple-course{animation:fs-course-land .46s var(--ease-out) 2s forwards}.fl-reveal.in .fs-ripple-course b.d1{animation:fs-dot-fill .32s var(--ease-out) 2.5s forwards}.fl-reveal.in .fs-ripple-course b.d2{animation:fs-dot-fill .32s var(--ease-out) 2.85s forwards}.fl-reveal.in .fs-ripple-order.o1{animation:fs-pop-center .42s var(--ease-out) 1.6s forwards, fs-order-teach .48s var(--ease-out) 2.35s}.fl-reveal.in .fs-ripple-order.o2{animation:fs-pop-center .42s var(--ease-out) 1.6s forwards, fs-order-teach .48s var(--ease-out) 2.7s}@keyframes fs-course-land{0%{opacity:0;transform:translate(-50%,8px)scale(.94)}to{opacity:1;transform:translate(-50%)}}@keyframes fs-dot-fill{0%{background:var(--track);transform:scale(1)}50%{transform:scale(1.6)}to{background:var(--fl-ink-insight);transform:scale(1)}}@keyframes fs-order-teach{0%,to{box-shadow:none;transform:translate(-50%,-50%)scale(1)}50%{box-shadow:0 0 12px 2px color-mix(in oklab, var(--insight) 35%, transparent);transform:translate(-50%,-50%)scale(1.3)}}.fs-ripple-order{border:1px solid color-mix(in oklab, var(--insight) 55%, var(--line));background:var(--surface-elevated);width:14px;height:14px;font:700 8px/1 var(--font-data,var(--font));color:var(--fl-ink-insight);opacity:0;border-radius:50%;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%)}.fl-reveal.in .fs-ripple-order{animation:fs-pop-center .42s var(--ease-out) 1.6s forwards}.fs-ripple-node{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-elevated);font:600 10.5px/1 var(--font-data,var(--font));color:var(--text-primary);box-shadow:var(--shadow-raised);opacity:0;padding:6px 10px;position:absolute;transform:translate(-50%,-50%)}.fl-reveal.in .fs-ripple-node{animation:fs-pop-center .48s var(--ease-out) forwards}.fs-ripple-node.is-change{border-color:var(--presence);color:var(--presence);background:color-mix(in oklab, var(--presence) 10%, var(--surface-elevated))}.fs-ripple-node.is-breaks{border-color:color-mix(in oklab, var(--warning) 60%, var(--line));color:var(--warning)}.fs-ripple-node.is-safe{border-color:color-mix(in oklab, var(--insight) 55%, var(--line));color:var(--insight)}.fs-ripple-node.is-untested,.fs-ripple-node.is-migration{color:var(--text-secondary)}.fs-ripple-node i{margin-right:4px;font-size:8px;font-style:normal}.fs-think-links{width:100%;height:100%;position:absolute;inset:0}.fs-think-link{fill:none;stroke:color-mix(in oklab, var(--presence) 38%, transparent);stroke-width:1.2px;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .6s var(--ease-out)}.fl-reveal.in .fs-think-link{stroke-dashoffset:0}.fs-think-tension{fill:none;stroke:var(--warning);stroke-width:1.2px;stroke-dasharray:4 3;opacity:0}.fl-reveal.in .fs-think-tension{animation:fs-fade-in .7s var(--ease-out) 2.2s forwards}@keyframes fs-fade-in{to{opacity:.55}}.fs-think-wisp{font:500 9px/1 var(--font-data,var(--font));color:var(--text-faint);white-space:nowrap;opacity:0;position:absolute;top:50%;left:50%}.fl-reveal.in .fs-think-wisp{animation:fs-wisp .9s var(--ease-out) forwards}@keyframes fs-wisp{0%{opacity:0;transform:translate(-50%,-50%)}40%{opacity:.4}to{opacity:0;transform:translate(calc(-50% + var(--tx,0px)), calc(-50% + var(--ty,0px)))}}.fs-think-orb{background:radial-gradient(circle at 32% 28%, color-mix(in oklab, var(--presence) 80%, #fff), var(--presence) 70%);width:44px;height:44px;box-shadow:0 0 34px -6px var(--glow-presence,var(--presence));border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fs-think-orb:before,.fs-think-orb:after{content:"";border:1px solid color-mix(in oklab, var(--presence) 30%, transparent);border-radius:50%;position:absolute;inset:-10px}.fs-think-orb:after{border-color:color-mix(in oklab, var(--presence) 16%, transparent);inset:-20px}.fl-reveal.in .fs-think-orb{animation:3.2s ease-in-out infinite fs-breathe;animation-play-state:var(--ambient-play,running)}@keyframes fs-breathe{0%,to{transform:translate(-50%,-50%)scale(1)}50%{transform:translate(-50%,-50%)scale(1.07)}}.fs-think-atom{border:1px solid var(--line);background:var(--surface-elevated);box-shadow:var(--shadow-raised);font:600 10.5px/1.25 var(--font);color:var(--text-primary);opacity:0;border-radius:10px;flex-direction:column;gap:2px;padding:7px 10px;display:flex;position:absolute;transform:translate(-50%,-50%)}.fs-think-atom i{font:700 8px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:var(--fl-ink-presence);font-style:normal}.fl-reveal.in .fs-think-atom{animation:fs-pop-center .52s var(--ease-out) forwards}.fs-atlas-region{background:radial-gradient(closest-side, color-mix(in oklab, var(--tone,var(--presence)) 9%, transparent), transparent);pointer-events:none;border-radius:50%;width:44%;height:58%;position:absolute;transform:translate(-50%,-50%)}.fs-atlas-sky{width:100%;height:100%;position:absolute;inset:0}.fs-atlas-line{fill:none;stroke:color-mix(in oklab, var(--presence) 30%, transparent);stroke-width:1px;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .9s var(--ease-out) .4s}.fl-reveal.in .fs-atlas-line{stroke-dashoffset:0}.fs-atlas-route{fill:none;stroke:color-mix(in oklab, var(--presence) 45%, transparent);stroke-width:1.2px;stroke-dasharray:2 5;opacity:0}.fl-reveal.in .fs-atlas-route{animation:fs-fade-in .7s var(--ease-out) 1.4s forwards}.fs-atlas-dot{background:color-mix(in oklab, var(--text-muted) 55%, transparent);border-radius:50%;position:absolute}.fs-atlas-dot.bright{background:var(--presence);box-shadow:0 0 8px 1px color-mix(in oklab, var(--presence) 40%, transparent)}.fl-reveal.in .fs-atlas-dot.bright{animation:2.8s ease-in-out infinite fs-twinkle;animation-play-state:var(--ambient-play,running)}@keyframes fs-twinkle{0%,to{opacity:.35}50%{opacity:1}}.fs-atlas-hood{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-elevated);box-shadow:var(--shadow-raised);font:700 10px/1 var(--font-data,var(--font));letter-spacing:.14em;text-transform:uppercase;color:var(--text-primary);opacity:0;align-items:center;gap:6px;padding:7px 12px;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.fs-atlas-hood i{background:var(--tone,var(--presence));border-radius:50%;width:7px;height:7px}.fl-reveal.in .fs-atlas-hood{animation:fs-pop-center .56s var(--ease-out) forwards}.fs-after{border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:center;align-items:center;gap:9px;margin-top:26px;padding-top:20px;display:flex}.fs-after-kicker{font-family:var(--font-data);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-right:5px;font-size:11px}.fs-after-item{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-glass);cursor:pointer;font:600 12.5px var(--font);color:var(--text-secondary);transition:border-color var(--m-fast), background var(--m-fast), color var(--m-fast);padding:7px 13px}.fs-after-item:hover{border-color:color-mix(in oklab, var(--presence) 45%, var(--line));background:color-mix(in oklab, var(--presence) 8%, transparent);color:var(--text-primary)}@keyframes fs-pop{0%{opacity:0;transform:translateY(8px)scale(.94)}to{opacity:1;transform:none}}@keyframes fs-pop-center{0%{opacity:0;transform:translate(-50%,-50%)scale(.9)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.fl-hero-watch{border-radius:var(--r-full);border:1px solid var(--line);background:var(--surface-elevated);color:var(--text-primary);font:600 14px/1 var(--font);cursor:pointer;transition:border-color var(--m-fast), background var(--m-fast), transform .16s var(--ease-out);align-items:center;gap:9px;margin-top:18px;padding:11px 20px;display:inline-flex}.fl-hero-watch:hover{border-color:var(--presence);background:color-mix(in oklab, var(--presence) 7%, var(--surface-elevated));transform:translateY(-1px)}.fl-hero-watch .fl-hero-watch-glyph,.fl-tour-invite-play .fl-hero-watch-glyph{background:var(--presence);color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:9px;display:grid}.fl-hero-watch .fl-hero-watch-time{color:var(--text-muted);font-size:12.5px;font-weight:500}.fl-tour-invite{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface-elevated);max-width:480px;margin-top:18px;padding:14px 18px}.fl-tour-invite-text{color:var(--text-secondary);margin:0 0 12px;font-size:13.5px;line-height:1.5}.fl-tour-invite-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fl-tour-invite-play{border-radius:var(--r-full);border:1px solid var(--presence);background:color-mix(in oklab, var(--presence) 12%, var(--surface-elevated));color:var(--text-primary);font:600 13.5px/1 var(--font);cursor:pointer;transition:background var(--m-fast), transform .16s var(--ease-out);align-items:center;gap:9px;padding:9px 16px;display:inline-flex}.fl-tour-invite-play:hover{background:color-mix(in oklab, var(--presence) 20%, var(--surface-elevated));transform:translateY(-1px)}.fl-tour-invite-skip{appearance:none;color:var(--text-muted);font:500 13px/1 var(--font);cursor:pointer;transition:color var(--m-fast);background:0 0;border:none;padding:4px 2px}.fl-tour-invite-skip:hover{color:var(--text-primary)}@media (prefers-reduced-motion:reduce){.fs-prism-claim,.fs-ripple-node,.fs-think-atom,.fs-atlas-hood,.fs-prism-doc,.fs-prism-pages,.fs-ripple-order,.fs-ripple-course{opacity:1;animation:none!important}.fs-ripple-course b.done{background:var(--fl-ink-insight)}.fs-prism-thread path,.fs-ripple-edge{stroke-dashoffset:0;animation:none!important}.fs-think-link,.fs-atlas-line{stroke-dashoffset:0;transition:none}.fs-think-tension{opacity:.55;animation:none!important}.fs-atlas-route{opacity:1;animation:none!important}.fs-ripple-ring,.fs-think-wisp{display:none}.fs-think-orb,.fs-atlas-dot{animation:none!important}.fs-prism-hl{transform:scaleX(1);animation:none!important}.fl-trust-card,.fl-src-chip,.fl-stamp-badge,.fl-key-glyph{opacity:1;transition:none;transform:none;animation:none!important}.fl-trust-spine path{stroke-dashoffset:0;animation:none!important}.fl-cta-ghost{opacity:var(--go,.12);transform:translate(-50%,-50%);animation:none!important}}.fl-legal-footer{border-top:1px solid var(--line);width:min(1120px,100% - 40px);color:var(--text-muted);justify-content:space-between;align-items:center;gap:18px;margin:0 auto;padding:24px 0 34px;font-size:11px;display:flex}.fl-legal-footer nav{flex-wrap:wrap;justify-content:flex-end;gap:9px 16px;display:flex}.fl-legal-footer a{color:var(--text-secondary);text-underline-offset:3px}.fl-legal-footer a:hover,.fl-legal-footer a:focus-visible{color:var(--text-primary)}@media (width<=640px){.fl-legal-footer{flex-direction:column;align-items:flex-start;width:min(100% - 28px,1120px)}.fl-legal-footer nav{justify-content:flex-start}}.async-pending{min-height:10rem;color:var(--text-secondary,#6b6b73);background:var(--surface,#fff);font:600 .875rem/1.3 var(--font,system-ui, sans-serif);place-content:center;justify-items:center;gap:.75rem;display:grid}.async-pending-overlay{z-index:1200;background:color-mix(in srgb, var(--bg,#111) 72%, transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);min-height:0;position:fixed;inset:0}.async-pending-spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;width:1.4rem;height:1.4rem;animation:.7s linear infinite async-spin}.async-pending-error button{border:1px solid var(--line,#d8d8de);color:inherit;background:var(--surface-elevated,#fff);font:inherit;cursor:pointer;border-radius:999px;padding:.5rem .9rem}@keyframes async-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.async-pending-spinner{animation-duration:1.4s}}.root-fallback{z-index:9999;text-align:center;background:var(--surface-default);color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:fixed;inset:0}.root-fallback-mark{background:color-mix(in oklab, var(--presence) 70%, transparent);border-radius:999px;width:40px;height:40px}.root-fallback-title{margin:0;font-size:17px;font-weight:600}.root-fallback-body{max-width:46ch;color:var(--text-secondary);margin:0;font-size:14px;line-height:1.5}.root-fallback-action{background:var(--presence);color:var(--surface-default);cursor:pointer;border:none;border-radius:999px;margin-top:4px;padding:9px 18px;font-size:14px;font-weight:600}.root-fallback-action:hover{filter:brightness(1.06)}.surface-fallback{z-index:9998;background:var(--surface-default);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.surface-fallback-orb{background:radial-gradient(circle at 35% 30%, color-mix(in oklab, var(--presence) 70%, white 12%), var(--presence));border-radius:999px;width:28px;height:28px;animation:1.1s ease-in-out infinite surface-fallback-pulse}@media (prefers-reduced-motion:reduce){.surface-fallback-orb{opacity:.85;animation:none}}@keyframes surface-fallback-pulse{0%,to{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.legal-gate{min-height:100dvh;color:var(--text-primary);background:radial-gradient(circle at 50% 15%, color-mix(in oklab, var(--presence) 14%, transparent), transparent 34rem), var(--bg);font-family:var(--font);place-items:center;padding:28px;display:grid}.legal-gate-card{border:1px solid var(--line-strong);background:color-mix(in oklab, var(--surface-elevated) 94%, transparent);border-radius:22px;width:min(580px,100%);padding:clamp(24px,5vw,42px);box-shadow:0 28px 80px oklab(0% none none/.28)}.legal-gate-kicker{color:var(--presence);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:700}.legal-gate h1{letter-spacing:-.04em;margin:10px 0 14px;font-size:clamp(28px,5vw,40px);font-weight:650;line-height:1.04}.legal-gate p,.legal-gate li,.legal-gate-consent{color:var(--text-secondary);font-size:13px;line-height:1.62}.legal-gate-points{margin:22px 0;padding-left:19px}.legal-gate-points li+li{margin-top:7px}.legal-gate-links{flex-wrap:wrap;gap:9px 18px;margin:0 0 22px;display:flex}.legal-gate-links a{color:var(--presence);text-underline-offset:3px;font-size:12px}.legal-gate-consent{border:1px solid var(--line-strong);color:var(--text-primary);background:color-mix(in oklab, var(--surface) 90%, var(--presence) 10%);cursor:pointer;border-radius:13px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:11px;padding:16px;display:grid}.legal-gate-consent input{width:17px;height:17px;accent-color:var(--presence);margin:2px 0 0}.legal-gate-error{color:var(--danger);margin:12px 0 0}.legal-gate-actions{justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.legal-gate-actions button{color:#fff;background:linear-gradient(135deg, var(--presence), var(--presence-deep));min-height:42px;font:650 13px/1 var(--font);cursor:pointer;border:0;border-radius:999px;padding:0 20px}.legal-gate-actions button:disabled{opacity:.4;cursor:not-allowed}.legal-gate-back{color:var(--text-muted);font-size:12px;text-decoration:none}@media (width<=520px){.legal-gate{padding:14px}.legal-gate-actions{text-align:center;flex-direction:column-reverse;align-items:stretch}.legal-gate-actions button{width:100%}}
|