Where every SESK image, logo, character, video and print file lives, which file to use for what, and the sizes each platform needs. The brand rules themselves (colors, type, voice, cast) are in the brand guide: docs/brand/SESK-Brand-Guide.pdf (source docs/brand/sesk-brand-guide.html). The step-by-step production playbook is media/PIPELINE.md.
On the web, with every file as a download: https://sesk.info/brand/ (built from this file by src/app/brand/page.tsx; edit here, then deploy).
Logo as of 2026-10-09: the brain-lightbulb mark (from Avery's logo idea). The Just Right gauge is retired as a logo; the blue/green/red Just Right colors stay for the Just Right card.
Brand quick reference
| Item | Value |
|---|---|
| Lava Orange (primary) | #FF5A1F |
| Ember (orange text/links on light) | #C73E0C |
| Charcoal (ink) | #1F2328 |
| Ash (background) | #F6F2EC |
| Brain Pink / Bulb Yellow (logo mark only) | #FF9EB5 / #FFD23F |
| Too Little / Just Right / Too Much | #2F7FD1 / #2E9E5B / #D7263D |
| Headlines | Fredoka 600/700 |
| Body | Nunito |
| Tagline | Not too much. Not too little. Just right. |
| Sign-off | That's stuff everyone should know. |
White text on Lava Orange only at 24 px bold and up; smaller text on orange is Charcoal.
Folder map
docs/brand/
SESK-Brand-Guide.pdf brand guide (8 pages)
sesk-brand-guide.html its source; render with render_pdf.py
media/
MEDIA-GUIDE.md this file
PIPELINE.md card and video production playbook
assets/brand/ logos, banner, social kit (build.py, banner.py, social.py)
assets/brand/social/ upload-ready YouTube, Facebook, Instagram, Google images
assets/characters/allen/ Allen character sheets; sheet_final.png is THE production reference
assets/characters/cast/ brand-guide drawings of Allen, Stacey, Xander, Avery (cast_art.py)
assets/props/ the Papcap (truck*.png, papcap.svg), gas station
assets/fonts/ Fredoka.ttf, Nunito.ttf (SIL Open Font License)
budget/ CREDIT-CONTROLS.md (read before any paid generation), ledger.csv
cards/ card_template.html, seed/ (cards.json, quiz.json), rendered/NN-slug/
pipeline/ sesk_build.py (video), sesk_cards.py (cards), sesk_print.py, sesk_tgc.py
print/ party game PDFs (print-and-play, proofs, tgc/)
scripts/ scripts and card batches waiting for review
videos/NN-slug/ one folder per video (script, shotlist, audio, frames, clips, cards, build, final)
Which file do I use?
Logo
| Need | File (in media/assets/brand/) |
|---|---|
| Logo on a light background (web header, documents) | sesk_logo_horizontal.svg (PNG: _600, _2400) |
| Logo on a dark background | sesk_logo_horizontal_dark.svg (PNG: _600, _2400) |
| App icon, avatar, anything square | sesk_mark.svg (PNG: _1024, _512, _180) |
| Favicon | sesk_mark_32.png (website copy: public/brand/sesk-mark.svg) |
| Square profile image master with "SESK" under the mark | sesk_channel_square.svg (PNG: _800, _2048) |
| Everything in one download | sesk_logos.zip |
Social profiles (media/assets/brand/social/)
| Platform | Slot | File | Size |
|---|---|---|---|
| YouTube @stuffeveryoneshouldknow | Profile picture | youtube_profile_800.png |
800x800 |
| YouTube | Banner | youtube_banner_2560x1440.png |
2560x1440; logo and text inside the 1546x423 safe area |
| YouTube | Video watermark | youtube_watermark_150.png |
150x150 |
| Facebook facebook.com/sesk.info | Profile picture | profile_picture_1080.png |
1080x1080 |
| Cover photo | facebook_cover_1640x856.png |
1640x856; content fits the desktop (820x312) and phone (640x360) crops | |
| Instagram @seskinfo | Profile picture | profile_picture_1080.png |
1080x1080, checked against the circle crop |
| Google account [email protected] | Account photo | profile_picture_1080.png |
1080x1080 |
Instagram has no cover image. The profile picture is the only brand slot there.
Content sizes
| Output | Size | Made by |
|---|---|---|
| Video master (Shorts, Reels, TikTok) | 1080x1920, H.264 CRF 19, AAC 192k, -14 LUFS | pipeline/sesk_build.py -> videos/NN-slug/final/ |
| Video stills (frames) | 9:16 vertical, Allen in the upper two thirds | Higgsfield or local GPU, per PIPELINE.md |
| Feed card | 1080x1350 | pipeline/sesk_cards.py -> cards/rendered/NN-slug/card.png |
| Carousel | 1080x1350, 5 slides | same, carousel-1..5.png |
| Story | 1080x1920 | same, story.png |
| Party game print | pipeline/sesk_print.py -> print/ |
Characters and props
- Allen is the only on-screen character for now: orange t-shirt, orange cap with no logo, light-brown hair, dark gray pants, brown boots, no sunglasses. Generate from
assets/characters/allen/sheet_final.png(Higgsfield media id in PIPELINE.md, Stage 5). - Stacey (dark blue), Xander (green), Avery (teal) are on hold until their voices are recorded.
assets/characters/cast/has brand-guide drawings only; their hair and exact blue/teal values are placeholders until real character sheets exist. - The Papcap is Allen's red 2016 F-150 Lariat with a full Leer shell:
assets/props/truck.png,truck2.pngfor generation,papcap.svgfor graphics. Never with a badge or brand logo.
Rules for every piece of media
- Allen approves anything before it is published, posted or scheduled.
- No em dashes in any text. Never the words Mii, Nintendo or LEGO.
- No real brand logos, known characters, costumes or real login pages in art.
- Visuals must be physically correct and never misleading on safety.
- No stock footage. Every video original and useful.
- Every fact sourced; every number checked.
- Paid generation only under
budget/CREDIT-CONTROLS.md, logged inbudget/ledger.csv. Local GPU first. - Every image, clip, narration and final video goes into this repo.
Naming
- Videos:
media/videos/NN-slug/(two-digit number, short kebab-case slug), e.g.13-small-engine-gas. - Final files:
final/SESK_NN_Title_Words.mp4and_social.mp4. - Rendered cards:
media/cards/rendered/NN-slug/. - Logo exports:
<name>_<width>.png; social files:<platform>_<slot>_<size>.png.
Git LFS
.gitattributes sends *.png, *.jpg, *.mp4, *.mp3, *.zip and *.ttf to Git LFS. After cloning, run git lfs install && git lfs pull. Upload media with git (LFS on) or the Gitea web uploader; the Gitea contents API and the lab gitea_write_file tool skip LFS, so use them for text files only.
Rebuilding the brand files
git lfs pull
cd media/assets/brand
python3 build.py # mark, lockups, channel square
python3 banner.py # YouTube banner
python3 social.py # social/ kit
python3 cast_art.py # ../characters/cast/*, ../props/papcap.*
cd ../../..
python3 docs/brand/render_pdf.py # brand guide PDF (Playwright Chromium)
Needs Python 3 with fonttools and cairosvg, plus Playwright for the PDF. Rebuild sesk_logos.zip from the sesk_mark*, sesk_logo_horizontal*, sesk_channel_square* and sesk_youtube_banner* files after a logo change.













