Misty Monsoon at Angkor Wat — A cinematic rainy-day capture of Angkor Wat, where lush greenery, mist, umbrellas, and ancient Khmer architecture create a calm and atmospheric travel moment.
Gothic Culture — Dark, Bold & Unapologetic.
A visual exploration of gothic fashion, identity, and self-expression through halftone textures, monochrome imagery, and editorial typography. I wanted to capture the mysterious yet artistic side of the culture while giving the composition a raw, contemporary edge.
Designed to turn a mood into a visual story. 🕸️
Available for editorial designs, moodboards, posters, social media visuals & brand campaigns
I designed and developed this interactive cyberpunk street food experience for Gǒng Sì Night Market.
Capturing the grit and rain-slicked atmosphere of a near-future Kowloon market meant balancing speculative world-building with tactile interaction design. Combining animated neon typography and canvas puddle reflections with an interactive stall menu, a retro terminal ordering flow, and a simulated thermal receipt printer gave the entire digital commissary an authentic, lived-in weight.😊 🔥
Half Light: book a photographer by the sunset, not by DM
Solo photographers lose hours to the same nine messages. Price? Is Saturday free? What should we wear? Can the corgi come? Bank details? Half Light is a concept booking site and studio desk for Mira Lin, a portrait, family and couples photographer in Da'an, Taipei. It turns that thread into about sixty seconds.
What it does
Every date shows Taipei's real sunset, the golden-hour window around it, and the rain risk. You pick the light first, then the time.
Four steps: pick your light, hold the slot for 10 minutes, pay a 30% deposit, done. The whole DM thread becomes one short form.
Fixed, public prices: Portrait NT$6,800, Family NT$9,800, Couples golden hour NT$8,800, Weekday morning mini NT$2,800.
When the forecast passes 60% rain, outdoor sessions get flagged and each client is offered three dry golden-hour slots automatically.
A 13-photo gallery with filters, where each photo expands out of its own grid cell.
The studio side
Click Studio in the top bar (or "Studio dashboard" in the footer) to open Mira's desk. Username: admin · Password: admin
Today: the day's sessions, tonight's sunset, the next golden hour, and running totals such as DM threads avoided and deposits collected.
Bookings: every held, confirmed and rescheduled session in one list, with its deposit status.
Calendar: seven days laid over the golden-hour band, so open and held slots sit where the light is.
Automations: press "Simulate rain on Saturday" and watch the forecast flip. The outdoor sessions get flagged, each client is offered three dry golden-hour slots, and it all lands in the live feed without Mira touching her phone.
Settings: three switches (reminders, rain auto-reschedule, waitlist auto-fill) and three thresholds (rain at 60%, deposit at 30%, a 10-minute hold).
The design thinking
I started from the DM thread, not from a page layout. Every section answers one of those nine messages before anyone has to send it. The price is on the session card, every date comes with its sunset, and the dog question is a toggle in the booking form.
Light is the product, so the calendar is built around golden hour instead of office hours. Rain is part of the booking from the start, so a bad forecast becomes three new options instead of an apology.
One warm palette, one serif voice and a single orange accent keep the photos the loudest thing on the page. Motion is only used to confirm that something happened: a slot being held, a photo opening from the spot you tapped, and a camera viewfinder you hold to book. Then I tested every flow and fixed what broke.
Explaining the work will be post below this post
Try it
https://perfect-snapshot-gen.lovable.app Pick a sunset, open the gallery, hold the "Can I book?" button at the bottom, then open Studio and make it rain.
All 200 credits are burned out 😆.