Drawn fresh against FLOW.md and PRD.md v3.0. The 58 frames in
screens-1..7-*.html keep their value as a design language — the palette, the type ramp, the
components, the drawn scenes — and are wrong about structure, so they stay untouched as reference.
This file is the chrome every other v2 file will inherit, which is why it is drawn first.
Flag blue #0047A0 is structure. Flag red #CD2E3A means a deadline and nothing
else — if it is red, a date is attached to it. unknown is neutral with a dashed edge, never red.
Manrope for text, DM Mono for every number, reference, price and date. English leads, Korean annotates —
except on the handover surfaces, where Korean leads at display size.
Anything dotted and grey is an annotation, not product. Nobody ever built it.
Dark mode
Light mode
v2 · screen 1
The bar.
Three destinations and two gestures. Trip · Korea · You, with
⊕ between them — tap it to capture, hold it for emergency.
Search is not here: it is a field pinned to the top of the Trip and Korea roots, because a tab
would spend a fifth of this bar on something that is better as a field.
At size375 × 72
Trip
Korea
You
Enlarged1.48×
Trip
Korea
You
1The active tab carries three signals, not one: the label
goes --blueText, the icon's stroke thickens 1.7 → 2.2, and a 26 × 2 blue cap sits on the top edge.
Colour is never the only signal.
2The ⊕ is 46px, filled --blue, and raised 13px above the bar
line. It is the only filled blue circle anywhere in the product — that is what makes it findable
without a label. FLOW §2.3, feature 46.
3The ⊕ sits between Korea and You, not dead centre, and the
asymmetry is the argument: Trip and Korea are the two content destinations, You is the person layer,
and the capture gesture is the divider between them.
426px of bottom padding is the home indicator, not decoration.
The bar never sits on the screen edge, and nothing in this product draws under the status bar at the
other end either.
5No badges, no counts, no dots. The checklist is the only
thing in dani.ko entitled to notify (feature 21), and it does that outside the bar.
Every state7
a · Trip — a trip exists
Trip
Korea
You
b · Korea
Trip
Korea
You
c · You
Trip
Korea
You
d · No trip — tab 1 reads Saved, and Korea is where the app opened
Saved
Korea
You
This is the only shape change in the whole app. The word changes; the icon,
the position, the count and the order do not. It changes for a reason the user can say out loud —
I have a trip now.
e · ⊕ pressed — the capture sheet is opening
Trip
Korea
You
f · ⊕ held — 0.5s, and the ring is the only animation the ⊕ has
Trip
Korea
You
The ring lives on the ⊕, not on the screen it opens. The emergency screen itself
has no animation at all — the ring is spent here so that surface can stay dead still. It is the only
thing in dani.ko bound to a hold.
g · No bar at all
Emergency and Show render with no bar. Emergency because a tab bar is
an app-shell dependency by definition and that surface has none; Show because it is one fact at
handover size and a stranger is reading it.
The three icons
Trip / Saved
A binder. It reads the same
whether it holds a trip or a library, which is why only the word swaps.
Korea
The 태극 divide, monochrome
and at 23px. Unmistakable, and it never appears in colour in the bar.
You
A person. The layer that
survives every trip — you, your party, Carry, the library.
Not SF Symbols. The v1 files use private-use SF glyphs in
the tab bar and the status bar, and they render as empty boxes anywhere SF Pro is not installed —
including in the screenshot that is supposed to review them. Every glyph in v2 is drawn.
Homes 3 destinations + 2 of the 6 surfaces. Search and Show are reached from
content; Now is band 2 of the day page; Change is a hold on the object being changed.
14:22
Spring in Seoul
DAY 3 OF 11 · LIVE
Search everything you saved
Where you areBAND 1
Seoul
서울
14:22
TUE 6 APR 2027 · KST · DAY 3 OF 11
Every time you saved is shown in Korean time, including the ones you saved before you flew.
Right nowBAND 2 · THIS IS `NOW`
You are staying at
Josun Palace Seoul
조선 팰리스 서울
CONFIRMATION
88213904
Copy
CHECK-OUT 11 APR · 11:00
Nothing else for 28 minutes. That is the honest answer, and it is the
one this band gives most often.
What is different about todayBAND 3
Hyoje Bunsik (효제분식) lists today
as a rest day
You have it saved for 19:00 today.
SOURCE: THE VENUE'S OWN PAGE · CHECKED 6 APR 09:04
MOVE ITLEAVE IT
Public holidays
We hold no holiday calendar for 2027 on this phone, so we are not going to tell you whether today
is one. When we have a source with a date on it, this becomes a row.
Transport · weather · strikes
No disruption source we are willing to stand behind. Nothing is being hidden from you here —
there is nothing.
Highest-value band on the page and the only one that can
tell you something you could not have known when you saved everything. Two of its three rows are honest
gaps, and that is the normal state, not a failure.
The day's thingsBAND 4
09:40
Gyeongbokgung Palace
경복궁
ALLOW 90 MIN
13:00
Gwangjang Market
광장시장
CASH ONLYYOU ARE HERE
19:00
Hyoje Bunsik
효제분식
CONF HJ-4471
REST DAY TODAY
No time on them
—
Onjium (온지음) — saved, never booked
—
A gift for Mum, from the market
Most of a day has no time on it. These are not second class and they are never given an invented hour.
The chips above are facts you added yourself — we do not source venue rules.
Money todayBAND 5
₩0
tracked today
CASH LEFT ₩41,000 · YOU COUNTED IT 5 APR 08:10
Transport card
₩8,200 is what you last told us, on 5 April.
It is not what the card says. We cannot read the card, and we are not going to pretend we can.
WeatherBAND 6
No forecast
We have no forecast source for Korea we are willing to stand behind, so we are not going to invent
one. Your phone already has one.
OPEN THE WEATHER APP
Show this to a driverBAND 7 · SHOW
조선 팰리스 서울
서울 강남구 테헤란로 87길 46
Josun Palace Seoul · Gangnam-gu, Seoul Tonight's stay, 6–11 April
Copy the KoreanFull screen
The one inversion. Korean leads at display size and English
annotates — the correction PRD §4.7 makes to the v1 mocks, where the road address led and the property
name was small English. A driver navigates by the building's name. The road address is Korean and is
never romanised.
The rest of this trip
All 11 daysChecklistMapDocumentsCollectionsThe partyPlan · exportOfflineTrip settings
Trip
Korea
You
2 · Trip root — in country
Zero taps. Phase is Live, so the Trip root is today's day page —
not a link to it. The current stay and its confirmation number are on screen before any tap, with no picker,
no spinner, no sign-in and no network. That is the whole reason this product exists.
Nothing draws under the status bar. The v1 mocks run the hero to the top edge and put
white status text on it; here the status row is opaque and owns its band. Correction, carried into every v2 file.
9:41
▲ PHOTO IN BUILD ·
한국관광공사 · 공공누리 1유형. Drawn scene is the designed fallback, never a placeholder.
SEOUL · BUSAN2 TRAVELLERS
Spring in Seoul
4–14 APR 2027 · 11 DAYS
Search everything you saved
DAY −34 · PREPARE
derived from your dates and this phone's clock
5
of 12 ready
42%
Two things have a date on them. Everything else can wait, and we
will not invent pressure to make this screen look busier.
The deadline ladder2 DATED
Apply for K-ETA
DUE 10 APR · IN 4 DAYS
We'll get you ready to file. We do not file it for you.
START
e-Arrival Card — the window you set
OPENS 1 APR · CLOSES ON ARRIVAL
Book Jungsik (정식당)
Booking window opens today. No deadline,
so no red.
Travel insurance
You have not told us anything about this, so there is no date to count down to. Unknown, not overdue.
Red appears on exactly two rows, and both carry a date.
Every date on this ladder comes from your trip or from something you typed — we publish no processing
times and no official durations, so nothing here is our claim about Korea.
Not filed12
⊕
12 things you captured and never sorted
OPEN
A counted row, never a shelf of its own. Search reaches all twelve whether you ever sort them or not.
Who is coming2
🧑
Jiwon
지원 · holds her own ticket
HAS THE APP
🧒
Mia
peanut card · you hold her ticket
NO APP
The party works with zero other installs. Mia never needs an account, and she still has a card of her own.
On this phone
14 PLACES · 4 DOCUMENTS · 12 CARDS · 38.2 MB
VERIFIED ON THIS DEVICE 5 APR 22:41
All of it opens with no signal. A visitor who thinks they have this and does not is worse off than
one who knows they do not, so the state is shown, not the promise.
You might also3 MAX
1
Book a seat at Onjium — you saved it in February
2
Add Busan's second night — the gap is in your dates
3
Put Mia's card in Carry before you fly
Last band, capped at three, and each one says why it is here. For a bereavement purpose this band does
not render at all — absent, not greyed out.
Trip
Korea
You
3 · Trip root — a trip, not started
Phase = Prepare, so the clocks are the content. The chevron on the trip name is the
switcher — a sheet, never a lobby. Holding a city chip on the hero opens Change.
9:41
Saved
9 THINGS
Yours whether you go or not. Nothing here belongs to a trip, and nothing here is waiting for you to
make one.
Search everything you saved
Places4
Gyeongbokgung Palace
경복궁 · Seoul
Gwangjang Market
광장시장 · Seoul
Seoraksan
설악산 · Gangwon
📍
A pin your friend sent
We kept the link and the pin. We are not allowed to keep
the rest, and there is no photo we may show.
A month you are weighing up
April
SAVED 2 MAR
What it is good for, what it is bad for, and what is on. The downsides are on the same card as the
upsides, and no bloom window is hardcoded anywhere in this product.
3 CONFIRMED5 UNCONFIRMED
An unconfirmed event never renders as a confirmed one, at any zoom, in any list.
Cards you kept3
🛂
What a passport alone gets you
CHECKED 12 MAR · SYNCED 2 APR
VERIFIED
💳
Paying for things without a Korean account
CHECKED 4 JAN · SYNCED 2 APR
STALE
📶
본인인증 — what needs it
NOBODY HAS SOURCED THIS YET
UNKNOWN
Two dates on every card, and they are different numbers: when a human last checked it, and when this
phone last pulled it.
Documents1 · 🔒
🛂
Passport
M•••••4821 · EXP 2031-06-14
VALID
A passport belongs to a person, not to a trip. It was here before the trip and it will outlive it.
Next time
Empty, and it should be
This fills up while you are in Korea — the thing you walked past, the place that was full. It is the
only object that survives a trip, and it is the reason the app gets opened again.
Passport, dates, cities, purpose — every step skippable. We will offer to copy these nine things in,
and you can decline every one of them.
Saved
Korea
You
4 · Saved root — no trip at all
The app does not open here. With no trip it opens on Korea, at shelf 1
Where in Korea — that question is asked before the flight is booked. Opening a trip-shaped app on an
empty trip is the wall v1 built, and this is the screen that stops being one.
The bag exists before the trip does. Saved is the library at person scope; a trip is a
bag that additionally has dates and cities. That is why there is no empty state to design.
9:41
Korea
15 SHELVES
What to know, and what you saved about it — on the same page, under the same heading. You will never
read the words handbook or binder in here.
Search everything
ORDERED FOR PREPARE
a readout, never a control
▲ PHOTO-LED IN BUILD. Credit line renders
here and taps to You › Sources.
SHELF 3
Entry & Identity
The short version
What your passport alone gets you, what needs filing before you fly, and where medication legality
sits — beside the visa, not under Health.
4 OF YOURSCHECKED 12 MAR
▲ DRAWN SCENE, and it stays drawn —
no photograph covers this subject. Never captioned "photo missing".
SHELF 4
Money
What you have
Two rows of yours sit on this shelf — a card you kept and a note about the transport card.
With rows of your own, this band leads. With none, the answer leads.
2 OF YOURSCHECKED 4 JAN
The rest, in this order13
5
Connectivity & Accounts
1
6
Moving
3
7
Staying
2
2
When
1
1
Where in Korea
0
11
Doing & Booking
6
8
Eating
9
9
Drinking
0
10
Buying
3
13
Health
1
14
Safety & Law
0
12
Manners
0
15
Language
2
The numbers are the shelf's identity and never change. The order does — Where
in Korea is at seven today because your dates say Prepare, and it was first last month when they
said Choose. Nothing is ever removed from this list.
Not a shelf
Accessibility, dietary and specific needs
Its cards live where their subject lives — a step-free route is Moving, a prayer room is Doing,
halal certification is Eating. It is a lens over all fifteen, and a lens has no row.
Trip
Korea
You
5 · Korea root — 15 shelves, phase-ordered
Photography leads where we hold it; the five drawn scenes are the designed fallback.
1,102 photographs under 공공누리 제1유형 cover a fraction of every shelf, month, district and place in Korea,
so a drawn hero is the normal state for an unphotographed subject — it is what makes a gap look intentional.
Icons.photo / broken_image / image stay banned.
Attribution is a licence condition, so it has three homes: a tappable credit on every
photo-led hero, a first-class Sources row in You above Settings, and a block in the exported PDF —
because the printed carry sheet is a distribution of the work.
9:41
You
What is yours across every trip. No search field here — Trip and Korea get the field, everywhere else
gets the glyph.
You
🧑
Ted Cho
Your passport spells it differently,
and we remember both.
Referenced by every trip, copied into none. Delete a trip and this is untouched.
People2
🧑
Jiwon
지원 · 2 trips
HAS THE APP
🧒
Mia
1 trip · carries a peanut card
NO APP
A companion who travels twice is one record, not two. Sharing hands over items; it never hands over the
vault — a document is a per-document, per-recipient act with its own consent.
Carry7
✋
Emergency
Hold the ⊕ anywhere, even signed out. Print it and put it in your bag.
PRINT
🏨
Where I am staying
조선 팰리스 서울
REVIEWED
🥜
Mia's allergy card
땅콩 알레르기
REVIEWED
🗣
"Is there a step-free entrance?"
machine output — not for handing over
PROVISIONAL
Reviewed and provisional are different by sight, permanently. Machine output never renders in handover
typography, so nobody hands a stranger a sentence a machine wrote.
Library
📍
Places, across every trip
31
📄
Cards you kept
12
↺
Next time
3
Documents4 · 🔒
🛂
Yours, and this trip's
OPEN
Two doors into one vault — from here, and from the trip. It previously had none, which is how a working
vault ended up with no user who could reach it.
Offline
✓
Spring in Seoul · 38.2 MB
ON THIS PHONE
↓
Korean text recognition
UPDATE
—
Busan district map
NOT HERE
Is this actually on this phone — the state, not the promise. It is invisible when it works, which is
exactly why it is a row.
How you travel3
◇
No alcohol PERSON · forever, until you delete it
REMOVE
◇
Step-free where it exists PERSON
REMOVE
◇
On crutches until 12 April TRIP · dies with this trip
REMOVE
In your own words, and each one is a consequence, never a reason. Removing is a delete, not a flag.
You were never asked any of this at onboarding.
Sources
Every dataset, every licence, every checked date
1,102 photographs · 한국관광공사 · 공공누리 제1유형. On-device text recognition and its attribution.
Every content source with the date a human last checked it.
The only row in this product that exists because a licence says so — which is why it sits above
Settings and not inside it.
Settings
⚙
Settings
🔒
Privacy — what leaves this phone, and when
Trip
Korea
You
6 · You root — the person layer
You is not the junk drawer v1 made it. Every row here is person-scoped and survives every
trip. Carry is Show's front door — a layer with no index is invisible.
14:22
Spring in Seoul
Search everything you saved
Where you are
Seoul
TUE 6 APR 2027 · KST · DAY 3 OF 11
Keep this.
Anything lands. We never ask what it is, and we never ask which shelf it belongs on.
Paste a link, an email, a Korean confirmation, a phone number — or just a sentence.
PASTE · 1 ITEM ON YOUR CLIPBOARDThe parser may not fail. It may only recognise less.
🖼
Photos
recent screenshots first
📷
Camera
a voucher, a board, someone's screen
🔎
Read this
freeze the frame and read it
TODAY 11:04
YESTERDAY
4 APR
2 APR
People already screenshot their bookings. Meeting that habit is worth more than any parser.
It also arrives without you
↗
From the share sheet of any other app
A Kakao link a friend sent on WhatsApp lands as an item. No type is asked, no shelf is asked,
and the raw evidence is kept.
🖼
"Screenshot, 2 Mar"
We could not read this one, so it landed anyway — the picture, the text we pulled out of it, and a
title we guessed. Unreadable is not an error.
Afterwards we may ask this looks like a hotel booking — set check-in?
You can say no, and it is never a gate.
Trip
Korea
You
7 · ⊕ Capture — tapped
The zero-decision path is the paste box, already focused, with the clipboard already
read. One gesture in, one gesture out. No type picker, no shelf picker, no kind picker, no required
title — requiring a type at capture is the quiet killer, and the shipped share route currently walks a
photographed booking into one.
If capture needs typing or classifying, the binder stays empty, and an empty binder is
retrieved from zero times. Every retrieval surface in this product is downstream of this sheet.
03:12
Emergency
No account, no trip, no signal needed. This screen is already on your phone.
Call
Police
Interpretation is available on this line
CALL
Fire & ambulance
Interpretation is available on this line
CALL
Coast guard
Interpretation is available on this line
CALL
Show someone
저는 땅콩 알레르기가 있습니다
응급 상황입니다. 도와주세요.
I have a peanut allergy. This is an emergency, please help.
Reviewed by a human · 12 March
Where I am staying
조선 팰리스 서울
서울 강남구 테헤란로 87길 46
Josun Palace Seoul · the property's front desk line is on this card
Copy the KoreanCall the desk
Documents
Passport
M•••••4821 — one tap reveals it, because the counter is waiting
SHOW
Insurance
POLICY 4471-A · 24-HOUR LINE SAVED
CALL
Your embassy
You have not filled this in. We will not guess which embassy is yours, and we hold no directory
we would stand behind at 3am.
Print this · save as PDF
No app shell. No tab bar. No sign-in. No trip. No network. No spinner, no animation, no illustration.
It renders on a freshly launched, signed-out phone at 3%, and it prints.
8 · ⊕ held → Emergency
It is not red. Flag red means a deadline and nothing else. Spending the product's
one urgency colour here would make this screen indistinguishable from a K-ETA countdown, and it would decorate
the one surface that needs zero decoration. Plain, high-contrast, monochrome — which is what a dying battery
wants anyway.
No numbers are printed in this mock, deliberately. The three emergency numbers are
compile-time constants in emergency_directory.dart — a phone that has never had a network has never
applied a content bundle, and the one screen that cannot fail would be empty in exactly the situation it
exists for. A design file is not their source of truth.
Reached by holding the ⊕ for 0.5s — from anywhere, signed out, offline, on a cold
launch, with no trip. Also a home-screen quick action, a lock-screen widget, and a piece of paper.
Taught once, on the last onboarding card, which offers to print it there and then.
14:26
josun|
Cancel
One field. No scoping, no tab, no filter. Both scripts, and every romanisation on record.
In your binder1
Josun Palace Seoul
조선 팰리스 서울
CONF 88213904
STAY · 6–11 APR · TONIGHT
Found inside a photograph1
Screenshot, 2 March
You never filed this one.
… 조선 팰리스 서울 … … JOSUN PALACE SEOUL … … 88213904 …
READ ON THIS PHONE · 2 MAR
The highest-leverage retrieval feature in the product,
because it rescues the items nobody filed. Every captured image is read on the device and its text
is indexed. The photograph is still the evidence; the text is only the way back to it.
Places1
Josun Palace Seoul
Also on record as Chosun, Joseon and 조선. Four spellings, one place — a ticket, a sign, a map pin and
a booking confirmation all resolve here.
On a day1
Tue 6 April — day 3 of 11
Check-out is on day 8.
In Korea2
7
Checking in without a Korean phone number
STAYING
15
Reading a hotel's name on a sign
LANGUAGE
The wrong script
Typing 조선 returns the same five results. Searching in the
script you are holding must never silently return emptiness — that is the failure that teaches someone
the app does not have their thing.
When nothing matches
We say which sources we searched and which we do not hold. Nothing found never means nothing exists.
Trip
Korea
You
9 · Search — invoked over everything
Retrieval path 2 of 6, ahead of shelf browse — which is why it is not a tab. A tab is
one tap only from the tab bar; a pinned field is one tap from the top of the two roots, and a glyph from
every other header. The bar keeps its fifth slot for the ⊕ instead.