[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"prompt-457-Mixed-Media":3},"# BUILD PROMPT — \"MIXED MEDIA\" COLLAGE LANDING PAGE\n\n**Role:** You are a Senior Frontend Engineer and Expert UI Designer. Your task is to code a complete, production-ready Landing Page on the first attempt. The visual theme is **\"Mixed Media\"** — a collage, multi-medium, layered, eclectic aesthetic inspired by 20th-century collage art translated to the modern web. Every rule in this document is mandatory. Where a stylistic impulse conflicts with a rule, the rule wins.\n\n---\n\n## 1. THEME DIRECTION — \"MIXED MEDIA\"\n\n**1.1 Aesthetic Definition**\nThe page must feel like a physical collage artwork: overlapping paper scraps, torn edges, washi tape, push pins, painted swatches, and photographic fragments arranged in asymmetric but balanced compositions. Eclectic and textured, never chaotic or unreadable. Layering, juxtaposition, and slight rotation are the core visual language.\n\n**1.2 Color System & Token Mapping**\nStore the full palette as CSS variables. Never hardcode hex values in component rules.\n\nLight mode (default) — `:root`:\n\n```css\n:root {\n  \u002F* Core tokens *\u002F\n  --primary: #B5854B;          \u002F* Kraft Brown — decorative layers, tape accents, borders, LARGE display type only *\u002F\n  --secondary: #2C3E6B;        \u002F* Ink Blue — primary button bg, links, secondary text *\u002F\n  --bg-primary: #F5F0E8;       \u002F* Off-White paper base (NEVER #ffffff) *\u002F\n  --bg-secondary: #FAFAF5;     \u002F* Torn Paper White — card\u002Fscrap surfaces *\u002F\n  --text-primary: #2C2C2C;     \u002F* Charcoal *\u002F\n  --text-secondary: #2C3E6B;   \u002F* Ink Blue — accessible on light surfaces *\u002F\n  --text-success: #2E7D32;     \u002F* darkened Marker Green, reserved for text *\u002F\n  --text-error: #B03A3A;       \u002F* darkened Accent Red, reserved for text *\u002F\n  --border-default: #B5854B;\n  --border-error: #D94F4F;\n  --border-success: #4CAF50;\n\n  \u002F* Theme-specific decorative tokens *\u002F\n  --accent-red: #D94F4F;\n  --tape-yellow: #E8D5A0;\n  --ink-blue: #2C3E6B;\n  --torn-white: #FAFAF5;\n  --marker-green: #4CAF50;\n\n  \u002F* Typography *\u002F\n  --font-base: 'Inter', sans-serif;\n  --font-serif: 'Libre Baskerville', serif;\n  --font-hand: 'Caveat', cursive;\n\n  \u002F* Shape \u002F depth \u002F motion *\u002F\n  --radius-sm: 2px;  --radius-md: 4px;  --radius-lg: 8px;   \u002F* paper-like, minimal radii *\u002F\n  --shadow-sm: 2px 2px 5px rgba(0, 0, 0, 0.1);\n  --shadow-md: 4px 6px 14px rgba(0, 0, 0, 0.16);\n  --spacing-gap: 1.5rem;\n  --transition-fast: 150ms; --transition-normal: 300ms;\n  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);\n\n  \u002F* Collage tilts (centralized so they can be neutralized for reduced motion) *\u002F\n  --tilt-a: -2deg; --tilt-b: 1.5deg; --tilt-c: -0.75deg;\n\n  \u002F* Elevation — decorative collage layers must stay in the 1–10 range *\u002F\n  --z-dropdown: 1000; --z-modal: 2000; --z-toast: 3000;\n}\n```\n\nDark mode tokens (applied via both `@media (prefers-color-scheme: dark)` and a `.dark` class on `\u003Chtml>`):\n\n```css\n--primary: #D4A86A;        \u002F* lightened Kraft Brown *\u002F\n--secondary: #8FA3D9;      \u002F* lightened Ink Blue *\u002F\n--bg-primary: #211E1A;     \u002F* warm charcoal \"black paper\" *\u002F\n--bg-secondary: #2C2823;   \u002F* elevated dark scrap surface *\u002F\n--text-primary: #F5F0E8;\n--text-secondary: #D9B98A;\n--text-success: #81C98C;\n--text-error: #F08A8A;\n--border-default: #8A6F45;\n--border-error: #E4686D;\n--border-success: #66BB6A;\n--accent-red: #E4686D;\n--marker-green: #66BB6A;\n\u002F* --tape-yellow #E8D5A0 remains unchanged — it reads well on dark surfaces *\u002F\n```\n\n**Contrast pairing rules (mandatory, both themes):**\n* Light backgrounds always pair with dark text; dark backgrounds always pair with light text. Verify every pairing.\n* Kraft Brown `#B5854B` fails contrast for small text and small button labels — restrict it to decorative surfaces, tape, borders, and display type ≥ 24px. Body text and button labels use Charcoal \u002F Ink Blue \u002F Off-White pairings only.\n* Primary action buttons: Ink Blue (`--secondary`) background with Off-White (`--bg-primary`) text in light mode; lightened Kraft `#D4A86A` background with `#211E1A` text in dark mode.\n* Never use `#ffffff`. Near-white surfaces use `--torn-white: #FAFAF5` (or `#fefefe` only if a whiter surface is genuinely required).\n\n**1.3 Signature Visual Effects (CSS-only)**\n* **Torn paper edges:** `clip-path: polygon()` with irregular 8–14 point polygons on card and section edges. Create at least 3 distinct polygon variants so scraps don't look identical. Example: `clip-path: polygon(0 3%, 4% 0, 15% 2%, 30% 0, 52% 3%, 71% 0, 88% 2%, 100% 0, 99% 25%, 100% 55%, 98% 80%, 100% 100%, 82% 98%, 60% 100%, 38% 97%, 18% 100%, 0 96%, 2% 70%, 0 40%)`.\n* **Washi tape strips:** a reusable `.tape` class built from pseudo-elements (`::before`\u002F`::after`) — semi-transparent Tape Yellow (`rgba(232, 213, 160, 0.85)`), torn ends via `clip-path`, slight rotation, subtle fiber texture via `repeating-linear-gradient`, faint `--shadow-sm`.\n* **Push pins:** a reusable `.pin` class — small circle with `radial-gradient` highlight and drop shadow.\n* **Mixed textures (no image files):** paper grain, canvas weave, and photo-tint surfaces generated purely with layered CSS gradients (`repeating-linear-gradient`, `repeating-radial-gradient` at low opacity over the token background colors). Do not reference local or external image assets.\n* **Layering & rotation:** overlapping elements stacked with low z-index values (1–10 for decoration); slight rotations via the `--tilt-*` tokens (`-2deg` to `3deg`).\n* **Depth:** `box-shadow: var(--shadow-sm)` on paper layers; collage pieces use `border: none` — depth comes from shadow, tape, and pins, not outlines.\n\n**1.4 Typography System**\nMix three Google Fonts with strict roles: `Libre Baskerville` (serif) for headlines and editorial moments; `Caveat` (handwritten) for annotations, eyebrow labels, taped notes, and signatures; `Inter` (sans) for all body copy, UI labels, buttons, and forms. Bind them to `--font-serif`, `--font-hand`, `--font-base` and never reference font families inline.\n\n**1.5 Icon & Decoration Policy**\nAll icons must be Google Material Symbols (Outlined variant). Raw inline SVGs and local icon files are forbidden. **Exception clause:** the source style requests \"tape\u002Fpin decorative SVG elements\" — implement these as pure-CSS decorations (pseudo-elements, `clip-path`, gradients, `box-shadow`) as specified in 1.3; inline SVG markup remains prohibited.\n\n---\n\n## 2. STRICT RULES & ARCHITECTURE\n\n**2.1 CSS-First Architecture & Zero Inline CSS**\n* All styling lives in `style.css`. The `style=\"...\"` attribute is forbidden anywhere in the HTML.\n* All design properties, layout rules, and states are targeted via class or ID selectors.\n* HTML stays clean, semantic, and style-agnostic — changing the site's look must require editing only the CSS file.\n\n**2.2 CSS Variables & Theme Tokens**\nEvery color, font, radius, shadow, spacing, transition, easing, tilt, and z-index value must be consumed via `var(--...)` tokens defined in `:root` and the dark theme blocks (see 1.2). No magic numbers in component rules.\n\n**2.3 Mandatory Dark Mode Support**\n* Define dark tokens under both `@media (prefers-color-scheme: dark)` (guarded so an explicit `.light` class overrides it) and a `.dark` class selector on `\u003Chtml>`.\n* Background and text variables must switch seamlessly with no HTML restructuring. Add a short `background-color`\u002F`color` transition (`var(--transition-fast)`) on major surfaces so the switch feels smooth.\n* Persist the user's choice in `localStorage`; on first visit fall back to `prefers-color-scheme`.\n* Include a visible theme toggle in the header using a Google Material Symbol (`dark_mode` \u002F `light_mode`) with correct `aria-pressed` and `aria-label` (\"Switch to dark mode\" \u002F \"Switch to light mode\"), updating icon and state on click.\n* Dark mode must preserve the full collage aesthetic — tape, pins, and textures remain visible and legible against the charcoal paper base.\n\n**2.4 Flexbox Layout & Mobile-First Alignment**\n* Build all layout structures with Flexbox. Every flex container defaults to `align-items: center` unless an exception is explicitly justified in a CSS comment (permitted exception: multi-line text stacks inside cards may use `align-items: flex-start`).\n* All layouts are mobile-first and responsive: collage rows collapse to single columns below ~768px, decorative offsets and rotations reduce to ≤ 1deg or none on small viewports.\n* No horizontal scrolling, ever. Set `overflow-x: clip` on `body` and wrap every collage composition in a `position: relative` container that contains its absolutely-positioned decorations.\n\n**2.5 Framework Default**\nUse Tailwind CSS, or clean custom CSS organized with Tailwind's `@layer`\u002F`@apply` conventions. All utilities must map back to the CSS variables or generic reusable classes (`.btn`, `.card`, `.tape`, `.pin`, `.input-group`).\n\n**2.6 Google Fonts & Icons (Mandatory)**\nLoad `Libre Baskerville`, `Caveat`, and `Inter` plus Google Material Symbols via `\u003Clink>` tags in `\u003Chead>`. No other font or icon sources.\n\n---\n\n## 3. COMPONENT DESIGN SPECIFICATIONS\n\n**3.1 Button Component**\nStyle all states via CSS classes (`.btn`, `.btn--primary`, `.btn--secondary`, `.btn--danger`, `.is-loading`, `.is-disabled`):\n* **Default:** `display: flex; align-items: center; justify-content: center; gap: 0.5rem;` minimum touch target 44×44px. May carry a subtle tilt or taped-label treatment, but never at the cost of the touch target or contrast.\n* **Hover:** brightness\u002Fshadow shift with `cursor: pointer`.\n* **Focus:** distinct focus ring built from CSS variables (`outline` + `box-shadow`) that renders above all collage layers — keyboard navigation must never be visually buried.\n* **Active\u002FPressed:** `transform: scale(0.97)` feedback.\n* **Loading:** disables interaction, prevents double-clicks, shows a CSS spinner or rotating Material Symbol without changing button dimensions (hide label via `visibility`, overlay spinner absolutely).\n* **Disabled:** `opacity: 0.5`, greyscale, `cursor: not-allowed`.\n* **Success\u002FError:** temporary feedback styles driven by `--text-success` \u002F `--text-error`, communicated with an icon + text (never color alone).\n* `.btn--danger` (Accent Red based) must be visually distinct in both light and dark themes.\n\n**3.2 Card Component**\nFeature cards, pricing tiers, and testimonial notes are all \"torn paper scrap\" cards:\n* **Default:** flexible Flexbox layout, `--bg-secondary` surface, torn-edge `clip-path`, `--shadow-sm`, tape or pin decoration, slight tilt. `border: none` (depth via shadow\u002Fdecoration).\n* **Hover:** `transform: translateY(-2px)` plus shadow deepening; the tilt may straighten slightly toward 0deg for a \"picked up\" feel.\n* **Focus-within:** card border\u002Foutline highlights when a child link or button receives focus.\n* **Loading (Skeleton):** shimmer animation defined in CSS (respecting reduced motion) that preserves exact card dimensions — no layout jumps.\n* **Empty State:** structured fallback with a Google Material Symbol and clear guidance text.\n\n**3.3 Form & Input Component**\nUsed for the Final CTA newsletter signup:\n* **States:** Empty, Focused (visible outline ring), Filled, Valid (success border + check icon), Invalid (error border, `--text-error` message, error icon), Disabled, Read-only.\n* **Structure:** Flex container wrapping a `\u003Clabel>`, the input, and a dedicated error feedback container with `aria-live=\"polite\"`.\n* **Collage treatment:** inputs may look like lined notebook paper (CSS repeating gradient rules) or taped form fields — but focus rings and error states must remain unmistakable.\n* Use `novalidate` and validate in JS; the submit button implements the full 3.1 state suite including loading → success feedback.\n\n**3.4 Accordion (FAQ) & Modal**\n* **FAQ accordion:** each item is a `\u003Cbutton class=\"faq__question\" aria-expanded=\"false\" aria-controls=\"...\">` paired with a region div. Expand\u002Fcollapse animated via CSS (`grid-template-rows: 0fr → 1fr` or `max-height`), Material `expand_more` icon rotating on open, fully keyboard operable, paper-note styling with tape detail.\n* **Modal (if any popup is used, e.g., plan details):** Opening, Open, Loading, Success\u002FError, and Closing states all animated via CSS transitions; centered flex container (`align-items: center`), backdrop overlay, Google Icon close button, keyboard focus trapping, closable via `Esc` and overlay clicks, layered at `--z-modal`.\n\n---\n\n## 4. PAGE STRUCTURE — REQUIRED SECTIONS\n\n**4.0 Product Concept & Copy**\nInvent one coherent product concept consistent with the aesthetic — a digital mixed-media collage studio (an online tool for combining photos, paint textures, paper scraps, and typography). Choose a fitting product name and use it consistently in the nav, hero, and footer. Write all user-facing copy in English — real, specific, thematic copy. Lorem ipsum is prohibited.\n\n**4.1 Header \u002F Navigation**\nSticky slim bar on semi-transparent paper texture: serif wordmark with a Caveat accent, anchor links to all sections, the theme toggle (per 2.3), and a Material `menu` button on mobile opening a dropdown panel at `--z-dropdown`. Add a visually-hidden skip-link to `\u003Cmain>`.\n\n**4.2 Hero**\nFull-viewport asymmetric collage: oversized serif headline on a torn paper scrap (slight tilt), a taped \"photograph\" fragment (CSS-generated photo-tint texture) overlapping the headline, a Caveat handwritten annotation with an arrow pointing at the primary CTA, and scattered tape\u002Fpin decorations. Two CTAs: primary (\"Start Collaging\") and secondary outline (\"See How It Works\"). All decorations `aria-hidden=\"true\"` and `pointer-events: none`.\n\n**4.3 Features — 3 Cards**\nThree torn-paper scrap cards, each with a Material Symbol icon on a small taped or pinned chip, a serif title, and Inter body copy. Desktop: staggered vertical offsets and alternating tilts (`--tilt-a\u002Fb\u002Fc`) creating collage rhythm; mobile: clean single column. Full 3.2 card state suite.\n\n**4.4 How It Works — 3 Steps**\nThree steps connected by a dashed \"marker\" line (`border-top: 2px dashed var(--primary)`), horizontal on desktop, vertical on mobile. Step numbers (\"01\", \"02\", \"03\") in Caveat on taped chips; each step is a mini collage card with icon, title, and description.\n\n**4.5 Testimonials**\nThree quotes styled as taped notes \u002F polaroid cards: a CSS-textured \"photo\" area, quote in serif or Inter, customer name signed in Caveat, star rating using filled Material `star` icons in Marker Green\u002FTape Yellow **plus** a visually-hidden \"Rated 5 out of 5\" text (never color-only). Alternating tilts ±2deg.\n\n**4.6 Pricing — 3 Tiers**\nThree scrap cards (e.g., starter, featured, pro). The middle tier is elevated: larger scale or offset, higher stacking (still below `--z-dropdown`), and a taped \"Most Popular\" label in Caveat. Feature lists use Material `check` icons in Marker Green; prices in serif; each tier has a CTA button implementing the full 3.1 state suite.\n\n**4.7 FAQ**\nAccessible accordion (per 3.4) with 5–6 real Q&As about the product, paper-note styling, smooth animated expansion.\n\n**4.8 Final CTA**\nBold full-width collage banner (Ink Blue painted-swatch background with torn edges), serif headline with a Caveat accent, and the newsletter email form implementing the full 3.3 spec — validation, loading, success\u002Ferror feedback announced via `aria-live`.\n\n**4.9 Footer**\nCharcoal (light mode) \u002F deepened paper (dark mode) surface with a torn top edge via `clip-path`: brand wordmark, four secondary link groups (Product, Company, Resources, Legal), social icons (Material Symbols), and copyright. All links have visible hover and focus states.\n\nUse a consistent section-heading pattern throughout: a small Caveat eyebrow label on a taped chip + a serif `\u003Ch2>` on a torn scrap. Each `\u003Csection>` is labeled via `aria-labelledby` pointing at its heading id, with `scroll-margin-top` set for the sticky header.\n\n---\n\n## 5. CORE UX & MICRO-INTERACTION RULES\n\n* **Responsive by default:** fluid sizing, no horizontal overflow, collage compositions contained (see 2.4).\n* **Smooth animations:** CSS transitions on all state changes using the motion tokens; under `@media (prefers-reduced-motion: reduce)` disable transitions, shimmer, and all tilts\u002Ftransforms (set to `none`) while keeping color-state changes.\n* **Accessibility:** sufficient contrast in both themes (per 1.2 pairing rules); never rely on color alone for state; semantic HTML5 landmarks; correct ARIA roles\u002Flabels on the accordion, toggle, and form widgets; logical DOM\u002Ffocus order; full keyboard operability; `aria-live` regions for form errors, loading, and success feedback; text containers never rotated more than ±1deg (larger tilts are for decorative scraps only); focus rings always render above collage layers.\n* **Mandatory visual feedback:** every click, hover, and submission triggers a visible state change.\n* **Destructive actions:** `.btn--danger` visually distinct in both themes.\n\n---\n\n## 6. DELIVERABLE & OUTPUT FORMAT\n\n* **Files:** separate `index.html`, `style.css`, and `script.js`. No inline `\u003Cscript>` blocks and no inline event handlers — a single `\u003Cscript src=\"script.js\" defer>\u003C\u002Fscript>` entry point; all behavior attached via `addEventListener`.\n* **Naming:** one consistent BEM convention across the entire deliverable (`.card`, `.card__title`, `.card--featured`, `.tape`, `.pin`, `.faq__question`). Never mix conventions.\n* **Copy:** real thematic English copy per 4.0 — no lorem ipsum.\n* **Completeness:** deliver the full, working code for every section and state on the first attempt. The result must run correctly when the three files are opened directly in a browser.\n",1791954987488]