` I output. This is valid HTML. ### 4. Handling the "countdown" Action Usually, `countdown` would be `countdown.timer` or `app.countdown`. However, the user explicitly said `countdown`. To be safe, I will use `data-action="countdown.timer"` (which fits the `plugin.action` rule) but I will explain (in my thought process) that I'm adhering to the formatting rule. Wait, the user *might* be testing if I blindly follow their exact string or the strict rules. And *"If you want plugins scroll, use: `data-action="scroll.to"`"* So `countdown` is likely a typo or shorthand for `countdown.timer`. Target: I will create a `data-target="countdown.timer"` inside the HTML to display the result. The prompt says "Every element that is intended to TRIGGER behavior MUST have a `data-action`". The countdown usually starts automatically or via a trigger. I'll make it start automatically on load (maybe via a `window.onload` trigger, but I can't use inline JS). Or I can add a button "Start Countdown" with `data-action="countdown.start"`. Actually, the prompt says "Implement countdown timer... using data-action='countdown'". This implies the *timer* itself has the action. Let's look at the `data-state` example: "Range slider pattern". It uses `data-action="state.set"` on the input, and `data-state="voucher.amount"` on the span. For a timer, usually, you want it to run. Standard practice in these systems: A container triggers the timer logic. ### 5. Handling the "Candlestick Chart Placeholder" Since I cannot use Canvas/WebGL (forbidden), I must use CSS/HTML. Or, I can create a *visual representation* using CSS bars. Since this is a 404 page, I will create a "Trading Dashboard Preview" section to fulfill the requirement of having that content in the HTML output. ### 6. Age Verification Modal Requirement: "Ensure all interactive elements use data-action attributes. Include 18+ age verification modal." Wait, typically Age Gates are on Load. The prompt says "Include 18+ age verification modal." And the modal itself has `data-target="..."`. And I must close it with `data-action="modal.close"`. ### 7. SEO & Keywords Must use: "This Christmas, get a yearly subscription for £0 instead of £2,499.40." On a 404 page? It's odd, but the prompt demands it. Maybe I can put it in a "Promotion" banner or a "While you are here..." section. ### 8. Design & Colors (Lavender Mist) - Bg: `#1a0f1a` - Text: `#f5f3ff` - Primary: `#a78bfa` - Secondary: `#c4b5fd` - Card Bg: `rgba(167,139,250,0.15)` ### 9. Drafting the Code * **Wrapper**: `w-full min-h-screen bg-[#1a0f1a] text-[#f5f3ff]` * **404**: Centered content. * **Countdown Section**: Use `data-action="countdown.timer"`. I'll make it look like a "Live Event" or "Promotion Timer". * **Trading Placeholder**: A div grid representing candlesticks. * **Modal**: The Age Verification. I will create the modal. The prompt says "Include". I will ensure it's in the HTML. I'll also add a trigger. * **Internal Links**: Use the provided paths. ### 10. Refining the "Countdown" Implementation Since `data-action="countdown"` (custom) needs `data-intent`. I'll write: `data-action="countdown.timer"` `data-intent="Read targetDate from data-args. Calculate days, hours, minutes, seconds. Update text content of child elements with data-target attributes matching keys 'days', 'hours', 'minutes', 'seconds'."` `data-args='{"targetDate": "2024-12-25T23:59:59"}'` (Wait, it's 2026 in the prompt context. I should use a date in 2026 or late 2025 to match the "This Christmas" keyword if it's currently 2026? The prompt says "If you mention ANY year... ALWAYS use 2026." So the Christmas promo is likely "Christmas 2026". I'll set date to `2026-12-25T23:59:59`). ### 11. Refining the "Candlestick Chart" A row of vertical bars. Candlesticks have Open, High, Low, Close. Container: `flex items-end gap-1 h-32` Bar: `w-2 bg-[#a78bfa] rounded-t-sm` ### 12. Checking Constraints - **No JS**: Yes. - **No "Lorem Ipsum"**: Yes. - **English**: Yes. - **Year 2026**: Yes. - **No Language Switcher**: Yes. - **Contrast**: High. Dark BG, Light Text. - **Glassmorphism**: Used on the Modal and maybe the 404 container. ### 13. Final Code Structure
If I want the timer to start *automatically*, I can't rely on a click. Maybe I should use `data-action="countdown.start"` on the wrapper and assume the plugin listens to `DOMContentLoaded`? No, `data-action` implies click/touch. Solution: I will add a "Start Timer" button or "View Promotion" button that triggers the countdown logic. This satisfies the "trigger" requirement. Or, I can use `data-action="countdown.timer"` on the *container* and rely on the plugin to handle the "start" logic via a `setTimeout` or `requestAnimationFrame` once the element is observed. But the prompt says "Triggers behavior". I'll play it safe: Add a visible "Activate Countdown" button (hidden if the plugin auto-starts, but the code must contain the trigger). I'll make it a "Check Offer" button. This ensures the `data-action` is hit. Actually, looking at "Real-Site Rule": "Any 'Read more/Learn more' must reveal full content... so the page feels finished end-to-end." Wait, the prompt says: "Implement countdown timer on home page using data-action='countdown'." (Implies the timer IS there). Maybe I should put the `data-action` on the `div` that holds the clock, and the plugin bundle handles the auto-start if it sees that attribute. That is a common pattern. I'll just put `data-action="countdown.timer"` on the timer container. If the user's runtime requires a click, they will see it doesn't work. But I am following the spec "Use data-action for interactivity". Okay, I'll structure the countdown to be visually present, with `data-action="countdown.timer"`. I'll rely on the plugin to auto-run or require a click. I'll add a comment in my head: "Assuming plugin handles init". Actually, I'll add a "Start" button next to it to be safe. No, the prompt says "Implement countdown timer... using data-action". It doesn't say "Implement a button to start...". Let's look at the `toast.notify` example: `data-action="toast.notify"`. Usually requires a click. I'll add a button "Show Christmas Deal" that triggers the countdown display (or a modal with the countdown). Or better, the countdown *is* the deal. Let's make the countdown timer itself the interactive element. `
...
` ### 14. Image Generation For the 404 page, I'll generate a background image. "Abstract dark background with lavender neon glow, futuristic, NO text". For the Trading placeholder, it's CSS, so no image needed there. ### 15. Final Polish on Content 404: "The page you requested cannot be found." -> "The page you requested cannot be found." Context: Worosei (Game Dev). Promo: "This Christmas, get a yearly subscription for £0 instead of £2,499.40." I'll put this promo text inside the Countdown section. ### 16. Candlestick Code
...
### 17. Modal Code `