/** * Blossom Configuration Constants * * Centralized configuration for cherry blossom behavior, colors, and physics. * Extracted for easy tuning and AI-friendly selective reading. */ /** Particle counts per quality tier */ export declare const CHERRY_COUNTS: { readonly high: 150; readonly medium: 100; readonly low: 60; }; /** Mobile particle counts (reduced for performance and visual comfort) */ export declare const CHERRY_COUNTS_MOBILE: { readonly high: 75; readonly medium: 50; readonly low: 30; }; /** Flower vs petal distribution */ export declare const CHERRY_DISTRIBUTION: { /** Probability of spawning a full flower (vs single petal) */ readonly FLOWER_PROBABILITY: 0.3; }; /** Physics behavior constants */ export declare const CHERRY_PHYSICS: { /** Base falling speed */ readonly FALLING_SPEED_BASE: 0.3; /** Additional random falling speed range */ readonly FALLING_SPEED_RANGE: 0.5; /** Tumble-drag coupling - how much tumble affects fall speed */ readonly TUMBLE_DRAG_FACTOR: 0.6; /** Tumble speed range */ readonly TUMBLE_SPEED_MIN: 0.015; readonly TUMBLE_SPEED_RANGE: 0.025; /** Primary sway (slow, wide oscillation) */ readonly SWAY_SPEED: 0.012; readonly SWAY_AMPLITUDE_MIN: 25; readonly SWAY_AMPLITUDE_RANGE: 35; /** Secondary sway (faster, smaller - adds complexity) */ readonly SECONDARY_SWAY_SPEED: 0.031; readonly SECONDARY_SWAY_FACTOR: 0.4; /** Flutter effect (rapid micro-movements) */ readonly FLUTTER_SPEED: 0.08; readonly FLUTTER_AMPLITUDE: 0.3; /** Horizontal drift */ readonly DRIFT_AMPLITUDE: 0.25; readonly DRIFT_BIAS_RANGE: 0.15; /** How much rotation speed varies with tumble */ readonly ROTATION_TUMBLE_FACTOR: 0.5; }; /** Mobile physics (slower wobble for comfort on small screens) */ export declare const CHERRY_PHYSICS_MOBILE: { /** Base falling speed */ readonly FALLING_SPEED_BASE: 0.3; /** Additional random falling speed range */ readonly FALLING_SPEED_RANGE: 0.5; /** Tumble-drag coupling - how much tumble affects fall speed */ readonly TUMBLE_DRAG_FACTOR: 0.6; /** Tumble speed range */ readonly TUMBLE_SPEED_MIN: 0.015; readonly TUMBLE_SPEED_RANGE: 0.025; /** Primary sway (slower on mobile - was 0.012) */ readonly SWAY_SPEED: 0.006; readonly SWAY_AMPLITUDE_MIN: 25; readonly SWAY_AMPLITUDE_RANGE: 35; /** Secondary sway (slower on mobile - was 0.031) */ readonly SECONDARY_SWAY_SPEED: 0.015; readonly SECONDARY_SWAY_FACTOR: 0.4; /** Flutter effect (rapid micro-movements) */ readonly FLUTTER_SPEED: 0.08; readonly FLUTTER_AMPLITUDE: 0.3; /** Horizontal drift */ readonly DRIFT_AMPLITUDE: 0.25; readonly DRIFT_BIAS_RANGE: 0.15; /** How much rotation speed varies with tumble */ readonly ROTATION_TUMBLE_FACTOR: 0.5; }; /** Size configuration */ export declare const CHERRY_SIZE: { /** Flower size range - notably larger than petals */ readonly FLOWER: { readonly MIN: 12; readonly RANGE: 10; }; /** Single petal size range - smaller, more delicate */ readonly PETAL: { readonly MIN: 4; readonly RANGE: 5; }; }; /** Rotation configuration */ export declare const CHERRY_ROTATION: { /** Flower rotation speed (slower than petals) */ readonly FLOWER_SPEED: 0.015; /** Petal rotation speed */ readonly PETAL_SPEED: 0.04; /** Rotation speed randomness factor */ readonly RANDOMNESS: 0.5; }; /** Opacity configuration */ export declare const CHERRY_OPACITY: { /** Flower opacity range */ readonly FLOWER: { readonly MIN: 0.8; readonly RANGE: 0.2; }; /** Petal opacity range */ readonly PETAL: { readonly MIN: 0.6; readonly RANGE: 0.3; }; }; /** Color definitions for cherry blossom variants */ export declare const CHERRY_COLORS: { /** Vibrant magenta-pink flowers (40% probability) - the showstoppers */ readonly FLOWER_MAGENTA: { readonly r: 255; readonly gMin: 100; readonly gMax: 150; readonly bMin: 180; readonly bMax: 220; readonly probability: 0.4; }; /** Bright cherry pink flowers (35% probability) */ readonly FLOWER_PINK: { readonly r: 255; readonly gMin: 150; readonly gMax: 190; readonly bMin: 190; readonly bMax: 220; readonly probability: 0.75; }; /** Soft blush flowers (25% probability) - lighter accent */ readonly FLOWER_BLUSH: { readonly r: 255; readonly gMin: 200; readonly gMax: 230; readonly bMin: 210; readonly bMax: 240; }; /** Deep rose petals (25% probability) - adds depth */ readonly PETAL_ROSE: { readonly r: 255; readonly gMin: 140; readonly gMax: 180; readonly bMin: 170; readonly bMax: 200; readonly probability: 0.25; }; /** Soft pink petals (35% probability) */ readonly PETAL_PINK: { readonly r: 255; readonly gMin: 190; readonly gMax: 220; readonly bMin: 210; readonly bMax: 240; readonly probability: 0.6; }; /** Cream/off-white petals (25% probability) - contrast */ readonly PETAL_CREAM: { readonly r: 255; readonly gMin: 240; readonly gMax: 255; readonly bMin: 245; readonly bMax: 255; readonly probability: 0.85; }; /** Soft lavender petals (15% probability) - subtle variety */ readonly PETAL_LAVENDER: { readonly r: 245; readonly rRange: 10; readonly gMin: 200; readonly gMax: 225; readonly b: 255; }; }; /** Flower rendering configuration */ export declare const CHERRY_FLOWER: { /** Number of petals per flower */ readonly PETAL_COUNT: 5; /** Glow effect for flowers - subtle ambient light */ readonly GLOW: { /** Glow radius multiplier (relative to flower size) */ readonly RADIUS: 2; /** Glow opacity */ readonly OPACITY: 0.12; /** Inner glow opacity */ readonly INNER_OPACITY: 0.2; }; /** Petal gradient inner position */ readonly GRADIENT_INNER: 0; /** Petal gradient mid position */ readonly GRADIENT_MID: 0.5; /** Petal gradient outer position */ readonly GRADIENT_OUTER: 1; /** Mid gradient opacity multiplier */ readonly MID_OPACITY: 0.9; /** Outer gradient opacity multiplier */ readonly OUTER_OPACITY: 0.4; /** Heart-shaped petal curve positions */ readonly CURVE: { readonly WIDTH_FACTOR: 0.3; readonly TOP_Y: 0.2; readonly MID_Y: 0.5; readonly BOTTOM_Y: 0.7; readonly END_Y: 0.6; }; /** Center (stamen) configuration */ readonly CENTER: { /** Center radius multiplier (relative to flower size) */ readonly RADIUS_MULTIPLIER: 0.15; /** Center color */ readonly COLOR: { readonly r: 255; readonly g: 220; readonly b: 100; }; /** Center outer color */ readonly OUTER_COLOR: { readonly r: 255; readonly g: 200; readonly b: 80; }; /** Center outer opacity multiplier */ readonly OUTER_OPACITY: 0.6; }; }; /** Single petal rendering configuration */ export declare const CHERRY_PETAL: { /** Petal gradient positions */ readonly GRADIENT: { readonly INNER: 0; readonly MID: 0.7; readonly OUTER: 1; }; /** Gradient opacity multipliers */ readonly OPACITY: { readonly MID: 0.8; readonly OUTER: 0.3; }; /** Ellipse dimensions (relative to size) */ readonly ELLIPSE: { readonly PRIMARY: { readonly width: 0.6; readonly height: 1; }; readonly SECONDARY: { readonly width: 0.4; readonly height: 0.8; readonly rotation: number; }; }; }; /** Respawn and wrap behavior */ export declare const CHERRY_BOUNDS: { /** Buffer distance outside viewport for respawning */ readonly RESPAWN_BUFFER: 20; }; /** Wind gust configuration - very calm, occasional gentle breeze */ export declare const CHERRY_WIND: { readonly gustIntervalMin: 900; readonly gustIntervalMax: 1800; readonly gustDurationMin: 120; readonly gustDurationMax: 240; readonly gustStrengthMin: 0.15; readonly gustStrengthMax: 0.4; readonly gustDecay: 0.01; readonly ambientStrength: 0.015; readonly ambientVariation: 0.008; }; /** Mobile wind settings - even calmer */ export declare const CHERRY_WIND_MOBILE: { readonly gustIntervalMin: 1200; readonly gustIntervalMax: 2400; readonly gustDurationMin: 150; readonly gustDurationMax: 300; readonly gustStrengthMin: 0.1; readonly gustStrengthMax: 0.3; readonly gustDecay: 0.008; readonly ambientStrength: 0.01; readonly ambientVariation: 0.005; }; /** Soft twilight background gradient */ export declare const CHERRY_BACKGROUND_GRADIENT: readonly [{ readonly position: 0; readonly color: "#2a1f2e"; }, { readonly position: 0.3; readonly color: "#3d2f42"; }, { readonly position: 0.6; readonly color: "#4a3d52"; }, { readonly position: 1; readonly color: "#362d40"; }]; /** * Parallax Depth Configuration * * Creates depth illusion with 3 layers: * - Far: Small, faded, slow-moving petals (background) * - Mid: Medium petals (middle ground) * - Near: Large, vivid, fast-moving petals (foreground) */ export declare const CHERRY_PARALLAX: { /** Far layer - distant petals */ readonly far: { /** Percentage of total petals in this layer */ readonly distribution: 0.5; /** Size multiplier (smaller = further away) */ readonly sizeMultiplier: 0.5; /** Opacity multiplier (more faded = further away) */ readonly opacityMultiplier: 0.4; /** Speed multiplier (slower = further away) */ readonly speedMultiplier: 0.6; }; /** Mid layer - middle distance petals */ readonly mid: { readonly distribution: 0.35; readonly sizeMultiplier: 1; readonly opacityMultiplier: 0.7; readonly speedMultiplier: 1; }; /** Near layer - foreground petals */ readonly near: { readonly distribution: 0.15; readonly sizeMultiplier: 1.5; readonly opacityMultiplier: 1; readonly speedMultiplier: 1.3; }; }; //# sourceMappingURL=blossom-constants.d.ts.map