Team Ai
Datasetpublic

contralabs/HumanCreativityBenchmark

The Human Creativity Benchmark (HCB) Expert evaluations of AI-generated creative work, built to separate two signals that single-score benchmarks collapse: convergence, where professionals align around shared, checkable standards, and divergence, where creative taste legitimately differs. Each AI output is judged by domain professionals through three complementary lenses — forced-choice pairwise comparisons, 1-5 scalar ratings on prompt adherence, usability, and visual appeal… See the full description on the dataset page: https://huggingface.co/datasets/contralabs/HumanCreativityBenchmark.

sourceHugging Facecc-by-4.0updated 4mo agoView on Hugging Face
2likes209downloads
prompts_workflow.csv34612 linesDownload Raw Back to root
1prompt_id,domain,stage,prompt_text,input_image,input_html2ad_image_idea_01,Ad Images,Ideation,"Luxury silk scarf inspired by the classical Greek wet drapery technique, where fabric appears sculpted yet fluid. Ultra-fine silk printed with mythological motifs and ornamental Hellenic patterns, designed to mimic the illusion of carved translucency while remaining soft and wearable. The brand tone is mystical, feminine, ancestral and eternal, positioning the piece as a modern heirloom. Designed for women who value heritage, artistry and statement elegance. The emotional goal is to evoke awe and quiet power through craftsmanship. Narrative concept: transforming eternal stone aesthetics into living silk movement. Nocturnal, lunar atmosphere inspired by Selene and ancient Athens mythology. Product-focused composition with visible silk flow and negative space for branding.",,3ad_image_idea_02,Ad Images,Ideation,"Minimalist sustainable water bottle named “DA’BICA”, inspired by the thermal intelligence of the traditional Brazilian clay water filter, reinterpreted through contemporary architectural design. The bottle features a sculptural, clean silhouette with refined proportions. Softly rounded shoulders, compact body and precise neck detailing. Material appears as ultra-matte mineral ceramic in monochromatic tones such as off-white clay, sand beige, muted terracotta or deep charcoal. Surface texture is smooth and uniform, not rustic. Branding is subtle, embossed or debossed directly into the ceramic surface with minimal typographic presence. The design blends ancestral passive cooling principles with modern lifestyle aesthetics. Optional internal glass core or charcoal filtration system integrated discreetly inside. No excessive ornamentation. No rustic exaggeration. Emotional tone: quiet luxury, grounded minimalism, sculptural functionality. Product-focused composition, clean neutral background, soft diffused light emphasizing form and material purity.",,4ad_image_idea_03,Ad Images,Ideation,"Limited edition bone-conduction headphone designed as an ultra-thin sterling-silver ear cuff, resting discreetly against the mastoid bone while appearing as a delicate wearable accessory rather than a traditional headset.The visible structure on the ear is slender and refined, functioning primarily as a sculptural support element that stabilizes the concealed bone-conduction module positioned behind the ear.The polished metal form features fluid architectural lines and a lightweight profile, emphasizing elegance and restraint instead of bulk or technical heaviness.Advanced spatial audio tuning and intelligent bass enhancement are controlled through a dedicated mobile app, prioritizing immersive clarity while maintaining environmental awareness.The brand tone is restrained, futuristic and sophisticated, positioning the piece as a collectible fashion-tech object rather than a sporty gadget.Designed for urban creatives and culturally aware professionals who view technology as an extension of personal style.Narrative concept: transforming high-fidelity open-ear audio into sculpted, jewelry-like wearable design.Minimalist futuristic luxury atmosphere with seamless silver finishes and product-focused composition centered on anatomical integration, leaving subtle negative space for campaign typography.",https://media.contra.com/image/upload/fxhkaajz6qkgipzg1scs.jpg,5ad_image_idea_04,Ad Images,Ideation,"Create a luxury campaign visual for “IARA,” an amazonian-inspired perfume infused with creamy cupuaçu, warm tonka bean, and deep jungle moss. The fragrance is positioned for modern women who value grounding rituals, sensual depth, and connection to nature. The concept should evoke the feeling of the forest breathing at golden hour, humid air, filtered amber light, and a quiet yet powerful feminine presence. The narrative centers on nature as both origin and adornment, where the perfume feels distilled directly from the jungle. Visually incorporate tactile natural elements such as raw wood, moss textures, botanical accents, and viscous golden resin to symbolize warmth and richness. The tone should feel cinematic, intimate, and elevated, balancing organic wilderness with refined luxury. Position the bottle as a sacred object within its environment, grounded yet luminous, with atmospheric depth and soft diffusion to create immersion. The aesthetic should feel editorial, premium, and expandable into a full fragrance campaign.",,6ad_image_idea_05,Ad Images,Ideation,"A modern aluminum beverage can labeled “Luma Iced Tea – Passion Fruit”, zero sugar, featuring vibrant tropical packaging in deep purple and golden-yellow tones inspired by passion fruit rind and glossy pulp, realistic condensation droplets covering the can surface, (a soft pastel coral studio backdrop with subtle warm gradient tones and clean color blocking, styled like a bright contemporary summer beverage campaign), surrounded by several whole purple passion fruits and multiple halved passion fruits revealing glossy golden pulp with black seeds, a small ceramic plate in the foreground holding neatly arranged passion fruit halves and pulp segments, a light patterned napkin partially visible beneath the plate, a glass pitcher filled with iced tea softly blurred in the background, fruits spaced evenly around the can to frame it naturally, (bright directional sunlight casting defined but soft-edged shadows, crisp highlights on the aluminum surface, fresh commercial studio lighting creating a vibrant tropical mood), (centered hero composition with the can upright and dominant in frame, eye-level camera angle, balanced negative space, playful yet clean fruit arrangement surrounding the product in a modern beverage advertisement aesthetic).",,7ad_image_idea_06,Ad Images,Ideation,"A sculptural luxury leather handbag by Mata Forma, crafted from vegetable-tanned Brazilian leather with architectural brass hardware, positioned as a symbol of modern strength rooted in biodiversity and craftsmanship, designed for confident women who value structure, heritage materials, and quiet authority, (a minimal studio environment inspired by the tones of Amazonian earth and raw clay rather than literal forest scenery), subtle references to Brazilian nature translated into form through curved silhouettes inspired by tree trunks and organic growth rings, refined tailoring details, and natural tonal layering in wardrobe styling, (soft directional lighting creating sculptural shadow play and depth, evoking the feeling of strength emerging from the earth without overt wilderness imagery), (editorial hero composition where the handbag feels like a design object and extension of the wearer’s posture, balanced negative space, premium fashion campaign aesthetic expandable into a full luxury accessories series).",,8ad_image_idea_07,Ad Images,Ideation,"Premium over-ear noise-canceling headphones by Arbórea Audio, designed with matte biodegradable polymer shells and recycled aluminum framing, featuring moss-toned acoustic fabric ear cushions inspired by forest textures, positioned for environmentally conscious creatives who seek immersive sound without disconnecting from nature, (an expansive Brazilian highland landscape with rolling green hills and open sky rather than dense jungle, representing openness and breathable sound architecture), subtle wind movement through hair and fabric to suggest sound as a living, atmospheric presence rather than an isolated digital experience, minimal styling with natural knitwear and earthy tones to emphasize sustainability, (golden directional sunlight creating dimensional highlights on curved surfaces and soft rim light tracing the silhouette of the headphones), (cinematic side-profile composition with the headphones as the central focal point against negative sky space, immersive yet refined tech campaign aesthetic scalable into a premium sustainable audio brand narrative).",,9ad_image_mockup_01,Ad Images,Mockup,"High-end product photography of a limited edition bone-conduction ear cuff headphone, captured in a minimalist fashion editorial studio setting. Two models stand back-to-back against a clean white high-key background. A white male model wears structured black minimalist clothing, while a Black female model wears modern sculptural white garments, creating strong visual contrast. Both are wearing the ultra-thin polished sterling silver bone-conduction ear cuff, with the slender metallic structure wrapping around the upper ear and the discreet conduction module resting behind the ear on the mastoid bone. The visible structure must appear delicate and jewelry-scale, refined and sculptural, no thicker than a fine metallic ear cuff. Soft diffused studio lighting creates gentle highlights on the silver surface and subtle contouring on the face and garments. The composition is balanced and symmetrical, slightly angled profiles to clearly reveal the product on both models, with shallow depth of field and generous negative space. The image should evoke futuristic minimalism, refined technology, Scandinavian luxury and fashion-forward sophistication. No sporty elements, no plastic texture, no bulkiness.","https://media.contra.com/image/upload/keo1adhu4jmaegnisjdd.avif, https://media.contra.com/image/upload/gbjhoanuvcxc84qbwrcj.avif",10ad_image_mockup_02,Ad Images,Mockup,"Top-view high-end studio product photography of the minimalist sustainable water bottle “DA’BICA”. The bottle is positioned centrally over a shallow layer of clear water inside a controlled studio environment. Smooth light river stones in soft neutral tones surround the bottle in a minimal sculptural arrangement. Subtle natural water ripples create soft caustic reflections on the matte terracotta ceramic surface. The bottle color is muted warm terracotta with ultra-matte mineral finish, soft-touch texture, minimal embossed branding. Lighting is clean, soft and directional, creating gentle shadow definition while maintaining architectural clarity. The composition is calm and spacious, with negative space and visual breathing room. No glossy reflections. No perfume aesthetic. No excessive highlights. The focus is on mineral texture, purity, sustainable design and quiet luxury. Cinematic realism, high resolution, refined minimalism.","https://media.contra.com/image/upload/b15fo2wbp1et1j0samn5.avif, https://media.contra.com/image/upload/foin8u9xjwmejzafsert.avif",11ad_image_mockup_03,Ad Images,Mockup,"Luxury amazonian niche perfume product photography for “IARA – Eau de Parfum.” A crystal-clear glass perfume bottle with a minimal ivory label in refined serif typography (deep forest green text) and a brushed matte gold metallic cap, filled with a muted warm amber liquid with subtle olive undertones and a soft resin glow. The bottle is centered on three stacked dark Amazonian bark slabs with rich wood grain texture. Translucent golden tree resin (not honey) drips from above onto the cap and flows down the glass and bark in smooth, glossy, viscous streams with a darker, resinous tone. Surrounding elements include cracked cupuaçu fruit with creamy white pulp, scattered tonka beans, deep green jungle moss growing organically along the bark layers, and subtle white rainforest blossoms. Background: deep rainforest emerald fading into near-black jungle teal with subtle atmospheric humidity. Lighting is cinematic luxury studio style, warm controlled key light from upper left, soft rim light tracing the glass edges, and delicate backlight enhancing translucency. High contrast but refined, no harsh highlights. Shallow depth of field, sharp focus on bottle and resin, editorial luxury fragrance campaign aesthetic.",https://media.contra.com/image/upload/qym6lt8bvdfxsqcjwtow.avif,12ad_image_mockup_04,Ad Images,Mockup,"A high-resolution commercial product mockup of a 12oz slim aluminum beverage can labeled “Luma Iced Tea – Passion Fruit”, zero sugar, featuring professionally designed tropical packaging in deep metallic purple with rich golden-yellow passion fruit illustrations, ultra-crisp typography, refined label alignment, realistic aluminum texture with micro surface grain and detailed condensation droplets interacting naturally with light, (a clean pastel coral studio background with subtle warm gradient and seamless backdrop, styled as a premium beverage photography set), surrounded by whole deep-purple passion fruits and freshly cut halves revealing glossy golden pulp with realistic black seeds and natural juice texture, a ceramic plate in the foreground holding passion fruit pulp pieces with slight juice residue, a soft linen napkin partially visible, a glass pitcher of iced tea softly defocused in the background for depth, (controlled directional key light from the left, soft fill light to balance shadows, sharp yet natural specular highlights on the can, physically accurate shadows and reflections, professional commercial beverage lighting setup), (centered hero composition, eye-level camera angle, 85mm lens look, shallow depth of field, product sharply in focus with foreground and background subtly blurred, balanced fruit placement framing the can symmetrically, high-end summer beverage advertisement aesthetic, ultra-realistic, print-ready quality).",https://media.contra.com/image/upload/mgijbvgybgg4gdo4gvnv.avif,13ad_image_mockup_05,Ad Images,Mockup,"A high-resolution luxury fashion product portrait of the Mata Forma structured leather handbag in warm terracotta vegetable-tanned leather with visible natural grain and subtle tonal variation, featuring a brushed architectural brass flap with clean geometric curvature and precision edge finishing, (a refined neutral studio backdrop in soft clay beige with gentle gradient depth and matte surface texture), styled with a tailored taupe blazer and fluid silk skirt in muted earth tones to complement the bag without overpowering it, minimal gold jewelry accents and natural makeup to reinforce understated luxury, (controlled studio lighting with a soft key light from upper left, subtle fill to preserve leather depth, crisp but controlled reflections on brass hardware, realistic shadow grounding beneath the bag), (three-quarter seated editorial composition, eye-level camera angle, shallow depth of field, handbag as clear focal point positioned at the center of visual hierarchy, premium contemporary fashion campaign aesthetic).",https://media.contra.com/image/upload/u9op7qgdvvi2htsyby6t.avif,14ad_image_mockup_06,Ad Images,Mockup,"A high-resolution premium tech portrait of Arbórea Audio over-ear noise-canceling headphones featuring matte forest-green biodegradable polymer ear cups with refined micro-texture, recycled brushed aluminum headband with soft satin grain, and moss-toned woven acoustic fabric cushions with visible fiber structure and depth, (a minimal architectural pavilion overlooking a Brazilian highland landscape, featuring clean concrete planes and open sky with softened rolling hills in the far distance to reduce environmental distraction), styled on a model in neutral cream knitwear with hair gently wind-swept to suggest atmospheric immersion without overpowering the product, (controlled golden-hour sunlight from the right creating precise highlights along the aluminum frame, soft shadow contouring the ear cup curvature, subtle natural rim light separating silhouette from background, realistic surface reflections without artificial gloss), (three-quarter side-profile composition with the model slightly angled forward to emphasize the headphone ear cup as the dominant focal point, shallow depth of field, balanced negative sky and architectural space, premium sustainable technology campaign aesthetic with structured compositional clarity).",https://media.contra.com/image/upload/lhyztbyabvabu7cc5f3s.avif,15ad_image_mockup_07,Ad Images,Mockup,"Luxury silk scarf photography inspired by the classical wet drapery sculpture technique, where fabric appears to melt and conform to marble surfaces. Deep midnight blue silk with refined metallic gold detailing, emphasizing texture, sheen and intricate woven patterns.Night atmosphere with a soft moon-inspired tonal palette, cool blue undertones balanced by warm golden highlights. The fabric gently cascades over a pale marble pedestal, subtly clinging to the stone as if sculpted.Minimalist composition with generous negative space and a dark, softly blurred background suggesting night without heavy shadows. Subtle classical elements such as a carved marble fragment or a traditional bronze vessel placed discreetly. Controlled cinematic lighting, diffused and elegant, enhancing the silk’s luminosity while preserving texture detail. Dreamlike, poetic and refined aesthetic. High-end editorial luxury still life, product-centered, intimate framing, shallow depth of field.",https://media.contra.com/image/upload/etb49ybvz0u4mqy2hyhj.avif,16ad_image_refinement_01,Ad Images,Refinement,"Refine the existing commercial mockup of the ""Luma Iced Tea – Passion Fruit"" aluminum can to include copy for an ad placement. Add a headline ""Sip like it’s summer."" with the CTA ""Try now"". All caps chunky modern sans serif font. Rounded button. The text should standout against the dark can; add background as needed to accommodate text.",https://media.contra.com/image/upload/tzfumivwbb0z2lpgt5jc.avif,17ad_image_refinement_02,Ad Images,Refinement,"Refine the image to include ad design text for meta ads. The headline should read ""Crafted in Brazil. Carried Everywhere."" The CTA should be ""Shop now"". Use an all caps serif font. Sharp corner outline button.",https://media.contra.com/image/upload/cwef1rizujnjczcrhba8.avif,18ad_image_refinement_03,Ad Images,Refinement,"Refine the image to be ad-ready with copy and CTA. The headline should be placed at the bottom ""Sustainable silence. Serious sound."" Include a CTA at top right ""Shop now"" Use modern sans serif. Sentence case. Solid button with slightly rounded corners. Choose a color that pull froms the headphone tone.",https://media.contra.com/image/upload/mqregowipo6gvfbtnm5f.avif,19ad_image_refinement_04,Ad Images,Refinement,"Refine the existing close-up macro shot of the silk scarf to include text for an ad design. Add text across the imagie with the headline ""Art that flows with you"". Add a CTA at the bottom that says ""Shop now"". Use Thin serif font. Sentence case. Solid button with sharp corners and all caps sans serif text in the button.",https://media.contra.com/image/upload/ewmeizx8h5ki9ryra7ui.avif,20ad_image_refinement_05,Ad Images,Refinement,"Refine the high-fashion editorial composition to include text to be used as an ad. Add a headline at the bottom that says ""Limited run. Unlimited sound."" Include a CTA ""Shop now"". Modern thin and tall sans serif. Sentence case. Solid button with rounded corners. Use text shaidng that reflects the color and lighting of the headphones.",https://media.contra.com/image/upload/wkbr3jdspcogitcp2ixj.avif,21ad_image_refinement_06,Ad Images,Refinement,"Refine the existing top-view studio image of the ""DA’BICA"" bottle to be used for an ad campaign. Add text on top of the image for headline ""Good for You. Better for Earth"" with a CTA ""Shop Now""",https://media.contra.com/image/upload/vx4sjxf9oyxmkfvck7ql.avif,22ad_video_idea_01,Ad Video,Ideation,"Premium matte black wireless earbuds with metallic silver accents floating gently in foreground, soft blue waveform particles dissipating outward to show noise cancellation, blurred busy golden-hour city street crowd in background, young professional calmly walking through chaos wearing the buds, cool teal-blue cinematic grading, minimalist tech ad style, high contrast, subtle lens flares, photorealistic product focus, sharp details on earbuds",https://media.contra.com/image/upload/y6y0xwkfmwqtkbkpg8qp.avif,23ad_video_idea_02,Ad Video,Ideation,"Premium black leather heeled ankle boots with sleek pointed toe, metallic gold hardware accents, and cushioned insole for comfort. Targets urban professional women 25-35 who want fashion-forward style without sacrificing mobility. Lifestyle + demonstration ad strategy: dynamic motion showcase in real city environment. Visual system: rich black tones with gold highlights, high contrast, cinematic golden-hour lighting. Position brand as empowering elegance in motion. Fluid upward energy. Camera: dynamic low-angle tracking push-in following boots up stairs, ending wide reveal of woman ascending subway stairs energetically.",https://media.contra.com/image/upload/q4bttk8ajpcu82uhtlv5.avif,24ad_video_idea_03,Ad Video,Ideation,"using attached image to make an ad. attached image sharp foreground against softly blurred modern kitchen counter morning background. Match warm metallic tones, high contrast, consistent top-right key lighting soft rim shadows. Animate portafilter lock-in, slow thick crema pour, natural rising steam with gentle dissipation, subtle glow on controls. Medium close-up shallow depth of field on machine, smooth orbital dolly camera circling unit blending brewing action seamlessly, no mismatches, strong demonstration clarity.",https://media.contra.com/image/upload/samkzl6tjaagrkwhdxva.avif,25ad_video_idea_04,Ad Video,Ideation,"A singular bright chrome-yellow hiking backpack, with no gear, no accessories, and no props surrounding it, sits nestled in a lush alpine meadow with wildflowers, centered in the frame. White daisies and golden buttercups are scattered across vivid emerald grass, framing the pack at ground level. Behind the backpack stands a massive snow-covered mountain with rocky peaks, glaciers, and patches of snow, set against a deep blue sky with a few clouds in sight. The camera sits at a low, slightly upward-tilted angle. Natural midday light floods the scene from above. The overall visual tone is bold, aspirational, and editorial, hyperrealistic photography.",https://media.contra.com/image/upload/sy9yq3snwljprfgbnqye.avif,26ad_video_idea_05,Ad Video,Ideation,"Create a studio hero video for a premium body wash brand positioned as modern, minimal, and luxurious. The product is a translucent, body wash bottle with no visible typography.27 28The target audience is women 40+ who appreciate quiet luxury aesthetics. The goal is to make the product feel elevated and calm.29 30This is a hero-style ad focused entirely on the product. The bottle is held upright in a wet hand, standing vertically and clearly visible, partially covered in foam and water. The liquid inside the bottle is a soft light green tone that subtly glows through the packaging. The background is clean white with soft backlighting. The overall look should feel realistic, minimal, and not overly glossy or too bright.",https://media.contra.com/image/upload/aamuafkcusuk1itxzoia.avif,31ad_video_idea_06,Ad Video,Ideation,"A wide establishing shot captured with a 35mm lens from a slightly elevated front three-quarter angle, positioning the desk as an architectural element within the room. The matte surface, monitor, edge-integrated lighting, and subtle environmental glow define the space without dominating it. The space is a contemporary residential gaming room at night with carpeted flooring, neutral walls, acoustic panels, and window panels showing distant city lights. The lighting system includes subtle neon-style ambient desk edge illumination and faint internal dock lighting that softly adapts in tone, suggesting environmental responsiveness without becoming visually aggressive. No people are present. Lighting across the desk remains softly active but stable in the same frozen moment, with no animated changes. Use realistic depth of field appropriate to each focal length and maintain consistent cool-toned practical lighting falloff across the scene.",https://media.contra.com/image/upload/pkbtbilpyr8daglnfhox.avif,32ad_video_mockup_01,Ad Video,Mockup,"use the attached image to create an ad for matte black wireless earbuds with silver accents floating sharp in foreground, add prominent soft blue waveform particles expanding/dissipating outward to showcase active noise cancellation blocking city noise. Blurred golden-hour busy street background with a young professional woman calmly walking through crowd wearing the earbuds, serene confident expression. Match exact cool teal-blue cinematic grade, high contrast, subtle lens flares. Consistent upper-right volumetric lighting/shadows across all elements. Animate gentle earbuds rotation + organic waveform flow (clear fade from buds), subtle background pedestrian motion only. Medium close-up shallow DoF starting on product, smooth 6-8 second horizontal tracking camera following the earbuds then revealing the woman walking calmly at end, seamless blend, enhanced realism on her face/clothing and stronger ANC visual clarity.",https://media.contra.com/image/upload/aurqxr4sccdu2itikamq.avif,33ad_video_mockup_02,Ad Video,Mockup,"use the provided heeled boot image in sharp foreground with blurred golden-hour subway station stairs background. Match rich black-gold palette, high contrast, consistent upper-left key lighting and soft shadows. Animate boots with natural heel strike flex and confident stride motion, a stylish east asian woman (young professional in chic outfit) ascending stairs wearing the boots, subtle energy trails on steps for function. Medium wide framing, shallow depth of field on boots, smooth 6-second upward tracking dolly camera following woman's ascent, seamless blend, strong fashion-function emphasis.",https://media.contra.com/image/upload/uqdycejawkiexnox6xn8.avif,34ad_video_mockup_03,Ad Video,Mockup,"using attached image as ref to make an ad for home coffee lovers 25-45 craving premium ritual. Hero-demonstration strategy: brewing focus to morning enjoyment. Visual system: warm metallic tones, soft golden-hour morning light, high-end minimalism. Position as effortless luxury. Primary motion: slow crema pour, rising steam, gentle portafilter insertion. Camera: slow smooth orbital dolly around machine starting macro on portafilter, push-in to brewing stream, ending wide pull-back on kitchen counter with fresh espresso cup.",https://media.contra.com/image/upload/ap4z3pmssdlzx2w91crz.avif,35ad_video_mockup_04,Ad Video,Mockup,"A singular bright chrome-yellow hiking backpack, with no gear, no accessories, and no props surrounding it, sits centered in the frame in a lush alpine meadow with wildflowers. White daisies and golden buttercups fill the foreground, slightly blurred by shallow depth of field, while a massive snow-covered mountain range spans the full width of the background. The camera begins at ground level with a low upward tilt, then performs a slow push-in, keeping the pack centered throughout the video. A gentle breeze animates the surrounding grass and flower stems while the backpack remains completely static. Natural midday light is consistent throughout, hitting the pack from slightly above and in front, casting soft directional shadows into the grass. The visual tone is hyperrealistic, shot-on-location editorial, full-frame DSLR, 35mm lens, natural film grain, no CGI feel.",https://media.contra.com/image/upload/ixwwyqwajluf8oz0nyis.avif,36ad_video_mockup_05,Ad Video,Mockup,"Create a single continuous video shot that feels observational and lightly handheld, as if a human operator is calmly exploring the product in real space. Movement is slow and deliberate, small weight shifts, and slight rotational adjustments. Close-to-medium handheld observation of the EPOCH Tactical Atmosphere Desk in its environment. As the camera naturally shifts perspective, two minimal motion graphic indicators appear: A subtle temperature symbol anchored to the tempered glass keyboard zone, a subtle cooling indicator anchored to the lower PC dock beneath the desk. Motion graphics remain subtle and informational, not futuristic or holographic. These indicators remain spatially locked to the physical surfaces they reference and move consistently with perspective changes as the camera moves. The desk remains still while ambient lighting and internal dock illumination subtly breathe. Minimal, clean, non-glowing icons indicating temperature modulation and airflow cooling. The symbols appear softly and remain locked to their respective surfaces in 3D space, maintaining accurate positional tracking as the camera moves.",https://media.contra.com/image/upload/peue0k5inoyjjasunkpn.avif,37ad_video_mockup_06,Ad Video,Mockup,"Create a studio hero video for a premium body wash brand positioned as modern, minimal, and luxurious. The product is a translucent, body wash bottle with no visible typography.38 39The target audience is women 40+ who appreciate quiet luxury aesthetics. The goal is to make the product feel elevated and calm.40 41This is a hero-style ad focused entirely on the product. The bottle is held upright in a wet hand, standing vertically and clearly visible, partially covered in foam and water. The liquid inside the bottle is a soft light green tone that subtly glows through the packaging. The background is clean white with soft backlighting. The overall look should feel realistic, minimal, and not overly glossy or too bright.",https://media.contra.com/image/upload/rykf96uvcbm2psajqkk4.avif,42ad_video_refinement_01,Ad Video,Refinement,"Create a studio hero video for a premium body wash brand that feels modern, minimal, and luxurious. The hand stays steady and fixed while the camera slowly and slightly zoom in toward the center of the frame, keeping everything centered. The movement should feel calm and smooth. Change the liquid inside the bottle to a soft light blue, keeping the semi-transparent and natural look. Add thin streaks slowly slide down slowly, with consistent, subtle motion. The lighting should feel dimensional and realistic, with gentle shadow falloff on the white background, not flat and not overly bright.",https://media.contra.com/image/upload/rykf96uvcbm2psajqkk4.avif,43ad_video_refinement_02,Ad Video,Refinement,"The woman calmly walking forward through softly blurred golden-hour city street crowd, wearing the black matt earbuds, ultra-detailed serene confident face with natural skin glow and subtle smile, realistic hair flow in light breeze, crisp fabric texture on blazer. Cool teal-blue cinematic grade, high contrast, subtle volumetric lens flares, consistent upper-right key lighting with soft rim shadows across every element. Begin with medium close-up shallow depth of field on earbuds, gentle slow orbital rotation reveal, then smooth 6-8 second horizontal dolly tracking camera left-to-right following the earbuds, panning to reveal the woman walking serenely at the end with elegant ease-in/ease-out motion. Photorealistic high-fidelity materials, natural fluid animation, seamless integration, zero artifacts, ultra-premium polished ad quality.",https://media.contra.com/image/upload/hqqquyfpr8j4njw2k8dv.avif,44ad_video_refinement_03,Ad Video,Refinement,"Boots showing realistic leather grain texture, high-shine metallic reflections, natural heel flex during powerful stride. Young stylish east asian woman ascending subway stairs in golden-hour urban station, wearing boots, ultra-detailed serene confident face with natural darker skin glow, subtle smile, realistic hair flow, crisp blazer fabric details. Deep black-gold cinematic grade, high contrast, subtle volumetric lens flares, consistent upper-left key lighting with soft rim shadows. Extreme low-angle Dutch tilt close-up on heel impact, smooth transition to straight upward dolly tracking camera following stride, pan to high-angle reveal of woman striding confidently at top with elegant ease-in/ease-out motion, natural fluid gait. Photorealistic high-fidelity materials, seamless integration, zero artifacts, ultra-premium fashion ad polish",https://media.contra.com/image/upload/uqdycejawkiexnox6xn8.avif,45ad_video_refinement_04,Ad Video,Refinement,"using the attached image, every angle catching light with exquisite specular highlights, minimalist luxury design in perfect macro focus, slow floating parallax arc slider gliding around the machine, creating depth and dynamic reflections across its flawless surfaces. Smooth arcing pull-back reveals the machine elegantly positioned on a high-end open-concept kitchen island with marble veining and soft ambient luxury lighting. Cut to poised young woman in the luxurious space, cup in hand, face lighting up with authentic joy and peaceful fulfillment, subtle blissful smile spreading as she takes a slow, contented sip, emotional warmth and sophistication, rich cinematic grade, subtle lens glow, luxury motion.",https://media.contra.com/image/upload/ap4z3pmssdlzx2w91crz.avif,46ad_video_refinement_05,Ad Video,Refinement,"Using this image, change the angle so the camera begins at ground level with a low upward tilt, then performs a slow push-in, keeping the pack centered. Surrounding grass and flower stems sway softly in a light breeze, clouds slowly drift, while the backpack holds completely still, grounding the motion around it. The yellow nylon fabric should show realistic material texture, slight sheen where direct sun hits, softer diffused tone on the shadowed side, nothing smooth, plastic, or CGI. Keep the color grading, composition, and mountain backdrop exactly intact, hyperrealistic, full-frame DSLR, 35mm lens, natural film grain, shot-on-location feel throughout.",https://media.contra.com/image/upload/ixwwyqwajluf8oz0nyis.avif,47ad_video_refinement_06,Ad Video,Refinement,"Analyze the attached reference image and extend this exact moment into motion.Create a single continuous video shot that feels precise and controlled, as if captured using a stabilized camera system mounted on a vertical slider. The camera performs a smooth, fixed vertical pan from top to bottom, beginning slightly above the desk surface and gradually revealing. Close-to-medium controlled observation of the EPOCH Tactical Atmosphere Desk in its environment. A keyboard and mouse remain placed on the desk surface as static objects throughout the shot. Adjust the lighting so that during the shot, the surrounding room lighting gradually dims in a natural and controlled way, increasing contrast so the desk’s neon edge illumination and internal cooling glow become more visually prominent.",https://media.contra.com/image/upload/peue0k5inoyjjasunkpn.avif,48brand_design_idea_01,Brand Design,Ideation,"A runner cuts through the frame in motion, the figure partially blurred against a clear, light blue sky. Light trails curve around the runner as the composition leans into speed and forward movement, letting motion define the form rather than detail. Clean color and dynamic framing turn the moment into a surreal visual emphasizing momentum and forward movement.",,49brand_design_idea_02,Brand Design,Ideation,"A female tennis player leaps into a powerful serve at night, the body suspended midair as motion blur traces the arc of the racket. City lights streak across the dark background, turning speed and force into glowing lines of energy. Cinematic motion photography and a high-contrast minimal palette elevate athletic performance into art, emphasizing power, lift, and momentum over sharp detail.",,50brand_design_idea_03,Brand Design,Ideation,"An open notebook sits in warm natural light, a fountain pen resting across softly textured pages as long plant shadows move through the frame. Light becomes the primary subject, turning a simple writing ritual into a moment of quiet luxury. Minimal composition, negative space, and warm tones create a light-driven minimalist scene that feels calm, intentional, and editorial.",,51brand_design_idea_04,Brand Design,Ideation,"A woman raises two coupe cocktails toward the camera, her face partially obscured by the glasses as she laughs mid-gesture. The scene is lit with direct flash, creating crisp highlights and deep shadows against a rich red curtain backdrop. Warm, saturated tones and sharp contrast evoke a retro cinematic nightlife atmosphere, reminiscent of vintage editorial bar photography. The composition feels playful and indulgent, with bold color, expressive hands, and a frozen moment of celebration that blends old-school glamour with modern spontaneity.",,52brand_design_idea_05,Brand Design,Ideation,"A fashion figure balances on a mirrored disco ball, white heeled boots reflecting soft studio light as motion blur and film grain abstract the form. Muted tones and warm highlights create a retro cinematic fashion moment, where sculptural posing and texture evoke a film-forward, disco-era editorial atmosphere.",,53brand_design_idea_06,Brand Design,Ideation,"A red sports car races across the frame at speed, its form partially softened by motion blur against a wide, open sky. The horizon tilts as the landscape streaks past, letting movement and direction define the image more than sharp detail. Muted natural color and soft focus evoke film-forward realism, while the sparse composition and expansive negative space turn the moment into a minimalist, cinematic study of velocity and freedom.",,54brand_design_mockup_01,Brand Design,Mockup,"Combine these images. Base the subject and proportions entirely off of [image_0], but reiterpret it into the style of [image_1]. The result should feel as if [image_0] was art directed by [image_1]","https://media.contra.com/image/upload/rjqhgol5el9dreoqmt6n.avif, https://media.contra.com/image/upload/grauobmnw4mksaolcaxh.avif",55brand_design_mockup_02,Brand Design,Mockup,"Combine these images. Base the subject and proportions entirely off of [image_0], but reiterpret it into the style of [image_1]. The result should feel as if [image_0] was art directed by [image_1]","https://media.contra.com/image/upload/pgfxkcoijbjrkz1ssoln.avif, https://media.contra.com/image/upload/umak2mt3gkfosy9vcgtx.avif",56brand_design_mockup_03,Brand Design,Mockup,"Combine these images. Base the subject and proportions entirely off of [image_0], but reiterpret it into the style of [image_1]. The result should feel as if [image_0] was art directed by [image_1]","https://media.contra.com/image/upload/t9ioasg7cwjaik5vktdk.avif, https://media.contra.com/image/upload/bvmpi4xbdttzzsufqulj.avif",57brand_design_mockup_04,Brand Design,Mockup,"Combine these images. Base the subject and proportions entirely off of [image_0], but reiterpret it into the style of [image_1]. The result should feel as if [image_0] was art directed by [image_1]","https://media.contra.com/image/upload/fmzsbmxyuttszvrym8fz.avif, https://media.contra.com/image/upload/vmv7javu4jdp1i9bwmqh.avif",58brand_design_mockup_05,Brand Design,Mockup,"Combine these images. Base the subject and proportions entirely off of [image_0], but reiterpret it into the style of [image_1]. The result should feel as if [image_0] was art directed by [image_1]","https://media.contra.com/image/upload/x2rwnccr7ny8u45pmt3i.avif, https://media.contra.com/image/upload/e5rvdbcdmzkgmubkmzgj.avif",59brand_design_mockup_06,Brand Design,Mockup,"Combine these images. Base the subject and proportions entirely off of [image_0], but reiterpret it into the style of [image_1]. The result should feel as if [image_0] was art directed by [image_1]","https://media.contra.com/image/upload/lrjns6qnqyya1yvsc3sp.avif, https://media.contra.com/image/upload/nc9ypj7c7ai3ynjvnvaa.avif",60brand_design_refinement_01,Brand Design,Refinement,"Add shadows behind the floating digital assets for more visual depth. Turn the background in a soft, subtle gradient",https://media.contra.com/image/upload/katog41k7mwrkooomy1n.avif,61brand_design_refinement_02,Brand Design,Refinement,Change the jewelry to be gold to align to client's product,https://media.contra.com/image/upload/ewuntohqak8ybgygj9hf.avif,62brand_design_refinement_03,Brand Design,Refinement,"Simplify the color story, soften the reflections, and create a clearer focal point of the compact",https://media.contra.com/image/upload/xksjpu7pgf6aw6yjjmkm.avif,63brand_design_refinement_04,Brand Design,Refinement,"Clean up the background texture, warm the coffee tones slightly",https://media.contra.com/image/upload/paon03utctpa8mlnowxm.avif,64brand_design_refinement_05,Brand Design,Refinement,"Sharpen the silhouette, tighten the color palette, and light the headphones just enough so the product—not just the feeling—owns the frame",https://media.contra.com/image/upload/qhmuhcf5mzecxs3hggce.avif,65brand_design_refinement_06,Brand Design,Refinement,"Keep the bold illustrated energy, but soften the pose, constrain the color palette, and sharpen the headset",https://media.contra.com/image/upload/xunxlychgqkbimk8gjhq.avif,66desktop_app_idea_01,Desktop App,Ideation,"Finfam is a mobile-first, dark-mode family expense-tracking app. Design the UI for three core screens:67 68Dashboard (Home): Default view on open. Prioritize current-month totals with a clear primary CTA to add an expense. Hierarchy flows from macro totals at top, breakdown list below, and a floating action button anchored at the bottom.69 70Add Expense: Uses a stepped/conditional form where macro selection drives which fields appear next (payment type, micro vs. name-only, currency). Minimize visible fields at each step.71 72Monthly Summary: Spend organized by macro, then broken down into micro or name-only items within each. Filter controls at the top for time-range selection.73 74Navigation: bottom tabs with three items (Dashboard, Add, History). Modals only for confirmation states (e.g., delete expense); all primary flows navigate to full screens. The Add Expense form and category selector are reusable components that appear consistently across macros.",,75desktop_app_idea_02,Desktop App,Ideation,"Build a desktop-first mental health journaling app called Melo. Three core screens:76 77Home: Leads with today's date and a single daily prompt as the primary focus. Secondary mood selector below, with a subtle entry history feed at the bottom.78 79Journal Entry: Distraction-free writing canvas with a minimal toolbar. Guided prompts appear as dismissible inline suggestions rather than interrupting flow.80 81Insights: Soft, rounded data visualizations of mood and entry trends over time, organized chronologically. Time filter at the top.82 83Navigation: left-side vertical rail with three items (Home, Journal, Insights). Modals only for mood selector expansion; all other flows use full-screen transitions.",,84desktop_app_idea_03,Desktop App,Ideation,"Build a desktop-first online course platform called Coursly. Three core screens:85 86Dashboard: Welcome header and active courses grid as primary content. Progress summary sidebar on the right showing streaks and completion stats.87 88Course View: Two-column layout with a left sidebar listing all modules and lessons (with completion indicators) and a main content area showing selected lesson details + a primary CTA to continue.89 90Lesson Player: Full main area with content window at top, lesson notes below, and previous/next navigation anchored at the bottom.91 92Navigation: left-side vertical rail with icons for Dashboard, My Courses, and Explore. Modals only for course enrollment confirmation; all other transitions are full-screen.",,93desktop_app_idea_04,Desktop App,Ideation,"Build a desktop-first video editing app called Slicer. Persistent single-screen layout with three panels:94 95Asset Library (left panel): Collapsible sidebar showing imported media. Tabs for Video, Audio, and Effects with a search field at top.96 97Preview Window (center, dominant): Occupies the majority of the viewport. Playback controls anchored directly below: play/pause, scrub, timestamp, and volume inline in a single control bar.98 99Timeline (bottom, full width): Multiple horizontal track lanes (video, audio, effects) with a playhead scrubber and zoom controls at the far right. Track labels fixed on the left edge, lane content scrolls horizontally.100 101Top toolbar: Import, Export, Undo/Redo, and project title. Modals only for Export settings; all other interactions happen within the single-screen layout. Asset Library and Timeline panels are resizable by dragging boundary edges.",,102desktop_app_idea_05,Desktop App,Ideation,"Build a desktop-first investment portfolio management app called Vesta. Three core screens:103 104Portfolio Overview: Multi-column layout. Left column: total portfolio value, allocation breakdown, performance summary chart. Right column: sortable asset list table (ticker, value, change, weight).105 106Asset Detail: Left panel with asset metadata (price, sector, allocation %, key stats). Dominant right panel with full-width performance chart and transaction history list below.107 108Performance History: Full-width trend graphs with a time range selector at top and a benchmark comparison toggle.109 110Navigation: top horizontal bar with three items (Overview, Assets, Performance). Modals only for adding or editing a position; all other flows are full-screen.",,111desktop_app_idea_06,Desktop App,Ideation,"Build a desktop-first vacation and experience planning app called Roam. Three core screens:112 113Destination Discovery: Full-bleed editorial layout with large destination photography dominating the viewport. Search and filter bar anchored at top, destination cards in a masonry-style grid below.114 115Trip Planner: Left itinerary panel listing days and scheduled items chronologically. Right content area showing a map or destination overview. Persistent top bar with trip name, dates, and traveler count.116 117Experience Detail: Full-width hero image at top. Two-column layout below: left for description, highlights, and pricing; right for availability, booking CTA, and similar experiences.118 119Navigation: vertical rail on the left with icons for Discover, My Trips, and Saved. Modals only for adding experiences to a trip; all other flows are full-screen.",,120desktop_app_idea_07,Desktop App,Ideation,"Build a mobile-first shopping list app called Lolist. Two screens only:121 122Home (persistent screen): Current list at top showing selected items as dismissible chips or compact rows. Below, a scrollable grid of preloaded recurring items organized by category (produce, dairy, meat, bakery, cleaning, etc.) that can be tapped to add. An ""Add all"" button at the top of the preloaded items section. Small inline text input at the bottom for adding custom items to both the current list and the permanent preloaded set. A single prominent ""Send to WhatsApp"" CTA at the bottom navigates to Share.123 124Share: Clean preview of the formatted list as it will appear in WhatsApp (plain text, grouped by category). Single confirm send button.125 126No bottom nav, sidebar, or settings. The entire experience lives on these two screens.",,127desktop_app_mockup_01,Desktop App,Mockup,"Apply Finfam's visual system, inspired by Vercel's design language:128 129Background: near-black (#0a0a0a). Text: off-white (#ededed). Single accent: teal (#00c9a7) for CTAs, active states, and progress indicators.130Icons: monochrome line icons instead of emoji for a minimal, utilitarian look.131Typography: large numeric totals in medium-weight sans-serif. Section labels in uppercase with tracked spacing. Supporting text at reduced opacity (50-60%).132Dashboard cards: subtle borders, unfilled. Inline category rows show name, amount, and percentage in a single horizontal line.133Buttons: outlined for secondary actions, filled teal for the primary Add Expense CTA. Spacing on an 8pt grid with 16px horizontal padding and 24px between major sections.",,"<!DOCTYPE html>134<html lang=""en"">135<head>136  <meta charset=""UTF-8"">137  <meta name=""viewport"" content=""width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"">138  <title>Finfam - Family Expense Tracker</title>139  140  <!-- Google Fonts: Inter -->141  <link rel=""preconnect"" href=""https://fonts.googleapis.com"">142  <link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin>143  <link href=""https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"" rel=""stylesheet"">144  145  <!-- Phosphor Icons -->146  <script src=""https://unpkg.com/@phosphor-icons/web""></script>147 148  <style>149    :root {150      /* Color Palette */151      --color-bg: #121212;152      --color-surface: #1E1E1E;153      --color-surface-hover: #2C2C2C;154      --color-primary: #10B981;155      --color-primary-dark: #059669;156      --color-danger: #EF4444;157      --color-danger-dark: #DC2626;158      --color-text-main: #F9FAFB;159      --color-text-muted: #9CA3AF;160      --color-border: #374151;161      162      /* Typography */163      --font-family: 'Inter', sans-serif;164      --font-size-xs: 0.75rem;165      --font-size-sm: 0.875rem;166      --font-size-base: 1rem;167      --font-size-lg: 1.25rem;168      --font-size-xl: 2rem;169      170      /* Spacing & Layout */171      --spacing-1: 4px;172      --spacing-2: 8px;173      --spacing-3: 12px;174      --spacing-4: 16px;175      --spacing-5: 24px;176      --spacing-6: 32px;177      --radius-sm: 8px;178      --radius-md: 12px;179      --radius-lg: 16px;180      --radius-full: 9999px;181      182      /* Shadows & Transitions */183      --shadow-sm: 0 1px 2px rgba(0,0,0,0.5);184      --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.5);185      --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.5);186      --transition-fast: 0.15s ease-in-out;187    }188 189    /* Base Reset */190    *, *::before, *::after {191      box-sizing: border-box;192      margin: 0;193      padding: 0;194    }195 196    html, body {197      height: 100%;198      background-color: var(--color-bg);199      color: var(--color-text-main);200      font-family: var(--font-family);201      line-height: 1.5;202      -webkit-font-smoothing: antialiased;203    }204 205    /* Accessibility Focus */206    :focus-visible {207      outline: 2px solid var(--color-primary);208      outline-offset: 2px;209      border-radius: 2px;210    }211 212    /* App Container (Mobile First) */213    .app-container {214      position: relative;215      width: 100%;216      height: 100%;217      display: flex;218      flex-direction: column;219      overflow: hidden;220      background-color: var(--color-bg);221    }222 223    /* Desktop/Tablet Constraint */224    @media (min-width: 600px) {225      body {226        background-color: #0A0A0A;227        display: flex;228        align-items: center;229        justify-content: center;230      }231      .app-container {232        max-width: 400px;233        height: 90vh;234        max-height: 850px;235        border-radius: var(--radius-lg);236        box-shadow: var(--shadow-lg), 0 0 0 1px var(--color-border);237      }238    }239 240    /* Screens & Routing */241    .screen {242      display: none;243      flex-direction: column;244      height: 100%;245      width: 100%;246      padding-bottom: 70px; /* Space for bottom nav */247    }248 249    .screen-active {250      display: flex;251      animation: fadeIn var(--transition-fast);252    }253 254    @keyframes fadeIn {255      from { opacity: 0; transform: translateY(5px); }256      to { opacity: 1; transform: translateY(0); }257    }258 259    /* Header */260    .header {261      padding: var(--spacing-5) var(--spacing-4) var(--spacing-4);262      background-color: var(--color-bg);263      position: sticky;264      top: 0;265      z-index: 10;266    }267 268    .header-title {269      font-size: var(--font-size-lg);270      font-weight: 600;271    }272 273    /* Scrollable Content */274    .content-scrollable {275      flex: 1;276      overflow-y: auto;277      padding: 0 var(--spacing-4) var(--spacing-4);278    }279 280    /* Typography Utilities */281    .text-muted { color: var(--color-text-muted); }282    .text-danger { color: var(--color-danger); }283    .text-success { color: var(--color-primary); }284    .text-sm { font-size: var(--font-size-sm); }285    .text-xs { font-size: var(--font-size-xs); }286    .font-medium { font-weight: 500; }287    .font-bold { font-weight: 700; }288    .text-center { text-align: center; }289    290    .mb-2 { margin-bottom: var(--spacing-2); }291    .mb-4 { margin-bottom: var(--spacing-4); }292    .mt-4 { margin-top: var(--spacing-4); }293    .flex-between { display: flex; justify-content: space-between; align-items: center; }294 295    /* Cards */296    .card {297      background-color: var(--color-surface);298      border-radius: var(--radius-md);299      padding: var(--spacing-4);300      box-shadow: var(--shadow-sm);301      border: 1px solid var(--color-border);302    }303 304    .total-card {305      text-align: center;306      padding: var(--spacing-5);307      background: linear-gradient(145deg, var(--color-surface), #1a1a1a);308    }309 310    .total-amount {311      font-size: var(--font-size-xl);312      font-weight: 700;313      margin: var(--spacing-2) 0;314      color: var(--color-primary);315    }316 317    /* Lists */318    .list-group {319      display: flex;320      flex-direction: column;321      gap: var(--spacing-3);322    }323 324    .list-item {325      display: flex;326      justify-content: space-between;327      align-items: center;328      padding: var(--spacing-3);329      background-color: var(--color-surface);330      border-radius: var(--radius-md);331      border: 1px solid var(--color-border);332      transition: background-color var(--transition-fast);333      cursor: pointer;334    }335 336    .list-item:hover, .list-item:active {337      background-color: var(--color-surface-hover);338    }339 340    .item-icon {341      width: 40px;342      height: 40px;343      border-radius: var(--radius-full);344      background-color: rgba(16, 185, 129, 0.1);345      color: var(--color-primary);346      display: flex;347      align-items: center;348      justify-content: center;349      font-size: 1.25rem;350      margin-right: var(--spacing-3);351    }352 353    .item-details {354      flex: 1;355    }356 357    .item-title {358      font-weight: 500;359      font-size: var(--font-size-base);360    }361 362    .item-subtitle {363      font-size: var(--font-size-xs);364      color: var(--color-text-muted);365      margin-top: 2px;366    }367 368    .item-amount {369      font-weight: 600;370      font-size: var(--font-size-base);371    }372 373    /* Grouped History Headers */374    .group-header {375      font-size: var(--font-size-sm);376      font-weight: 600;377      color: var(--color-text-muted);378      text-transform: uppercase;379      letter-spacing: 0.05em;380      margin: var(--spacing-4) 0 var(--spacing-2);381      display: flex;382      justify-content: space-between;383    }384 385    /* Forms */386    .form-section {387      transition: opacity var(--transition-fast), transform var(--transition-fast);388      opacity: 1;389      transform: translateY(0);390      margin-bottom: var(--spacing-5);391    }392 393    .form-section-hidden {394      display: none;395      opacity: 0;396      transform: translateY(-10px);397    }398 399    .form-group {400      margin-bottom: var(--spacing-4);401    }402 403    .form-label {404      display: block;405      font-size: var(--font-size-sm);406      font-weight: 500;407      color: var(--color-text-muted);408      margin-bottom: var(--spacing-2);409    }410 411    .form-input, .form-select {412      width: 100%;413      background-color: var(--color-surface);414      border: 1px solid var(--color-border);415      color: var(--color-text-main);416      padding: var(--spacing-3);417      border-radius: var(--radius-md);418      font-size: var(--font-size-base);419      font-family: var(--font-family);420      transition: border-color var(--transition-fast);421    }422 423    .form-input:focus, .form-select:focus {424      outline: none;425      border-color: var(--color-primary);426    }427 428    /* Radio Cards (Macro & Payment Selection) */429    .radio-grid {430      display: grid;431      grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));432      gap: var(--spacing-3);433    }434 435    .radio-card {436      position: relative;437      display: block;438      cursor: pointer;439    }440 441    .radio-card input {442      position: absolute;443      opacity: 0;444      width: 0;445      height: 0;446    }447 448    .radio-content {449      display: flex;450      flex-direction: column;451      align-items: center;452      justify-content: center;453      padding: var(--spacing-3);454      background-color: var(--color-surface);455      border: 1px solid var(--color-border);456      border-radius: var(--radius-md);457      text-align: center;458      transition: all var(--transition-fast);459      gap: var(--spacing-2);460    }461 462    .radio-content i {463      font-size: 1.5rem;464      color: var(--color-text-muted);465    }466 467    .radio-card input:checked + .radio-content {468      background-color: rgba(16, 185, 129, 0.1);469      border-color: var(--color-primary);470      color: var(--color-primary);471    }472 473    .radio-card input:checked + .radio-content i {474      color: var(--color-primary);475    }476 477    .radio-card input:focus-visible + .radio-content {478      outline: 2px solid var(--color-primary);479      outline-offset: 2px;480    }481 482    /* Buttons */483    .btn {484      display: inline-flex;485      align-items: center;486      justify-content: center;487      padding: var(--spacing-3) var(--spacing-4);488      border-radius: var(--radius-md);489      font-size: var(--font-size-base);490      font-weight: 600;491      font-family: var(--font-family);492      cursor: pointer;493      border: none;494      transition: background-color var(--transition-fast), transform 0.1s;495      gap: var(--spacing-2);496    }497 498    .btn:active {499      transform: scale(0.98);500    }501 502    .btn-block {503      width: 100%;504    }505 506    .btn-primary {507      background-color: var(--color-primary);508      color: #fff;509    }510 511    .btn-primary:hover, .btn-primary:focus-visible {512      background-color: var(--color-primary-dark);513    }514 515    .btn-secondary {516      background-color: var(--color-surface);517      color: var(--color-text-main);518      border: 1px solid var(--color-border);519    }520 521    .btn-secondary:hover, .btn-secondary:focus-visible {522      background-color: var(--color-surface-hover);523    }524 525    .btn-danger {526      background-color: var(--color-danger);527      color: #fff;528    }529 530    .btn-danger:hover, .btn-danger:focus-visible {531      background-color: var(--color-danger-dark);532    }533 534    /* Floating Action Button */535    .fab {536      position: absolute;537      bottom: 86px; /* Above bottom nav */538      right: var(--spacing-4);539      width: 56px;540      height: 56px;541      border-radius: var(--radius-full);542      background-color: var(--color-primary);543      color: #fff;544      display: flex;545      align-items: center;546      justify-content: center;547      font-size: 1.5rem;548      box-shadow: var(--shadow-lg);549      text-decoration: none;550      transition: transform var(--transition-fast), background-color var(--transition-fast);551      z-index: 20;552    }553 554    .fab:hover, .fab:focus-visible {555      background-color: var(--color-primary-dark);556      transform: scale(1.05);557    }558 559    .fab:active {560      transform: scale(0.95);561    }562 563    /* Bottom Navigation */564    .bottom-nav {565      position: absolute;566      bottom: 0;567      left: 0;568      width: 100%;569      height: 70px;570      background-color: var(--color-surface);571      border-top: 1px solid var(--color-border);572      display: flex;573      justify-content: space-around;574      align-items: center;575      padding-bottom: env(safe-area-inset-bottom); /* iOS safe area */576      z-index: 30;577    }578 579    .nav-item {580      display: flex;581      flex-direction: column;582      align-items: center;583      justify-content: center;584      color: var(--color-text-muted);585      text-decoration: none;586      flex: 1;587      height: 100%;588      gap: 4px;589      transition: color var(--transition-fast);590    }591 592    .nav-icon {593      font-size: 1.5rem;594    }595 596    .nav-text {597      font-size: var(--font-size-xs);598      font-weight: 500;599    }600 601    .nav-item:hover, .nav-item:focus-visible {602      color: var(--color-text-main);603    }604 605    .nav-item-active {606      color: var(--color-primary);607    }608    609    .nav-item-active:hover, .nav-item-active:focus-visible {610      color: var(--color-primary);611    }612 613    /* Modal */614    .modal {615      margin: auto;616      background-color: var(--color-surface);617      border: 1px solid var(--color-border);618      border-radius: var(--radius-lg);619      padding: var(--spacing-5);620      color: var(--color-text-main);621      max-width: 90%;622      width: 320px;623      box-shadow: var(--shadow-lg);624    }625 626    .modal::backdrop {627      background-color: rgba(0, 0, 0, 0.7);628      backdrop-filter: blur(2px);629    }630 631    .modal-title {632      font-size: var(--font-size-lg);633      font-weight: 600;634      margin-bottom: var(--spacing-2);635    }636 637    .modal-actions {638      display: flex;639      gap: var(--spacing-3);640      margin-top: var(--spacing-5);641    }642 643    .modal-actions .btn {644      flex: 1;645    }646 647    /* Empty State */648    .empty-state {649      text-align: center;650      padding: var(--spacing-6) var(--spacing-4);651      color: var(--color-text-muted);652    }653    654    .empty-state i {655      font-size: 3rem;656      margin-bottom: var(--spacing-3);657      opacity: 0.5;658    }659  </style>660</head>661<body>662 663  <div class=""app-container"">664    665    <!-- ================= DASHBOARD VIEW ================= -->666    <main id=""view-dashboard"" class=""screen screen-active"">667      <header class=""header"">668        <h1 class=""header-title"">Dashboard</h1>669      </header>670      671      <div class=""content-scrollable"">672        <div class=""card total-card mb-4"">673          <p class=""text-sm text-muted font-medium"">Current Month Spend</p>674          <h2 class=""total-amount"" id=""dash-total"">$0.00</h2>675          <p class=""text-xs text-muted"" id=""dash-month-label"">October 2023</p>676        </div>677 678        <div class=""flex-between mb-2"">679          <h3 class=""text-sm font-bold text-muted"" style=""text-transform: uppercase; letter-spacing: 0.05em;"">Recent Transactions</h3>680          <a href=""#history"" class=""text-xs text-success"" style=""text-decoration: none;"">View All</a>681        </div>682        683        <div class=""list-group"" id=""dash-recent-list"">684          <!-- Populated by JS -->685        </div>686      </div>687 688      <a href=""#add"" class=""fab"" aria-label=""Add Expense"">689        <i class=""ph ph-plus""></i>690      </a>691    </main>692 693    <!-- ================= ADD EXPENSE VIEW ================= -->694    <main id=""view-add"" class=""screen"">695      <header class=""header"">696        <h1 class=""header-title"">Add Expense</h1>697      </header>698      699      <div class=""content-scrollable"">700        <form id=""add-expense-form"">701          702          <!-- Step 1: Macro Category -->703          <div class=""form-section"" id=""step-macro"">704            <label class=""form-label"">1. Select Category</label>705            <div class=""radio-grid"">706              <label class=""radio-card"">707                <input type=""radio"" name=""macro"" value=""Housing"" required>708                <div class=""radio-content"">709                  <i class=""ph ph-house""></i>710                  <span class=""text-xs font-medium"">Housing</span>711                </div>712              </label>713              <label class=""radio-card"">714                <input type=""radio"" name=""macro"" value=""Food"">715                <div class=""radio-content"">716                  <i class=""ph ph-shopping-cart""></i>717                  <span class=""text-xs font-medium"">Food</span>718                </div>719              </label>720              <label class=""radio-card"">721                <input type=""radio"" name=""macro"" value=""Transport"">722                <div class=""radio-content"">723                  <i class=""ph ph-car""></i>724                  <span class=""text-xs font-medium"">Transport</span>725                </div>726              </label>727              <label class=""radio-card"">728                <input type=""radio"" name=""macro"" value=""Utilities"">729                <div class=""radio-content"">730                  <i class=""ph ph-lightning""></i>731                  <span class=""text-xs font-medium"">Utilities</span>732                </div>733              </label>734              <label class=""radio-card"">735                <input type=""radio"" name=""macro"" value=""Personal"">736                <div class=""radio-content"">737                  <i class=""ph ph-user""></i>738                  <span class=""text-xs font-medium"">Personal</span>739                </div>740              </label>741            </div>742          </div>743 744          <!-- Step 2: Payment Type -->745          <div class=""form-section form-section-hidden"" id=""step-payment"">746            <label class=""form-label"">2. Payment Method</label>747            <div class=""radio-grid"">748              <label class=""radio-card"">749                <input type=""radio"" name=""payment"" value=""Credit"" required>750                <div class=""radio-content"">751                  <i class=""ph ph-credit-card""></i>752                  <span class=""text-xs font-medium"">Credit</span>753                </div>754              </label>755              <label class=""radio-card"">756                <input type=""radio"" name=""payment"" value=""Debit"">757                <div class=""radio-content"">758                  <i class=""ph ph-bank""></i>759                  <span class=""text-xs font-medium"">Debit</span>760                </div>761              </label>762              <label class=""radio-card"">763                <input type=""radio"" name=""payment"" value=""Cash"">764                <div class=""radio-content"">765                  <i class=""ph ph-money""></i>766                  <span class=""text-xs font-medium"">Cash</span>767                </div>768              </label>769            </div>770          </div>771 772          <!-- Step 3: Details -->773          <div class=""form-section form-section-hidden"" id=""step-details"">774            <label class=""form-label"">3. Details</label>775            776            <div class=""card"">777              <div class=""form-group"">778                <label class=""form-label"" for=""micro-select"">Specific Item</label>779                <select id=""micro-select"" name=""micro"" class=""form-select"" required>780                  <option value="""" disabled selected>Select specific category</option>781                  <!-- Populated by JS -->782                </select>783              </div>784 785              <div class=""form-group"">786                <label class=""form-label"" for=""expense-date"">Date</label>787                <input type=""date"" id=""expense-date"" name=""date"" class=""form-input"" required>788              </div>789 790              <div style=""display: flex; gap: var(--spacing-3);"">791                <div class=""form-group"" style=""flex: 2;"">792                  <label class=""form-label"" for=""expense-amount"">Amount</label>793                  <input type=""number"" id=""expense-amount"" name=""amount"" class=""form-input"" step=""0.01"" min=""0.01"" placeholder=""0.00"" required>794                </div>795                <div class=""form-group"" style=""flex: 1;"">796                  <label class=""form-label"" for=""expense-currency"">Currency</label>797                  <select id=""expense-currency"" name=""currency"" class=""form-select"" required>798                    <option value=""USD"">USD</option>799                    <option value=""EUR"">EUR</option>800                    <option value=""GBP"">GBP</option>801                  </select>802                </div>803              </div>804 805              <button type=""submit"" class=""btn btn-primary btn-block mt-4"">806                <i class=""ph ph-check-circle""></i> Save Expense807              </button>808            </div>809          </div>810 811        </form>812      </div>813    </main>814 815    <!-- ================= HISTORY VIEW ================= -->816    <main id=""view-history"" class=""screen"">817      <header class=""header"">818        <h1 class=""header-title mb-4"">Monthly Summary</h1>819        <input type=""month"" id=""history-month-filter"" class=""form-input"">820      </header>821      822      <div class=""content-scrollable"" id=""history-content"">823        <!-- Populated by JS -->824      </div>825    </main>826 827    <!-- ================= BOTTOM NAVIGATION ================= -->828    <nav class=""bottom-nav"">829      <a href=""#dashboard"" class=""nav-item nav-item-active"" aria-label=""Dashboard"">830        <i class=""ph ph-squares-four nav-icon""></i>831        <span class=""nav-text"">Dashboard</span>832      </a>833      <a href=""#add"" class=""nav-item"" aria-label=""Add Expense"">834        <i class=""ph ph-plus-circle nav-icon""></i>835        <span class=""nav-text"">Add</span>836      </a>837      <a href=""#history"" class=""nav-item"" aria-label=""History"">838        <i class=""ph ph-chart-pie-slice nav-icon""></i>839        <span class=""nav-text"">History</span>840      </a>841    </nav>842 843    <!-- ================= CONFIRMATION MODAL ================= -->844    <dialog id=""confirm-modal"" class=""modal"">845      <h3 class=""modal-title"">Delete Expense?</h3>846      <p class=""text-sm text-muted"">This action cannot be undone. Are you sure you want to remove this record?</p>847      <div class=""modal-actions"">848        <button type=""button"" class=""btn btn-secondary"" id=""btn-cancel-delete"">Cancel</button>849        <button type=""button"" class=""btn btn-danger"" id=""btn-confirm-delete"">Delete</button>850      </div>851    </dialog>852 853  </div>854 855  <!-- ================= JAVASCRIPT ================= -->856  <script>857    // --- State Management ---858    const STORAGE_KEY = 'finfam_data';859    let expenses = JSON.parse(localStorage.getItem(STORAGE_KEY)) || [];860    let itemToDelete = null;861 862    // --- Micro Category Mapping ---863    const microOptions = {864      'Housing': ['Rent/Mortgage', 'Maintenance', 'Furniture', 'Property Tax'],865      'Food': ['Groceries', 'Dining Out', 'Coffee', 'Delivery'],866      'Transport': ['Gas', 'Public Transit', 'Car Maintenance', 'Rideshare'],867      'Utilities': ['Electricity', 'Water', 'Internet', 'Phone'],868      'Personal': ['Clothing', 'Entertainment', 'Health', 'Education']869    };870 871    const macroIcons = {872      'Housing': 'ph-house',873      'Food': 'ph-shopping-cart',874      'Transport': 'ph-car',875      'Utilities': 'ph-lightning',876      'Personal': 'ph-user'877    };878 879    // --- DOM Elements ---880    const form = document.getElementById('add-expense-form');881    const stepPayment = document.getElementById('step-payment');882    const stepDetails = document.getElementById('step-details');883    const microSelect = document.getElementById('micro-select');884    const dateInput = document.getElementById('expense-date');885    const historyMonthFilter = document.getElementById('history-month-filter');886    const modal = document.getElementById('confirm-modal');887 888    // --- Initialization ---889    function init() {890      // Set default dates891      const today = new Date();892      const currentMonthStr = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}`;893      dateInput.value = today.toISOString().split('T')[0];894      historyMonthFilter.value = currentMonthStr;895 896      // Event Listeners897      window.addEventListener('hashchange', handleRoute);898      historyMonthFilter.addEventListener('change', renderHistory);899      900      document.querySelectorAll('input[name=""macro""]').forEach(input => {901        input.addEventListener('change', handleMacroChange);902      });903      904      document.querySelectorAll('input[name=""payment""]').forEach(input => {905        input.addEventListener('change', () => stepDetails.classList.remove('form-section-hidden'));906      });907 908      form.addEventListener('submit', handleFormSubmit);909      910      document.getElementById('btn-cancel-delete').addEventListener('click', () => modal.close());911      document.getElementById('btn-confirm-delete').addEventListener('click', executeDelete);912 913      // Initial Route914      handleRoute();915    }916 917    // --- Routing ---918    function handleRoute() {919      const hash = window.location.hash || '#dashboard';920      921      // Update Screens922      document.querySelectorAll('.screen').forEach(el => el.classList.remove('screen-active'));923      const activeScreen = document.querySelector(hash.replace('#', '#view-'));924      if (activeScreen) activeScreen.classList.add('screen-active');925 926      // Update Nav927      document.querySelectorAll('.nav-item').forEach(el => el.classList.remove('nav-item-active'));928      const activeNav = document.querySelector(`.nav-item[href=""${hash}""]`);929      if (activeNav) activeNav.classList.add('nav-item-active');930 931      // Render specific view data932      if (hash === '#dashboard' || hash === '') renderDashboard();933      if (hash === '#history') renderHistory();934    }935 936    // --- Form Logic ---937    function handleMacroChange(e) {938      const selectedMacro = e.target.value;939      stepPayment.classList.remove('form-section-hidden');940      941      // Populate Micro Select942      microSelect.innerHTML = '<option value="""" disabled selected>Select specific category</option>';943      if (microOptions[selectedMacro]) {944        microOptions[selectedMacro].forEach(opt => {945          microSelect.innerHTML += `<option value=""${opt}"">${opt}</option>`;946        });947      }948    }949 950    function handleFormSubmit(e) {951      e.preventDefault();952      const formData = new FormData(form);953      954      const newExpense = {955        id: Date.now().toString(),956        date: formData.get('date'),957        macro: formData.get('macro'),958        payment: formData.get('payment'),959        micro: formData.get('micro'),960        amount: parseFloat(formData.get('amount')),961        currency: formData.get('currency')962      };963 964      expenses.push(newExpense);965      saveData();966      967      // Reset Form968      form.reset();969      stepPayment.classList.add('form-section-hidden');970      stepDetails.classList.add('form-section-hidden');971      972      // Navigate to Dashboard973      window.location.hash = '#dashboard';974    }975 976    // --- Rendering Logic ---977    function formatCurrency(amount, currency) {978      return new Intl.NumberFormat('en-US', { style: 'currency', currency: currency }).format(amount);979    }980 981    function getMonthLabel(dateString) {982      const [year, month] = dateString.split('-');983      const date = new Date(year, month - 1);984      return date.toLocaleString('default', { month: 'long', year: 'numeric' });985    }986 987    function renderDashboard() {988      const today = new Date();989      const currentMonthPrefix = `${today.getFullYear()}-${String(today.getMonth() + 1).padStart(2, '0')}`;990      991      document.getElementById('dash-month-label').textContent = getMonthLabel(currentMonthPrefix);992 993      // Filter current month994      const currentMonthExpenses = expenses.filter(exp => exp.date.startsWith(currentMonthPrefix));995      996      // Calculate Total (Assuming USD for simplicity in total, in a real app would need conversion)997      const total = currentMonthExpenses.reduce((sum, exp) => sum + exp.amount, 0);998      document.getElementById('dash-total').textContent = formatCurrency(total, 'USD');999 1000      // Render Recent (Last 5)1001      const recentList = document.getElementById('dash-recent-list');1002      recentList.innerHTML = '';1003      1004      const recentExpenses = [...expenses].sort((a, b) => new Date(b.date) - new Date(a.date)).slice(0, 5);1005 1006      if (recentExpenses.length === 0) {1007        recentList.innerHTML = `1008          <div class=""empty-state"">1009            <i class=""ph ph-receipt""></i>1010            <p class=""text-sm"">No expenses yet.</p>1011          </div>1012        `;1013        return;1014      }1015 1016      recentExpenses.forEach(exp => {1017        const iconClass = macroIcons[exp.macro] || 'ph-receipt';1018        const el = document.createElement('div');1019        el.className = 'list-item';1020        el.onclick = () => promptDelete(exp.id);1021        el.innerHTML = `1022          <div class=""item-icon""><i class=""ph ${iconClass}""></i></div>1023          <div class=""item-details"">1024            <div class=""item-title"">${exp.micro}</div>1025            <div class=""item-subtitle"">${exp.macro} • ${exp.payment}</div>1026          </div>1027          <div class=""item-amount text-danger"">-${formatCurrency(exp.amount, exp.currency)}</div>1028        `;1029        recentList.appendChild(el);1030      });1031    }1032 1033    function renderHistory() {1034      const filterMonth = historyMonthFilter.value;1035      const content = document.getElementById('history-content');1036      content.innerHTML = '';1037 1038      const filteredExpenses = expenses.filter(exp => exp.date.startsWith(filterMonth));1039 1040      if (filteredExpenses.length === 0) {1041        content.innerHTML = `1042          <div class=""empty-state"">1043            <i class=""ph ph-calendar-blank""></i>1044            <p class=""text-sm"">No expenses found for this month.</p>1045          </div>1046        `;1047        return;1048      }1049 1050      // Group by Macro1051      const grouped = filteredExpenses.reduce((acc, exp) => {1052        if (!acc[exp.macro]) acc[exp.macro] = { total: 0, items: [] };1053        acc[exp.macro].items.push(exp);1054        acc[exp.macro].total += exp.amount;1055        return acc;1056      }, {});1057 1058      // Render Groups1059      for (const [macro, data] of Object.entries(grouped)) {1060        // Sort items by date desc1061        data.items.sort((a, b) => new Date(b.date) - new Date(a.date));1062 1063        const groupHeader = document.createElement('div');1064        groupHeader.className = 'group-header';1065        groupHeader.innerHTML = `1066          <span>${macro}</span>1067          <span>${formatCurrency(data.total, 'USD')}</span>1068        `;1069        content.appendChild(groupHeader);1070 1071        const listGroup = document.createElement('div');1072        listGroup.className = 'list-group mb-4';1073 1074        data.items.forEach(exp => {1075          const el = document.createElement('div');1076          el.className = 'list-item';1077          el.onclick = () => promptDelete(exp.id);1078          el.innerHTML = `1079            <div class=""item-details"">1080              <div class=""item-title"">${exp.micro}</div>1081              <div class=""item-subtitle"">${exp.date} • ${exp.payment}</div>1082            </div>1083            <div class=""item-amount text-danger"">-${formatCurrency(exp.amount, exp.currency)}</div>1084          `;1085          listGroup.appendChild(el);1086        });1087 1088        content.appendChild(listGroup);1089      }1090    }1091 1092    // --- Deletion Logic ---1093    function promptDelete(id) {1094      itemToDelete = id;1095      modal.showModal();1096    }1097 1098    function executeDelete() {1099      if (itemToDelete) {1100        expenses = expenses.filter(exp => exp.id !== itemToDelete);1101        saveData();1102        itemToDelete = null;1103        modal.close();1104        1105        // Re-render current view1106        if (window.location.hash === '#history') renderHistory();1107        else renderDashboard();1108      }1109    }1110 1111    function saveData() {1112      localStorage.setItem(STORAGE_KEY, JSON.stringify(expenses));1113    }1114 1115    // Boot app1116    init();1117  </script>1118</body>1119</html>"1120desktop_app_mockup_02,Desktop App,Mockup,"Apply Melo's visual system:1121 1122Background: warm off-white (#f5f2ec). Primary color: deep forest green (#2d4a3e) for navigation, CTAs, and active states. Secondary: muted sage (#8fa898) for supporting elements and data visualizations.1123Mood indicators: replace emoji with minimal abstract shape icons (five small filled circles or organic blobs with varying opacity levels). Keep them label-supported but visually refined.1124Typography: serif for date headers and large display text. Clean sans-serif for body, labels, and UI elements. Section labels in small uppercase with generous tracking.1125Journal canvas: guided prompt chips anchored at top as a horizontal scrollable row. Writing area fills the remaining height. Slim mood selector pinned to the bottom edge.1126Insights cards: soft rounded corners, unfilled, subtle sage borders, generous internal padding on an 8pt spacing grid.",,"<!DOCTYPE html>1127<html lang=""en"">1128<head>1129  <meta charset=""UTF-8"">1130  <meta name=""viewport"" content=""width=device-width, initial-scale=1.0"">1131  <title>Melo - Mental Health Journal</title>1132  1133  <!-- Google Fonts: Lora (Serif) for headings, Nunito (Sans-serif) for body -->1134  <link rel=""preconnect"" href=""https://fonts.googleapis.com"">1135  <link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin>1136  <link href=""https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;1,400&family=Nunito:wght@400;600&display=swap"" rel=""stylesheet"">1137  1138  <!-- Feather Icons -->1139  <script src=""https://unpkg.com/feather-icons""></script>1140 1141  <style>1142    /* --- Design System & Variables --- */1143    :root {1144      /* Colors */1145      --color-bg: #F4F6F5;1146      --color-surface: #FFFFFF;1147      --color-primary: #6B8E7B;1148      --color-primary-hover: #5A7A68;1149      --color-accent: #D4A373;1150      --color-text-main: #2C363F;1151      --color-text-muted: #828C94;1152      --color-border: #E2E8E4;1153      1154      /* Mood Colors */1155      --color-mood-great: #81B29A;1156      --color-mood-good: #F2CC8F;1157      --color-mood-okay: #E07A5F;1158      --color-mood-bad: #3D405B;1159      --color-mood-none: #E2E8E4;1160 1161      /* Typography */1162      --font-heading: 'Lora', serif;1163      --font-body: 'Nunito', sans-serif;1164      1165      /* Spacing & Layout */1166      --spacing-1: 8px;1167      --spacing-2: 16px;1168      --spacing-3: 24px;1169      --spacing-4: 32px;1170      --spacing-5: 48px;1171      --spacing-6: 64px;1172      --radius-sm: 8px;1173      --radius-md: 16px;1174      --radius-lg: 24px;1175      --shadow-sm: 0 2px 8px rgba(44, 54, 63, 0.04);1176      --shadow-md: 0 8px 24px rgba(44, 54, 63, 0.08);1177      --transition-fast: 0.2s ease;1178    }1179 1180    /* --- Base Reset --- */1181    *, *::before, *::after {1182      box-sizing: border-box;1183      margin: 0;1184      padding: 0;1185    }1186 1187    html, body {1188      height: 100%;1189      background-color: var(--color-bg);1190      color: var(--color-text-main);1191      font-family: var(--font-body);1192      line-height: 1.6;1193      -webkit-font-smoothing: antialiased;1194    }1195 1196    a {1197      text-decoration: none;1198      color: inherit;1199    }1200 

Showing the first 1,200 of 34612 lines. Download the file for the rest.