Tier 2ProposediOS + Android phones: tokens only. Both phone apps move to this one signed-out screen; only the system chrome around it differs. put.io supplies the wordmark, the kaomoji voice, tint and surfaces.--app-bg · --text · --text-secondary · --yellow-solid · --yellow-text-secondary · --primary-foreground · --component-bg · --border
Phone welcome: the signed-out screen on iOS and Android
Both apps sign in through put.io OAuth in the browser and have no password form or sign-up link. Sign in opens the browser: ASWebAuthenticationSession on iOS, an Auth Tab on Android.
Proposed: neither app ships it yet. iOS ships a 240pt wordmark and one Log in button; Android ships one still kaomoji over Welcome!.
Kaomoji take turns over a mono yellow caption, with page dots under them. Each beat holds 2s and rolls up in 0.6s, then the loop restarts. Reduced motion holds the first beat.

Welcome

iOS
9:41
put.io
Welcome!
Your put.io files, streaming and offline on this phone.
Sign in
Sign in opens put.io OAuth in the browser.
Android
9:41
put.io
Welcome!
Your put.io files, streaming and offline on this phone.
Sign in
Same screen; the status bar, top bar and margins are Android's.

Sequence

┌( ಠ‿ಠ)┘Paste a magnet.1 · 0–2.6s
( ⌐■_■)put.io fetches it.2 · 2.6–5.2s
ᕕ( ᐛ )ᕗStream it anywhere.3 · 5.2–7.8s
(づ。◕‿‿◕。)づOr keep it offline.4 · 7.8–10.4s

States

Session expired
9:41
put.io
Welcome back!
Your session expired. Sign in again to continue.
Sign in
The roll keeps running; the title and lede change.
Browser open
9:41
put.io
┌( ಠ‿ಠ)┘
Almost there
Finish signing in in your browser, then come back here.
Cancel
One still kaomoji and a text Cancel while the browser finishes.
Sign-in failed
9:41
put.io
(・_・;)
Welcome!
Sign-in didn’t finish. Nothing was saved, so you can try again.
Try again
A still kaomoji, a notice with the reason, a filled Try again.
Saved session unreadable
9:41
put.io
(・_・;)
Welcome!
The saved session on this device could not be read or stored safely. Reset clears it so you can sign in again.
Reset and sign in
Only when the stored session can't be read; the action becomes Reset and sign in.
headerlogo-retro-dark, 88 wide, centred in the top bar (iOS 44pt nav slot, Android 64dp top-app-bar slot)
rollkaomoji GT America 48 SemiBold · caption Berkeley Mono 15, --yellow-text-secondary, 8 below · 4 page dots 6 wide, 8 apart, 16 below, active --yellow-solid, rest --border
motionvertical roll, 2s hold, 0.6s --ease-in-out, loops · reduced motion holds beat 1 with its dot lit
typeWelcome! 40/48 Medium, tight tracking, 32 below the dots · lede 16/22 --text-secondary, 8 below
actionone full-width 56 pill, --yellow-solid / --primary-foreground, 16 Medium · Cancel is a text button in --yellow-text-secondary
statesexpired: Welcome back! · browser: still kaomoji, Almost there, Cancel · failure: still (・_・;), notice on --component-bg with a --red-solid warning-circle, Try again or Reset and sign in
Do not add a username/password form, a sign-up link, or an illustration. The browser is the only credential surface.