@mavea/mavea 1.2.0 → 2.0.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 +96 -0
- package/PRIVACY.md +1 -0
- package/README.md +8 -4
- package/TERMS.md +1 -1
- package/THIRD-PARTY.txt +13 -5
- package/bin/mavea.mjs +143 -2
- package/dist/.vite/manifest.json +1473 -861
- package/dist/assets/AnnotationLayer-Cccb12ps.js +0 -0
- package/dist/assets/{AppCommandPalette-BHaYBZ5e.js → AppCommandPalette-DdOPNZ0e.js} +1 -1
- package/dist/assets/AtlasView-B7yObdf8.css +1 -0
- package/dist/assets/{AtlasView-B82UfrEX.js → AtlasView-DO_p0TdZ.js} +1 -1
- package/dist/assets/BriefingPlayer-DHV4vMga.css +1 -0
- package/dist/assets/{CadenceCard-P4teI7Se.js → CadenceCard-DxceyiPA.js} +1 -1
- package/dist/assets/{CanvasSkeleton-CRGWlafo.js → CanvasSkeleton-BmGjJHUQ.js} +1 -1
- package/dist/assets/CanvasSkeleton-DYASkTjW.css +1 -0
- package/dist/assets/CardEditor-CiAfT78z.css +1 -0
- package/dist/assets/{CardEditor-DABIhGdQ.js → CardEditor-D4slxmIM.js} +1 -1
- package/dist/assets/{CheckLogRail-DkHIHL0E.js → CheckLogRail-BibJTid0.js} +1 -1
- package/dist/assets/ConversationVideoStudio-CSO3jHXD.css +1 -0
- package/dist/assets/ConversationVideoStudio-DMIPUCcq.js +1 -0
- package/dist/assets/CourseLessonReader-D29Kix4f.js +2 -0
- package/dist/assets/{CourseRail-DXt3bzjU.js → CourseRail-BQmUsG6v.js} +1 -1
- package/dist/assets/CoursesApp-DcDsS_ZS.js +2 -0
- package/dist/assets/CrossExamPanel-BafTqkbf.css +1 -0
- package/dist/assets/{DashPresent-5SRScC2i.js → DashPresent-BDWgO9am.js} +1 -1
- package/dist/assets/DashboardDetail-BrnAdWfy.js +2 -0
- package/dist/assets/DashboardLoopGate-NxMcQ4rD.js +2 -0
- package/dist/assets/DashboardLoopRuntime-Dsy9u1wa.js +1 -0
- package/dist/assets/{DashboardSettings-CE0B2y2y.js → DashboardSettings-DJon1Q4o.js} +1 -1
- package/dist/assets/DashboardsApp-DxyMn3x_.js +2 -0
- package/dist/assets/DeepZoomApp-CVwmnRGN.css +1 -0
- package/dist/assets/{DeepZoomApp-BOLEl-kQ.js → DeepZoomApp-nNjqoyYE.js} +1 -1
- package/dist/assets/DelegatePanel-D17XvWYd.css +1 -0
- package/dist/assets/DelegatePanel-DN_ZL0j7.js +33 -0
- package/dist/assets/DemoGallery-DrSlMsnu.js +1 -0
- package/dist/assets/{DropSelect-DilESAgA.css → DropSelect-B4lqCEjw.css} +1 -1
- package/dist/assets/{DropSelect-DjbdVfIR.js → DropSelect-GwIXHA5o.js} +1 -1
- package/dist/assets/{ExportModal-CLobMv1F.js → ExportModal-DBUjC71U.js} +1 -1
- package/dist/assets/{ExtractionPreview-QZ2VHmsb.js → ExtractionPreview-D4M6eXqb.js} +1 -1
- package/dist/assets/{FeatureUseNotice-Dc8joBGM.js → FeatureUseNotice-Bda9jr3W.js} +1 -1
- package/dist/assets/{FlagshipCommandPalette-DnWuBjYI.js → FlagshipCommandPalette-DAO849RC.js} +1 -1
- package/dist/assets/FlagshipShowcase-g2x-1c70.js +1 -0
- package/dist/assets/{FlashcardsApp-BQGM-Tr1.js → FlashcardsApp-BUKzCr65.js} +1 -1
- package/dist/assets/ForecastPanel-Cq_yDhNQ.css +1 -0
- package/dist/assets/GalleryApp-ot_A7ZF-.js +1 -0
- package/dist/assets/{HonestByDesign-57LDf-gm.js → HonestByDesign-DgZFEpEx.js} +1 -1
- package/dist/assets/{HowItWorks-DMfPX3GK.js → HowItWorks-DPFpdeGE.js} +1 -1
- package/dist/assets/{LegalApp-CcO5Qq6R.js → LegalApp-C56kWdmK.js} +1 -1
- package/dist/assets/{LegalMarkdownDocument-Be_fQbZ_.js → LegalMarkdownDocument-BBTHuW_M.js} +1 -1
- package/dist/assets/{LegalPageShell-B-HY1WG7.js → LegalPageShell-hMA-7JLf.js} +1 -1
- package/dist/assets/LeverPanel-HOEwIr8k.css +1 -0
- package/dist/assets/{Library-DmdzY2se.js → Library-CVj7R6F4.js} +1 -1
- package/dist/assets/LibraryOverlay-BkPYm0Bs.css +1 -0
- package/dist/assets/{LibraryOverlay-BilW6q_z.js → LibraryOverlay-DSUWcUe4.js} +1 -1
- package/dist/assets/LiveApp-B62EMybC.js +79 -0
- package/dist/assets/LiveApp-CziqEsOb.css +1 -0
- package/dist/assets/LiveSettings-BITIaMoT.js +6 -0
- package/dist/assets/LiveSettings-Dho0OxlM.css +1 -0
- package/dist/assets/{MindMapViewerDrawer-DI_S7fRZ.js → MindMapViewerDrawer-CKdJtHno.js} +1 -1
- package/dist/assets/MindShape-B3lg_z4X.js +1 -0
- package/dist/assets/MindShape-CozR9W8M.css +1 -0
- package/dist/assets/{PinToDashboard-Cz5UJCmq.js → PinToDashboard-DpQjBLPa.js} +1 -1
- package/dist/assets/{PlanReview-CmUxzNqL.js → PlanReview-CrTbmMAd.js} +1 -1
- package/dist/assets/PresentationDeck-CfYadu9V.js +1 -0
- package/dist/assets/PrismApp-bRKK_3JA.js +2 -0
- package/dist/assets/PrismAskController-68gbUO5u.css +1 -0
- package/dist/assets/{PrismAskController-Bt0k9hAA.js → PrismAskController-C4MuB8om.js} +1 -1
- package/dist/assets/{PrismBriefingPlayer-DzdtnFj4.js → PrismBriefingPlayer-ChJj6hSS.js} +2 -2
- package/dist/assets/PrismOverlay-BwnF4BEn.css +1 -0
- package/dist/assets/{PrismOverlay-D1cDZamt.js → PrismOverlay-Pp6ZKmTc.js} +4 -4
- package/dist/assets/{PrismWorkbench-BEIp4MiL.js → PrismWorkbench-BCV7r4Oa.js} +1 -1
- package/dist/assets/{PrivacyApp-B4DT2RUz.js → PrivacyApp-A2Bu6LVd.js} +2 -1
- package/dist/assets/{Recap-T9DtFaEk.js → Recap-BOl3SUh0.js} +1 -1
- package/dist/assets/Recap-D3NlzM1p.css +1 -0
- package/dist/assets/{ReplayCard-Dx46HCBT.js → ReplayCard-B6NYiYzQ.js} +2 -2
- package/dist/assets/{ReplayOverlay-CnJAxf0u.js → ReplayOverlay-BJKtJ-vc.js} +1 -1
- package/dist/assets/{RewindOverlay-CousnxXo.js → RewindOverlay-BO7YgDsW.js} +1 -1
- package/dist/assets/RippleApp-BXt7tenS.js +2 -0
- package/dist/assets/{RippleAskController-9SxpZnHX.js → RippleAskController-BzdwYcYY.js} +1 -1
- package/dist/assets/RippleOverlay-B3hg2KMN.css +1 -0
- package/dist/assets/RippleOverlay-BSxubBwj.js +6 -0
- package/dist/assets/SeeDontRead-0He5hS2C.js +1 -0
- package/dist/assets/ShareModal-I_sxHKLv.css +1 -0
- package/dist/assets/ShareModal-xYdZWJxy.js +2 -0
- package/dist/assets/{ShipCourse-BavQppkt.js → ShipCourse-Dg6kCWyH.js} +1 -1
- package/dist/assets/{SignatureLoop-L8W2h62w.js → SignatureLoop-QPwB2oNN.js} +1 -1
- package/dist/assets/SrsReview-DmBcJCMa.css +1 -0
- package/dist/assets/{SrsReview-DhWNYYv7.js → SrsReview-Gr6Y0QTQ.js} +1 -1
- package/dist/assets/{SynthesisApp-C2O6pFeM.js → SynthesisApp-DrCq6NDa.js} +2 -2
- package/dist/assets/{SynthesisOverlay-DLvwiSMv.js → SynthesisOverlay-DCa-2Pz_.js} +1 -1
- package/dist/assets/{TermsApp-CxY1yorm.js → TermsApp-zcPDYfuh.js} +2 -2
- package/dist/assets/TopicCanvas-Bw4bMFpe.js +2 -0
- package/dist/assets/TopicCanvas-DWTm611H.css +1 -0
- package/dist/assets/{TourPrism-CI-iJZil.js → TourPrism-DbinDupp.js} +1 -1
- package/dist/assets/{TrackerTile-oz6IoG8m.js → TrackerTile-CrT9u1I4.js} +2 -2
- package/dist/assets/{TwoSurfaces-Rnf-_WgY.js → TwoSurfaces-L0CDuyOZ.js} +1 -1
- package/dist/assets/WhyMachineOverlay-Rav-cuMm.css +1 -0
- package/dist/assets/WorldOverlay-BcjqG1BR.js +2 -0
- package/dist/assets/{WowFeatures-C4efSbNV.js → WowFeatures-CwBk4ZMO.js} +1 -1
- package/dist/assets/ZoomDeck-DdLNsrHV.css +1 -0
- package/dist/assets/{ZoomDeck-CBrr0yfy.js → ZoomDeck-DlnesweX.js} +1 -1
- package/dist/assets/{annotationAuto-CDv6Es44.js → annotationAuto-B2UdfJNj.js} +1 -1
- package/dist/assets/{backup-ZrlVatXc.js → backup-685QrAjt.js} +1 -1
- package/dist/assets/canvas-C3O7MEA3.js +1 -0
- package/dist/assets/capture-DgJLQ_0-.js +2 -0
- package/dist/assets/{chapters-Dqm4iLDa.js → chapters-CIvdCeBC.js} +1 -1
- package/dist/assets/{confirmAdd-DzMO9jKV.js → confirmAdd-CZ829Mbx.js} +1 -1
- package/dist/assets/{dashboardEvents-DKl5rrTD.js → dashboardEvents-CiayRLrH.js} +1 -1
- package/dist/assets/dashboards-Cvs28p3Z.css +1 -0
- package/dist/assets/deepen-DAeHHFiI.js +11 -0
- package/dist/assets/deepenStore-BWLLzLCY.js +1 -0
- package/dist/assets/effort-jJe4iMIq.js +39 -0
- package/dist/assets/{explode-BgZIWY9m.js → explode-CPnvJiTg.js} +1 -1
- package/dist/assets/{fitText-DQ2omSN0.js → fitText-DHbmSS-q.js} +1 -1
- package/dist/assets/{generate-Dl2EJ_SR.js → generate-COfYQFmT.js} +4 -4
- package/dist/assets/{generateBeats-DZHkvFvh.js → generateBeats-COflu5Zi.js} +1 -1
- package/dist/assets/{generateCourse-C9qvaJRo.js → generateCourse-BldPpgdh.js} +1 -1
- package/dist/assets/generateLive-DGwnpIip.js +24 -0
- package/dist/assets/homeTarget-CwFsJYwb.js +1 -0
- package/dist/assets/index-BIUYTk1W.css +1 -0
- package/dist/assets/index-LiHcEJt_.js +22 -0
- package/dist/assets/kokoro-DXRj0KQX.js +1 -0
- package/dist/assets/ledger-BssK9Pv2.js +1 -0
- package/dist/assets/{lib-DMAxsZKm.css → lib-DP9Kuxqk.css} +1 -1
- package/dist/assets/{liveSchema-B4bQtO88.js → liveSchema-DyfND6P2.js} +2 -2
- package/dist/assets/{loader-DKJEcbPm.js → loader-DgMLGfAC.js} +2 -2
- package/dist/assets/localBudget-CxLP6bjE.js +1 -0
- package/dist/assets/{mastery-CUfDeuqO.js → mastery-DB5qpRAy.js} +1 -1
- package/dist/assets/{media-BvwzACIX.js → media-VLRh6CX2.js} +2 -2
- package/dist/assets/{model-BFRTN9Eh.js → model-CAewjw45.js} +1 -1
- package/dist/assets/{neighborhoods-D7QjURnE.js → neighborhoods-CqECCmo8.js} +1 -1
- package/dist/assets/{notes-B0-EE0FK.js → notes-DzIAEESd.js} +1 -1
- package/dist/assets/pen-DtEW1xf4.js +24 -0
- package/dist/assets/{perfProbe-B9zJpjo9.js → perfProbe-ezVn1mOu.js} +1 -1
- package/dist/assets/{pin-CZAIlpXt.js → pin-BPGVDgnq.js} +1 -1
- package/dist/assets/pin-BXyyKnci.css +1 -0
- package/dist/assets/{planTracker-KKAtTBWs.js → planTracker-BwoKEftp.js} +1 -1
- package/dist/assets/portal-B9DmFo6J.js +1 -0
- package/dist/assets/{prewarm-B4ELBOxf.js → prewarm-BgUqAJbF.js} +1 -1
- package/dist/assets/providers-0DthJW_I.js +1 -0
- package/dist/assets/quietHours-DyynzDyC.js +1 -0
- package/dist/assets/{ready-jtAUOb62.js → ready-yBSGJubb.js} +1 -1
- package/dist/assets/{registry-CqhpLHM7.js → registry-7tKTrzeZ.js} +1 -1
- package/dist/assets/{registry-BFrgx1tE.js → registry-B53EEn8S.js} +1 -1
- package/dist/assets/{registry-CPiwQhAm.js → registry-BDXwUn3i.js} +1 -1
- package/dist/assets/{registry-CD1s3eQ-.js → registry-BJEvFgoL.js} +1 -1
- package/dist/assets/{registry-B0GIHERt.js → registry-BQzvA61G.js} +1 -1
- package/dist/assets/{registry-6DGRAB1m.js → registry-BT6ydF33.js} +1 -1
- package/dist/assets/{registry-D8O0apUT.js → registry-BdHj_oIs.js} +1 -1
- package/dist/assets/{registry-Dru0JcTa.css → registry-BgWzEkxc.css} +1 -1
- package/dist/assets/{registry-Vp8VuMV0.js → registry-Bl2qfp5V.js} +1 -1
- package/dist/assets/registry-Bl7zAWKt.js +2 -0
- package/dist/assets/{registry-6MOD-I7p.js → registry-BlujNlQJ.js} +1 -1
- package/dist/assets/{registry-C28gYnVq.js → registry-CE1T0z9x.js} +1 -1
- package/dist/assets/{registry-4mMEt1Xy.css → registry-CEV5h2cu.css} +1 -1
- package/dist/assets/{registry-ZOWzhOHk.css → registry-CGB0jkFI.css} +1 -1
- package/dist/assets/{registry-BFbfXK-W.js → registry-Cgo4C0ux.js} +1 -1
- package/dist/assets/registry-CwRTUk0R.js +1 -0
- package/dist/assets/{registry-GeAC3ZD7.js → registry-D06LKiUk.js} +1 -1
- package/dist/assets/registry-Dbe9TQPw.css +1 -0
- package/dist/assets/registry-Diyud3DF.js +1 -0
- package/dist/assets/registry-DjvftnY2.css +1 -0
- package/dist/assets/{registry-w4R6c89s.js → registry-KRYoVMCh.js} +1 -1
- package/dist/assets/registry-QbArAJKB.js +1 -0
- package/dist/assets/registry-dmR14XnY.css +1 -0
- package/dist/assets/registry-g2sBcIrf.css +1 -0
- package/dist/assets/{registry-CcOO8UZr.js → registry-qRfnKTt4.js} +1 -1
- package/dist/assets/{relate-BYdM5eiV.js → relate-aQFFr11O.js} +1 -1
- package/dist/assets/{replay-TYXO0Brm.js → replay-CalqEgdW.js} +1 -1
- package/dist/assets/route-CMdTFx0P.js +1 -0
- package/dist/assets/{run-Df10YPyB.js → run-CuHaB8wF.js} +1 -1
- package/dist/assets/{run-gmqUaxcL.js → run-CwMSPOps.js} +1 -1
- package/dist/assets/{run-DlvA3l28.js → run-DCQrxgHA.js} +1 -1
- package/dist/assets/select-wEtBn9U6.js +3 -0
- package/dist/assets/shapes-BwoDrn09.js +1 -0
- package/dist/assets/shard000-Bx6Nmt0m.js +1 -0
- package/dist/assets/shard001-CL6O9SLr.js +1 -0
- package/dist/assets/shard002-vLQ0Ss-O.js +1 -0
- package/dist/assets/shard003-kKZdpzuh.js +1 -0
- package/dist/assets/shard004-CdVohAu1.js +1 -0
- package/dist/assets/shard005-CMzF_uJB.js +1 -0
- package/dist/assets/shard006-DQoDWuoN.js +1 -0
- package/dist/assets/shard007-Ck0N0IUk.js +1 -0
- package/dist/assets/shard008-Dt395x0Q.js +1 -0
- package/dist/assets/shard009-D_z8Lhqh.js +1 -0
- package/dist/assets/shard010-CQfR6lnk.js +1 -0
- package/dist/assets/shard011-l-w2t2Ie.js +1 -0
- package/dist/assets/shard012-BTw_UO1C.js +1 -0
- package/dist/assets/shard013-D8ZjKKYb.js +1 -0
- package/dist/assets/shard014-Cth_76It.js +1 -0
- package/dist/assets/shard015-DdYJVsHx.js +1 -0
- package/dist/assets/shard016-BdlBf9uZ.js +1 -0
- package/dist/assets/shard017-C3HTxh6t.js +1 -0
- package/dist/assets/shard018-Mf4wvqVk.js +1 -0
- package/dist/assets/shard019-Dpcy1Arx.js +1 -0
- package/dist/assets/shard020-BNvKfQld.js +1 -0
- package/dist/assets/shard021-D0kpI_PQ.js +1 -0
- package/dist/assets/shard022-Cjms7kAe.js +1 -0
- package/dist/assets/shard023-Bdwci7fy.js +1 -0
- package/dist/assets/shard024-BBoyPtpP.js +1 -0
- package/dist/assets/shard025-lMGpgN_0.js +3 -0
- package/dist/assets/shard026-Bp3UVI4_.js +1 -0
- package/dist/assets/shard027-C4HTpdeT.js +1 -0
- package/dist/assets/shard028-BsFTH3Sf.js +1 -0
- package/dist/assets/shard029-B3dEcXPy.js +1 -0
- package/dist/assets/shard030-DWwA-fNs.js +5 -0
- package/dist/assets/shard031-RhqA_0nH.js +1 -0
- package/dist/assets/shard032-BlZdG1Yi.js +1 -0
- package/dist/assets/shard033-Dmx2lOjI.js +1 -0
- package/dist/assets/shard034-BLOFKJT4.js +1 -0
- package/dist/assets/shard035-DMXdH733.js +1 -0
- package/dist/assets/shard036-DzOiEn23.js +1 -0
- package/dist/assets/shard037-BcHfVaYM.js +1 -0
- package/dist/assets/shard038-KozOx-Jh.js +1 -0
- package/dist/assets/shard039-apdILQwC.js +1 -0
- package/dist/assets/shard040-BrNXGaBi.js +1 -0
- package/dist/assets/shard041-D6eq9h1u.js +4 -0
- package/dist/assets/shard042-M-L34DbY.js +1 -0
- package/dist/assets/shard043-Ct6_C2pN.js +1 -0
- package/dist/assets/shard044-Bo0iaVHx.js +1 -0
- package/dist/assets/shard045-9ccZ4Y_N.js +1 -0
- package/dist/assets/shard046-eXoP478L.js +1 -0
- package/dist/assets/shard047-N56r6Lsz.js +1 -0
- package/dist/assets/shard048-BeKX7cI8.js +1 -0
- package/dist/assets/shard049-hPaNN2sL.js +1 -0
- package/dist/assets/shard050-B-YpP0B6.js +1 -0
- package/dist/assets/shard051-Bww5_KB2.js +1 -0
- package/dist/assets/shard052-DErwF8Df.js +1 -0
- package/dist/assets/shard053-C-qGH4jz.js +1 -0
- package/dist/assets/shard054-kcSxZrSj.js +1 -0
- package/dist/assets/shard055-CsETBTqa.js +1 -0
- package/dist/assets/shard056-CdBR4qTC.js +1 -0
- package/dist/assets/shard057-yRUG8B9e.js +1 -0
- package/dist/assets/shard058-DeDAnECG.js +1 -0
- package/dist/assets/shard059-Dh6jbDnW.js +1 -0
- package/dist/assets/shard060-B5kpWrhW.js +1 -0
- package/dist/assets/shard061-BTnj5LZA.js +1 -0
- package/dist/assets/shard062-DC7LTaNc.js +1 -0
- package/dist/assets/shard063-C8SIGCfd.js +1 -0
- package/dist/assets/shard064-DLyASocW.js +1 -0
- package/dist/assets/shard065-Cy_yV4ry.js +1 -0
- package/dist/assets/shard066-BmjVQqFX.js +1 -0
- package/dist/assets/shard067-uZUJsqtF.js +1 -0
- package/dist/assets/shard068-CXVjyJU4.js +1 -0
- package/dist/assets/shard069-CyfmjAm-.js +4 -0
- package/dist/assets/shard070-CxN3xiuY.js +12 -0
- package/dist/assets/shard071-CP1WrYC-.js +1 -0
- package/dist/assets/shard072-D6L5Yr05.js +1 -0
- package/dist/assets/shard073-DFEzkwg2.js +1 -0
- package/dist/assets/shard074-BSv3rvRL.js +1 -0
- package/dist/assets/shard075-Bt0OjGVd.js +1 -0
- package/dist/assets/shard076-DZHs0uzd.js +1 -0
- package/dist/assets/{share-kW3pZ027.js → share--tpc1nLE.js} +1 -1
- package/dist/assets/speed-BOytg6bC.js +1 -0
- package/dist/assets/store-B2Rpbqgg.js +1 -0
- package/dist/assets/store-Ba9vzL4H.js +1 -0
- package/dist/assets/store-BwyOArJl.js +1 -0
- package/dist/assets/store-ruEsXJjU.js +1 -0
- package/dist/assets/streamParse-BX0bAppQ.js +2 -0
- package/dist/assets/{templates-DHeyJ32F.css → templates-BIkAr4YH.css} +1 -1
- package/dist/assets/{theme-7IrMJ70_.js → theme-D5D55hZi.js} +1 -1
- package/dist/assets/{threads-Cu2t3070.js → threads-DNfxMTwx.js} +1 -1
- package/dist/assets/{useDashboardLoop-DDqCFJKY.js → useDashboardLoop-ifcuVRo-.js} +3 -3
- package/dist/assets/{useDashboards-SRk8LqHe.js → useDashboards-lgQnk2Al.js} +1 -1
- package/dist/assets/useFocusTrap-CJmpNZv2.js +1 -0
- package/dist/assets/useInView-DsTvv7L_.js +1 -0
- package/dist/assets/useInterval-DDgFrel2.js +1 -0
- package/dist/assets/{useLiveConfig-Cpy0_E_-.js → useLiveConfig-B4CmBiAK.js} +1 -1
- package/dist/assets/useStudy-CySgE3Cx.js +1 -0
- package/dist/assets/{walkSync-CPsd-xu7.js → walkSync-DBne70gg.js} +1 -1
- package/dist/demo-assets/CREDITS.md +94 -50
- package/dist/demo-assets/images/arnel-lighthouse.avif +0 -0
- package/dist/demo-assets/images/cliff-fields.avif +0 -0
- package/dist/demo-assets/images/crater-panorama.avif +0 -0
- package/dist/demo-assets/images/furnas-lake.avif +0 -0
- package/dist/demo-assets/images/green-coast-raw.avif +0 -0
- package/dist/demo-assets/images/green-coast.avif +0 -0
- package/dist/demo-assets/images/island-coast-poster.avif +0 -0
- package/dist/demo-assets/images/nordeste-town.avif +0 -0
- package/dist/demo-assets/images/sea-cliffs.avif +0 -0
- package/dist/demo-assets/images/sete-cidades.avif +0 -0
- package/dist/demo-assets/images/tea-terraces.avif +0 -0
- package/dist/demo-assets/pdf/cfd-primer.pdf +0 -0
- package/dist/demo-assets/video/island-coast.webm +0 -0
- package/dist/fonts/fonts.css +18 -0
- package/dist/index.html +38 -10
- package/dist/legal/PRIVACY.md +1 -0
- package/dist/legal/TERMS.md +1 -1
- package/dist/legal/THIRD-PARTY.txt +13 -5
- package/package.json +3 -2
- package/dist/assets/AnnotationLayer-qV6CIUZv.js +0 -0
- package/dist/assets/AtlasView-B5fkQhO6.css +0 -1
- package/dist/assets/BriefingPlayer-TpFZB77N.css +0 -1
- package/dist/assets/CanvasSkeleton-iy6DBvde.css +0 -1
- package/dist/assets/CardEditor-BY1bZiV6.css +0 -1
- package/dist/assets/ConversationVideoStudio-C1sd4k53.js +0 -1
- package/dist/assets/ConversationVideoStudio-CIAMxElj.css +0 -1
- package/dist/assets/CourseLessonReader-YCcNKEW7.js +0 -2
- package/dist/assets/CoursesApp-Dz6xjf4V.js +0 -2
- package/dist/assets/CrossExamPanel-CZ0ShGma.css +0 -1
- package/dist/assets/DashboardDetail-DOfm8UCQ.js +0 -2
- package/dist/assets/DashboardLoopGate-Cf0y_HQ7.js +0 -2
- package/dist/assets/DashboardLoopRuntime-CnN5VayH.js +0 -1
- package/dist/assets/DashboardsApp-_gbfdbX6.js +0 -2
- package/dist/assets/DeepZoomApp-fRXCJHHZ.css +0 -1
- package/dist/assets/DelegatePanel-CHEB-OZl.js +0 -33
- package/dist/assets/DelegatePanel-Cf85-0qE.css +0 -1
- package/dist/assets/DemoGallery-DBqnu8TR.js +0 -1
- package/dist/assets/FlagshipShowcase-3qQDOK6g.js +0 -1
- package/dist/assets/ForecastPanel-Da2ZBUrE.css +0 -1
- package/dist/assets/GalleryApp-BWQ-J450.js +0 -1
- package/dist/assets/LeverPanel-DhpJY76O.css +0 -1
- package/dist/assets/LibraryOverlay-CnKWDMG_.css +0 -1
- package/dist/assets/LiveApp-C-OPBybd.css +0 -1
- package/dist/assets/LiveApp-DH3OxJFV.js +0 -79
- package/dist/assets/LiveSettings-CmgrMqvK.css +0 -1
- package/dist/assets/LiveSettings-CuVMy7rZ.js +0 -6
- package/dist/assets/MindShape-C_Bo9hW9.js +0 -1
- package/dist/assets/MindShape-CaPeUo-a.css +0 -1
- package/dist/assets/PresentationDeck-B_EI33Pp.js +0 -1
- package/dist/assets/PrismApp-DtLsPiQF.js +0 -2
- package/dist/assets/PrismAskController-DBoxQSJR.css +0 -1
- package/dist/assets/PrismOverlay-BTfAicBt.css +0 -1
- package/dist/assets/Recap-DCiiWNiV.css +0 -1
- package/dist/assets/RippleApp-D5j2VCt2.js +0 -2
- package/dist/assets/RippleOverlay-_iiZsQVZ.css +0 -1
- package/dist/assets/RippleOverlay-zcXAHPuJ.js +0 -6
- package/dist/assets/SeeDontRead-Dqfzha0V.js +0 -1
- package/dist/assets/ShareModal-D1QuQEko.css +0 -1
- package/dist/assets/ShareModal-DWxlrJSz.js +0 -2
- package/dist/assets/SrsReview-B1B2VekR.css +0 -1
- package/dist/assets/TopicCanvas-LMI0zC7R.js +0 -2
- package/dist/assets/TopicCanvas-uRuHi99s.css +0 -1
- package/dist/assets/WhyMachineOverlay-BZk3PVTl.css +0 -1
- package/dist/assets/WorldOverlay-BaQNNClA.js +0 -2
- package/dist/assets/ZoomDeck-B2SjNwY7.css +0 -1
- package/dist/assets/canvas-Bsx3eSaS.js +0 -1
- package/dist/assets/capture-D8uPIcfj.js +0 -2
- package/dist/assets/dashboards-C1u2ks-d.css +0 -1
- package/dist/assets/generateLive-B6purd69.js +0 -51
- package/dist/assets/homeTarget-CsO8nY7z.js +0 -1
- package/dist/assets/index-Dk0QapqQ.js +0 -22
- package/dist/assets/index-DmKgC_TJ.css +0 -1
- package/dist/assets/kokoro-P_fkcX-A.js +0 -1
- package/dist/assets/layout-CEoNLr-w.js +0 -1
- package/dist/assets/pageVisibility-BxUVsw7Z.js +0 -1
- package/dist/assets/pen-DNMslo3e.js +0 -24
- package/dist/assets/pin-D-4Zjiik.css +0 -1
- package/dist/assets/portal-Dogggsub.js +0 -1
- package/dist/assets/providers-BovElgRL.js +0 -1
- package/dist/assets/quietHours-CeBje_uU.js +0 -1
- package/dist/assets/registry-BSX3aFUw.js +0 -1
- package/dist/assets/registry-Bv1f5UU4.js +0 -2
- package/dist/assets/registry-Cse2wF7x.css +0 -1
- package/dist/assets/registry-Dye5m3qt.css +0 -1
- package/dist/assets/registry-GeSy4i7R.css +0 -1
- package/dist/assets/registry-WHd1PwU3.js +0 -1
- package/dist/assets/registry-Xl8mAnKq.js +0 -1
- package/dist/assets/registry-tkd3UhWn.css +0 -1
- package/dist/assets/shapes-Cx5SCKgj.js +0 -39
- package/dist/assets/speed-K5_Ebj-8.js +0 -1
- package/dist/assets/store-BfHRbVKz.js +0 -1
- package/dist/assets/store-CsjDEADX.js +0 -1
- package/dist/assets/store-DpObYU1u.js +0 -1
- package/dist/assets/store-gohr8YVT.js +0 -1
- package/dist/assets/streamParse-B-Gjwa9T.js +0 -2
- package/dist/assets/useFocusTrap-DBtkeyRy.js +0 -1
- package/dist/assets/useInView-CXTOAEV3.js +0 -1
- package/dist/assets/useStudy-GwNcQWtv.js +0 -1
- package/dist/demo-assets/images/basalt-cliffs.jpg +0 -0
- package/dist/demo-assets/images/capelinhos.jpg +0 -0
- package/dist/demo-assets/images/cliff-fields.jpg +0 -0
- package/dist/demo-assets/images/crater-panorama.jpg +0 -0
- package/dist/demo-assets/images/furnas-lake.jpg +0 -0
- package/dist/demo-assets/images/green-coast.jpg +0 -0
- package/dist/demo-assets/images/overcast-coast.jpg +0 -0
- package/dist/demo-assets/images/patchwork-fields.jpg +0 -0
- package/dist/demo-assets/images/ponta-delgada.jpg +0 -0
- package/dist/demo-assets/images/sete-cidades.jpg +0 -0
- package/dist/demo-assets/images/village-street.jpg +0 -0
- package/dist/demo-assets/video/azores-film.webm +0 -0
- /package/dist/assets/{BriefingPlayer-C0D_2ILa.js → BriefingPlayer-74mRKyjl.js} +0 -0
- /package/dist/assets/{CrossExamPanel-CdIYUu-B.js → CrossExamPanel-BfeGr5iw.js} +0 -0
- /package/dist/assets/{ForecastPanel-zPUh2ClQ.js → ForecastPanel-OfW39WGS.js} +0 -0
- /package/dist/assets/{LeverPanel-D1SNRGdm.js → LeverPanel-vco5UK2U.js} +0 -0
- /package/dist/assets/{WhyMachineOverlay-ks9-rRiL.js → WhyMachineOverlay-D2K7y8SA.js} +0 -0
- /package/dist/assets/{lib-B7OE1ZQQ.js → lib-u95BsX_B.js} +0 -0
- /package/dist/assets/{registry-7poQfBaM.js → registry-C4Yh05pk.js} +0 -0
- /package/dist/assets/{registry-Daypk4uR.js → registry-S3j4OpCH.js} +0 -0
|
@@ -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;--domain-health:oklch(72% .13 15);--domain-economy:oklch(72% .13 70);--domain-conflict:oklch(72% .13 110);--domain-environment:oklch(72% .13 145);--domain-science:oklch(72% .13 195);--domain-technology:oklch(72% .13 250);--domain-policy:oklch(72% .13 295);--domain-society:oklch(72% .13 340);--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;--domain-health:oklch(56% .15 15);--domain-economy:oklch(56% .15 70);--domain-conflict:oklch(56% .15 110);--domain-environment:oklch(56% .15 145);--domain-science:oklch(56% .15 195);--domain-technology:oklch(56% .15 250);--domain-policy:oklch(56% .15 295);--domain-society:oklch(56% .15 340);--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-watch{border-radius:var(--r-full);border:1px solid var(--line);min-width:132px;height:38px;color:var(--text-secondary);font:600 11px/1 var(--font);white-space:nowrap;transition:color var(--m-fast), border-color var(--m-fast), background var(--m-fast);background:0 0;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 11px;display:inline-flex}.composer-watch:hover{color:var(--text-primary);border-color:var(--line-strong);background:var(--surface-glass)}.composer-watch.on{color:var(--presence);border-color:color-mix(in oklab, var(--presence) 55%, var(--line));background:color-mix(in oklab, var(--presence) 10%, transparent)}.composer-watch svg{width:15px;height:15px}.composer-watch:focus-visible{outline:2px solid var(--presence);outline-offset:2px}@media (width<=620px){.composer-watch{width:38px;padding:0}.composer-watch span{display:none}}.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.armed:not(.listening){box-shadow:0 8px 22px -8px var(--glow-presence), 0 0 0 3px color-mix(in oklab, var(--presence) 22%, transparent)}.mic-btn.paused{filter:saturate(.35);background:var(--surface-elevated-2);color:var(--text-secondary);box-shadow:inset 0 0 0 1px var(--line-strong)}.mic-btn.processing{filter:saturate(.5);cursor:progress}.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:hover:not(.active){color:var(--text-primary);background:color-mix(in oklab, var(--surface-elevated) 55%, transparent)}.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:9px}.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:9px;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:9px}.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-world{border-radius:var(--r-full);border:1px solid var(--line);color:var(--text-secondary);font:600 13.5px/1 var(--font);cursor:pointer;transition:border-color var(--m-fast), color var(--m-fast);background:0 0;align-items:center;gap:8px;padding:9px 16px;display:inline-flex}.fl-tour-invite-world svg{width:15px;height:15px}.fl-tour-invite-world:hover{border-color:var(--presence);color:var(--text-primary)}.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+.legal-gate-consent{margin-top:10px}.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%}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-DkW27tQK.js";import{d as t,l as n,p as r,u as i}from"./index-Dk0QapqQ.js";import{r as a,t as o}from"./spokenText-C88IQJ0M.js";var s=e({cancelSpeech:()=>m,isSpeaking:()=>h,isVoicePreparing:()=>ee,primeLine:()=>p,sayable:()=>u,speak:()=>d,speakLine:()=>f,subscribeSpeaking:()=>g}),c=/[\u{1F300}-\u{1FAFF}\u{2600}-\u{27BF}\u{2B00}-\u{2BFF}\u{2300}-\u{23FF}]/gu,l=/[\uFE0F\u200D]/g;function u(e){return a(String(e)).replace(/<[^>]*>/g,` `).replace(/&[a-z]+;/gi,` `).replace(/```[\s\S]*?```/g,` `).replace(/`([^`]+)`/g,`$1`).replace(/^\s{0,3}#{1,6}\s+/gm,``).replace(/^\s*[-*+]\s+/gm,``).replace(/^\s*\d{1,2}[.)]\s+/gm,``).replace(/\*\*([^*]+)\*\*/g,`$1`).replace(/\*([^*]+)\*/g,`$1`).replace(/\bMav[eé]a['’]s\s*/gi,``).replace(/\s*\bMav[eé]a\b\s*/gi,` `).replace(/\s+([.,!?;:])/g,`$1`).replace(c,``).replace(l,``).replace(/[“”"]/g,``).replace(/[•★→·|]/g,` `).replace(/[—–]/g,`, `).replace(/\s+/g,` `).trim()}function d(e,t){f(e,t).finished}function f(e,t){return We(e,t)}function p(e,t){Be(e,t)}function m(){Ke()}function h(){return qe()}function ee(){return Je()}function g(e){return Ye(e)}var _={Omakase:`oh-mah-kah-seh`,omakase:`oh-mah-kah-seh`,OMAKASE:`oh-mah-kah-seh`,CUDA:`kooda`,cuDNN:`koo dee en en`,JSON:`jason`,YAML:`yammel`,GUI:`gooey`,SaaS:`sass`,ASCII:`askee`,WYSIWYG:`wizzywig`,NASA:`nassa`,NASDAQ:`nazdack`,JPEG:`jaypeg`,OAuth:`oh-auth`,nginx:`engine x`,PyTorch:`pie torch`,Qwen:`kwen`,SQLite:`sequel lite`,MySQL:`my sequel`,PostgreSQL:`postgres`};function te(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}var v=RegExp(`(?<![A-Za-z0-9])(${Object.keys(_).sort((e,t)=>t.length-e.length).map(te).join(`|`)})(s)?(?![A-Za-z0-9])`,`g`);function y(e){return e.replace(v,(e,t,n)=>{let r=_[t];return n?`${r}${n}`:r})}var b={Jan:`January`,Feb:`February`,Mar:`March`,Apr:`April`,Jun:`June`,Jul:`July`,Aug:`August`,Sep:`September`,Sept:`September`,Oct:`October`,Nov:`November`,Dec:`December`},ne=RegExp(`(?<![A-Za-z])(${Object.keys(b).join(`|`)})\\.?(?=,?\\s+\\d)`,`g`);function re(e){return e.replace(ne,(e,t)=>b[t])}function ie(e){return re(y(o(a(e))))}var x=new Map,S=0;function ae(e,t,n){return`${e}::${t}::${n}`}function oe(e){let t=x.get(e);return t?(x.delete(e),x.set(e,t),t):null}function se(e){return x.has(e)}function ce(e,t){if(t.length===0||t.length>2097152)return;let n=x.get(e);for(n&&(x.delete(e),S-=n.length);S+t.length>8388608&&x.size>0;){let e=x.keys().next().value;S-=x.get(e).length,x.delete(e)}x.set(e,t),S+=t.length}var C=24e3,le=.08,ue=.2,de=2;function w(e,t){if(e.length===0)return{samples:new Float32Array,carry:t};let n=t!==null,r=+!!n+e.length,i=r>>1,a=new Float32Array(i),o=0,s=0;if(n&&i>0){let n=t|e[0]<<8;n>=32768&&(n-=65536),a[o++]=n/32768,s=1}for(;o<i;o++,s+=2){let t=e[s]|e[s+1]<<8;t>=32768&&(t-=65536),a[o]=t/32768}return{samples:a,carry:(r&1)==1?e[e.length-1]:null}}var T=null;function fe(e){T=e}var pe=1,E=!1,D=()=>E?0:pe,me=new Set,he=new Set;function ge(){let e=D();k&&(k.gain.gain.value=e);for(let t of me)t.volume=e}function _e(e){pe=Math.min(1,Math.max(.05,e)),ge()}var ve=1;function ye(e){ve=Math.min(2,Math.max(.75,e))}function O(){return ve}function be(e){let t=E!==e;if(E=e,ge(),t)for(let e of he)e()}function xe(){return E}function Se(e){return he.add(e),()=>{he.delete(e)}}function Ce(e){return e.volume=D(),me.add(e),()=>{me.delete(e)}}var k=null,A=0,j=null;function M(e){for(let t of e.sources){try{t.stop()}catch{}try{t.disconnect()}catch{}}e.sources.clear();try{e.releaseTap()}catch{}try{e.gain.disconnect()}catch{}try{e.abort.abort()}catch{}k===e&&(k=null)}function we(){A++,j?.abort(),j=null;let e=k;e&&(e.cancelled=!0,e.finishEarly?.(),M(e))}var Te=e=>new Promise(t=>setTimeout(t,e));async function Ee(e,n,r,a,o){let s=i();if(!s)return!1;if(s.state!==`running`)try{await s.resume()}catch{}if(s.state!==`running`)return!1;let c=new AbortController,l=A;j=c;let u;try{u=await fetch(`/tts/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:`kokoro`,input:e,voice:n,response_format:`pcm`,speed:o??ve}),signal:c.signal})}catch{return j===c&&(j=null),l!==A}if(j===c&&(j=null),l!==A){try{c.abort()}catch{}return!0}if(!u.ok||!u.body)return!1;let d=s.createGain();d.gain.value=D();let f={sources:new Set,releaseTap:t(d),gain:d,abort:c,cancelled:!1};k&&(k.cancelled=!0,M(k)),k=f;let p=s.currentTime+le,m=!1,h=T;try{h?.begin(e)}catch{}let ee=e=>{if(!e.length)return;let t=s.createBuffer(1,e.length,C);t.getChannelData(0).set(e);let n=s.createBufferSource();if(n.buffer=t,n.connect(d),p<s.currentTime&&(p=s.currentTime+.02),n.start(p),p+=t.duration,!m)try{r?.()}catch{}m=!0,f.sources.add(n),n.onended=()=>{f.sources.delete(n);try{n.disconnect()}catch{}}},g=[],_=0,te=Math.round(ue*C),v=()=>{if(_===0)return;let e;if(g.length===1)e=g[0];else{e=new Float32Array(_);let t=0;for(let n of g)e.set(n,t),t+=n.length}g=[],_=0,ee(e)},y=a?[]:null,b=0;try{let e=u.body.getReader(),t=null;for(;;){for(;!f.cancelled&&p-s.currentTime>de;)await Te(60);if(f.cancelled)break;let{done:n,value:r}=await e.read();if(f.cancelled||n)break;if(!r||r.length===0)continue;y&&(b+=r.length,b>2097152?y=null:y.push(r));let i=w(r,t);if(t=i.carry,i.samples.length){g.push(i.samples),_+=i.samples.length;try{h?.push(i.samples)}catch{}}(m?_>=te:_>0)&&v()}f.cancelled||v()}catch(e){f.cancelled||console.warn(`[streamTts] stream read failed mid-line — audio may be truncated`,e)}if(!f.cancelled&&m){if(a){let e=null;if(y){e=new Uint8Array(b);let t=0;for(let n of y)e.set(n,t),t+=n.length}try{a(e)}catch{}}await new Promise(e=>{let t=Math.max(0,(p-s.currentTime)*1e3)+40,n=setTimeout(e,t);f.finishEarly=()=>{clearTimeout(n),e()}})}let ne=f.cancelled;M(f);try{h?.end(m)}catch{}return ne||m}var De=1;async function Oe(e,n,r){let a=i();if(!a||e.length<2)return!1;let o=A;if(a.state!==`running`)try{await a.resume()}catch{}if(a.state!==`running`)return!1;if(o!==A)return!0;let s=a.createGain();s.gain.value=D();let c={sources:new Set,releaseTap:t(s),gain:s,abort:new AbortController,cancelled:!1};k&&(k.cancelled=!0,M(k)),k=c;let l=T;try{l?.begin(n)}catch{}let{samples:u}=w(e,null);try{l?.push(u)}catch{}let d=a.currentTime+le,f=!1,p=Math.round(De*C);for(let e=0;e<u.length&&!c.cancelled;e+=p){let t=u.subarray(e,Math.min(e+p,u.length)),n=a.createBuffer(1,t.length,C);n.getChannelData(0).set(t);let i=a.createBufferSource();if(i.buffer=n,i.connect(s),i.start(d),d+=n.duration,!f)try{r?.()}catch{}f=!0,c.sources.add(i),i.onended=()=>{c.sources.delete(i);try{i.disconnect()}catch{}}}!c.cancelled&&f&&await new Promise(e=>{let t=Math.max(0,(d-a.currentTime)*1e3)+40,n=setTimeout(e,t);c.finishEarly=()=>{clearTimeout(n),e()}});let m=c.cancelled;M(c);try{l?.end(f)}catch{}return m||f}var ke=[{id:`heart`,label:`Heart`,kokoro:`af_heart`,tone:`warm`},{id:`emma`,label:`Emma`,kokoro:`bf_emma`,tone:`calm`},{id:`bella`,label:`Bella`,kokoro:`af_bella`,tone:`bright`},{id:`michael`,label:`Michael`,kokoro:`am_michael`,tone:`clear`},{id:`george`,label:`George`,kokoro:`bm_george`,tone:`steady`}],Ae=`heart`,je=`mavea-voice-mavea`;function N(e){return ke.find(t=>t.id===e)}var Me=e({cancelKokoro:()=>Ke,kokoroAvailable:()=>Ze,kokoroKnownAvailable:()=>$e,kokoroSpeaking:()=>qe,kokoroSynthesizing:()=>Je,kokoroVoice:()=>Pe,primeKokoroLine:()=>Be,resetKokoroProbe:()=>et,setKokoroVoice:()=>Ne,speakKokoroLine:()=>We,speakKokoroResult:()=>Ge,subscribeKokoroSpeaking:()=>Ye}),P={mavea:N(`heart`)?.kokoro??`af_heart`,user:N(`george`)?.kokoro??`bm_george`};function Ne(e,t){t&&(P[e]=t)}function Pe(e){return P[e]}var F=[],I=!1,L=!1,R=!1,z=0,B=null,V=null,H=null,Fe=null,U=null,W=new Set,Ie=!1,Le=!1;function G(){let e=qe(),t=Je();if(e!==Ie||t!==Le){Ie=e,Le=t;for(let e of W)e()}}function Re(){if(H){try{URL.revokeObjectURL(H)}catch{}H=null}}function K(){Fe&&=(Fe(),null)}var q=null,J=null,Y=null;function ze(){let e=F[0]??B;if(!e||$e()!==!0)return;let t=O(),n=ae(e.voice,t,e.text);if(se(n)||J===n)return;q?.abort();let r=new AbortController;q=r,J=n,Y=(async()=>{try{let i=await fetch(`/tts/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:`kokoro`,input:e.text,voice:e.voice,response_format:`pcm`,speed:t}),signal:r.signal});if(i.ok){let e=new Uint8Array(await i.arrayBuffer());e.length&&ce(n,e)}}catch{}finally{q===r&&(q=null,J=null,Y=null)}})()}function Be(e,t){let n=ie(u(e));n&&(B={text:n,voice:P[t]??P.mavea},R||ze())}async function Ve(e){let t=O(),n=ae(e.voice,t,e.text);B&&B.text===e.text&&(B=null);try{let r=oe(n);if(!r&&J===n&&Y&&(await Y,r=oe(n)),r&&(ze(),await Oe(r,e.text,()=>e.start(!0))))return!0;q&&J!==n&&(q.abort(),q=null,J=null,Y=null),R=!0;try{if(await Ee(e.text,e.voice,()=>e.start(!0),e=>{R=!1,e&&ce(n,e),ze()},t))return!0}finally{R=!1}}catch{}R=!0;try{return await He(e)}finally{R=!1}}async function He(e){let t=!1,n=new AbortController;U=n;try{let i=await fetch(`/tts/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:`kokoro`,input:e.text,voice:e.voice,response_format:`wav`,speed:O()}),signal:n.signal});if(!i.ok)return!1;let a=await i.blob();if(!a.size)return!1;let o=URL.createObjectURL(a);H=o,await new Promise(n=>{let i=new Audio(o);V=i,Fe=Ce(i);let a=r(i),s=!1,c=e=>{s||(s=!0,K(),a(),t=e,n())};i.onended=()=>c(!0),i.onerror=()=>c(!1);let l=i.play();l&&typeof l.then==`function`?l.then(()=>e.start(!0),()=>c(!1)):e.start(!0)})}catch{}finally{U===n&&(U=null),K(),Re(),V=null}return t}async function Ue(){if(!I){I=!0;try{for(;F.length;){let e=F.shift();L=!0,G();let t={...e,start:t=>{L=!1,G(),e.start(t)}},n=z,r=!1;if(await Ze()&&n===z){let e=await Ve(t);r=e&&n===z,!e&&n===z&&Qe()}t.start(r),t.done(r)}}finally{I=!1,G()}}}function We(e,t){let n=ie(u(e));if(!n)return{started:Promise.resolve(!1),finished:Promise.resolve(!1)};let r,i=new Promise(e=>{r=e}),a=!1,o=e=>{a||(a=!0,r(e))};return{started:i,finished:new Promise(e=>{F.push({text:n,voice:P[t]??P.mavea,start:o,done:e}),G(),Ue()})}}function Ge(e,t){return We(e,t).finished}function Ke(){z++,we(),B=null,q&&(q.abort(),q=null,J=null,Y=null),U&&=(U.abort(),null);let e=F.splice(0,F.length);for(let t of e)try{t.start(!1),t.done(!1)}catch{}if(V)try{V.pause(),V.src=``}catch{}K(),Re(),V=null,L=!1,n(),G()}function qe(){return I||F.length>0||V!==null}function Je(){return I&&L}function Ye(e){return W.add(e),()=>W.delete(e)}var Xe=2e4,X=null,Z=null,Q=0,$=!1;function Ze(){if(X&&Q!==0&&Date.now()>=Q&&(X=null),!X){Q=0;let e=(async()=>{try{let e=await fetch(`/tts/health`,{method:`GET`});return!e.ok&&!$&&console.debug(`[kokoro] TTS health check returned`,e.status,`— voice off, captions only`),e.ok}catch(e){return $||console.debug(`[kokoro] TTS health check unreachable — voice off, captions only`,e),!1}})();X=e,e.then(t=>{X===e&&(Z=t,$=!t,Q=t?0:Date.now()+Xe)})}return X}function Qe(){Z===!0&&(Q=Date.now())}function $e(){return Z}function et(){X=null,Z=null,Q=0,$=!1}export{f as A,ie as C,p as D,ee as E,s as M,u as O,Se as S,h as T,be as _,Me as a,ye as b,Ae as c,N as d,Ce as f,xe as g,O as h,Pe as i,g as j,d as k,je as l,w as m,Ze as n,Ne as o,we as p,$e as r,Ge as s,Ke as t,ke as u,fe as v,m as w,Ee as x,_e as y};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e=12,t={insight:{min:4,pref:4,height:.3},kpi:{min:4,pref:6,height:.3},ring:{min:4,pref:5,height:.45},gauge:{min:4,pref:5,height:.45},donut:{min:4,pref:5,height:.5},breakdown:{min:4,pref:6,height:.55},stack:{min:5,pref:7,height:.4},bars:{min:5,pref:7,height:.6},chart:{min:6,pref:8,height:.6},scatter:{min:6,pref:8,height:.6},list:{min:4,pref:6,height:.55},checklist:{min:4,pref:6,height:.55},timeline:{min:6,pref:8,height:.7},flow:{min:6,pref:8,height:.5},compare:{min:8,pref:12,height:.8},map:{min:8,pref:12,height:.8},heat:{min:8,pref:12,height:.75},gallery:{min:6,pref:8,height:.7}},n={min:4,pref:6,max:e,height:.5};function r(t,n=1,r=e){return Math.min(r,Math.max(n,Math.round(t)))}function i(i,a){let o=i.type??``,s={...n,...t[o],...a?.(i)??{}},c=r(s.min??n.min),l=r(s.max??e);return{min:c,pref:r(Math.max(c,s.pref??n.pref),c,l),max:l,height:Math.min(1,Math.max(0,s.height??n.height))}}function a(t,n){if(n===e)return t;let r=n/e,i=Math.max(1,Math.round(t.min*r)),a=n;return{min:i,pref:Math.min(a,Math.max(i,Math.round(t.pref*r))),max:a,height:t.height}}function o(e,t,n){if(e.length===0||t<3)return!1;for(let t of e)if(Math.abs(t.height-n.height)>.45)return!0;return!1}function s(t,n){let r=Math.max(2,Math.round(4*n/e)),i=[],a=0;for(;a<t.length;){let e=[a],s=t[a].pref,c=a+1;for(;c<t.length&&e.length<r;){let r=t[c];if(s+r.pref>n||o(e.map(e=>t[e]),s,r))break;e.push(c),s+=r.pref,c++}i.push(e),a=c}let s=e=>e.reduce((e,n)=>e+t[n].min,0),c=(e,t)=>e.length+t.length<=r&&s(e)+s(t)<=n;for(let e=0;e<i.length;){if(i[e].length!==1){e++;continue}let t=i[e+1],n=i[e-1];t&&c(i[e],t)?i.splice(e,2,[...i[e],...t]):n&&c(n,i[e])?(i.splice(e-1,2,[...n,...i[e]]),e=Math.max(0,e-1)):(n&&n.length>=3&&c([n[n.length-1]],i[e])&&i[e].unshift(n.pop()),e++)}return i}function c(e,t){let n=e.map(e=>e.pref),r=()=>n.reduce((e,t)=>e+t,0);for(let i=0;r()<t&&i<200;i++){let t=-1;for(let r=0;r<n.length;r++)n[r]>=e[r].max||(t===-1||n[r]<n[t])&&(t=r);if(t===-1)break;n[t]++}for(let i=0;r()>t&&i<200;i++){let t=-1;for(let r=0;r<n.length;r++)n[r]<=e[r].min||(t===-1||n[r]>n[t])&&(t=r);if(t===-1)break;n[t]--}return n}function l(t,n,o=e){if(t.length===0)return t;let l=Math.max(1,Math.min(e,Math.round(o))),u=t.map(e=>a(i(e,n),l)),d=t.map(e=>e.col);for(let t of s(u,l)){let n=c(t.map(e=>u[e]),l);t.forEach((t,i)=>{d[t]=r(Math.round(n[i]/l*e),1,e)})}return t.map((e,t)=>e.col===d[t]?e:{...e,col:d[t]})}export{l as n,t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(){return typeof document<`u`&&document.visibilityState===`hidden`}export{e as t};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/pdf-CUAVYiYW.js","assets/preload-helper-CiWYd9n-.js","assets/rolldown-runtime-DkW27tQK.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e,t}from"./preload-helper-CiWYd9n-.js";import{t as n}from"./cachedImport-DW0gP14h.js";import{n as r}from"./streamParse-B-Gjwa9T.js";import{i,r as a}from"./attachments-BW-vki-E.js";import{t as o}from"./providers-BovElgRL.js";import{i as s}from"./verbatim-DBTj9sPD.js";import{t as c}from"./citation-BsSvaaer.js";import{t as l}from"./search-ZN7v_P5B.js";e();var u=n(()=>t(()=>import(`./pdf-CUAVYiYW.js`).then(e=>{let t=e.default??e;return t?.GlobalWorkerOptions&&(t.GlobalWorkerOptions.workerSrc=new URL(`/assets/pdf.worker.min-CHFwMXne.mjs`,``+import.meta.url).href),t}),__vite__mapDeps([0,1,2])));function d(){return u().catch(()=>null)}var f={wasmUrl:`/pdfjs/`};function p(e){if(typeof e?.str!=`string`||e.str.trim()===``)return null;let t=e.transform??[1,0,0,1,0,0],n=Math.hypot(t[2],t[3])||(typeof e.height==`number`?e.height:0)||10;return{it:e,left:t[4],y:t[5],w:typeof e.width==`number`?e.width:0,h:n}}function m(e){e.sort((e,t)=>t.y-e.y||e.left-t.left);let t=[],n=[],r=0,i=0;for(let a of e)n.length>0&&Math.abs(a.y-r)>Math.max(i,a.h)*.5&&(t.push(n),n=[]),n.length===0&&(r=a.y,i=a.h),n.push(a);n.length>0&&t.push(n);let a=[];for(let e of t){e.sort((e,t)=>e.left-t.left);for(let t of e)a.push(t.it)}return a}function h(e){let t=e.map(p).filter(e=>e!==null);if(t.length<2)return t.map(e=>e.it);let n=Math.min(...t.map(e=>e.left)),r=Math.max(...t.map(e=>e.left+e.w)),i=Math.max(...t.map(e=>e.y)),a=Math.min(...t.map(e=>e.y)),o=r-n||1,s=i-a||1,c=null,l=t.filter(e=>e.y<i-.1*s&&e.y>a+.04*s);if(l.length>6)for(let e of[.5,.48,.52,.46,.54]){let r=n+e*o,i=l.filter(e=>e.left<r-2&&e.left+e.w>r+2).length,a=t.filter(e=>e.left+e.w/2<r).length,s=t.length-a;if(i<=Math.max(2,l.length*.02)&&a>t.length*.2&&s>t.length*.2){c=r;break}}if(c===null)return m(t);let u=c;return[...m(t.filter(e=>e.left+e.w/2<u)),...m(t.filter(e=>e.left+e.w/2>=u))]}async function g(e){let t=await d();if(!t?.getDocument)return null;try{let n=await a(e),r=await t.getDocument({data:n.slice(),...f}).promise,i=[];for(let e=1;e<=r.numPages;e+=1){let t=await r.getPage(e),n=h((await t.getTextContent()).items).map(e=>typeof e.str==`string`?e.str:``).join(` `);i.push(n),t.cleanup?.()}return await r.destroy?.(),i}catch{return null}}function _(){return Math.min(2,Math.max(1,typeof window<`u`&&window.devicePixelRatio||1))}function v(e){return Math.max(600,Math.min(1900,Math.round((Number.isFinite(e)&&e>0?e:1200)*1.15)))}var y=e=>e.file??e.bytes??e.data,b=null,x=null,S=null,C=0;async function w(e,t){let n=y(e);for(;S&&S.key!==n;)await S.promise.catch(()=>{});if(b===n&&x)return x;if(S&&S.key===n)return S.promise;let r=C,o=(async()=>{if(x)try{await x.destroy?.()}catch{}let o=i(e)??await a(e),s=await t.getDocument({data:o.slice(),...f}).promise;if(r!==C){try{await s.destroy?.()}catch{}throw Error(`render doc superseded`)}return x=s,b=n,s})(),s={key:n,promise:o};S=s;try{return await o}finally{S===s&&(S=null)}}async function ee(){C+=1,S=null;let e=x;x=null,b=null;try{await e?.destroy?.()}catch{}}function te(e){return Array.from(e.normalize(`NFKC`)).map(e=>e===``?``:`‘’‛`.includes(e)?`'`:`“”`.includes(e)?`"`:/[‐-―]/.test(e)?`-`:/\s/.test(e)?` `:e.toLowerCase())}async function T(e,t,n,r=720,i=!1,a=[]){let o=await d();if(!o?.getDocument)return null;let s=null;try{let c=await w(e,o);if(t<1||t>c.numPages)return null;s=await c.getPage(t);let l=s.getViewport({scale:1}),u=_(),d=r/l.width*u,f=s.getViewport({scale:d}),p=document.createElement(`canvas`);p.width=Math.ceil(f.width),p.height=Math.ceil(f.height);let m=p.getContext(`2d`);if(!m)return null;await s.render({canvasContext:m,viewport:f}).promise;let h=await s.getTextContent(),g=E(h,n,f,o),v=a.map(e=>E(h,e,f,o)),y=null;if(i||ne(n))try{y=j(await s.getOperatorList(),h,g,f,o)}catch{y=null}return{canvas:p,rects:g,figure:y,alsoRects:v}}catch{return null}finally{s?.cleanup?.()}}function E(e,t,n,r){let i=s(t);if(!i)return[];let a=[];for(let t of h(e.items)){if(typeof t.str!=`string`)continue;let e=D(t,n,r);if(!e)continue;let i=te(t.str),o=i.filter(e=>e.length>0).length||1,s=e.w/o,c=0;for(let t of i)t!==``&&(a.push({ch:t,rect:{x:e.x+s*c,y:e.y,w:s,h:e.h}}),c+=1);a.push({ch:` `,rect:{x:e.x+e.w,y:e.y,w:0,h:e.h}})}let o=[];for(let e=0;e<a.length;e+=1){let t=a[e];if(t.ch===`-`){let t=e+1;for(;t<a.length&&a[t].ch===` `;)t+=1;if(t>e+1){e=t-1;continue}}if(t.ch===` `){let t=o[o.length-1];if(t&&`$€£¥`.includes(t.ch)){let t=e+1;for(;t<a.length&&a[t].ch===` `;)t+=1;if(t<a.length&&/[\d(]/.test(a[t].ch))continue}if(t&&t.ch===` `)continue}o.push(t)}let c=o.map(e=>e.ch).join(``).indexOf(i);return c<0?[]:O(o.slice(c,c+i.length).filter(e=>e.rect.w>0).map(e=>e.rect))}function D(e,t,n){try{let r=n.Util.transform(t.transform,e.transform),i=r[4],a=r[5],o=(e.width||0)*t.scale,s=Math.hypot(r[2],r[3])||10,c=s*1.15;return o<=0?null:{x:i,y:a-s,w:o,h:c}}catch{return null}}function O(e){if(e.length===0)return e;let t=[...e].sort((e,t)=>e.y-t.y||e.x-t.x),n=[];for(let e of t){let t=n[n.length-1];if(t&&Math.abs(t.y-e.y)<t.h*.6&&e.x<=t.x+t.w+t.h){let n=Math.max(t.x+t.w,e.x+e.w);t.x=Math.min(t.x,e.x),t.w=n-t.x,t.y=Math.min(t.y,e.y),t.h=Math.max(t.h,e.h)}else n.push({...e})}return n}function ne(e){return/\b(fig(?:ure|\.)?|table|chart|diagram|graph|plot|schematic|illustration)\b/i.test(e)}function re(e,t,n){let r=n.OPS??{},i=e.fnArray??[],a=e.argsArray??[],o=t.transform,s=[],c=[];for(let e=0;e<i.length;e+=1){let l=i[e];if(l===r.save)s.push(o);else if(l===r.restore)o=s.pop()??t.transform;else if(l===r.transform)o=n.Util.transform(o,a[e]);else if(l===r.paintImageXObject||l===r.paintInlineImage||l===r.paintImageMaskXObject||l===r.paintJpegXObject){let e=o,t=[e[4],e[0]+e[4],e[2]+e[4],e[0]+e[2]+e[4]],n=[e[5],e[1]+e[5],e[3]+e[5],e[1]+e[3]+e[5]],r=Math.min(...t),i=Math.min(...n),a=Math.max(...t)-r,s=Math.max(...n)-i;a>8&&s>8&&c.push({x:r,y:i,w:a,h:s})}}return c}function k(e,t,n){let r=[];for(let i of e.items){if(typeof i.str!=`string`||i.str.trim()===``)continue;let e=D(i,t,n);e&&r.push(e)}return O(r)}function A(e,t){return e.x<t.x+t.w&&e.x+e.w>t.x&&e.y<t.y+t.h&&e.y+e.h>t.y}function j(e,t,n,r,i){let a=re(e,r,i);if(a.length===0||n.length===0)return null;let o=M(n),s=o.x+o.w/2,c=null,l=1/0;for(let e of a){let t=e.x+e.w/2,n=Math.abs(t-s);if(n>Math.max(e.w,o.w))continue;let r=N(e,o)+n*.5;r<l&&(l=r,c=e)}if(!c)return null;let u=k(t,r,i).filter(e=>!A(e,o)),d=P(c,u,o);return!d||d.w<10||d.h<10?null:d}function M(e){let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y)),r=Math.max(...e.map(e=>e.x+e.w)),i=Math.max(...e.map(e=>e.y+e.h));return{x:t,y:n,w:r-t,h:i-n}}function N(e,t){return e.y+e.h<t.y?t.y-(e.y+e.h):t.y+t.h<e.y?e.y-(t.y+t.h):0}function P(e,t,n){let r=e.y,i=e.y+e.h,a=n.y+n.h/2;for(let n of t){let t=n.y+n.h/2;Math.min(e.x+e.w,n.x+n.w)-Math.max(e.x,n.x)<e.w*.3||(t<a&&n.y+n.h>e.y&&t<e.y+e.h/2&&(r=Math.max(r,n.y+n.h)),t>a&&n.y<i&&(i=Math.min(i,n.y)))}return i-r<10?null:{x:e.x,y:r,w:e.w,h:i-r}}var F={holds:{label:`HOLDS`,token:`var(--insight)`},outdated:{label:`OUTDATED`,token:`var(--warning)`},disputed:{label:`DISPUTED`,token:`var(--warning)`},contradicted:{label:`CONTRADICTED`,token:`var(--danger)`},unsupported:{label:`UNSUPPORTED`,token:`#8c90a0`}},I=[`outdated`,`disputed`,`contradicted`,`unsupported`],L=[`holds`,`outdated`,`disputed`,`contradicted`];function R(e,t){let n=c(e,t);if(L.includes(e.verdict)&&!n)return{claimId:e.claimId,verdict:`unsupported`,note:`Nothing in the searched sources backs this up.`};let r=(e.note??``).trim();return{claimId:e.claimId,verdict:e.verdict,note:r||(e.verdict===`unsupported`?`Nothing in the searched sources backs this up.`:`The public record speaks to this.`),...n?{citation:n}:{}}}function z(e,t){let n=l(e);return n.needsKey&&!t?l(`wikipedia`):n}var B=[`holds`,`outdated`,`disputed`,`contradicted`,`unsupported`];function V(e){let t=String(e??``).toLowerCase().trim();return B.includes(t)?t:`unsupported`}function H(e){return`${e.title} ${e.quote}`.replace(/\s+/g,` `).trim().slice(0,200)}function U(e){if(e&&typeof e==`object`)return e;let t=String(e),n=t.indexOf(`{`);if(n<0)return null;let r=0,i=!1,a=!1;for(let e=n;e<t.length;e+=1){let o=t[e];if(i){a?a=!1:o===`\\`?a=!0:o===`"`&&(i=!1);continue}if(o===`"`)i=!0;else if(o===`{`)r+=1;else if(o===`}`&&(--r,r===0))try{return JSON.parse(t.slice(n,e+1))}catch{return null}}return null}function W(e){return(typeof e==`string`?e.trim():``)||void 0}function ie(e){let t=U(e),n=t&&Array.isArray(t.verdicts)?t.verdicts:typeof e==`string`?r(e,`verdicts`):[],i=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e,n=W(t.claimId);n&&i.push({claimId:n,verdict:V(t.verdict),note:W(t.note),citationQuote:W(t.citationQuote),citationUrl:W(t.citationUrl),citationDate:W(t.citationDate)})}return i}var G=`You are a meticulous fact-checker. You judge claims only against the sources given to you and return strict JSON. You never invent a source, a URL, or a quote, and you default to "unsupported" whenever the evidence is thin.`;function K(e,t){return`For each CLAIM below (a verbatim quote pulled from a document), decide how it stands against
|
|
3
|
-
the SOURCES listed for it (short web-search snippets — that is all you have, no full pages).
|
|
4
|
-
|
|
5
|
-
Return ONLY JSON (no prose, no fences):
|
|
6
|
-
{ "verdicts": [ { "claimId": "...", "verdict": "holds|outdated|disputed|contradicted|unsupported",
|
|
7
|
-
"note": "<=120 chars, plain", "citationQuote": "copied VERBATIM from one of that claim's sources",
|
|
8
|
-
"citationUrl": "that source's URL, copied exactly from the list" } ] }
|
|
9
|
-
|
|
10
|
-
Rules:
|
|
11
|
-
- "holds": a source clearly supports the claim. "outdated": a source gives a newer/superseding figure.
|
|
12
|
-
"disputed": credible sources genuinely conflict. "contradicted": a source directly contradicts it.
|
|
13
|
-
"unsupported": the sources don't actually bear on the claim — this is the DEFAULT; when in doubt, pick it.
|
|
14
|
-
- For ANY verdict other than "unsupported" you MUST copy a "citationQuote" word-for-word from ONE of
|
|
15
|
-
that claim's own sources, and copy its "citationUrl" exactly. If you cannot, the verdict is "unsupported".
|
|
16
|
-
- Never invent a source, URL, or quote. Only the snippets above are real. Bias hard toward "unsupported"
|
|
17
|
-
when evidence is thin or only loosely related — do not stretch a weak match into a verdict.
|
|
18
|
-
- "note" is a plain restatement ("the public record shows X" / "a 2024 source reports Y"), never "they lied".
|
|
19
|
-
|
|
20
|
-
CLAIMS AND THEIR SOURCES:
|
|
21
|
-
${e.map(e=>{let n=(t.get(e.id)??[]).map(e=>` - "${e.title}": ${e.snippet} (${e.url})`).join(`
|
|
22
|
-
`);return`[claim ${e.id}] "${e.quote}"\n sources:\n${n}`}).join(`
|
|
23
|
-
|
|
24
|
-
`)}`}async function q(e,t){let n=t.provider??z(t.searchProviderId,t.apiKey),r=e.filter(e=>e.role===`load-bearing`).slice(0,t.maxClaims??12);if(r.length===0)return[];let i=new Map;await Promise.all(r.map(async e=>{let r=await n.search(H(e),{apiKey:t.apiKey,signal:t.signal,limit:t.perClaimResults??4});i.set(e.id,r.map(e=>({title:e.title,url:e.url,snippet:e.snippet})))}));let a=r.filter(e=>(i.get(e.id)?.length??0)>0),s=r.filter(e=>(i.get(e.id)?.length??0)===0).map(e=>({claimId:e.id,verdict:`unsupported`,note:`No live source was found to check this.`}));if(a.length===0)return s;let c=Math.min(4096,Math.max(1400,250+a.length*150)),l;try{l=(await o(t.cfg.provider).generate({system:G,history:[],user:K(a,i),maxTokens:c,temperature:0,format:null,...t.signal?{signal:t.signal}:{}},t.cfg)).raw}catch{for(let e of a)s.push({claimId:e.id,verdict:`unsupported`,note:`Could not reach the fact-checker.`});return s}let u=ie(l),d=new Set;for(let e of u)d.has(e.claimId)||a.some(t=>t.id===e.claimId)&&(d.add(e.claimId),s.push(R(e,i.get(e.claimId)??[])));for(let e of a)d.has(e.id)||s.push({claimId:e.id,verdict:`unsupported`,note:`The sources did not clearly speak to this.`});return s}var J=4,Y=3,ae=2,X={contradicted:4,disputed:3,outdated:2,unsupported:1,holds:0},Z={contradicts:`contradicts`,"in-tension":`is in tension with`,agrees:`agrees with`};function Q(e,t){let n=e.replace(/\s+/g,` `).trim();if(n.length<=t)return n;let r=n.slice(0,t),i=r.lastIndexOf(` `);return(i>t*.6?r.slice(0,i):r).trimEnd()+`…`}function oe(e){return Math.max(2600,Math.min(7e3,Math.round(e.length*60)+1200))}function se(e){let t=new Map;for(let n of e)t.set(n.a,(t.get(n.a)??0)+1),t.set(n.b,(t.get(n.b)??0)+1);return t}function ce(e,t,n){if(e.length===0)return[];let r=new Map(e.map(e=>[e.id,e])),i=se(t),a=[],o=new Set,s=0,c=(e,t,n,r)=>{a.push({id:`b${s+=1}`,kind:e,claimIds:t,caption:n,spoken:r,dwellMs:oe(r)});for(let e of t)o.add(e)},l=e.filter(e=>e.role===`load-bearing`),u=[...l.length>0?l:e].sort((e,t)=>(i.get(t.id)??0)-(i.get(e.id)??0)||e.page-t.page||e.id.localeCompare(t.id))[0];c(`open`,[u.id],`The case rests on this — “${Q(u.quote,96)}” · p.${u.page}`,`The whole case rests on this, on page ${u.page}. ${Q(u.quote,220)}`);let d={contradicts:0,"in-tension":1,agrees:2},f=t.filter(e=>e.relation!==`agrees`&&r.has(e.a)&&r.has(e.b)).sort((e,t)=>d[e.relation]-d[t.relation]).slice(0,J);for(let e of f){let t=r.get(e.a),n=r.get(e.b),i=e.crossDoc?` (across documents)`:``;c(`tension`,[t.id,n.id],`p.${t.page}: “${Q(t.quote,52)}” — ${Z[e.relation]}${i} — p.${n.page}: “${Q(n.quote,52)}”`,`On page ${t.page}, the document says ${Q(t.quote,140)}. But it ${Z[e.relation]} page ${n.page}: ${Q(n.quote,140)}.`)}let p=e.map(e=>({c:e,v:n.get(e.id)})).filter(e=>!!e.v&&X[e.v]>=2&&!o.has(e.c.id)).sort((e,t)=>X[t.v]-X[e.v]||e.c.page-t.c.page).slice(0,Y);for(let{c:e,v:t}of p){let n=F[t].label;c(`verdict`,[e.id],`${n} — “${Q(e.quote,72)}” · p.${e.page}`,`The public record marks this ${n.toLowerCase()}: ${Q(e.quote,160)}`)}let m=e.filter(e=>(e.role===`context`||e.kind===`definition`)&&!o.has(e.id)).sort((e,t)=>e.page-t.page).slice(0,ae);for(let e of m)c(`context`,[e.id],`Context — ${Q(e.title,64)} · p.${e.page}`,`For context: ${e.title}.`);let h=e.map(e=>({c:e,v:n.get(e.id)})).filter(e=>!!e.v&&X[e.v]>=2).sort((e,t)=>X[t.v]-X[e.v]||e.c.page-t.c.page)[0];if(h){let e=F[h.v].label;c(`close`,[h.c.id],`The weak point — ${e}: “${Q(h.c.quote,68)}” · p.${h.c.page}`,`So the weakest point: the public record marks this ${e.toLowerCase()} — ${Q(h.c.quote,150)}`)}else if(f.length>0){let e=f[0],t=r.get(e.a),n=r.get(e.b);c(`close`,[t.id,n.id],`The weak point — the document contradicts itself: p.${t.page} vs p.${n.page}`,`And the weakest point is that the document contradicts itself, between page ${t.page} and page ${n.page}.`)}else{let e=n.get(u.id)===`holds`;c(`close`,[u.id],e?`Nothing here contradicts itself — the case rests on this one claim, and it holds.`:`Nothing here contradicts itself — the whole case rests on this one claim.`,e?`Nothing here contradicts itself. The case rests entirely on that one claim — and the public record backs it.`:`Nothing here contradicts itself. The whole case rests on that one claim.`)}return a}var le={forecast:`#5468e0`,stat:`#12a37a`,finding:`#1f9d7e`,risk:`#e0474d`,definition:`#5a6678`,method:`#cf8327`,diagram:`#5468e0`},$=`#6a4fd0`;function ue(e){return le[e]}var de={"load-bearing":`The document leans on this`,supporting:`Supporting evidence`,context:`Context`};function fe(e){return`${de[e.role]} — ${e.title}`}function pe(e){let t=e.role===`load-bearing`,n=e.kind===`forecast`;if(!(!t&&!n))return{...t?{star:t}:{},...n?{question:n}:{}}}var me={forecast:`forecast`,stat:`figure`,finding:`finding`,risk:`risk`,definition:`definition`,method:`method`,diagram:`figure`},he={"load-bearing":e=>`The ${e} the document leans on`,supporting:e=>`Supporting ${e}`,context:e=>`Context — ${e}`};function ge(e){return`${he[e.role](me[e.kind])} · page ${e.page}`}export{ue as a,I as c,ee as d,g as f,ge as i,F as l,T as m,pe as n,ce as o,v as p,fe as r,q as s,$ as t,_ as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.pin-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:24px;display:grid;position:fixed;inset:0}.pin-sheet{border-radius:var(--r-lg);background:var(--surface-elevated);border:1px solid var(--line);width:min(400px,100%);max-height:min(70vh,520px);box-shadow:var(--shadow-modal);padding:18px;overflow:auto}.pin-head{flex-direction:column;gap:3px;margin-bottom:12px;display:flex}.pin-eyebrow{font-family:var(--font-data);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.pin-subject{color:var(--text-primary);font-size:15px;font-weight:600}.pin-list{flex-direction:column;gap:4px;display:flex}.pin-row{border-radius:var(--r-md);cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--text-primary);transition:background var(--m-fast) var(--ease-out), border-color var(--m-fast) var(--ease-out);background:0 0;border:1px solid #0000;align-items:center;gap:11px;padding:9px 10px;display:flex}.pin-row:hover,.pin-row:focus-visible{background:var(--surface-glass-strong);border-color:var(--line);outline:none}.pin-row-ic{border-radius:var(--r-sm);background:color-mix(in oklab, var(--presence) 10%, transparent);width:30px;height:30px;color:var(--presence);flex:none;place-items:center;display:grid}.pin-row-ic svg{width:15px;height:15px}.pin-row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.pin-row-title{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.pin-row-sub{color:var(--text-muted);font-size:11.5px}.pin-row-cad{font-family:var(--font-data,var(--font));letter-spacing:.1em;background:color-mix(in oklab, var(--cad,var(--presence)) 14%, transparent);color:var(--cad,var(--presence));border-radius:8px;flex:none;padding:3px 8px;font-size:9px;font-weight:700}.pin-row-cad--fast{--cad:var(--warning)}.pin-row-cad--steady{--cad:var(--presence)}.pin-row-cad--calm{--cad:var(--insight)}.pin-new{border-style:dashed;border-color:color-mix(in oklab, var(--presence) 35%, var(--line))}.pin-new-step{flex-direction:column;gap:14px;display:flex}.pin-name-field{flex-direction:column;gap:5px;display:flex}.pin-name-input{width:100%;font:inherit;color:var(--text-primary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 11px;font-size:13.5px}.pin-name-input:focus-visible{border-color:var(--presence);outline:none}.pin-plan-label{font-family:var(--font-data,var(--font));letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:600}.pin-plan-cadence{flex-direction:column;gap:6px;display:flex}.pin-cadence-seg{flex-wrap:wrap;gap:7px;display:flex}.pin-cadence-opt{font-family:var(--font-data,var(--font));letter-spacing:.06em;color:var(--text-secondary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;padding:7px 12px;font-size:10.5px;font-weight:700;transition:color .14s,background .14s,border-color .14s}.pin-cadence-opt:hover{border-color:var(--presence)}.pin-cadence-opt.is-active{color:var(--on-presence,var(--surface-elevated));background:var(--presence);border-color:var(--presence)}.pin-plan-estimate{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.pin-plan-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.pin-plan-confirm{border-radius:var(--r-full);background:var(--presence);color:var(--on-presence,var(--surface-elevated));font:inherit;cursor:pointer;border:none;align-items:center;gap:7px;padding:9px 16px;font-size:13px;font-weight:600;display:inline-flex}.pin-plan-confirm:disabled{opacity:.6;cursor:default}.pin-secondary{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:13px}.pin-secondary:disabled{opacity:.5;cursor:default}.dash-add-anchor{display:inline-flex;position:relative}.dash-palette{z-index:6;background:var(--surface-elevated);border:1px solid var(--line);border-radius:var(--r-md);min-width:200px;box-shadow:var(--shadow-modal);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.dash-edit-bar>.dash-palette{right:14px}.dash-palette-item{text-align:left;color:var(--text-primary);border-radius:var(--r-sm);cursor:pointer;font-size:13px;font-family:var(--font);background:0 0;border:none;padding:9px 11px}.dash-palette-item:hover,.dash-palette-item:focus-visible{background:var(--surface-glass);outline:none}.dash-palette-lead{color:var(--presence);font-weight:600}.dash-ptrack{flex-direction:column;gap:9px;width:248px;padding:4px 5px 5px;display:flex}.dash-ptrack-head{align-items:center;gap:7px;display:flex}.dash-ptrack-back{font:inherit;color:var(--text-secondary);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;padding:2px 4px;font-size:13px}.dash-ptrack-back:hover{color:var(--text-primary)}.dash-ptrack-kicker{font-family:var(--font-data,var(--font));letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:9.5px;font-weight:700}.dash-ptrack-form{flex-direction:column;gap:8px;display:flex}.dash-ptrack-input{width:100%;font:inherit;color:var(--text-primary);background:var(--surface-glass);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 10px;font-size:12.5px}.dash-ptrack-input:focus-visible{border-color:var(--presence);outline:none}.dash-ptrack-go{border-radius:var(--r-full);background:var(--presence);color:var(--on-presence,var(--surface-elevated));font:inherit;cursor:pointer;border:none;align-self:flex-end;padding:7px 12px;font-size:12px;font-weight:600}.dash-ptrack-go:disabled{opacity:.6;cursor:default}.dash-ptrack-err{color:var(--warning);margin:0;font-size:11.5px;line-height:1.45}.dash-ptrack-gate{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.dash-ptrack-gate a{color:var(--presence)}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-DeHZSEgm.js";import{it as t}from"./index-Dk0QapqQ.js";var n=t(),r=e();function i({accent:e,children:t}){return typeof document>`u`?null:(0,n.createPortal)((0,r.jsx)(`div`,{className:`ov-root`,style:{"--ov-c":e},children:t}),document.body)}export{i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,n,o as r,r as i,s as a,t as o}from"./http-Lar_UMKb.js";import{t as s}from"./blockTypes-DUDdP3pB.js";import"./info-CiqHR5cs.js";import{g as c,m as l}from"./attachments-BW-vki-E.js";var u=[...s];function d(e=u,t){return{type:`object`,properties:{narration:{type:`string`,description:`ONE warm spoken sentence. Emit this FIRST so it can be spoken immediately.`},title:{type:`string`,description:`A short headline for the answer.`},sub:{type:`string`,description:`One short supporting line.`},blocks:{type:`array`,minItems:t===`brief`?1:3,maxItems:18,items:{type:`object`,properties:{type:{type:`string`,enum:[...e]},props:{type:`object`,description:`Fields for this block type.`}},required:[`type`,`props`]}},track:{type:`object`,description:`OMIT unless this answer is a rare ongoing metric worth a living dashboard.`,properties:{score:{type:`number`,description:`0–100: how worth-tracking-over-time this is.`},reason:{type:`string`,description:`Short why, e.g. "weekly burn rate, ongoing".`}},required:[`score`,`reason`]},sources:{type:`array`,description:`OMIT unless this turn used web-search results. Real source URLs actually relied on — never invented.`,items:{type:`object`,properties:{title:{type:`string`},url:{type:`string`}},required:[`title`,`url`]}},causal:{type:`boolean`,description:`true ONLY when this answer explains a mechanism — causes producing an outcome. false for lookups, procedures, comparisons, calculations, or anything you were asked to write.`}},required:[`narration`,`title`,`sub`,`blocks`]}}function f(e){return e.length?`\n\n[The user attached ${e.map(e=>`"${e.name}"`).join(`, `)}, which this model can't read directly. Answer from the question text, and say if you'd need its contents.]`:``}function p(e,t){if(!t?.length)return e;let n=[],r=[];for(let e of t)l(e)?n.push({type:`image`,source:{type:`base64`,media_type:e.mime,data:e.data}}):c(e)?n.push({type:`document`,source:{type:`base64`,media_type:e.mime,data:e.data}}):r.push(e);return n.push({type:`text`,text:e+f(r)}),n}function m(e,t){if(!t?.length)return e;let n=t.filter(l),r=t.filter(e=>!l(e));if(!n.length)return e+f(r);let i=n.map(e=>({type:`image_url`,image_url:{url:`data:${e.mime};base64,${e.data}`}}));return i.push({type:`text`,text:e+f(r)}),i}function h(e,t){let n=(t??[]).filter(l),r=(t??[]).filter(e=>!l(e)),i=n.map(e=>({type:`input_image`,detail:`auto`,image_url:`data:${e.mime};base64,${e.data}`}));return i.push({type:`input_text`,text:e+f(r)}),i}function g(e,t){if(!t?.length)return[{text:e}];let n=[],r=[];for(let e of t)l(e)||c(e)?n.push({inlineData:{mimeType:e.mime,data:e.data}}):r.push(e);return n.push({text:e+f(r)}),n}function _(e,t){return t?.length?e+f(t):e}var v=`/llm/anthropic`,y=`/v1/messages`,b=`/v1/models`,x=`2023-06-01`,S=6e4,C=4e3;function w(e){return{"Content-Type":`application/json`,"x-api-key":e.apiKey??``,"anthropic-version":x,"anthropic-dangerous-direct-browser-access":`true`}}function T(e){return/haiku/i.test(e)?`web_search_20250305`:`web_search_20260209`}var E={id:`anthropic`,capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:2e5,strengthTier:`frontier`,nativeWebSearch:!0},async probe(e){try{let t=e.baseUrl??v,r=await n(`${t}${b}`,{method:`GET`,headers:w(e)},C);if(!r.ok)return{ok:!1,model:!1,statusCode:r.status};let i=await n(`${t}${y}`,{method:`POST`,headers:w(e),body:JSON.stringify({model:e.model,max_tokens:1,messages:[{role:`user`,content:`ping`}]})},C);return{ok:i.ok,model:i.ok,statusCode:i.status}}catch{return{ok:!1,model:!1}}},async warm(e){try{let t=e.baseUrl??v;await n(`${t}${b}`,{method:`GET`,headers:w(e)},C)}catch{}},async generate(o,s,c){let l=s.baseUrl??v,u=o.systemBase??o.system,f=o.systemBase?o.system.slice(u.length).trimStart():``,m=[{type:`text`,text:u,cache_control:{type:`ephemeral`}},...f?[{type:`text`,text:f}]:[]],h=o.thinkingLevel===`medium`||o.thinkingLevel===`high`,g=o.format===void 0&&!!o.blockTypes?.length,_=o.format===void 0?g?d(o.blockTypes,o.complexity):null:o.format,b=!!o.tools?.webSearch,x=await n(`${l}${y}`,{method:`POST`,headers:w(s),body:JSON.stringify({model:s.model,max_tokens:o.maxTokens??1024,temperature:h?1:o.temperature??.3,...h?{thinking:{type:`adaptive`,display:`summarized`}}:{},system:m,messages:[...o.history,{role:`user`,content:p(o.user,o.attachments)}],..._?{output_config:{format:{type:`json_schema`,schema:_}}}:{},...b?{tools:[{type:T(s.model),name:`web_search`,max_uses:5}]}:{},stream:!0})},S,o.signal);if(!x.ok)throw Error(`anthropic ${x.status}${await e(x)}`);let C=``,E,D=new Map;await r(x,e=>{let n=t(e),r=a(n.type);if(r===`content_block_delta`){let e=t(n.delta),r=a(e.text);r&&(C+=r,c?.(r));let i=t(e.citation),o=a(i.url);o&&!D.has(o)&&D.set(o,{title:a(i.title)||o,url:o})}else if(r===`message_start`){let e=t(t(n.message).usage);E={input:i(e.input_tokens)+i(e.cache_read_input_tokens)+i(e.cache_creation_input_tokens),output:i(e.output_tokens),cachedInput:i(e.cache_read_input_tokens)}}else if(r===`message_delta`){let e=t(n.usage);e.output_tokens!==void 0&&(E={input:E?.input??0,cachedInput:E?.cachedInput??0,output:i(e.output_tokens)})}});let O=D.size?[...D.values()]:void 0;try{return{raw:JSON.parse(C),...O?{sources:O}:{},...E?{usage:E}:{}}}catch{return{raw:C,...O?{sources:O}:{},...E?{usage:E}:{}}}}},D=6e4,O=4e3,k=18e4;function A(e){return/(?:^|\/)(?:o[1-9]|gpt-5)/i.test(e)}function j(e,t){let n=t.code,r=typeof n==`number`?n:Number(a(n))||void 0,i=a(t.type),o=typeof n==`string`?n:``,s=a(t.message)||`request failed`,c=`${i} ${o} ${s}`;return`${e} ${r??(/invalid.?api.?key|unauthorized|authentication/i.test(c)?401:/insufficient.?quota|resource.?exhausted|rate.?limit/i.test(c)?429:void 0)??``} ${s}`.trim()}function M(s){let{id:c,proxyBase:l,apiBase:u=``,capabilities:d,extraHeaders:f,extraBody:p,webSearchTool:h,modelListExhaustive:g=!0,cacheSystemPrefix:v=!1}=s,y=`${u}/v1/chat/completions`,b=`${u}/v1/models`;function x(e){return{"Content-Type":`application/json`,Authorization:`Bearer ${e.apiKey??``}`,...f}}return{id:c,capabilities:d,async probe(e){try{let r=e.baseUrl??l,i=await n(`${r}${b}`,{method:`GET`,headers:x(e)},O);if(!i.ok)return{ok:!1,model:!1,statusCode:i.status};let s=await i.json(),c=o(t(s).data).map(e=>a(t(e).id)),u=c.length===0||c.includes(e.model);return{ok:!0,model:!g||u}}catch{return{ok:!1,model:!1}}},async generate(s,u,f){let g=u.baseUrl??l,b=h&&s.tools?.webSearch?h():void 0,S=A(u.model),C=s.systemBase,w=!!C&&s.system.startsWith(C),T=w?C:s.system,E=w?s.system.slice(C.length).trim():``,O=v&&w?{role:`system`,content:[{type:`text`,text:T,cache_control:{type:`ephemeral`}}]}:{role:`system`,content:T},M=e=>E?Array.isArray(e)?[{type:`text`,text:E},...e]:`${E}\n\n${e}`:e,N=new AbortController,P=setTimeout(()=>N.abort(),k),F=s.signal?AbortSignal.any([s.signal,N.signal]):N.signal;try{let l=await n(`${g}${y}`,{method:`POST`,headers:x(u),body:JSON.stringify({...p??{},model:u.model,...S?{max_completion_tokens:Math.max(s.maxTokens??1024,1500),reasoning_effort:`low`}:{max_tokens:s.maxTokens??1024,temperature:s.temperature??.3},response_format:{type:`json_object`},stream:!0,stream_options:{include_usage:!0},...b?{tools:[b]}:{},messages:[O,...s.history,{role:`user`,content:d.vision?M(m(s.user,s.attachments)):M(_(s.user,s.attachments))}]})},D,F);if(!l.ok)throw Error(`${c} ${l.status}${await e(l)}`);let h=``,v,C=!1,w=new Map,T;try{await r(l,e=>{let n=t(e);if(n.error)return T=j(c,t(n.error)),!0;let r=t(n.usage);if((r.prompt_tokens!==void 0||r.completion_tokens!==void 0)&&(v={input:i(r.prompt_tokens),output:i(r.completion_tokens),cachedInput:i(t(r.prompt_tokens_details).cached_tokens)},C)||C)return!0;let s=t(o(n.choices)[0]),l=t(s.delta),u=a(l.content);u&&(h+=u,f?.(u));let d=a(l.reasoning)||a(l.reasoning_content);if(d&&f?.(d,{reasoning:!0}),b)for(let e of o(l.annotations)){let n=t(e);if(a(n.type)===`url_citation`){let e=t(n.url_citation),r=a(e.url);r&&!w.has(r)&&w.set(r,{url:r,title:a(e.title)||r})}}if(a(s.finish_reason))return C=!0,v?!0:void 0})}catch(e){if(!C||!h)throw e}if(T)throw Error(T);let E=w.size?[...w.values()]:void 0;return{raw:h,...E?{sources:E}:{},...v?{usage:v}:{}}}finally{clearTimeout(P)}}}}var N=6e4,P=4e3,F=3;function I(e,t){let n=Number(e.headers.get(`retry-after`));return Number.isFinite(n)&&n>0?Math.min(n*1e3,1e4):Math.min(800*2**t,8e3)}function L(e,t){return new Promise((n,r)=>{if(t?.aborted)return r(new DOMException(`Aborted`,`AbortError`));let i=setTimeout(n,e);t?.addEventListener(`abort`,()=>{clearTimeout(i),r(new DOMException(`Aborted`,`AbortError`))},{once:!0})})}async function R(e){try{let t=await e.json(),n=typeof t.error?.message==`string`?t.error.message:``,r=typeof t.error?.param==`string`?` (param: ${t.error.param})`:``;return n?` — ${n.slice(0,200)}${r}`:``}catch{return``}}function z(e){let{id:s,proxyBase:c,apiBase:l=``,capabilities:u,extraHeaders:f,webSearchTool:p,forceSearchToolChoice:m}=e,g=`${l}/v1/responses`,_=`${l}/v1/models`;function v(e){return{"Content-Type":`application/json`,Authorization:`Bearer ${e.apiKey??``}`,...f}}return{id:s,capabilities:u,async probe(e){try{let r=e.baseUrl??c,i=await n(`${r}${_}`,{method:`GET`,headers:v(e)},P);if(!i.ok){let e=i.status;if(s===`grok`&&e===400)try{(await i.clone().json()).code===`invalid-argument`&&(e=401)}catch{}return{ok:!1,model:!1,statusCode:e}}let l=await i.json(),u=o(t(l).data).map(e=>a(t(e).id));return{ok:!0,model:u.length===0||u.includes(e.model)}}catch{return{ok:!1,model:!1}}},async generate(e,l,f){let _=l.baseUrl??c,y=p&&e.tools?.webSearch?p():void 0,b=A(l.model),x=e.history.map(e=>({role:e.role,content:e.content})),S=u.vision?h(e.user,e.attachments):[{type:`input_text`,text:e.user}],C=e.systemBase,w=C&&e.system.startsWith(C)?C:e.system,T=C&&e.system.startsWith(C)?e.system.slice(C.length).trim():``,E=T?[{type:`input_text`,text:T},...S]:S,D=e.format===void 0&&!!e.blockTypes?.length,O=e.format===void 0?D?d(e.blockTypes,e.complexity):null:e.format,k=y?O?{type:`json_schema`,name:D?`live_canvas`:`live_json`,schema:O,strict:!1}:{type:`text`}:{type:`json_object`},M=k.type===`text`?[]:[{role:`system`,content:`Respond in JSON.`}],P=y&&!D?e.thinkingLevel===`high`?`high`:`medium`:`low`,z={method:`POST`,headers:v(l),body:JSON.stringify({model:l.model,...s===`openai`?{store:!1}:{},instructions:w,input:[...M,...x,{role:`user`,content:E}],text:{format:k},max_output_tokens:b?Math.max(e.maxTokens??1024,P===`high`?12e3:P===`medium`?8e3:1500):e.maxTokens??1024,...b?{reasoning:{effort:P}}:{temperature:e.temperature??.3},stream:!0,...y?{tools:[y]}:{},...y&&e.tools?.requireSearch&&m?{tool_choice:m()}:{}})},B;for(let t=0;B=await n(`${_}${g}`,z,N,e.signal),!B.ok;t++){if(B.status===429&&t<F&&!e.signal?.aborted){await L(I(B,t),e.signal);continue}throw Error(`${s} ${B.status}${await R(B)}`)}let V=``,H=new Map,U,W;if(await r(B,e=>{let n=t(e),r=a(n.type),c=t(t(n.response).error),l=t(n.error),u=Object.keys(c).length?c:l;if(Object.keys(u).length)return W=j(s,u),!0;if(r===`response.output_text.delta`){let e=a(n.delta);e&&(V+=e,f?.(e));return}if(r===`response.incomplete`){if(!V){let e=a(t(t(n.response).incomplete_details).reason);return W=e===`max_output_tokens`?`${s}: the model used its entire output budget on reasoning and never wrote an answer — raise maxTokens`:`${s}: the model stopped before writing an answer${e?` (${e})`:``}`,!0}return}if(r===`response.completed`){let e=t(n.response);for(let n of o(e.output)){let e=t(n);if(a(e.type)===`message`)for(let n of o(e.content))for(let e of o(t(n).annotations)){let n=t(e);if(a(n.type)!==`url_citation`)continue;let r=a(n.url);r&&!H.has(r)&&H.set(r,{url:r,title:a(n.title)||r})}}let r=t(e.usage);(r.input_tokens!==void 0||r.output_tokens!==void 0)&&(U={input:i(r.input_tokens),output:i(r.output_tokens),cachedInput:i(t(r.input_tokens_details).cached_tokens)});return}}),W)throw Error(W);let G=H.size?[...H.values()]:void 0;return{raw:V,...G?{sources:G}:{},...U?{usage:U}:{}}}}}var B=z({id:`openai`,proxyBase:`/llm/openai`,webSearchTool:()=>({type:`web_search`}),forceSearchToolChoice:()=>({type:`web_search`}),capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:128e3,strengthTier:`frontier`,nativeWebSearch:!0}}),V=`/llm/gemini`,H=`/v1beta`,U=6e4,W=4e3;function G(e){return{"Content-Type":`application/json`,"x-goog-api-key":e.apiKey??``}}async function K(e){try{let t=await e.json(),n=typeof t.error?.status==`string`?t.error.status:``,r=typeof t.error?.message==`string`?t.error.message:``,i=n&&r?`${n}: ${r.slice(0,160)}`:n||r.slice(0,160);return i?` — ${i}`:``}catch{return``}}function q(e){if(e)return{thinkingLevel:e.toUpperCase()}}function J(e){let t=[];return e.tools?.webSearch&&t.push({google_search:{}}),e.tools?.urlContext&&t.push({url_context:{}}),t.length?t:void 0}function Y(e,n){let r=t(e.groundingMetadata);for(let e of o(r.groundingChunks)){let r=t(t(e).web),i=a(r.uri);!i||n.has(i)||n.set(i,{title:a(r.title)||i,url:i})}}var X={anthropic:E,gemini:{id:`gemini`,capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:1e6,strengthTier:`frontier`,nativeWebSearch:!0},async probe(e){try{let r=e.baseUrl??V,i=await n(`${r}${H}/models`,{method:`GET`,headers:G(e)},W);if(!i.ok)return{ok:!1,model:!1,statusCode:i.status};let s=await i.json(),c=o(t(s).models).map(e=>a(t(e).name).replace(/^models\//,``));return{ok:!0,model:c.length===0||c.includes(e.model)}}catch{return{ok:!1,model:!1}}},async generate(e,s,c){let l=`${s.baseUrl??V}${H}/models/${encodeURIComponent(s.model)}:streamGenerateContent?alt=sse`,u=e.systemBase,d=e.system,f=``;u&&e.system.startsWith(u)&&(d=u,f=e.system.slice(u.length).trim());let p=g(e.user,e.attachments),m=[...e.history.map(e=>({role:e.role===`assistant`?`model`:`user`,parts:[{text:e.content}]})),{role:`user`,parts:f?[{text:f},...p]:p}],h={temperature:e.temperature??.3,maxOutputTokens:e.maxTokens??1024,responseMimeType:`application/json`},_=q(e.thinkingLevel);_&&(h.thinkingConfig=_);let v=J(e),y=await n(l,{method:`POST`,headers:G(s),body:JSON.stringify({systemInstruction:{parts:[{text:d}]},contents:m,generationConfig:h,...v?{tools:v}:{}})},U,e.signal);if(!y.ok)throw Error(`gemini ${y.status}${await K(y)}`);let b=``,x=new Map,S;await r(y,e=>{let n=t(o(t(e).candidates)[0]),r=o(t(n.content).parts);for(let e of r){let n=a(t(e).text);n&&(b+=n,c?.(n))}Y(n,x);let s=t(e).usageMetadata;s&&(S={input:i(t(s).promptTokenCount),output:i(t(s).candidatesTokenCount),cachedInput:i(t(s).cachedContentTokenCount)})});let C={raw:b};return x.size&&(C.sources=[...x.values()]),S&&(C.usage=S),C}},openai:B,openrouter:M({id:`openrouter`,proxyBase:`/llm/openrouter`,apiBase:`/api`,extraHeaders:{"HTTP-Referer":`https://github.com/TryMaveaAI/mavea`,"X-Title":`Mavéa`},extraBody:{transforms:[`middle-out`]},cacheSystemPrefix:!0,modelListExhaustive:!1,webSearchTool:()=>({type:`openrouter:web_search`,parameters:{engine:`auto`,max_results:5,search_context_size:`medium`}}),capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:128e3,strengthTier:`frontier`,nativeWebSearch:!0}}),grok:z({id:`grok`,proxyBase:`/llm/grok`,webSearchTool:()=>({type:`web_search`}),capabilities:{constrainedDecoding:!0,streaming:!0,vision:!0,contextWindow:5e5,strengthTier:`frontier`,nativeWebSearch:!0}})};function Z(e){return X[e]}export{A as n,Z as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./react-BZJXY1be.js";import{t}from"./compiler-runtime-qQQXpJgv.js";import{t as n}from"./jsx-runtime-DeHZSEgm.js";import{it as r}from"./index-Dk0QapqQ.js";import{n as i}from"./http-Lar_UMKb.js";import{S as a,f as o,g as s,n as c,p as l,r as u,w as d,x as f}from"./kokoro-P_fkcX-A.js";import{i as p,t as m}from"./info-CiqHR5cs.js";import{r as h,t as g}from"./store-gohr8YVT.js";import{a as _,t as v}from"./store-BWLbFXiY.js";import{n as ee}from"./DropSelect-DjbdVfIR.js";var y=t(),b=e();function te(){let e=(0,y.c)(2),[t,n]=(0,b.useState)(ne),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{if(typeof window>`u`)return;let e=()=>n(h());return window.addEventListener(g,e),()=>window.removeEventListener(g,e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,b.useEffect)(r,i),t}function ne(){return h()}var re=r(),x=n();function S(e){return e.split(` · `)[1]??e}function C({provider:e,value:t,onChange:n,ariaLabel:r=`Model`}){let i=p(e),a=(0,b.useId)(),o=(0,b.useRef)(null),s=(0,b.useRef)(null),[c,l]=(0,b.useState)(!1),[u,d]=(0,b.useState)(-1),f=ee(c,o),h=i.suggestedModels,g=t||i.defaultModel,_=e=>`${a}-opt-${e}`,v=()=>{d(h.indexOf(g)),l(!0)},y=e=>{n(e),l(!1),s.current?.focus()};return(0,b.useEffect)(()=>{c&&u>=0&&document.getElementById(_(u))?.scrollIntoView?.({block:`nearest`})},[c,u]),(0,x.jsxs)(`div`,{className:`drop-select`,ref:o,children:[(0,x.jsx)(`input`,{ref:s,className:`setup-input drop-select-input`,role:`combobox`,"aria-expanded":c,"aria-controls":a,"aria-activedescendant":c&&u>=0?_(u):void 0,"aria-autocomplete":`none`,"aria-label":r,value:t,onChange:e=>{n(e.target.value),c||v(),d(-1)},onClick:()=>c?l(!1):v(),onKeyDown:e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(e.preventDefault(),!c)return v();if(!h.length)return;let t=e.key===`ArrowDown`?1:-1;d(e=>(e+t+h.length)%h.length)}else e.key===`Enter`&&c&&u>=0?(e.preventDefault(),y(h[u])):e.key===`Escape`&&c&&(e.preventDefault(),l(!1))},onBlur:()=>l(!1),placeholder:i.defaultModel||i.modelPlaceholder,spellCheck:!1}),(0,x.jsx)(`button`,{type:`button`,className:`drop-select-chevron`,"aria-label":`Show model options`,"aria-expanded":c,tabIndex:-1,onPointerDown:e=>e.preventDefault(),onClick:()=>{s.current?.focus(),c?l(!1):v()},children:(0,x.jsx)(`svg`,{viewBox:`0 0 12 8`,fill:`none`,"aria-hidden":!0,children:(0,x.jsx)(`path`,{d:`M1 1.5L6 6.5L11 1.5`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})})}),c&&(0,re.createPortal)((0,x.jsxs)(`div`,{className:`drop-select-menu`,style:f,role:`listbox`,id:a,"aria-label":`${S(i.label)} models`,onPointerDown:e=>e.preventDefault(),children:[h.map((e,t)=>(0,x.jsxs)(`div`,{id:_(t),role:`option`,tabIndex:-1,"aria-selected":e===g,className:`drop-select-option`+(t===u?` is-active`:``)+(e===g?` is-current`:``),onMouseEnter:()=>d(t),onClick:()=>y(e),children:[(0,x.jsxs)(`span`,{className:`drop-select-option-head`,children:[(0,x.jsx)(`span`,{className:`drop-select-id`,children:e}),e===i.defaultModel&&(0,x.jsx)(`span`,{className:`drop-select-badge`,children:`Default`})]}),i.modelNotes?.[e]&&(0,x.jsx)(`span`,{className:`drop-select-note`,children:i.modelNotes[e]})]},e)),(0,x.jsxs)(`div`,{className:`drop-select-foot`,children:[(0,x.jsxs)(`span`,{children:[`Any `,S(i.label),` model ID works — type it above.`]}),(0,x.jsx)(`a`,{href:m.sources[e],target:`_blank`,rel:`noreferrer noopener`,children:`All models↗`})]})]}),document.body)]})}function w(){let e=(0,y.c)(5),t,n,r,i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,x.jsx)(`strong`,{children:`Before you connect`}),n=(0,x.jsx)(`p`,{children:`You provide the API keys or connected accounts, and those providers bill you directly under their own terms. Each model, web-search, speech, or connected-service request can consume your quota or incur a third-party charge; automatic and cadence-based features can repeat those requests while Mavéa is open. AI output can be incomplete, inaccurate, offensive, or unsafe; accuracy, quality, and availability are not guaranteed. Verify important information independently. Mavéa is not medical, legal, financial, safety, or other professional advice, or an emergency or monitoring service. To the fullest extent permitted by law, Mavéa and its outputs are provided “as is,” without warranties; you use them at your own risk, and Mavéa is not responsible for decisions, actions, losses, harm, or provider charges arising from their use.`}),r=(0,x.jsx)(`p`,{children:`Anything you type, paste, attach, or upload—including work-related, personal, identifiable, confidential, sensitive, or regulated information—may be sent to the model, search, or connected provider you select. Submit it only when you are authorized to share it and when you accept that provider’s processing and retention practices; Mavéa does not control those third parties.`}),i=(0,x.jsx)(`p`,{children:`Choosing Remember stores an encrypted copy of provider and search keys in this browser, sealed with a device-bound key when browser cryptography is available; otherwise they remain session-only. Encryption at rest is a convenience, not a security guarantee: an unlocked, shared, lost, or compromised device, browser profile, or extension can still expose or misuse keys, and Mavéa is not responsible for key theft, unauthorized use, or resulting charges. Keeping keys secure is your responsibility — use restricted, revocable keys with spending caps on trusted devices you control, revoke a key with its provider immediately if you suspect exposure, and monitor your provider account. Keys pass through this deployment’s request proxy when used; settings exports exclude them.`}),e[0]=t,e[1]=n,e[2]=r,e[3]=i):(t=e[0],n=e[1],r=e[2],i=e[3]);let a;return e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,x.jsxs)(`aside`,{className:`provider-responsibility`,"aria-label":`Provider billing, data sharing, and AI output responsibility`,children:[t,n,r,i,(0,x.jsxs)(`nav`,{className:`provider-responsibility-links`,"aria-label":`Terms and privacy documents`,children:[(0,x.jsx)(`a`,{className:`provider-responsibility-link`,href:`#/terms?from=live`,children:`Terms`}),(0,x.jsx)(`a`,{className:`provider-responsibility-link`,href:`#/privacy?from=live`,children:`Privacy`}),(0,x.jsx)(`a`,{className:`provider-responsibility-link`,href:`#/legal?from=live`,children:`Read all important information →`})]})]}),e[4]=a):a=e[4],a}function T(){let e=(0,y.c)(2),[t,n]=(0,b.useState)(E),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{if(typeof window>`u`)return;let e=()=>n(_());return window.addEventListener(v,e),()=>window.removeEventListener(v,e)},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,b.useEffect)(r,i),t}function E(){return _()}var D=`Hi, I'm ready. Ask me anything.`,O=null,k=null,A=null,j=null,M=0;function N(e){return e===M}function P(e,t){if(e)try{e.pause(),e.src=``}catch{}if(t)try{URL.revokeObjectURL(t)}catch{}}function F(){l(),j?.abort(),j=null,A?.(),A=null,P(O,k),O=null,k=null,M++}async function I(e,t,n){try{let r=await i(`/tts/v1/audio/speech`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({model:`kokoro`,input:D,voice:e.kokoro,response_format:`wav`,speed:1})},1e4,n);if(!r.ok||!N(t))return;let a=await r.blob();if(!a.size||!N(t))return;let s=URL.createObjectURL(a),c=new Audio(s),l=o(c),u=()=>{l(),N(t)&&(O=null,k=null,j=null,A=null),P(c,s)};k=s,O=c,A=l,c.onended=u,c.onerror=u;let d=c.play();d&&typeof d.catch==`function`&&d.catch(u)}catch{}}async function L(e,t){let n=await f(D,e.kokoro);if(!N(t)){l();return}if(n)return;let r=new AbortController;j=r,await I(e,t,r.signal)}function R(e){s()||(d(),F(),L(e,M))}var z=`Voice is off — answers will show as captions only. To hear Mavéa, start the local TTS service (docker compose up -d).`,B=`Mavéa is muted — an audition stays silent until you unmute.`;function V(){let e=(0,y.c)(2),[t,n]=(0,b.useState)(H),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=!0;return c().then(t=>{e&&n(t)}),()=>{e=!1}},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,b.useEffect)(r,i),t}function H(){return u()}function U(){let e=(0,y.c)(2),t=V(),n=(0,b.useSyncExternalStore)(a,s),r=t===!1?z:n?B:null;if(!r)return null;let i;return e[0]===r?i=e[1]:(i=(0,x.jsx)(`p`,{className:`voice-off-hint`,role:`status`,children:r}),e[0]=r,e[1]=i),i}var W=350,G={Alt:`altKey`,Control:`ctrlKey`,Shift:`shiftKey`},K=[`altKey`,`ctrlKey`,`metaKey`,`shiftKey`];function q(e,t,n){if(e.key!==t||n!==`any`&&e.code!==t+(n===`left`?`Left`:`Right`))return!1;let r=G[t];return!K.some(t=>t!==r&&e[t])}function J(e){let t=(0,b.useRef)(e);t.current=e,(0,b.useEffect)(()=>{if(!e.enabled)return;let n=e.pttKey||`Alt`,r=e.pttSide||`any`,i=null,a=!1,o=()=>{i!==null&&(window.clearTimeout(i),i=null)},s=()=>{o(),a&&(a=!1,t.current.onStop())},c=e=>{if(!q(e,n,r)){e.key!==n&&s();return}e.repeat||i!==null||a||(i=window.setTimeout(()=>{i=null,a=!0,t.current.onStart()},W))},l=e=>{e.key===n&&s()};return window.addEventListener(`keydown`,c),window.addEventListener(`keyup`,l),window.addEventListener(`blur`,s),()=>{window.removeEventListener(`keydown`,c),window.removeEventListener(`keyup`,l),window.removeEventListener(`blur`,s),s()}},[e.enabled,e.pttKey,e.pttSide])}function Y(e,t=`any`){let n=typeof navigator<`u`&&/mac|iphone|ipad|ipod/i.test(navigator.platform||navigator.userAgent),r=e===`Alt`?n?`⌥`:`Alt`:e===`Control`?n?`⌃`:`Ctrl`:e===`Shift`?n?`⇧`:`Shift`:e;return t===`left`?`Left ${r}`:t===`right`?`Right ${r}`:r}function X(e){return e>=22||e<6}var Z=`mavea-live-quiet-hours-on`,Q=Z;function $(){try{return localStorage.getItem(Z)===`1`}catch{return!1}}function ie(e){try{e?localStorage.setItem(Z,`1`):localStorage.removeItem(Z)}catch{}try{window.dispatchEvent(new CustomEvent(Q))}catch{}}var ae=.45,oe=6e4;function se(){let e=(0,y.c)(2),[t,n]=(0,b.useState)(ce),r,i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=()=>{let e=()=>n($()&&X(new Date().getHours()));e();let t=window.setInterval(e,oe);return window.addEventListener(Q,e),()=>{window.clearInterval(t),window.removeEventListener(Q,e)}},i=[],e[0]=r,e[1]=i):(r=e[0],i=e[1]),(0,b.useEffect)(r,i),t}function ce(){return $()&&X(new Date().getHours())}export{Y as a,V as c,T as d,w as f,se as i,R as l,te as m,$ as n,J as o,C as p,ie as r,U as s,ae as t,F as u};
|