@hiai-gg/hiai-opencode 0.2.1 → 0.2.2
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/.env.example +4 -0
- package/AGENTS.md +34 -38
- package/ARCHITECTURE.md +4 -3
- package/LICENSE.md +14 -0
- package/README.md +52 -21
- package/config/hiai-opencode.schema.json +11 -13
- package/dist/agents/{bob.d.ts → bob/claude.d.ts} +6 -2
- package/dist/agents/bob/core.d.ts +6 -0
- package/dist/agents/bob/gpt.d.ts +11 -0
- package/dist/agents/bob/index.d.ts +3 -0
- package/dist/agents/coder/core.d.ts +4 -0
- package/dist/agents/coder/gpt.d.ts +1 -4
- package/dist/agents/coder/index.d.ts +1 -0
- package/dist/agents/manager/agent.d.ts +1 -1
- package/dist/agents/manager/default-prompt-sections.d.ts +3 -3
- package/dist/agents/manager/guard-integration.d.ts +1 -0
- package/dist/agents/prompt-library/index.d.ts +0 -1
- package/dist/agents/prompt-library/shared-execution.d.ts +9 -0
- package/dist/agents/strategist/behavioral-summary.d.ts +1 -1
- package/dist/agents/strategist/identity-constraints.d.ts +1 -1
- package/dist/agents/strategist/plan-generation.d.ts +1 -1
- package/dist/agents/types.d.ts +2 -1
- package/dist/config/defaults.d.ts +1 -0
- package/dist/config/platform-schema.d.ts +26 -26
- package/dist/config/schema/agent-names.d.ts +6 -6
- package/dist/config/schema/agent-overrides.d.ts +0 -128
- package/dist/config/schema/hiai-opencode-config.d.ts +0 -128
- package/dist/config/types.d.ts +2 -2
- package/dist/features/background-agent/manager-notifier.d.ts +46 -0
- package/dist/features/background-agent/manager-types.d.ts +40 -0
- package/dist/features/background-agent/manager.d.ts +3 -19
- package/dist/features/background-agent/polling-manager.d.ts +51 -0
- package/dist/features/boulder-state/storage.d.ts +1 -0
- package/dist/features/builtin-commands/templates/loop.d.ts +2 -0
- package/dist/features/builtin-commands/templates/start-work.d.ts +1 -1
- package/dist/features/builtin-skills/skills/interview-me.d.ts +2 -0
- package/dist/features/builtin-skills/skills/planning-and-task-breakdown.d.ts +2 -0
- package/dist/hooks/reasoning-content-cache/hook.d.ts +11 -0
- package/dist/hooks/reasoning-content-cache/index.d.ts +1 -0
- package/dist/hooks/session-recovery/checkpoint.d.ts +48 -0
- package/dist/hooks/session-recovery/enhanced-hook.d.ts +30 -0
- package/dist/hooks/session-recovery/state-backup.d.ts +76 -0
- package/dist/hooks/shared/compaction-in-progress.d.ts +4 -0
- package/dist/hooks/start-work/git-operations.d.ts +47 -0
- package/dist/hooks/token-budget.d.ts +30 -0
- package/dist/index.js +1185 -1078
- package/dist/mcp/rate-limiter.d.ts +68 -0
- package/dist/plugin/chat-message.d.ts +8 -0
- package/dist/plugin/command-execute-before.d.ts +1 -1
- package/dist/plugin/event-handlers/message-updated.d.ts +2 -0
- package/dist/plugin/event-handlers/session-error.d.ts +2 -0
- package/dist/plugin/event-handlers/session-status.d.ts +2 -0
- package/dist/plugin/event-handlers/types.d.ts +62 -0
- package/dist/plugin/event-handlers/utils.d.ts +11 -0
- package/dist/plugin/event.d.ts +1 -1
- package/dist/shared/data-path.d.ts +1 -1
- package/dist/shared/errors.d.ts +70 -0
- package/dist/shared/extract-session-id.d.ts +8 -0
- package/dist/shared/git-worktree/get-git-state-summary.d.ts +14 -0
- package/dist/shared/index.d.ts +67 -68
- package/dist/shared/internal-initiator-marker.d.ts +1 -1
- package/dist/shared/logger.d.ts +5 -1
- package/dist/shared/reasoning-content-cache.d.ts +68 -0
- package/dist/shared/safe-create-hook.d.ts +4 -4
- package/dist/tools/call-hiai-agent/constants.d.ts +2 -2
- package/dist/tools/delegate-task/sub-agent.d.ts +1 -1
- package/dist/tools/look-at/constants.d.ts +1 -1
- package/docs/architecture/bob-manager-architecture.md +244 -0
- package/docs/hiai-opencode/adr/ADR-001-agent-identity-section-injection.md +66 -0
- package/docs/hiai-opencode/adr/ADR-002-anti-loop-guard-priority.md +63 -0
- package/docs/hiai-opencode/adr/ADR-003-compaction-mechanism.md +71 -0
- package/docs/hiai-opencode/adr/ADR-004-session-recovery.md +76 -0
- package/docs/hiai-opencode/api.md +305 -0
- package/docs/hiai-opencode/hooks-architecture.md +225 -0
- package/docs/hiai-opencode/migration.md +209 -0
- package/docs/skill-discovery.md +288 -0
- package/package.json +1 -1
- package/skills/agent-browser/SKILL.md +193 -0
- package/skills/apple-hig/SKILL.md +43 -0
- package/skills/article-magazine/SKILL.md +46 -0
- package/skills/article-magazine/example.html +81 -0
- package/skills/article-magazine/example.md +38 -0
- package/skills/canvas-design/SKILL.md +45 -0
- package/skills/design-templates/audio-jingle/SKILL.md +132 -0
- package/skills/design-templates/audio-jingle/example.html +128 -0
- package/skills/design-templates/blog-post/SKILL.md +80 -0
- package/skills/design-templates/blog-post/example.html +80 -0
- package/skills/design-templates/clinical-case-report/SKILL.md +209 -0
- package/skills/design-templates/clinical-case-report/example.html +698 -0
- package/skills/design-templates/clinical-case-report/examples/example-stemi.html +698 -0
- package/skills/design-templates/clinical-case-report/references/case-formats.md +94 -0
- package/skills/design-templates/clinical-case-report/references/checklist.md +41 -0
- package/skills/design-templates/critique/SKILL.md +258 -0
- package/skills/design-templates/critique/example.html +671 -0
- package/skills/design-templates/dashboard/SKILL.md +76 -0
- package/skills/design-templates/dashboard/example.html +118 -0
- package/skills/design-templates/dating-web/SKILL.md +92 -0
- package/skills/design-templates/dating-web/example.html +265 -0
- package/skills/design-templates/dcf-valuation/SKILL.md +140 -0
- package/skills/design-templates/dcf-valuation/references/sector-wacc.md +42 -0
- package/skills/design-templates/digital-eguide/SKILL.md +94 -0
- package/skills/design-templates/digital-eguide/example.html +204 -0
- package/skills/design-templates/docs-page/SKILL.md +80 -0
- package/skills/design-templates/docs-page/example.html +122 -0
- package/skills/design-templates/email-marketing/SKILL.md +84 -0
- package/skills/design-templates/email-marketing/example.html +159 -0
- package/skills/design-templates/eng-runbook/SKILL.md +51 -0
- package/skills/design-templates/eng-runbook/example.html +250 -0
- package/skills/design-templates/finance-report/SKILL.md +61 -0
- package/skills/design-templates/finance-report/example.html +242 -0
- package/skills/design-templates/flowai-live-dashboard-template/SKILL.md +87 -0
- package/skills/design-templates/flowai-live-dashboard-template/assets/template.html +387 -0
- package/skills/design-templates/flowai-live-dashboard-template/example.html +13 -0
- package/skills/design-templates/flowai-live-dashboard-template/references/checklist.md +35 -0
- package/skills/design-templates/gamified-app/SKILL.md +108 -0
- package/skills/design-templates/gamified-app/example.html +292 -0
- package/skills/design-templates/github-dashboard/SKILL.md +130 -0
- package/skills/design-templates/github-dashboard/example.html +473 -0
- package/skills/design-templates/github-dashboard/references/README.md +10 -0
- package/skills/design-templates/github-dashboard/references/artifact-example.json +15 -0
- package/skills/design-templates/github-dashboard/references/example-data.json +138 -0
- package/skills/design-templates/github-dashboard/references/provenance-example.json +92 -0
- package/skills/design-templates/github-dashboard/references/template.html +473 -0
- package/skills/design-templates/guizang-ppt/LICENSE +21 -0
- package/skills/design-templates/guizang-ppt/README.en.md +119 -0
- package/skills/design-templates/guizang-ppt/README.md +120 -0
- package/skills/design-templates/guizang-ppt/README.pt-BR.md +121 -0
- package/skills/design-templates/guizang-ppt/SKILL.md +313 -0
- package/skills/design-templates/guizang-ppt/assets/example-slides.html +318 -0
- package/skills/design-templates/guizang-ppt/assets/template.html +647 -0
- package/skills/design-templates/guizang-ppt/references/checklist.md +265 -0
- package/skills/design-templates/guizang-ppt/references/components.md +363 -0
- package/skills/design-templates/guizang-ppt/references/layouts.md +630 -0
- package/skills/design-templates/guizang-ppt/references/styles.md +195 -0
- package/skills/design-templates/guizang-ppt/references/themes.md +122 -0
- package/skills/design-templates/hr-onboarding/SKILL.md +52 -0
- package/skills/design-templates/hr-onboarding/example.html +219 -0
- package/skills/design-templates/html-ppt/.clawscan-allow +12 -0
- package/skills/design-templates/html-ppt/LICENSE +21 -0
- package/skills/design-templates/html-ppt/README.md +234 -0
- package/skills/design-templates/html-ppt/README.pt-BR.md +239 -0
- package/skills/design-templates/html-ppt/README.zh-CN.md +238 -0
- package/skills/design-templates/html-ppt/SKILL.md +250 -0
- package/skills/design-templates/html-ppt/assets/animations/animations.css +138 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/_util.js +63 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/chain-react.js +41 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/confetti-cannon.js +49 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/constellation.js +44 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/counter-explosion.js +58 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/data-stream.js +45 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/firework.js +51 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/galaxy-swirl.js +33 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/gradient-blob.js +39 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/knowledge-graph.js +69 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/letter-explode.js +50 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/magnetic-field.js +40 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/matrix-rain.js +33 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/neural-net.js +75 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/orbit-ring.js +38 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/particle-burst.js +42 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/shockwave.js +39 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/sparkle-trail.js +62 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/starfield.js +30 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/typewriter-multi.js +51 -0
- package/skills/design-templates/html-ppt/assets/animations/fx/word-cascade.js +47 -0
- package/skills/design-templates/html-ppt/assets/animations/fx-runtime.js +99 -0
- package/skills/design-templates/html-ppt/assets/base.css +150 -0
- package/skills/design-templates/html-ppt/assets/fonts.css +9 -0
- package/skills/design-templates/html-ppt/assets/runtime.js +960 -0
- package/skills/design-templates/html-ppt/assets/themes/academic-paper.css +23 -0
- package/skills/design-templates/html-ppt/assets/themes/arctic-cool.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/aurora.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/bauhaus.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/blueprint.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/catppuccin-latte.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/catppuccin-mocha.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/corporate-clean.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/cyberpunk-neon.css +23 -0
- package/skills/design-templates/html-ppt/assets/themes/dracula.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/editorial-serif.css +18 -0
- package/skills/design-templates/html-ppt/assets/themes/engineering-whiteprint.css +26 -0
- package/skills/design-templates/html-ppt/assets/themes/glassmorphism.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/gruvbox-dark.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/japanese-minimal.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/magazine-bold.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/memphis-pop.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/midcentury.css +19 -0
- package/skills/design-templates/html-ppt/assets/themes/minimal-white.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/neo-brutalism.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/news-broadcast.css +20 -0
- package/skills/design-templates/html-ppt/assets/themes/nord.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/pitch-deck-vc.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/rainbow-gradient.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/retro-tv.css +22 -0
- package/skills/design-templates/html-ppt/assets/themes/rose-pine.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/sharp-mono.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/soft-pastel.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/solarized-light.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/sunset-warm.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/swiss-grid.css +17 -0
- package/skills/design-templates/html-ppt/assets/themes/terminal-green.css +18 -0
- package/skills/design-templates/html-ppt/assets/themes/tokyo-night.css +14 -0
- package/skills/design-templates/html-ppt/assets/themes/vaporwave.css +21 -0
- package/skills/design-templates/html-ppt/assets/themes/xiaohongshu-white.css +16 -0
- package/skills/design-templates/html-ppt/assets/themes/y2k-chrome.css +20 -0
- package/skills/design-templates/html-ppt/docs/readme/_theme-cell.html +56 -0
- package/skills/design-templates/html-ppt/docs/readme/animations.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/hero.gif +0 -0
- package/skills/design-templates/html-ppt/docs/readme/layouts-live.gif +0 -0
- package/skills/design-templates/html-ppt/docs/readme/layouts.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-animations.html +61 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-layouts.html +72 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-templates.html +72 -0
- package/skills/design-templates/html-ppt/docs/readme/montage-themes.html +38 -0
- package/skills/design-templates/html-ppt/docs/readme/presenter-mode.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/templates.png +0 -0
- package/skills/design-templates/html-ppt/docs/readme/themes.png +0 -0
- package/skills/design-templates/html-ppt/examples/demo-deck/index.html +161 -0
- package/skills/design-templates/html-ppt/references/animations.md +147 -0
- package/skills/design-templates/html-ppt/references/authoring-guide.md +141 -0
- package/skills/design-templates/html-ppt/references/full-decks.md +98 -0
- package/skills/design-templates/html-ppt/references/layouts.md +103 -0
- package/skills/design-templates/html-ppt/references/presenter-mode.md +240 -0
- package/skills/design-templates/html-ppt/references/themes.md +107 -0
- package/skills/design-templates/html-ppt/scripts/new-deck.sh +46 -0
- package/skills/design-templates/html-ppt/scripts/render.sh +71 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_01.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_02.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_03.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_04.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_05.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_06.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_07.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_08.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_09.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_10.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_11.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_12.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_13.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_14.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_15.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_16.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_17.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_18.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_19.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/animation-showcase/animation-showcase_20.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_01.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_02.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_03.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_04.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_05.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_06.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_07.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_08.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_09.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_10.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_11.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_12.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_13.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_14.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_15.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_16.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_17.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_18.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_19.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_20.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_21.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_22.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_23.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_24.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_25.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_26.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_27.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_28.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_29.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_30.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_31.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_32.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_33.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_34.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_35.png +0 -0
- package/skills/design-templates/html-ppt/scripts/verify-output/theme-showcase/theme-showcase_36.png +0 -0
- package/skills/design-templates/html-ppt/templates/animation-showcase.html +172 -0
- package/skills/design-templates/html-ppt/templates/deck.html +69 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/index.html +189 -0
- package/skills/design-templates/html-ppt/templates/full-decks/course-module/style.css +46 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/index.html +138 -0
- package/skills/design-templates/html-ppt/templates/full-decks/dir-key-nav-minimal/style.css +60 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/index.html +180 -0
- package/skills/design-templates/html-ppt/templates/full-decks/graphify-dark-graph/style.css +54 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/index.html +199 -0
- package/skills/design-templates/html-ppt/templates/full-decks/hermes-cyber-terminal/style.css +55 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/index.html +190 -0
- package/skills/design-templates/html-ppt/templates/full-decks/knowledge-arch-blueprint/style.css +49 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/index.html +144 -0
- package/skills/design-templates/html-ppt/templates/full-decks/obsidian-claude-gradient/style.css +59 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/README.md +9 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/index.html +148 -0
- package/skills/design-templates/html-ppt/templates/full-decks/pitch-deck/style.css +40 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/README.md +102 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/index.html +187 -0
- package/skills/design-templates/html-ppt/templates/full-decks/presenter-mode-reveal/style.css +216 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/index.html +121 -0
- package/skills/design-templates/html-ppt/templates/full-decks/product-launch/style.css +39 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/index.html +156 -0
- package/skills/design-templates/html-ppt/templates/full-decks/tech-sharing/style.css +49 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/index.html +183 -0
- package/skills/design-templates/html-ppt/templates/full-decks/testing-safety-alert/style.css +62 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/README.md +8 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/index.html +127 -0
- package/skills/design-templates/html-ppt/templates/full-decks/weekly-report/style.css +55 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/index.html +147 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-pastel-card/style.css +66 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/README.md +9 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/index.html +133 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-post/style.css +47 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/README.md +11 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/index.html +187 -0
- package/skills/design-templates/html-ppt/templates/full-decks/xhs-white-editorial/style.css +63 -0
- package/skills/design-templates/html-ppt/templates/full-decks-index.html +82 -0
- package/skills/design-templates/html-ppt/templates/layout-showcase.html +47 -0
- package/skills/design-templates/html-ppt/templates/single-page/arch-diagram.html +46 -0
- package/skills/design-templates/html-ppt/templates/single-page/big-quote.html +18 -0
- package/skills/design-templates/html-ppt/templates/single-page/bullets.html +19 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-bar.html +30 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-line.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-pie.html +36 -0
- package/skills/design-templates/html-ppt/templates/single-page/chart-radar.html +31 -0
- package/skills/design-templates/html-ppt/templates/single-page/code.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/comparison.html +47 -0
- package/skills/design-templates/html-ppt/templates/single-page/cover.html +32 -0
- package/skills/design-templates/html-ppt/templates/single-page/cta.html +27 -0
- package/skills/design-templates/html-ppt/templates/single-page/diff.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/flow-diagram.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/gantt.html +29 -0
- package/skills/design-templates/html-ppt/templates/single-page/image-grid.html +34 -0
- package/skills/design-templates/html-ppt/templates/single-page/image-hero.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/kpi-grid.html +19 -0
- package/skills/design-templates/html-ppt/templates/single-page/mindmap.html +38 -0
- package/skills/design-templates/html-ppt/templates/single-page/process-steps.html +27 -0
- package/skills/design-templates/html-ppt/templates/single-page/pros-cons.html +31 -0
- package/skills/design-templates/html-ppt/templates/single-page/roadmap.html +46 -0
- package/skills/design-templates/html-ppt/templates/single-page/section-divider.html +17 -0
- package/skills/design-templates/html-ppt/templates/single-page/stat-highlight.html +17 -0
- package/skills/design-templates/html-ppt/templates/single-page/table.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/terminal.html +35 -0
- package/skills/design-templates/html-ppt/templates/single-page/thanks.html +21 -0
- package/skills/design-templates/html-ppt/templates/single-page/three-column.html +18 -0
- package/skills/design-templates/html-ppt/templates/single-page/timeline.html +32 -0
- package/skills/design-templates/html-ppt/templates/single-page/toc.html +26 -0
- package/skills/design-templates/html-ppt/templates/single-page/todo-checklist.html +33 -0
- package/skills/design-templates/html-ppt/templates/single-page/two-column.html +39 -0
- package/skills/design-templates/html-ppt/templates/theme-showcase.html +151 -0
- package/skills/design-templates/html-ppt-course-module/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-course-module/example.html +542 -0
- package/skills/design-templates/html-ppt-dir-key-nav-minimal/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-dir-key-nav-minimal/example.html +366 -0
- package/skills/design-templates/html-ppt-graphify-dark-graph/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-graphify-dark-graph/example.html +402 -0
- package/skills/design-templates/html-ppt-hermes-cyber-terminal/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-hermes-cyber-terminal/example.html +422 -0
- package/skills/design-templates/html-ppt-knowledge-arch-blueprint/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-knowledge-arch-blueprint/example.html +407 -0
- package/skills/design-templates/html-ppt-obsidian-claude-gradient/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-obsidian-claude-gradient/example.html +371 -0
- package/skills/design-templates/html-ppt-pitch-deck/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-pitch-deck/example.html +495 -0
- package/skills/design-templates/html-ppt-presenter-mode-reveal/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-presenter-mode-reveal/example.html +725 -0
- package/skills/design-templates/html-ppt-product-launch/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-product-launch/example.html +467 -0
- package/skills/design-templates/html-ppt-taste-brutalist/SKILL.md +70 -0
- package/skills/design-templates/html-ppt-taste-brutalist/example.html +774 -0
- package/skills/design-templates/html-ppt-taste-editorial/SKILL.md +62 -0
- package/skills/design-templates/html-ppt-taste-editorial/example.html +689 -0
- package/skills/design-templates/html-ppt-tech-sharing/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-tech-sharing/example.html +512 -0
- package/skills/design-templates/html-ppt-testing-safety-alert/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-testing-safety-alert/example.html +413 -0
- package/skills/design-templates/html-ppt-weekly-report/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-weekly-report/example.html +489 -0
- package/skills/design-templates/html-ppt-xhs-pastel-card/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-xhs-pastel-card/example.html +381 -0
- package/skills/design-templates/html-ppt-xhs-post/SKILL.md +78 -0
- package/skills/design-templates/html-ppt-xhs-post/example.html +487 -0
- package/skills/design-templates/html-ppt-xhs-white-editorial/SKILL.md +77 -0
- package/skills/design-templates/html-ppt-xhs-white-editorial/example.html +418 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/example.html +1640 -0
- package/skills/design-templates/html-ppt-zhangzara-8-bit-orbit/template.json +48 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/example.html +833 -0
- package/skills/design-templates/html-ppt-zhangzara-biennale-yellow/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/example.html +1453 -0
- package/skills/design-templates/html-ppt-zhangzara-block-frame/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/example.html +1423 -0
- package/skills/design-templates/html-ppt-zhangzara-blue-professional/template.json +44 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/example.html +876 -0
- package/skills/design-templates/html-ppt-zhangzara-bold-poster/template.json +45 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/example.html +2144 -0
- package/skills/design-templates/html-ppt-zhangzara-broadside/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/example.html +1413 -0
- package/skills/design-templates/html-ppt-zhangzara-capsule/template.json +51 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/example.html +1136 -0
- package/skills/design-templates/html-ppt-zhangzara-cartesian/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/example.html +1205 -0
- package/skills/design-templates/html-ppt-zhangzara-cobalt-grid/template.json +49 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/example.html +1487 -0
- package/skills/design-templates/html-ppt-zhangzara-coral/template.json +45 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/SKILL.md +99 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/assets/deck-stage.js +619 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/example.html +636 -0
- package/skills/design-templates/html-ppt-zhangzara-creative-mode/template.json +47 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/SKILL.md +93 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/example.html +469 -0
- package/skills/design-templates/html-ppt-zhangzara-daisy-days/template.json +54 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/SKILL.md +98 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/assets/deck-stage.js +619 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/example.html +737 -0
- package/skills/design-templates/html-ppt-zhangzara-editorial-tri-tone/template.json +44 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/LICENSE +21 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/SKILL.md +92 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/example.html +1676 -0
- package/skills/design-templates/html-ppt-zhangzara-grove/template.json +51 -0
- package/skills/figma-code-connect-components/SKILL.md +42 -0
- package/skills/figma-create-design-system-rules/SKILL.md +42 -0
- package/skills/figma-create-new-file/SKILL.md +41 -0
- package/skills/figma-generate-design/SKILL.md +42 -0
- package/skills/figma-generate-library/SKILL.md +42 -0
- package/skills/figma-implement-design/SKILL.md +42 -0
- package/skills/figma-use/SKILL.md +42 -0
- package/skills/full-page-screenshot/SKILL.md +42 -0
- package/skills/interview-me/SKILL.md +64 -0
- package/skills/planning-and-task-breakdown/SKILL.md +52 -0
- package/skills/sora/SKILL.md +43 -0
- package/skills/theme-factory/SKILL.md +43 -0
- package/skills/web-design-guidelines/SKILL.md +42 -0
- package/dist/agents/prompt-library/orchestration.d.ts +0 -4
- package/skills/brainstorming/SKILL.md +0 -164
- package/skills/brainstorming/scripts/frame-template.html +0 -214
- package/skills/brainstorming/scripts/helper.js +0 -88
- package/skills/brainstorming/scripts/server.cjs +0 -354
- package/skills/brainstorming/scripts/start-server.sh +0 -148
- package/skills/brainstorming/scripts/stop-server.sh +0 -56
- package/skills/brainstorming/spec-document-reviewer-prompt.md +0 -49
- package/skills/brainstorming/visual-companion.md +0 -287
|
@@ -0,0 +1,1423 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Presentation Template</title>
|
|
7
|
+
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
8
|
+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
9
|
+
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
|
10
|
+
|
|
11
|
+
<style>
|
|
12
|
+
:root {
|
|
13
|
+
--bg: #fdfae7;
|
|
14
|
+
--primary: #1e2bfa;
|
|
15
|
+
--text: #111111;
|
|
16
|
+
--text-muted: #6b6b6b;
|
|
17
|
+
--text-light: #9a9a9a;
|
|
18
|
+
--accent-light: rgba(30, 43, 250, 0.08);
|
|
19
|
+
--accent-medium: rgba(30, 43, 250, 0.15);
|
|
20
|
+
--border: rgba(30, 43, 250, 0.2);
|
|
21
|
+
--card-bg: rgba(30, 43, 250, 0.04);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
* {
|
|
25
|
+
margin: 0;
|
|
26
|
+
padding: 0;
|
|
27
|
+
box-sizing: border-box;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
html, body {
|
|
31
|
+
width: 100%;
|
|
32
|
+
height: 100%;
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
font-family: 'Inter', sans-serif;
|
|
35
|
+
background: var(--bg);
|
|
36
|
+
color: var(--text);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Slide container */
|
|
40
|
+
.deck {
|
|
41
|
+
width: 100vw;
|
|
42
|
+
height: 100vh;
|
|
43
|
+
position: relative;
|
|
44
|
+
overflow: hidden;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.slide {
|
|
48
|
+
position: absolute;
|
|
49
|
+
top: 0;
|
|
50
|
+
left: 0;
|
|
51
|
+
width: 100vw;
|
|
52
|
+
height: 100vh;
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
/* Asymmetric padding: extra bottom space to clear the fixed
|
|
56
|
+
slide-counter (left) and nav-controls (right). Without this,
|
|
57
|
+
cards/grids that fill slide-content overlap the nav chrome. */
|
|
58
|
+
padding: 3.5vw 4vw 8.5vh 4vw;
|
|
59
|
+
opacity: 0;
|
|
60
|
+
pointer-events: none;
|
|
61
|
+
transform: translateX(40px);
|
|
62
|
+
transition: opacity 0.5s ease, transform 0.5s ease;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.slide.active {
|
|
67
|
+
opacity: 1;
|
|
68
|
+
pointer-events: all;
|
|
69
|
+
transform: translateX(0);
|
|
70
|
+
z-index: 10;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.slide.prev {
|
|
74
|
+
transform: translateX(-40px);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Typography */
|
|
78
|
+
h1, h2, h3, h4 {
|
|
79
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
80
|
+
font-weight: 600;
|
|
81
|
+
line-height: 1.1;
|
|
82
|
+
letter-spacing: -0.02em;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
h1 {
|
|
86
|
+
font-size: clamp(2.8rem, 5vw, 4.2rem);
|
|
87
|
+
font-weight: 700;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
h2 {
|
|
91
|
+
font-size: clamp(1.8rem, 3vw, 2.6rem);
|
|
92
|
+
margin-bottom: 1.5rem;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
h3 {
|
|
96
|
+
font-size: clamp(1.1rem, 1.8vw, 1.5rem);
|
|
97
|
+
font-weight: 500;
|
|
98
|
+
line-height: 1.3;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
h4 {
|
|
102
|
+
font-size: clamp(0.85rem, 1.2vw, 1rem);
|
|
103
|
+
font-weight: 600;
|
|
104
|
+
text-transform: uppercase;
|
|
105
|
+
letter-spacing: 0.08em;
|
|
106
|
+
color: var(--primary);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
p, li {
|
|
110
|
+
font-size: clamp(0.85rem, 1.1vw, 1.05rem);
|
|
111
|
+
line-height: 1.6;
|
|
112
|
+
color: var(--text-muted);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Slide header bar */
|
|
116
|
+
.slide-header {
|
|
117
|
+
display: flex;
|
|
118
|
+
align-items: center;
|
|
119
|
+
justify-content: space-between;
|
|
120
|
+
margin-bottom: 2.5vh;
|
|
121
|
+
flex-shrink: 0;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.slide-header h4 {
|
|
125
|
+
margin: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.slide-header .tag {
|
|
129
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
130
|
+
font-size: 0.75rem;
|
|
131
|
+
font-weight: 500;
|
|
132
|
+
color: var(--primary);
|
|
133
|
+
background: var(--accent-light);
|
|
134
|
+
padding: 0.35rem 0.9rem;
|
|
135
|
+
border-radius: 100px;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/* Slide content area */
|
|
139
|
+
.slide-content {
|
|
140
|
+
flex: 1;
|
|
141
|
+
display: flex;
|
|
142
|
+
flex-direction: column;
|
|
143
|
+
min-height: 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/* Navigation */
|
|
147
|
+
.nav-controls {
|
|
148
|
+
position: fixed;
|
|
149
|
+
bottom: 2.5vh;
|
|
150
|
+
right: 3vw;
|
|
151
|
+
display: flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
gap: 0.8rem;
|
|
154
|
+
z-index: 100;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.nav-btn {
|
|
158
|
+
width: 44px;
|
|
159
|
+
height: 44px;
|
|
160
|
+
border-radius: 50%;
|
|
161
|
+
border: 1.5px solid var(--border);
|
|
162
|
+
background: var(--bg);
|
|
163
|
+
color: var(--primary);
|
|
164
|
+
cursor: pointer;
|
|
165
|
+
display: flex;
|
|
166
|
+
align-items: center;
|
|
167
|
+
justify-content: center;
|
|
168
|
+
transition: all 0.2s ease;
|
|
169
|
+
font-size: 1.1rem;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.nav-btn:hover {
|
|
173
|
+
background: var(--primary);
|
|
174
|
+
color: var(--bg);
|
|
175
|
+
border-color: var(--primary);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.nav-btn:disabled {
|
|
179
|
+
opacity: 0.3;
|
|
180
|
+
cursor: not-allowed;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.slide-counter {
|
|
184
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
185
|
+
font-size: 0.8rem;
|
|
186
|
+
font-weight: 500;
|
|
187
|
+
color: var(--text-muted);
|
|
188
|
+
letter-spacing: 0.05em;
|
|
189
|
+
position: fixed;
|
|
190
|
+
bottom: 2.5vh;
|
|
191
|
+
left: 3vw;
|
|
192
|
+
z-index: 100;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.progress-bar {
|
|
196
|
+
position: fixed;
|
|
197
|
+
bottom: 0;
|
|
198
|
+
left: 0;
|
|
199
|
+
height: 3px;
|
|
200
|
+
background: var(--primary);
|
|
201
|
+
transition: width 0.4s ease;
|
|
202
|
+
z-index: 100;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/* Decorative elements */
|
|
206
|
+
.accent-line {
|
|
207
|
+
width: 60px;
|
|
208
|
+
height: 4px;
|
|
209
|
+
background: var(--primary);
|
|
210
|
+
border-radius: 2px;
|
|
211
|
+
margin-bottom: 1.5rem;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.accent-dot {
|
|
215
|
+
width: 8px;
|
|
216
|
+
height: 8px;
|
|
217
|
+
background: var(--primary);
|
|
218
|
+
border-radius: 50%;
|
|
219
|
+
display: inline-block;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/* ============================================================
|
|
223
|
+
LAYOUT 1: Cover / Title Slide
|
|
224
|
+
============================================================ */
|
|
225
|
+
.layout-cover {
|
|
226
|
+
justify-content: center;
|
|
227
|
+
align-items: flex-start;
|
|
228
|
+
padding-left: 8vw;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.layout-cover h1 {
|
|
232
|
+
max-width: 55vw;
|
|
233
|
+
margin-bottom: 1.5rem;
|
|
234
|
+
line-height: 1.05;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.layout-cover .subtitle {
|
|
238
|
+
font-size: clamp(1rem, 1.5vw, 1.25rem);
|
|
239
|
+
color: var(--text-muted);
|
|
240
|
+
max-width: 40vw;
|
|
241
|
+
margin-bottom: 3rem;
|
|
242
|
+
font-weight: 400;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.layout-cover .meta {
|
|
246
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
247
|
+
font-size: 0.8rem;
|
|
248
|
+
color: var(--text-light);
|
|
249
|
+
letter-spacing: 0.05em;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.layout-cover .cover-decoration {
|
|
253
|
+
position: absolute;
|
|
254
|
+
top: 0;
|
|
255
|
+
right: 0;
|
|
256
|
+
width: 35vw;
|
|
257
|
+
height: 100vh;
|
|
258
|
+
background: var(--accent-light);
|
|
259
|
+
clip-path: polygon(30% 0, 100% 0, 100% 100%, 0% 100%);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.layout-cover .cover-dots {
|
|
263
|
+
position: absolute;
|
|
264
|
+
bottom: 12vh;
|
|
265
|
+
right: 8vw;
|
|
266
|
+
display: grid;
|
|
267
|
+
grid-template-columns: repeat(3, 1fr);
|
|
268
|
+
gap: 12px;
|
|
269
|
+
opacity: 0.25;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.layout-cover .cover-dots .dot {
|
|
273
|
+
width: 6px;
|
|
274
|
+
height: 6px;
|
|
275
|
+
background: var(--primary);
|
|
276
|
+
border-radius: 50%;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/* ============================================================
|
|
280
|
+
LAYOUT 2: Agenda / Table of Contents
|
|
281
|
+
============================================================ */
|
|
282
|
+
.layout-agenda .agenda-grid {
|
|
283
|
+
display: grid;
|
|
284
|
+
grid-template-columns: repeat(2, 1fr);
|
|
285
|
+
grid-template-rows: repeat(3, 1fr);
|
|
286
|
+
gap: 1rem 3rem;
|
|
287
|
+
margin-top: 1rem;
|
|
288
|
+
flex: 1;
|
|
289
|
+
min-height: 0;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.agenda-item {
|
|
293
|
+
display: flex;
|
|
294
|
+
gap: 1.2rem;
|
|
295
|
+
align-items: center;
|
|
296
|
+
padding: 1rem 1.2rem;
|
|
297
|
+
border-radius: 12px;
|
|
298
|
+
transition: background 0.2s ease;
|
|
299
|
+
border-bottom: 1px solid var(--border);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
.agenda-item:hover {
|
|
303
|
+
background: var(--card-bg);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.agenda-num {
|
|
307
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
308
|
+
font-size: 1.8rem;
|
|
309
|
+
font-weight: 700;
|
|
310
|
+
color: var(--primary);
|
|
311
|
+
line-height: 1;
|
|
312
|
+
min-width: 36px;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.agenda-item h3 {
|
|
316
|
+
margin-bottom: 0.3rem;
|
|
317
|
+
font-size: clamp(1rem, 1.4vw, 1.2rem);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.agenda-item p {
|
|
321
|
+
font-size: clamp(0.8rem, 1vw, 0.95rem);
|
|
322
|
+
line-height: 1.5;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
/* ============================================================
|
|
326
|
+
LAYOUT 3: Key Metrics (3 large callouts)
|
|
327
|
+
Cards size to their content; the row centers vertically
|
|
328
|
+
inside the remaining slide-content area.
|
|
329
|
+
============================================================ */
|
|
330
|
+
.layout-metrics .slide-content {
|
|
331
|
+
justify-content: flex-start;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
.layout-metrics .metrics-row {
|
|
335
|
+
display: grid;
|
|
336
|
+
grid-template-columns: repeat(3, 1fr);
|
|
337
|
+
gap: 1.5rem;
|
|
338
|
+
margin-top: 0.5rem;
|
|
339
|
+
align-items: stretch;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.metric-card {
|
|
343
|
+
display: flex;
|
|
344
|
+
flex-direction: column;
|
|
345
|
+
gap: 0.7rem;
|
|
346
|
+
padding: 1.5rem 1.6rem;
|
|
347
|
+
border-radius: 14px;
|
|
348
|
+
border: 1.5px solid var(--border);
|
|
349
|
+
background: var(--card-bg);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.metric-card .metric-value {
|
|
353
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
354
|
+
font-size: clamp(2.2rem, 3.4vw, 3rem);
|
|
355
|
+
font-weight: 700;
|
|
356
|
+
color: var(--primary);
|
|
357
|
+
line-height: 1;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
.metric-card .metric-label {
|
|
361
|
+
font-size: clamp(0.95rem, 1.3vw, 1.1rem);
|
|
362
|
+
font-weight: 600;
|
|
363
|
+
color: var(--text);
|
|
364
|
+
line-height: 1.3;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.metric-card .metric-desc {
|
|
368
|
+
font-size: clamp(0.78rem, 0.95vw, 0.9rem);
|
|
369
|
+
color: var(--text-muted);
|
|
370
|
+
line-height: 1.5;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.metric-card .metric-supports {
|
|
374
|
+
list-style: none;
|
|
375
|
+
display: flex;
|
|
376
|
+
flex-direction: column;
|
|
377
|
+
gap: 0.45rem;
|
|
378
|
+
margin: 0.2rem 0 0;
|
|
379
|
+
padding: 0.7rem 0 0;
|
|
380
|
+
border-top: 1px solid var(--border);
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
.metric-card .metric-supports li {
|
|
384
|
+
font-size: clamp(0.75rem, 0.9vw, 0.85rem);
|
|
385
|
+
color: var(--text-muted);
|
|
386
|
+
padding-left: 1rem;
|
|
387
|
+
position: relative;
|
|
388
|
+
line-height: 1.45;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
.metric-card .metric-supports li::before {
|
|
392
|
+
content: '—';
|
|
393
|
+
position: absolute;
|
|
394
|
+
left: 0;
|
|
395
|
+
color: var(--text-light);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
.metric-card .metric-change {
|
|
399
|
+
display: inline-flex;
|
|
400
|
+
align-items: center;
|
|
401
|
+
gap: 0.3rem;
|
|
402
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
403
|
+
font-size: 0.78rem;
|
|
404
|
+
font-weight: 600;
|
|
405
|
+
margin-top: 0.3rem;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
.metric-change.positive { color: #059669; }
|
|
409
|
+
.metric-change.negative { color: #dc2626; }
|
|
410
|
+
|
|
411
|
+
/* ============================================================
|
|
412
|
+
LAYOUT 4: Data Dashboard (6 stat grid)
|
|
413
|
+
Cells have natural height with stat at top + name + small
|
|
414
|
+
context line. Grid is auto-sized; the row stays in the upper
|
|
415
|
+
portion of slide-content with the bottom-padding reserved
|
|
416
|
+
for nav chrome.
|
|
417
|
+
============================================================ */
|
|
418
|
+
.layout-dashboard .slide-content {
|
|
419
|
+
justify-content: flex-start;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
.layout-dashboard .stats-grid {
|
|
423
|
+
display: grid;
|
|
424
|
+
grid-template-columns: repeat(3, 1fr);
|
|
425
|
+
gap: 1.2rem;
|
|
426
|
+
margin-top: 0.5rem;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.stat-cell {
|
|
430
|
+
display: flex;
|
|
431
|
+
flex-direction: column;
|
|
432
|
+
gap: 0.5rem;
|
|
433
|
+
padding: 1.4rem 1.5rem;
|
|
434
|
+
border-radius: 12px;
|
|
435
|
+
background: var(--card-bg);
|
|
436
|
+
border: 1px solid var(--border);
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
.stat-cell .stat-top {
|
|
440
|
+
display: flex;
|
|
441
|
+
align-items: baseline;
|
|
442
|
+
gap: 0.5rem;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
.stat-cell .stat-num {
|
|
446
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
447
|
+
font-size: clamp(1.6rem, 2.4vw, 2.1rem);
|
|
448
|
+
font-weight: 700;
|
|
449
|
+
color: var(--primary);
|
|
450
|
+
line-height: 1;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
.stat-cell .stat-unit {
|
|
454
|
+
font-size: 0.8rem;
|
|
455
|
+
color: var(--text-light);
|
|
456
|
+
font-weight: 500;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
.stat-cell .stat-name {
|
|
460
|
+
font-size: clamp(0.85rem, 1vw, 0.95rem);
|
|
461
|
+
color: var(--text);
|
|
462
|
+
line-height: 1.35;
|
|
463
|
+
font-weight: 500;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
.stat-cell .stat-context {
|
|
467
|
+
font-size: 0.75rem;
|
|
468
|
+
color: var(--text-light);
|
|
469
|
+
line-height: 1.4;
|
|
470
|
+
padding-top: 0.4rem;
|
|
471
|
+
border-top: 1px solid var(--border);
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
/* ============================================================
|
|
475
|
+
LAYOUT 5: Two Column Split
|
|
476
|
+
Left = numbered insight list, Right = pull-quote + supporting
|
|
477
|
+
stats. Both columns size to their content with natural rhythm
|
|
478
|
+
(gap-based spacing, no forced height-distribution).
|
|
479
|
+
============================================================ */
|
|
480
|
+
.layout-split .slide-content {
|
|
481
|
+
justify-content: flex-start;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
.layout-split .split-body {
|
|
485
|
+
display: grid;
|
|
486
|
+
grid-template-columns: 1.05fr 1fr;
|
|
487
|
+
gap: 3.5rem;
|
|
488
|
+
margin-top: 0.5rem;
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
.split-left, .split-right {
|
|
492
|
+
display: flex;
|
|
493
|
+
flex-direction: column;
|
|
494
|
+
gap: 1.4rem;
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
.split-right {
|
|
498
|
+
padding-left: 2.5rem;
|
|
499
|
+
border-left: 2px solid var(--border);
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
.insight-list {
|
|
503
|
+
list-style: none;
|
|
504
|
+
display: flex;
|
|
505
|
+
flex-direction: column;
|
|
506
|
+
gap: 1.1rem;
|
|
507
|
+
margin: 0;
|
|
508
|
+
counter-reset: insight;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
.insight-list li {
|
|
512
|
+
position: relative;
|
|
513
|
+
padding-left: 2.6rem;
|
|
514
|
+
font-size: clamp(0.88rem, 1.05vw, 1rem);
|
|
515
|
+
color: var(--text);
|
|
516
|
+
line-height: 1.55;
|
|
517
|
+
counter-increment: insight;
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.insight-list li::before {
|
|
521
|
+
content: counter(insight, decimal-leading-zero);
|
|
522
|
+
position: absolute;
|
|
523
|
+
left: 0;
|
|
524
|
+
top: 0;
|
|
525
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
526
|
+
font-size: 0.78rem;
|
|
527
|
+
font-weight: 600;
|
|
528
|
+
color: var(--primary);
|
|
529
|
+
letter-spacing: 0.05em;
|
|
530
|
+
line-height: 1.7;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
.split-highlight {
|
|
534
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
535
|
+
font-size: clamp(1.15rem, 1.55vw, 1.5rem);
|
|
536
|
+
font-weight: 500;
|
|
537
|
+
color: var(--text);
|
|
538
|
+
line-height: 1.4;
|
|
539
|
+
padding: 1.3rem 1.5rem;
|
|
540
|
+
background: var(--accent-light);
|
|
541
|
+
border-radius: 12px;
|
|
542
|
+
border-left: 4px solid var(--primary);
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
.split-highlight cite {
|
|
546
|
+
display: block;
|
|
547
|
+
margin-top: 0.7rem;
|
|
548
|
+
font-style: normal;
|
|
549
|
+
font-size: 0.78rem;
|
|
550
|
+
font-weight: 500;
|
|
551
|
+
color: var(--text-muted);
|
|
552
|
+
letter-spacing: 0.04em;
|
|
553
|
+
text-transform: uppercase;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
.mini-stat-row {
|
|
557
|
+
display: grid;
|
|
558
|
+
grid-template-columns: repeat(3, 1fr);
|
|
559
|
+
gap: 1rem;
|
|
560
|
+
padding-top: 0.4rem;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
.mini-stat {
|
|
564
|
+
padding: 0.9rem 1rem;
|
|
565
|
+
border-radius: 10px;
|
|
566
|
+
background: var(--card-bg);
|
|
567
|
+
border: 1px solid var(--border);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.mini-stat .mini-val {
|
|
571
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
572
|
+
font-size: 1.5rem;
|
|
573
|
+
font-weight: 700;
|
|
574
|
+
color: var(--primary);
|
|
575
|
+
line-height: 1;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
.mini-stat .mini-label {
|
|
579
|
+
font-size: 0.72rem;
|
|
580
|
+
color: var(--text-muted);
|
|
581
|
+
margin-top: 0.4rem;
|
|
582
|
+
line-height: 1.35;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
/* ============================================================
|
|
586
|
+
LAYOUT 6: Horizontal Bar Ranking
|
|
587
|
+
============================================================ */
|
|
588
|
+
.layout-bars .bars-container {
|
|
589
|
+
flex: 1;
|
|
590
|
+
display: flex;
|
|
591
|
+
flex-direction: column;
|
|
592
|
+
justify-content: center;
|
|
593
|
+
gap: 0.8rem;
|
|
594
|
+
margin-top: 0.5rem;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
.bar-item {
|
|
598
|
+
display: grid;
|
|
599
|
+
grid-template-columns: minmax(180px, 30%) 1fr auto;
|
|
600
|
+
align-items: center;
|
|
601
|
+
gap: 1rem;
|
|
602
|
+
padding: 0.6rem 0;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
.bar-label {
|
|
606
|
+
font-size: clamp(0.8rem, 1.1vw, 1rem);
|
|
607
|
+
color: var(--text);
|
|
608
|
+
font-weight: 500;
|
|
609
|
+
line-height: 1.3;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
.bar-track {
|
|
613
|
+
height: 28px;
|
|
614
|
+
background: var(--accent-light);
|
|
615
|
+
border-radius: 6px;
|
|
616
|
+
overflow: hidden;
|
|
617
|
+
position: relative;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
.bar-fill {
|
|
621
|
+
height: 100%;
|
|
622
|
+
background: var(--primary);
|
|
623
|
+
border-radius: 6px;
|
|
624
|
+
transition: width 0.8s ease;
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
.bar-pct {
|
|
628
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
629
|
+
font-size: 0.95rem;
|
|
630
|
+
font-weight: 600;
|
|
631
|
+
color: var(--primary);
|
|
632
|
+
min-width: 45px;
|
|
633
|
+
text-align: right;
|
|
634
|
+
}
|
|
635
|
+
|
|
636
|
+
.bar-note {
|
|
637
|
+
font-size: 0.75rem;
|
|
638
|
+
color: var(--text-light);
|
|
639
|
+
margin-top: 0.2rem;
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
/* ============================================================
|
|
643
|
+
LAYOUT 7: Quote / Highlight
|
|
644
|
+
============================================================ */
|
|
645
|
+
.layout-quote {
|
|
646
|
+
justify-content: center;
|
|
647
|
+
align-items: center;
|
|
648
|
+
text-align: center;
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
.layout-quote .quote-mark {
|
|
652
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
653
|
+
font-size: 8rem;
|
|
654
|
+
font-weight: 700;
|
|
655
|
+
color: var(--primary);
|
|
656
|
+
opacity: 0.15;
|
|
657
|
+
line-height: 0.5;
|
|
658
|
+
margin-bottom: 1rem;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
.layout-quote blockquote {
|
|
662
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
663
|
+
font-size: clamp(1.6rem, 2.8vw, 2.4rem);
|
|
664
|
+
font-weight: 500;
|
|
665
|
+
line-height: 1.35;
|
|
666
|
+
color: var(--text);
|
|
667
|
+
max-width: 65vw;
|
|
668
|
+
margin-bottom: 2rem;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
.layout-quote .quote-source {
|
|
672
|
+
font-size: clamp(0.85rem, 1.1vw, 1rem);
|
|
673
|
+
color: var(--text-muted);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.layout-quote .quote-source strong {
|
|
677
|
+
color: var(--text);
|
|
678
|
+
font-weight: 600;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
.layout-quote .quote-decoration {
|
|
682
|
+
position: absolute;
|
|
683
|
+
top: 10vh;
|
|
684
|
+
left: 5vw;
|
|
685
|
+
width: 80px;
|
|
686
|
+
height: 80px;
|
|
687
|
+
border: 2px solid var(--border);
|
|
688
|
+
border-radius: 50%;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
.layout-quote .quote-decoration-2 {
|
|
692
|
+
position: absolute;
|
|
693
|
+
bottom: 12vh;
|
|
694
|
+
right: 6vw;
|
|
695
|
+
width: 60px;
|
|
696
|
+
height: 60px;
|
|
697
|
+
background: var(--accent-light);
|
|
698
|
+
border-radius: 50%;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/* ============================================================
|
|
702
|
+
LAYOUT 8: Timeline / Process Flow
|
|
703
|
+
============================================================ */
|
|
704
|
+
.layout-timeline .timeline-track {
|
|
705
|
+
display: flex;
|
|
706
|
+
gap: 1.5rem;
|
|
707
|
+
flex: 1;
|
|
708
|
+
align-items: center;
|
|
709
|
+
justify-content: center;
|
|
710
|
+
margin-top: 0.5rem;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
.timeline-step {
|
|
714
|
+
flex: 1;
|
|
715
|
+
display: flex;
|
|
716
|
+
flex-direction: column;
|
|
717
|
+
align-items: center;
|
|
718
|
+
text-align: center;
|
|
719
|
+
position: relative;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
.timeline-step:not(:last-child)::after {
|
|
723
|
+
content: '';
|
|
724
|
+
position: absolute;
|
|
725
|
+
top: 28px;
|
|
726
|
+
right: -0.75rem;
|
|
727
|
+
width: 1.5rem;
|
|
728
|
+
height: 2px;
|
|
729
|
+
background: var(--border);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
.step-circle {
|
|
733
|
+
width: 56px;
|
|
734
|
+
height: 56px;
|
|
735
|
+
border-radius: 50%;
|
|
736
|
+
background: var(--primary);
|
|
737
|
+
color: var(--bg);
|
|
738
|
+
display: flex;
|
|
739
|
+
align-items: center;
|
|
740
|
+
justify-content: center;
|
|
741
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
742
|
+
font-size: 1.3rem;
|
|
743
|
+
font-weight: 700;
|
|
744
|
+
margin-bottom: 1.2rem;
|
|
745
|
+
flex-shrink: 0;
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
.timeline-step:nth-child(2) .step-circle { opacity: 0.85; }
|
|
749
|
+
.timeline-step:nth-child(3) .step-circle { opacity: 0.7; }
|
|
750
|
+
.timeline-step:nth-child(4) .step-circle { opacity: 0.55; }
|
|
751
|
+
|
|
752
|
+
.step-title {
|
|
753
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
754
|
+
font-size: clamp(0.95rem, 1.4vw, 1.15rem);
|
|
755
|
+
font-weight: 600;
|
|
756
|
+
color: var(--text);
|
|
757
|
+
margin-bottom: 0.4rem;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
.step-desc {
|
|
761
|
+
font-size: clamp(0.75rem, 1vw, 0.9rem);
|
|
762
|
+
color: var(--text-muted);
|
|
763
|
+
line-height: 1.5;
|
|
764
|
+
max-width: 220px;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
/* ============================================================
|
|
768
|
+
LAYOUT 9: Detailed Analysis (bullets with sub-items)
|
|
769
|
+
============================================================ */
|
|
770
|
+
.layout-detail .detail-body {
|
|
771
|
+
display: grid;
|
|
772
|
+
grid-template-columns: repeat(2, 1fr);
|
|
773
|
+
gap: 2rem 3rem;
|
|
774
|
+
flex: 1;
|
|
775
|
+
margin-top: 0.5rem;
|
|
776
|
+
overflow: hidden;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
.detail-col {
|
|
780
|
+
display: flex;
|
|
781
|
+
flex-direction: column;
|
|
782
|
+
gap: 1.2rem;
|
|
783
|
+
}
|
|
784
|
+
|
|
785
|
+
.detail-block {
|
|
786
|
+
padding: 1rem 1.2rem;
|
|
787
|
+
border-radius: 10px;
|
|
788
|
+
background: var(--card-bg);
|
|
789
|
+
border: 1px solid var(--border);
|
|
790
|
+
}
|
|
791
|
+
|
|
792
|
+
.detail-block h3 {
|
|
793
|
+
font-size: clamp(0.95rem, 1.3vw, 1.1rem);
|
|
794
|
+
margin-bottom: 0.6rem;
|
|
795
|
+
color: var(--text);
|
|
796
|
+
}
|
|
797
|
+
|
|
798
|
+
.detail-block ul {
|
|
799
|
+
list-style: none;
|
|
800
|
+
margin: 0;
|
|
801
|
+
padding: 0;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
.detail-block ul li {
|
|
805
|
+
position: relative;
|
|
806
|
+
padding-left: 1.1rem;
|
|
807
|
+
padding-bottom: 0.4rem;
|
|
808
|
+
font-size: clamp(0.78rem, 1vw, 0.9rem);
|
|
809
|
+
line-height: 1.5;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
.detail-block ul li::before {
|
|
813
|
+
content: '';
|
|
814
|
+
position: absolute;
|
|
815
|
+
left: 0;
|
|
816
|
+
top: 0.55rem;
|
|
817
|
+
width: 5px;
|
|
818
|
+
height: 5px;
|
|
819
|
+
border-radius: 50%;
|
|
820
|
+
background: var(--primary);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
.detail-block ul li:last-child {
|
|
824
|
+
padding-bottom: 0;
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
/* ============================================================
|
|
828
|
+
LAYOUT 10: Closing / CTA
|
|
829
|
+
============================================================ */
|
|
830
|
+
.layout-closing {
|
|
831
|
+
justify-content: center;
|
|
832
|
+
align-items: center;
|
|
833
|
+
text-align: center;
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
.layout-closing h1 {
|
|
837
|
+
margin-bottom: 1rem;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.layout-closing .closing-sub {
|
|
841
|
+
font-size: clamp(1rem, 1.5vw, 1.3rem);
|
|
842
|
+
color: var(--text-muted);
|
|
843
|
+
max-width: 45vw;
|
|
844
|
+
margin-bottom: 2.5rem;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
.layout-closing .cta-btn {
|
|
848
|
+
display: inline-block;
|
|
849
|
+
font-family: 'Space Grotesk', sans-serif;
|
|
850
|
+
font-size: 0.95rem;
|
|
851
|
+
font-weight: 600;
|
|
852
|
+
color: var(--bg);
|
|
853
|
+
background: var(--primary);
|
|
854
|
+
padding: 0.9rem 2.2rem;
|
|
855
|
+
border-radius: 100px;
|
|
856
|
+
text-decoration: none;
|
|
857
|
+
letter-spacing: 0.02em;
|
|
858
|
+
transition: transform 0.2s ease, box-shadow 0.2s ease;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
.layout-closing .cta-btn:hover {
|
|
862
|
+
transform: translateY(-2px);
|
|
863
|
+
box-shadow: 0 8px 24px rgba(30, 43, 250, 0.25);
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
.layout-closing .closing-contact {
|
|
867
|
+
margin-top: 3rem;
|
|
868
|
+
font-size: 0.85rem;
|
|
869
|
+
color: var(--text-light);
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
.layout-closing .closing-decoration {
|
|
873
|
+
position: absolute;
|
|
874
|
+
top: 50%;
|
|
875
|
+
left: 50%;
|
|
876
|
+
transform: translate(-50%, -50%);
|
|
877
|
+
width: 500px;
|
|
878
|
+
height: 500px;
|
|
879
|
+
border: 1px solid var(--border);
|
|
880
|
+
border-radius: 50%;
|
|
881
|
+
opacity: 0.4;
|
|
882
|
+
pointer-events: none;
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
.layout-closing .closing-decoration-2 {
|
|
886
|
+
position: absolute;
|
|
887
|
+
top: 50%;
|
|
888
|
+
left: 50%;
|
|
889
|
+
transform: translate(-50%, -50%);
|
|
890
|
+
width: 360px;
|
|
891
|
+
height: 360px;
|
|
892
|
+
border: 1px solid var(--border);
|
|
893
|
+
border-radius: 50%;
|
|
894
|
+
opacity: 0.3;
|
|
895
|
+
pointer-events: none;
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
/* Keyboard hint */
|
|
899
|
+
.keyboard-hint {
|
|
900
|
+
position: fixed;
|
|
901
|
+
bottom: 2.5vh;
|
|
902
|
+
left: 50%;
|
|
903
|
+
transform: translateX(-50%);
|
|
904
|
+
font-size: 0.7rem;
|
|
905
|
+
color: var(--text-light);
|
|
906
|
+
z-index: 100;
|
|
907
|
+
opacity: 0.6;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
/* Responsive adjustments for very small heights */
|
|
911
|
+
@media (max-height: 700px) {
|
|
912
|
+
.slide { padding: 2.5vh 3vw; }
|
|
913
|
+
.layout-agenda .agenda-grid { gap: 0.8rem 2rem; }
|
|
914
|
+
.agenda-item { padding: 0.8rem; }
|
|
915
|
+
.metric-card { padding: 1rem; }
|
|
916
|
+
.layout-bars .bars-container { gap: 0.5rem; }
|
|
917
|
+
.bar-item { padding: 0.4rem 0; }
|
|
918
|
+
.detail-block { padding: 0.8rem 1rem; }
|
|
919
|
+
}
|
|
920
|
+
</style>
|
|
921
|
+
</head>
|
|
922
|
+
<body>
|
|
923
|
+
|
|
924
|
+
<div class="deck">
|
|
925
|
+
|
|
926
|
+
<!-- SLIDE 1: Cover -->
|
|
927
|
+
<div class="slide layout-cover active">
|
|
928
|
+
<div class="cover-decoration"></div>
|
|
929
|
+
<div class="cover-dots">
|
|
930
|
+
<div class="dot"></div><div class="dot"></div><div class="dot"></div>
|
|
931
|
+
<div class="dot"></div><div class="dot"></div><div class="dot"></div>
|
|
932
|
+
<div class="dot"></div><div class="dot"></div><div class="dot"></div>
|
|
933
|
+
</div>
|
|
934
|
+
<div class="accent-line"></div>
|
|
935
|
+
<h1>Market Outlook &<br>Strategic Priorities</h1>
|
|
936
|
+
<p class="subtitle">An analytical overview of emerging trends, shifting investor sentiment, and the key decisions shaping the next growth cycle.</p>
|
|
937
|
+
<p class="meta">Q2 2026 · Confidential</p>
|
|
938
|
+
</div>
|
|
939
|
+
|
|
940
|
+
<!-- SLIDE 2: Agenda -->
|
|
941
|
+
<div class="slide layout-agenda">
|
|
942
|
+
<div class="slide-header">
|
|
943
|
+
<h4>Table of Contents</h4>
|
|
944
|
+
<span class="tag">Overview</span>
|
|
945
|
+
</div>
|
|
946
|
+
<div class="slide-content">
|
|
947
|
+
<div class="accent-line"></div>
|
|
948
|
+
<div class="agenda-grid">
|
|
949
|
+
<div class="agenda-item">
|
|
950
|
+
<span class="agenda-num">01</span>
|
|
951
|
+
<div>
|
|
952
|
+
<h3>Executive Summary</h3>
|
|
953
|
+
<p>High-level findings and key takeaways from the latest quarterly assessment.</p>
|
|
954
|
+
</div>
|
|
955
|
+
</div>
|
|
956
|
+
<div class="agenda-item">
|
|
957
|
+
<span class="agenda-num">02</span>
|
|
958
|
+
<div>
|
|
959
|
+
<h3>Macroeconomic Sentiment</h3>
|
|
960
|
+
<p>Investor perspectives on growth, inflation, and risk factors in the current environment.</p>
|
|
961
|
+
</div>
|
|
962
|
+
</div>
|
|
963
|
+
<div class="agenda-item">
|
|
964
|
+
<span class="agenda-num">03</span>
|
|
965
|
+
<div>
|
|
966
|
+
<h3>Capital Allocation Trends</h3>
|
|
967
|
+
<p>How portfolios are shifting in response to policy changes and volatility signals.</p>
|
|
968
|
+
</div>
|
|
969
|
+
</div>
|
|
970
|
+
<div class="agenda-item">
|
|
971
|
+
<span class="agenda-num">04</span>
|
|
972
|
+
<div>
|
|
973
|
+
<h3>Strategic Recommendations</h3>
|
|
974
|
+
<p>Actionable priorities for leadership teams navigating an uncertain landscape.</p>
|
|
975
|
+
</div>
|
|
976
|
+
</div>
|
|
977
|
+
<div class="agenda-item">
|
|
978
|
+
<span class="agenda-num">05</span>
|
|
979
|
+
<div>
|
|
980
|
+
<h3>Risk & Opportunity Matrix</h3>
|
|
981
|
+
<p>Evaluating the trade-offs between defensive positioning and offensive growth bets.</p>
|
|
982
|
+
</div>
|
|
983
|
+
</div>
|
|
984
|
+
<div class="agenda-item">
|
|
985
|
+
<span class="agenda-num">06</span>
|
|
986
|
+
<div>
|
|
987
|
+
<h3>Conclusion & Next Steps</h3>
|
|
988
|
+
<p>Summary of implications and recommended follow-up actions for stakeholders.</p>
|
|
989
|
+
</div>
|
|
990
|
+
</div>
|
|
991
|
+
</div>
|
|
992
|
+
</div>
|
|
993
|
+
</div>
|
|
994
|
+
|
|
995
|
+
<!-- SLIDE 3: Key Metrics -->
|
|
996
|
+
<div class="slide layout-metrics">
|
|
997
|
+
<div class="slide-header">
|
|
998
|
+
<h4>Executive Summary</h4>
|
|
999
|
+
<span class="tag">Key Findings</span>
|
|
1000
|
+
</div>
|
|
1001
|
+
<div class="slide-content">
|
|
1002
|
+
<h2>Sentiment has shifted measurably from the prior quarter</h2>
|
|
1003
|
+
<div class="metrics-row">
|
|
1004
|
+
<div class="metric-card">
|
|
1005
|
+
<div class="metric-value">73%</div>
|
|
1006
|
+
<div class="metric-label">Bullish on three-year outlook</div>
|
|
1007
|
+
<div class="metric-desc">An all-time series high, reflecting renewed confidence in medium-term fundamentals despite near-term uncertainty.</div>
|
|
1008
|
+
<ul class="metric-supports">
|
|
1009
|
+
<li>Highest reading since the survey began in 2018</li>
|
|
1010
|
+
<li>Cross-sector consensus, led by tech and industrials</li>
|
|
1011
|
+
<li>Driven by clarity on rate trajectory and AI capex</li>
|
|
1012
|
+
</ul>
|
|
1013
|
+
<div class="metric-change positive">
|
|
1014
|
+
<span>↑</span> +11 pts vs. prior quarter
|
|
1015
|
+
</div>
|
|
1016
|
+
</div>
|
|
1017
|
+
<div class="metric-card">
|
|
1018
|
+
<div class="metric-value">55%</div>
|
|
1019
|
+
<div class="metric-label">Expect recession before year-end</div>
|
|
1020
|
+
<div class="metric-desc">Down significantly from the prior reading, indicating easing fears of a severe or prolonged contraction.</div>
|
|
1021
|
+
<ul class="metric-supports">
|
|
1022
|
+
<li>Soft-landing scenario now the modal expectation</li>
|
|
1023
|
+
<li>Median timeline pushed from Q2 to Q4</li>
|
|
1024
|
+
<li>Severity expectations also moderated meaningfully</li>
|
|
1025
|
+
</ul>
|
|
1026
|
+
<div class="metric-change positive">
|
|
1027
|
+
<span>↓</span> -36 pts vs. prior quarter
|
|
1028
|
+
</div>
|
|
1029
|
+
</div>
|
|
1030
|
+
<div class="metric-card">
|
|
1031
|
+
<div class="metric-value">4.5%</div>
|
|
1032
|
+
<div class="metric-label">Median inflation expectation</div>
|
|
1033
|
+
<div class="metric-desc">Investors expect price pressures to remain elevated through the end of the current calendar year.</div>
|
|
1034
|
+
<ul class="metric-supports">
|
|
1035
|
+
<li>Wage and services inflation remain the stickiest</li>
|
|
1036
|
+
<li>Energy disinflation slower than originally modeled</li>
|
|
1037
|
+
<li>Long-run anchor steady at 3% for the next decade</li>
|
|
1038
|
+
</ul>
|
|
1039
|
+
<div class="metric-change negative">
|
|
1040
|
+
<span>↑</span> +0.3 pts vs. prior quarter
|
|
1041
|
+
</div>
|
|
1042
|
+
</div>
|
|
1043
|
+
</div>
|
|
1044
|
+
</div>
|
|
1045
|
+
</div>
|
|
1046
|
+
|
|
1047
|
+
<!-- SLIDE 4: Dashboard -->
|
|
1048
|
+
<div class="slide layout-dashboard">
|
|
1049
|
+
<div class="slide-header">
|
|
1050
|
+
<h4>Macroeconomic Sentiment</h4>
|
|
1051
|
+
<span class="tag">Data Overview</span>
|
|
1052
|
+
</div>
|
|
1053
|
+
<div class="slide-content">
|
|
1054
|
+
<h2>Current perspectives on the economy and markets</h2>
|
|
1055
|
+
<div class="stats-grid">
|
|
1056
|
+
<div class="stat-cell">
|
|
1057
|
+
<div class="stat-top">
|
|
1058
|
+
<span class="stat-num">22%</span>
|
|
1059
|
+
<span class="stat-unit">of respondents</span>
|
|
1060
|
+
</div>
|
|
1061
|
+
<div class="stat-name">Bullish for the current calendar year</div>
|
|
1062
|
+
<div class="stat-context">Steady from prior quarter, anchored by tariff and policy uncertainty.</div>
|
|
1063
|
+
</div>
|
|
1064
|
+
<div class="stat-cell">
|
|
1065
|
+
<div class="stat-top">
|
|
1066
|
+
<span class="stat-num">51%</span>
|
|
1067
|
+
<span class="stat-unit">of respondents</span>
|
|
1068
|
+
</div>
|
|
1069
|
+
<div class="stat-name">Bullish for the next calendar year</div>
|
|
1070
|
+
<div class="stat-context">Up from 38% last quarter as the rate path firms up.</div>
|
|
1071
|
+
</div>
|
|
1072
|
+
<div class="stat-cell">
|
|
1073
|
+
<div class="stat-top">
|
|
1074
|
+
<span class="stat-num">60%</span>
|
|
1075
|
+
<span class="stat-unit">of respondents</span>
|
|
1076
|
+
</div>
|
|
1077
|
+
<div class="stat-name">More bullish on the economy than three months ago</div>
|
|
1078
|
+
<div class="stat-context">A 22-point improvement, the largest sentiment swing in two years.</div>
|
|
1079
|
+
</div>
|
|
1080
|
+
<div class="stat-cell">
|
|
1081
|
+
<div class="stat-top">
|
|
1082
|
+
<span class="stat-num">53%</span>
|
|
1083
|
+
<span class="stat-unit">of respondents</span>
|
|
1084
|
+
</div>
|
|
1085
|
+
<div class="stat-name">More bullish on equities than three months ago</div>
|
|
1086
|
+
<div class="stat-context">Tech and financials led the upgrade; energy and utilities lag.</div>
|
|
1087
|
+
</div>
|
|
1088
|
+
<div class="stat-cell">
|
|
1089
|
+
<div class="stat-top">
|
|
1090
|
+
<span class="stat-num">3.6%</span>
|
|
1091
|
+
<span class="stat-unit">median</span>
|
|
1092
|
+
</div>
|
|
1093
|
+
<div class="stat-name">Expected inflation rate for the next two years</div>
|
|
1094
|
+
<div class="stat-context">Down 0.4 pts; long-run expectations remain anchored at 3.0%.</div>
|
|
1095
|
+
</div>
|
|
1096
|
+
<div class="stat-cell">
|
|
1097
|
+
<div class="stat-top">
|
|
1098
|
+
<span class="stat-num">2.7%</span>
|
|
1099
|
+
<span class="stat-unit">median</span>
|
|
1100
|
+
</div>
|
|
1101
|
+
<div class="stat-name">Expected real GDP growth for the next two years</div>
|
|
1102
|
+
<div class="stat-context">A modest upgrade reflecting easing recession fears.</div>
|
|
1103
|
+
</div>
|
|
1104
|
+
</div>
|
|
1105
|
+
</div>
|
|
1106
|
+
</div>
|
|
1107
|
+
|
|
1108
|
+
<!-- SLIDE 5: Two Column -->
|
|
1109
|
+
<div class="slide layout-split">
|
|
1110
|
+
<div class="slide-header">
|
|
1111
|
+
<h4>Investor Priorities</h4>
|
|
1112
|
+
<span class="tag">Analysis</span>
|
|
1113
|
+
</div>
|
|
1114
|
+
<div class="slide-content">
|
|
1115
|
+
<h2>What investors want companies to focus on right now</h2>
|
|
1116
|
+
<div class="split-body">
|
|
1117
|
+
<div class="split-left">
|
|
1118
|
+
<ul class="insight-list">
|
|
1119
|
+
<li>Growth and protecting the top line remain the leading priority, cited by a clear majority as essential in the current cycle.</li>
|
|
1120
|
+
<li>Cash flow resilience has risen sharply in importance as liquidity conditions tightened across credit markets through Q3.</li>
|
|
1121
|
+
<li>Supply chain stability ranks consistently high, reflecting the lasting operational scars of recent global disruptions.</li>
|
|
1122
|
+
<li>Margin preservation and cost discipline have moved from defensive levers to first-line strategy in investor conversations.</li>
|
|
1123
|
+
<li>AI capex remains the most-discussed structural theme, but with rising attention to monetization timelines.</li>
|
|
1124
|
+
</ul>
|
|
1125
|
+
</div>
|
|
1126
|
+
<div class="split-right">
|
|
1127
|
+
<div class="split-highlight">
|
|
1128
|
+
"The shift from growth-at-all-costs to profitable, sustainable expansion is the defining theme of this cycle."
|
|
1129
|
+
<cite>Senior PM, multi-strategy fund</cite>
|
|
1130
|
+
</div>
|
|
1131
|
+
<div class="mini-stat-row">
|
|
1132
|
+
<div class="mini-stat">
|
|
1133
|
+
<div class="mini-val">63%</div>
|
|
1134
|
+
<div class="mini-label">Prioritize top-line growth</div>
|
|
1135
|
+
</div>
|
|
1136
|
+
<div class="mini-stat">
|
|
1137
|
+
<div class="mini-val">55%</div>
|
|
1138
|
+
<div class="mini-label">Prioritize cash flow resilience</div>
|
|
1139
|
+
</div>
|
|
1140
|
+
<div class="mini-stat">
|
|
1141
|
+
<div class="mini-val">33%</div>
|
|
1142
|
+
<div class="mini-label">Prioritize supply chain stability</div>
|
|
1143
|
+
</div>
|
|
1144
|
+
</div>
|
|
1145
|
+
<p style="font-size: 0.85rem; color: var(--text-muted); line-height: 1.55; margin: 0;">
|
|
1146
|
+
Notably absent from the top of the list: ESG-led capital allocation, which has dropped 24 points year-over-year as investors recalibrate toward returns-first mandates.
|
|
1147
|
+
</p>
|
|
1148
|
+
</div>
|
|
1149
|
+
</div>
|
|
1150
|
+
</div>
|
|
1151
|
+
</div>
|
|
1152
|
+
|
|
1153
|
+
<!-- SLIDE 6: Bar Chart -->
|
|
1154
|
+
<div class="slide layout-bars">
|
|
1155
|
+
<div class="slide-header">
|
|
1156
|
+
<h4>Risk Factors</h4>
|
|
1157
|
+
<span class="tag">Ranking</span>
|
|
1158
|
+
</div>
|
|
1159
|
+
<div class="slide-content">
|
|
1160
|
+
<h2>Most important macroeconomic concerns among investors</h2>
|
|
1161
|
+
<div class="bars-container">
|
|
1162
|
+
<div class="bar-item">
|
|
1163
|
+
<div class="bar-label">Consumer price inflation</div>
|
|
1164
|
+
<div class="bar-track">
|
|
1165
|
+
<div class="bar-fill" style="width: 79%"></div>
|
|
1166
|
+
</div>
|
|
1167
|
+
<div class="bar-pct">79%</div>
|
|
1168
|
+
</div>
|
|
1169
|
+
<div class="bar-item">
|
|
1170
|
+
<div class="bar-label">Interest rates & central bank policy</div>
|
|
1171
|
+
<div class="bar-track">
|
|
1172
|
+
<div class="bar-fill" style="width: 69%"></div>
|
|
1173
|
+
</div>
|
|
1174
|
+
<div class="bar-pct">69%</div>
|
|
1175
|
+
</div>
|
|
1176
|
+
<div class="bar-item">
|
|
1177
|
+
<div class="bar-label">Geopolitical risks</div>
|
|
1178
|
+
<div class="bar-track">
|
|
1179
|
+
<div class="bar-fill" style="width: 39%"></div>
|
|
1180
|
+
</div>
|
|
1181
|
+
<div class="bar-pct">39%</div>
|
|
1182
|
+
</div>
|
|
1183
|
+
<div class="bar-item">
|
|
1184
|
+
<div class="bar-label">Liquidity tightening in capital markets</div>
|
|
1185
|
+
<div class="bar-track">
|
|
1186
|
+
<div class="bar-fill" style="width: 37%"></div>
|
|
1187
|
+
</div>
|
|
1188
|
+
<div class="bar-pct">37%</div>
|
|
1189
|
+
</div>
|
|
1190
|
+
<div class="bar-item">
|
|
1191
|
+
<div class="bar-label">Asset price volatility</div>
|
|
1192
|
+
<div class="bar-track">
|
|
1193
|
+
<div class="bar-fill" style="width: 25%"></div>
|
|
1194
|
+
</div>
|
|
1195
|
+
<div class="bar-pct">25%</div>
|
|
1196
|
+
</div>
|
|
1197
|
+
<div class="bar-item">
|
|
1198
|
+
<div class="bar-label">Public-sector debt & spending</div>
|
|
1199
|
+
<div class="bar-track">
|
|
1200
|
+
<div class="bar-fill" style="width: 22%"></div>
|
|
1201
|
+
</div>
|
|
1202
|
+
<div class="bar-pct">22%</div>
|
|
1203
|
+
</div>
|
|
1204
|
+
<div class="bar-item">
|
|
1205
|
+
<div class="bar-label">Climate & ESG-related risks</div>
|
|
1206
|
+
<div class="bar-track">
|
|
1207
|
+
<div class="bar-fill" style="width: 18%"></div>
|
|
1208
|
+
</div>
|
|
1209
|
+
<div class="bar-pct">18%</div>
|
|
1210
|
+
</div>
|
|
1211
|
+
</div>
|
|
1212
|
+
</div>
|
|
1213
|
+
</div>
|
|
1214
|
+
|
|
1215
|
+
<!-- SLIDE 7: Quote -->
|
|
1216
|
+
<div class="slide layout-quote">
|
|
1217
|
+
<div class="quote-decoration"></div>
|
|
1218
|
+
<div class="quote-decoration-2"></div>
|
|
1219
|
+
<div class="quote-mark">“</div>
|
|
1220
|
+
<blockquote>
|
|
1221
|
+
In this environment, the companies that will win are those that can balance operational discipline with strategic flexibility.
|
|
1222
|
+
</blockquote>
|
|
1223
|
+
<p class="quote-source"><strong>Senior Partner, Strategy Practice</strong> — Global Investment Forum 2026</p>
|
|
1224
|
+
</div>
|
|
1225
|
+
|
|
1226
|
+
<!-- SLIDE 8: Timeline -->
|
|
1227
|
+
<div class="slide layout-timeline">
|
|
1228
|
+
<div class="slide-header">
|
|
1229
|
+
<h4>Strategic Roadmap</h4>
|
|
1230
|
+
<span class="tag">Process</span>
|
|
1231
|
+
</div>
|
|
1232
|
+
<div class="slide-content">
|
|
1233
|
+
<h2>Recommended approach to navigating the current cycle</h2>
|
|
1234
|
+
<div class="timeline-track">
|
|
1235
|
+
<div class="timeline-step">
|
|
1236
|
+
<div class="step-circle">1</div>
|
|
1237
|
+
<div class="step-title">Assess Resilience</div>
|
|
1238
|
+
<div class="step-desc">Evaluate balance sheet strength and operational buffers under stress scenarios.</div>
|
|
1239
|
+
</div>
|
|
1240
|
+
<div class="timeline-step">
|
|
1241
|
+
<div class="step-circle">2</div>
|
|
1242
|
+
<div class="step-title">Protect Core Revenue</div>
|
|
1243
|
+
<div class="step-desc">Defend market position and pricing power in segments with durable demand.</div>
|
|
1244
|
+
</div>
|
|
1245
|
+
<div class="timeline-step">
|
|
1246
|
+
<div class="step-circle">3</div>
|
|
1247
|
+
<div class="step-title">Optimize Costs</div>
|
|
1248
|
+
<div class="step-desc">Streamline overhead while preserving capacity for high-return investments.</div>
|
|
1249
|
+
</div>
|
|
1250
|
+
<div class="timeline-step">
|
|
1251
|
+
<div class="step-circle">4</div>
|
|
1252
|
+
<div class="step-title">Selective Growth</div>
|
|
1253
|
+
<div class="step-desc">Deploy capital toward opportunities with clear path to profitability.</div>
|
|
1254
|
+
</div>
|
|
1255
|
+
</div>
|
|
1256
|
+
</div>
|
|
1257
|
+
</div>
|
|
1258
|
+
|
|
1259
|
+
<!-- SLIDE 9: Detail -->
|
|
1260
|
+
<div class="slide layout-detail">
|
|
1261
|
+
<div class="slide-header">
|
|
1262
|
+
<h4>Deep Dive</h4>
|
|
1263
|
+
<span class="tag">Detailed Analysis</span>
|
|
1264
|
+
</div>
|
|
1265
|
+
<div class="slide-content">
|
|
1266
|
+
<h2>Changes in investment practices and valuation frameworks</h2>
|
|
1267
|
+
<div class="detail-body">
|
|
1268
|
+
<div class="detail-col">
|
|
1269
|
+
<div class="detail-block">
|
|
1270
|
+
<h3>Assuming higher cost of capital</h3>
|
|
1271
|
+
<ul>
|
|
1272
|
+
<li>Using elevated discount rates to reflect tighter monetary conditions</li>
|
|
1273
|
+
<li>Shifting hurdle rates for internal capital allocation decisions</li>
|
|
1274
|
+
<li>Emphasizing shorter payback periods for new projects</li>
|
|
1275
|
+
</ul>
|
|
1276
|
+
</div>
|
|
1277
|
+
<div class="detail-block">
|
|
1278
|
+
<h3>More conservative valuation approach</h3>
|
|
1279
|
+
<ul>
|
|
1280
|
+
<li>Greater weight assigned to downside and bear-case scenarios</li>
|
|
1281
|
+
<li>Reduced reliance on long-dated terminal value assumptions</li>
|
|
1282
|
+
<li>Increased sensitivity analysis around key drivers</li>
|
|
1283
|
+
</ul>
|
|
1284
|
+
</div>
|
|
1285
|
+
<div class="detail-block">
|
|
1286
|
+
<h3>Value over growth momentum</h3>
|
|
1287
|
+
<ul>
|
|
1288
|
+
<li>Pivoting toward earnings-supported valuations</li>
|
|
1289
|
+
<li>Favoring demonstrable unit economics over scale narratives</li>
|
|
1290
|
+
<li>Reassessing premium multiples for unprofitable segments</li>
|
|
1291
|
+
</ul>
|
|
1292
|
+
</div>
|
|
1293
|
+
</div>
|
|
1294
|
+
<div class="detail-col">
|
|
1295
|
+
<div class="detail-block">
|
|
1296
|
+
<h3>Cash flow & balance sheet focus</h3>
|
|
1297
|
+
<ul>
|
|
1298
|
+
<li>Prioritizing free cash flow generation as a key screening metric</li>
|
|
1299
|
+
<li>Analyzing working capital needs under inflationary input costs</li>
|
|
1300
|
+
<li>Reviewing leverage ratios and refinancing schedules</li>
|
|
1301
|
+
</ul>
|
|
1302
|
+
</div>
|
|
1303
|
+
<div class="detail-block">
|
|
1304
|
+
<h3>Bottom-up stock selection</h3>
|
|
1305
|
+
<ul>
|
|
1306
|
+
<li>Reducing macro-driven top-down factor exposures</li>
|
|
1307
|
+
<li>Intensifying fundamental research at the security level</li>
|
|
1308
|
+
<li>Building conviction through differentiated data sources</li>
|
|
1309
|
+
</ul>
|
|
1310
|
+
</div>
|
|
1311
|
+
<div class="detail-block">
|
|
1312
|
+
<h3>Shorter-term orientation</h3>
|
|
1313
|
+
<ul>
|
|
1314
|
+
<li>Narrowing forecasting windows for revenue and margin</li>
|
|
1315
|
+
<li>More frequent reassessment of position sizing</li>
|
|
1316
|
+
<li>Active hedging around event-driven volatility</li>
|
|
1317
|
+
</ul>
|
|
1318
|
+
</div>
|
|
1319
|
+
</div>
|
|
1320
|
+
</div>
|
|
1321
|
+
</div>
|
|
1322
|
+
</div>
|
|
1323
|
+
|
|
1324
|
+
<!-- SLIDE 10: Closing -->
|
|
1325
|
+
<div class="slide layout-closing">
|
|
1326
|
+
<div class="closing-decoration"></div>
|
|
1327
|
+
<div class="closing-decoration-2"></div>
|
|
1328
|
+
<div class="accent-line" style="margin: 0 auto 1.5rem;"></div>
|
|
1329
|
+
<h1>Thank You</h1>
|
|
1330
|
+
<p class="closing-sub">For questions or a deeper discussion of these findings, please reach out to the research team.</p>
|
|
1331
|
+
<a href="#" class="cta-btn">Download Full Report</a>
|
|
1332
|
+
<p class="closing-contact">research@company.com · www.company.com</p>
|
|
1333
|
+
</div>
|
|
1334
|
+
|
|
1335
|
+
</div>
|
|
1336
|
+
|
|
1337
|
+
<!-- Navigation -->
|
|
1338
|
+
<div class="slide-counter"><span id="current">1</span> / <span id="total">10</span></div>
|
|
1339
|
+
<div class="keyboard-hint">Use arrow keys to navigate</div>
|
|
1340
|
+
<div class="progress-bar" id="progress"></div>
|
|
1341
|
+
<div class="nav-controls">
|
|
1342
|
+
<button class="nav-btn" id="prevBtn" onclick="changeSlide(-1)" aria-label="Previous slide">
|
|
1343
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"></polyline></svg>
|
|
1344
|
+
</button>
|
|
1345
|
+
<button class="nav-btn" id="nextBtn" onclick="changeSlide(1)" aria-label="Next slide">
|
|
1346
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"></polyline></svg>
|
|
1347
|
+
</button>
|
|
1348
|
+
</div>
|
|
1349
|
+
|
|
1350
|
+
<script>
|
|
1351
|
+
const slides = document.querySelectorAll('.slide');
|
|
1352
|
+
const currentEl = document.getElementById('current');
|
|
1353
|
+
const totalEl = document.getElementById('total');
|
|
1354
|
+
const progressEl = document.getElementById('progress');
|
|
1355
|
+
const prevBtn = document.getElementById('prevBtn');
|
|
1356
|
+
const nextBtn = document.getElementById('nextBtn');
|
|
1357
|
+
|
|
1358
|
+
let current = 0;
|
|
1359
|
+
const total = slides.length;
|
|
1360
|
+
totalEl.textContent = total;
|
|
1361
|
+
|
|
1362
|
+
function updateSlide() {
|
|
1363
|
+
slides.forEach((slide, i) => {
|
|
1364
|
+
slide.classList.remove('active', 'prev');
|
|
1365
|
+
if (i === current) {
|
|
1366
|
+
slide.classList.add('active');
|
|
1367
|
+
} else if (i < current) {
|
|
1368
|
+
slide.classList.add('prev');
|
|
1369
|
+
}
|
|
1370
|
+
});
|
|
1371
|
+
currentEl.textContent = current + 1;
|
|
1372
|
+
progressEl.style.width = ((current + 1) / total * 100) + '%';
|
|
1373
|
+
prevBtn.disabled = current === 0;
|
|
1374
|
+
nextBtn.disabled = current === total - 1;
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1377
|
+
function changeSlide(dir) {
|
|
1378
|
+
const next = current + dir;
|
|
1379
|
+
if (next >= 0 && next < total) {
|
|
1380
|
+
current = next;
|
|
1381
|
+
updateSlide();
|
|
1382
|
+
}
|
|
1383
|
+
}
|
|
1384
|
+
|
|
1385
|
+
document.addEventListener('keydown', (e) => {
|
|
1386
|
+
if (e.key === 'ArrowRight' || e.key === ' ' || e.key === 'PageDown') {
|
|
1387
|
+
e.preventDefault();
|
|
1388
|
+
changeSlide(1);
|
|
1389
|
+
} else if (e.key === 'ArrowLeft' || e.key === 'PageUp') {
|
|
1390
|
+
e.preventDefault();
|
|
1391
|
+
changeSlide(-1);
|
|
1392
|
+
} else if (e.key === 'Home') {
|
|
1393
|
+
e.preventDefault();
|
|
1394
|
+
current = 0;
|
|
1395
|
+
updateSlide();
|
|
1396
|
+
} else if (e.key === 'End') {
|
|
1397
|
+
e.preventDefault();
|
|
1398
|
+
current = total - 1;
|
|
1399
|
+
updateSlide();
|
|
1400
|
+
}
|
|
1401
|
+
});
|
|
1402
|
+
|
|
1403
|
+
// Touch support
|
|
1404
|
+
let touchStartX = 0;
|
|
1405
|
+
let touchEndX = 0;
|
|
1406
|
+
|
|
1407
|
+
document.addEventListener('touchstart', (e) => {
|
|
1408
|
+
touchStartX = e.changedTouches[0].screenX;
|
|
1409
|
+
}, { passive: true });
|
|
1410
|
+
|
|
1411
|
+
document.addEventListener('touchend', (e) => {
|
|
1412
|
+
touchEndX = e.changedTouches[0].screenX;
|
|
1413
|
+
const diff = touchStartX - touchEndX;
|
|
1414
|
+
if (Math.abs(diff) > 50) {
|
|
1415
|
+
changeSlide(diff > 0 ? 1 : -1);
|
|
1416
|
+
}
|
|
1417
|
+
}, { passive: true });
|
|
1418
|
+
|
|
1419
|
+
updateSlide();
|
|
1420
|
+
</script>
|
|
1421
|
+
|
|
1422
|
+
</body>
|
|
1423
|
+
</html>
|