gitnimble.com

أدوات المطورينفاتح + داكن

استخدم هذا التصميم مع الذكاء الاصطناعي

اختر أداتك وصِف فكرتك ثم أرسل الطلب.

  • الصق الطلب في محادثة الوكيل داخل مشروعك في Claude Code ثم أرسله.

تنزيل

تخطيط نموذجي

صفحة هبوط، مبني من هذه الحزمة
صفحة عامة مركّبة فقط من قياسات هذه الحزمة: نصوص تجريبية بألوان الموقع وخطوطه وأزراره ومسافاته.

الألوان

9 ألوان

المكونات

Downloadاعرف المزيد
زر ghost
نص #ffffff على شفاف فوق #ffffff, r 9999px, h 38px, 14px/540
زر secondary
نص #8a8d94 على #f2f3f5, r 9999px, h 32px, 16px/400
بطاقة
#fffffff5, 1px solid #0000001f, r 24px, ظل
رابط
#000000, بلا تسطير, 400
ترويسة
60px, sticky, 6 روابط بحجم 16px
العنوان الرئيسي
64px / 560, محاذاة center, الحد الأقصى 510px
شارة
"tab": #ffffff61 on #888b91, 14px/450, 27px tall, radius 10px, padding 0px 8px, border 1.25px #0000001f
شارة
"⌘K": #ffffff on #5a5e66, 13.6px/400, 24px tall, radius 5px, padding 1px 6px
كود
code: ui-monospace 11.0625px, transparent bg, #4a4d53 text, radius 0px, padding 0px 0px
النماذج
0 forms, 0 inputs. Required markers: 0. Help texts: 2. Label placement: no labelled inputs.
الأيقونات
Icons: 105 inline SVGs, outline/stroke, sizes 18px/13px/14px/15px, stroke 2px/3.4px/1.5px; icon font classes icon-.

التفاعل والحركة

  • button primary: background #f2f3f5 → #e6e7e9
  • button secondary "Download": background color(display-p3 0 0.357 1) → #0049cc, shadow added (color(srgb -0.166327 0.364166 1.03865 / 0.24) 0px 16px 40px )
  • nav link "Nimble": لا تغيّر عند hover
  • تركيز button primary: no visible focus style measured (may rely on :focus-visible with keyboard only)
  • التلميحات: Tooltip triggers exist (1 × title) but none opened on hover in the first viewport; title attributes fall back to the browser's native tooltip.
  • القوائم: No dropdown menus found in the header.
  • الحركة: 61 elements carry transitions; typical 0.15s with ease, mostly on transform, opacity, color. 5 running keyframe animations (chip-float 7.5s infinite; chip-float 8s infinite; tree-follow-scroll 0.001s 1). No scroll-reveal: content is visible without scrolling into view.

الخطوط

2 عائلات خطوط
Interمستضافة ذاتيًاui-monospaceالنظام
headline-displayQuick brown fox64px / 560 / lh 66.56px / -2.56px
headline-lgQuick brown fox48px / 560 / lh 50.88px / -1.68px
headline-mdQuick brown fox20px / 540 / lh 32px / -0.2px
body-mdThe quick brown fox jumps over the lazy dog16px / 400 / lh 26.4px
label-mdThe quick brown fox jumps over the lazy dog12px / 400 / lh 12px
buttonThe quick brown fox jumps over the lazy dog16px / 540 / lh 1
codeconst pack = extract(url)11.0625px / 400 / lh 17.7px
الأحجام المستخدمة

المسافات

وحدة 4px
481216202428108
عرض المحتوى
1120px
نقاط التوقف
560, 600, 601, 860, 900px

الاستدارة

زر 9999pxحقل 9999pxبطاقة 24pxصورة 24px

الظلال

4

السمة الداكنة

يتم الوصول إليها عبر prefers-color-scheme. فاتح → داكن:

background#ffffff → #0b0d12
surface#fafafa → #10131a
surface-2#ebebeb → #202124
foreground#282a2f → #f7f8fb
muted-foreground#5a5e66 → #b8bdc8
primary#005bff → #005bff
on-primary#ffffff → #ffffff
secondary#d97757 → #d97757
border#ebebeb → #23252a

ظلال الوضع الداكن: rgba(0, 0, 0, 0.08) 0px 1px 2px 0px; rgba(0, 0, 0, 0.2) 0px 0px 0px 0.5px inset, rgba(0, 0, 0, 0.12) 0px 24px 60px 0px, rgba(0, 0, 0, 0.06) 0px 6px 16px 0px

الشعار والأيقونات

7 مراجع

هذه المقتطعات وقياساتها موجودة في BRAND.md. تحقق من أن الشعار المختار صحيح قبل استخدام الحزمة.

جرد المكوّنات

22 من 87 نوعًا · 37 متغيّرات · 20 حالات · 0 طبقات

يعرض كل صف نمطًا مرئيًا موجودًا في الصفحة. تعرض اللقطات الحالات التي تم الوصول إليها أثناء الاستخراج. تُميّز اللقطات المفقودة والحالات غير المتحقق منها مباشرةً بشكل منفصل. التفاصيل في COMPONENTS.md وcomponents.css.

Button, primary-with-icon3 في الصفحة, مثل "Download free trial"#ffffff text on #005dff, radius 999px, h 48px, padding 0px 24px 0px 24px, 16px/540, icon left 18px
disabled: لا تغيير
Button, secondary3 في الصفحة, مثل "Buy for $49"#282a2f text on #ffffff, radius 999px, h 48px, padding 0px 24px 0px 24px, 16px/540, shadow rgba(0, 0, 0, 0.12) 0px 0px 0px 1px inset
disabled: لا تغيير
Button, primary-with-icon (sm)1 في الصفحة, مثل "Download"#ffffff text on #005dff, radius 999px, h 38px, padding 0px 16px 0px 16px, 14px/540, icon left 16px
disabled: لا تغيير
Switch / toggle, custom1 في الصفحةauthor-drawn (appearance none), size 64x32, thumb 26px #ffffff
disabled: لا تغيير
Header / navbar1 في الصفحة, مثل "Nimble Home Features Pricing"h 60px, sticky, bg transparent, 6 links, CTAs: Download, inner 1320px, logo left
rest: المعاينة غير متاحة
Navigation link, plain3 في الصفحة, مثل "Features"#5a5e66, no underline, 14px/460
current: لم يتم التحقق مباشرةً
Navigation link, plain · header1 في الصفحة, مثل "Home"#282a2f, no underline, 14px/460
current: لم يتم التحقق مباشرةً
Footer1 في الصفحة, مثل "Nimble A fast, beautiful, 10"h 376px, bg #fafafa, 4 link columns, 9 links, headings: Product, Support, Legal, bottom bar 13px #8a8d94
rest: المعاينة غير متاحة
Footer link, plain8 في الصفحة, مثل "Features"#5a5e66, no underline, 14px/400
Badge / pill / tag, subtle-square28 في الصفحة, مثل "tab"#888b91 on rgba(255, 255, 255, 0.38), border 1.25px solid rgba(0, 0, 0, 0.12), radius 10px, h 27px, padding 0px 8px 0px 8px, 14px/450
hover: لا تغيير
Badge / pill / tag, neutral-square3 في الصفحة, مثل "↩"#888b91 on transparent, border 1px solid rgba(0, 0, 0, 0.12), radius 8px, h 25px, padding 0px 4px 0px 4px, 9.324px/400
hover: لا تغيير
Badge / pill / tag, subtle-square · main2 في الصفحة, مثل "⌘K"#5a5e66 on #ffffff, radius 5px, h 24px, padding 1px 6px 1px 6px, 13.6px/400
hover: لا تغيير
Badge / pill / tag, subtle-square · aside1 في الصفحة, مثل "main"#282a2f on #ececec, radius 9.504px, h 33px, padding 0px 10.56px 0px 10.56px, 11.4048px/650
حالة السكون فقط
Counter / notification dot, subtle-filled1 في الصفحة#8a8d94 on #ffffff, radius 50%, h 26px, padding 0px 0px 0px 0px, 16px/400
Card, elevated1 في الصفحة, مثل "Aurora Notes main +128 −4 St"bg rgba(251, 251, 252, 0.78), border 1px solid rgba(0, 0, 0, 0.12), radius 24px, padding 0px 0px 0px 0px, shadow rgba(16, 22, 38, 0.16) 0px 40px 90px 0px, rgba(16, 22, 38, 0.08) 0px 12px 28px 0px, about 887×550px, 1 per row
hover: لا تغيير
Card, elevated · main1 في الصفحة, مثل "Connected services GitHubClo"bg rgba(255, 255, 255, 0.94), border 1px solid rgba(0, 0, 0, 0.08), radius 24px, padding 0px 0px 0px 0px, shadow rgba(16, 22, 38, 0.16) 0px 40px 90px 0px, rgba(16, 22, 38, 0.08) 0px 12px 28px 0px, about 520×198px, 1 per row
hover: لا تغيير
Card, outlined1 في الصفحة, مثل "BitbucketClone · Publish · P"bg transparent, border 1px solid rgba(0, 0, 0, 0.08), radius 0px, padding 12px 12px 12px 12px, no shadow, about 494×63px, 1 per row
hover: لا تغيير
Card, elevated · main · 31 في الصفحة, مثل "Linear Search issues NIM-312"bg rgba(255, 255, 255, 0.96), border 1px solid rgba(0, 0, 0, 0.12), radius 24px, padding 0px 0px 0px 0px, shadow rgba(16, 22, 38, 0.16) 0px 40px 90px 0px, rgba(16, 22, 38, 0.08) 0px 12px 28px 0px, about 520×446px, 1 per row
حالة السكون فقط
Pricing card / plan, elevated1 في الصفحة, مثل "$49 one-time Perpetual licen"bg #ffffff, border 1px solid rgba(0, 0, 0, 0.12), radius 24px, padding 32px 32px 32px 32px, shadow rgba(16, 22, 38, 0.12) 0px 24px 60px 0px, rgba(16, 22, 38, 0.06) 0px 6px 16px 0px, about 380×428px, body 14px #5a5e66, 1 per row
hover: لا تغيير
Feature item (icon + title + text), filled4 في الصفحة, مثل "Keychain-backed Credentials "bg #ffffff, border none, radius 0px, padding 24px 24px 24px 0px, no shadow, about 279×220px, h3 20px/540, body 14px #5a5e66, 4 per row
hover: لا تغيير
Stat / metric1 في الصفحة, مثل "$49 one-time"bg transparent, border none, radius 0px, padding 0px 0px 0px 0px, no shadow, about 314×77px, value 48px/560, value above label
Styled list1 في الصفحة, مثل "Clone repositories from GitH"4 items, marker none, icon per item, gap 12px, item padding 0px 0px
Styled list · main1 في الصفحة, مثل "Create new Linear issues wit"3 items, marker none, icon per item, gap 12px, item padding 0px 0px
Accordion / disclosure, details8 في الصفحة, مثل "Is Nimble free? Nimble is a "trigger 20px/540 #282a2f, padding 20px 0px 20px 0px, 18px icon on the right, rotates over 0.28s, divider 1px rgba(0, 0, 0, 0.08), closed by default
open: قِيس، لا تغيير مرئيhover: لا تغيير
Code block / inline code, inline11 في الصفحة, مثل "> ADDED: local completion no"inline, ui-monospace 11.0625px, #4a4d53 on transparent, radius 0px, padding 0px 0px 0px 0px
Keyboard key2 في الصفحة, مثل "⌘K"16.15px #5a5e66 on #ffffff, border none, padding 1px 6px 1px 6px, radius 5px
Icon, outline-12px30 في الصفحة12×12px, outline, stroke 1px none
Icon, outline-13px24 في الصفحة13×13px, outline, stroke 3.4px #ffffff
Icon, filled-16px22 في الصفحة16×16px, filled, fill #888b91
حالة السكون فقط
FAQ block, aria1 في الصفحة, مثل "Is Nimble free? Nimble is a "closed by default, 8 items, 680px wide

غير موجودة في هذه الصفحة: Icon button, Toggle / segmented control, Button group, Text link, Floating action button, Close / dismiss button, Text input, Search field, Textarea, Select (native), Combobox / custom select, Checkbox, Radio, Range slider, File input / dropzone, Date / time input, Input with attached button or addon, Field label, Help / hint text, Validation error text, Fieldset / form section, Menu / dropdown trigger, Breadcrumb, Tabs, Pagination, Stepper / progress steps, Sidebar navigation, Skip link, Back to top, Social icon links, Theme toggle, Language / region switch, Tooltip, Popover, Dropdown menu, Dialog / modal, Drawer / sheet / off-canvas, Toast / snackbar, Banner / announcement bar, Cookie / consent notice, Lightbox / media viewer, Chip (removable / selectable tag), Alert / callout, Progress bar, Spinner / loader, Skeleton / shimmer, Empty state, Rating / stars, Testimonial / quote card, List row / menu row, Table, Table row, Avatar, Avatar stack, Divider, Blockquote, Image / figure, Video / media embed, Carousel / slider, Logo strip, Eyebrow / kicker, Call-to-action band, Newsletter / signup form, Search results / listing row, Sticky bar.

التجاوب

1440 / 1024 / 768 / 390 px
العرضالمحتوىالهامشالمتنالعنوانالترويسةالواجهة الرئيسيةالشبكاتالأزرار
desktop 14401120px465px16px64px, 2 lines, center60px, 6 links, 2 CTAmedia below text2→2 col; 2→1 col; 2→1 colcontent-width
laptop 1024944px262px16px62.7px, 2 lines, center60px, 6 links, 2 CTAmedia below text2→2 col; 2→1 col; 2→1 colcontent-width
tablet 768691px165px16px55px, 2 lines, center60px, hamburger (Use dark appearance), 1 CTAmedia below text2→2 col; 2→1 col; 2→1 col2 full-width
phone 390350px35px16px40px, 2 lines, center60px, hamburger (Use dark appearance), 1 CTAmedia below text2→2 col; 2→1 col; 2→1 colcontent-width
  • H1 goes 64px → 40px (63%), 2 → 2 lines.
  • Nav collapses to a hamburger by 390px (first seen at 768px); header 60px → 60px.
  • Card grids: 2 columns → 2 columns on phones (gap 0px → 0px).
  • Body text is 16px at the sampled desktop and phone widths.
  • Phone side gutter 35px.
  • Section top padding 81px → 40px.

ملفات الحزمة

130 ملفات

ابدأ بـ 52 كيلوبايت من نص الدليل. كل نص الحزمة 1,001 كيلوبايت؛ افتح الملفات التفصيلية عند الحاجة. الصور منفصلة.

START_HERE.md97 سطر
# Start here: gitnimble.com

Observed 2026-10-28T00:47:23.890Z; default light theme. This is a compact handoff, not the full evidence archive: everything you need to start is here, the detailed files are one step away.

## How to use this pack

1. Read `START_HERE.md` and `tokens.css` first: the priority values. Keep observed values; a value marked inferred or fallback is a suggestion to resolve against the screenshots.
2. Open `screenshots/desktop-1440-fold.png` and `screenshots/phone-390-fold.png` and match the composition, density, whitespace and image treatment; the values do not carry those. Treat the inside of an image or canvas as a visual inference, not measured DOM.
3. Read `FONTS.md` and load `fonts.css` before `tokens.css`. Keep exact weights and variable-font settings and verify the fonts that actually render. If a font is unavailable, name the substitute and compare its width and apparent weight before touching the type scale.
4. Before drawing any logo or icon, read `BRAND.md` and open `screenshots/brand-logo.png`, `screenshots/brand-symbol.png`, `screenshots/brand-icon-1.png`: for a new product, create an original mark with the observed proportions and treatment; never guess a shape from a label.
5. Before building any control, read `COMPONENTS.md` (every variant and measured state, with a crop of each), use `components.css` for the CSS and `demos/` for a live copy of each component. A component listed as not found does not exist on the site; do not invent it.
6. Read `REGIONS.md` and inspect its context, detail and icon crops: reconstruct outer and inner surfaces, per-layer gradients and shadows and group spacing (`regions.css` has the recipes), then check the whole page again.
7. Read `BEHAVIOR.md` for hover, focus, tooltips, menus, motion, scrolling, tables, forms, text and each breakpoint, and reproduce the behaviour, not only the colours. Build both themes; `DESIGN.md` pairs the colours.
8. `layout.html` is a generic page composed only from this pack's measured values, with placeholder copy (`layout-alt.html` in the other theme): open it to see the colours, type, recipes and spacing working together and to check your own wiring of the fonts and tokens against it. It is not the site's composition; the screenshots are.
9. `DESIGN.md` has the whole system when a value is missing above. `evidence.json` is diagnostic data: never in the first read.
10. When done, render at desktop, 390px and 320px, compare with the screenshots, fix the biggest visible mismatch first (usually type size, whitespace or image treatment), recheck keyboard focus, overflow, navigation and forms, and repeat.
11. For another site's design, run `npx stylepack-cli <host>` in the project (it downloads that pack and records it the same way), or fetch https://stylepack.ai/packs/<host>/pack.zip; one question at a time is at https://stylepack.ai/packs/<host>/fonts, /colors and /buttons.

## Priority values and evidence

Values labeled fallback were not observed for that role; inferred-role means a visible heading was mapped to a display role. Keep observed values, but treat fallbacks as suggestions.
Keep measured sizes, tracking, radii and colors unless the new content requires an explicit adaptation. Do not enlarge the headline simply to fill a different line length.
Content width: 1120px. Inferred spacing base: 4px; sampled scale: 4, 8, 12, 16, 20, 24, 28, 108px. Observed CSS breakpoints: 560, 600, 601, 860, 900px.
Colors: background=#ffffff; surface=#fafafa; surface-2=#ebebeb; foreground=#282a2f; muted-foreground=#5a5e66; primary=#005bff; on-primary=#ffffff; secondary=#d97757; border=#ebebeb.
- primary: Selected from measured button, link, text, painted-area and theme colors. It is not proof of a filled primary button; follow the observed component recipes.
Radii: button 9999px, card 24px, input 9999px, image 24px.
Shadows: rgba(18, 22, 30, 0.08) 0px 1px 2px 0px; rgba(0, 0, 0, 0.2) 0px 0px 0px 0.5px inset, rgba(16, 22, 38, 0.12) 0px 24px 60px 0px, rgba(16, 22, 38, 0.06) 0px 6px 16px 0px; rgba(16, 22, 38, 0.16) 0px 40px 90px 0px, rgba(16, 22, 38, 0.08) 0px 12px 28px 0px.

## Typography

Load fonts.css before applying tokens.css. FONTS.md contains the observed face/weight inventory and rendered-font checks. A CSS family name alone does not load a font.
Copy the supplied @font-face sources verbatim; do not replace a captured face with Google Fonts merely because its name looks similar. Keep fonts.css linked (or inline it verbatim for a single HTML deliverable). It includes measured semantic font defaults; tokens.css supplies scale and spacing. Use each role as a complete recipe: family, exact numeric weight, size, line height, tracking, font-feature-settings (including cv/ss stylistic sets), optical sizing and variable-font settings. A font shorthand resets feature settings; reapply the supplied longhands after it. Do not round 510 to 500/600, or turn a measured light style into a bold heading.
Use the captured family first. Self-hosted is a hosting location, not an availability verdict. An unverified probe is not evidence of failure; do not choose the optional fallback merely because it is familiar. Substitute only after an actual failed destination request or missing licensed source; record that reason and the replacement. A transient network error merits a retry before redesigning the typography.
Fallback roles are unmeasured suggestions. If a role is absent, start from the nearest observed text treatment; do not assume headings must be bold.
- Inter: observed weights 400, 540, 560; source loading recipe in fonts.css.
- ui-monospace: observed weights 400; system stack, platform-dependent.
- Inter delivery by face: confirmed none; failed 100 900 normal; unverified none. Confirmation is from one isolated-origin check, not every deployment. Keep confirmed faces; attempt unverified faces. A failed unused face does not invalidate a working regular/bold face.
After loading, inspect the browser's Rendered Fonts for the headline, body and button. Computed font-family/font-weight and document.fonts.check() alone do not prove which face drew the glyphs.

- headline-display: Inter; 64px/66.56px; weight 560; tracking -2.56px; observed, source h1.
- headline-lg: Inter; 48px/50.88px; weight 560; tracking -1.68px; observed, source h2.
- headline-md: Inter; 20px/32px; weight 540; tracking -0.2px; observed, source h3.
- body-md: Inter; 16px/26.4px; weight 400; tracking normal; observed, source body.
- label-md: Inter; 12px/12px; weight 400; tracking normal; observed, source label.
- button: Inter; 16px/1; weight 540; tracking normal; observed, source button.
- code: ui-monospace; 11.0625px/17.7px; weight 400; tracking normal; observed, source code.
- Font Inter: self-hosted; use its captured loader first. Self-hosted does not imply unavailable or licensed for reuse; substitution is conditional, not a second design choice.
- Font ui-monospace: system; use its captured loader first. Self-hosted does not imply unavailable or licensed for reuse; substitution is conditional, not a second design choice.

## Regional composition

Read REGIONS.md and open the referenced context, detail and icon crops before drawing complex previews. Build outer shell, inset content panel and internal groups as distinct layers where observed. Preserve which surface owns each gradient, border and shadow; do not apply one generic card treatment to every layer.
For images, canvas, video and external SVG, use the rendered crops to infer visible internal groupings. Keep those inferences separate from measured DOM facts. Do not treat an illustration as a functional app or paste the screenshot as the finished UI. Return to the whole-page screenshots to match scale and placement.
- r1: 1440×1221.8px at page (0, 60); 24 measured layers, 12 icon samples, 0 opaque media layers. screenshots/region-r1-context.jpg, screenshots/region-r1-detail.png, screenshots/region-r1-icons.png
- r2: 1320×868.9px at page (60, 1389.8); 24 measured layers, 11 icon samples, 0 opaque media layers. screenshots/region-r2-context.jpg, screenshots/region-r2-detail.png, screenshots/region-r2-icons.png
- r3: 1120×586.8px at page (160, 5289.5); 6 measured layers, 4 icon samples, 0 opaque media layers. screenshots/region-r3-context.jpg, screenshots/region-r3-detail.png, screenshots/region-r3-icons.png

## Component recipes

- ghost button: bg transparent; text #ffffff; border none; radius 9999px; height 38px; padding 0px 16px; type 14px/540; shadow none.
- secondary button: bg #f2f3f5; text #8a8d94; border none; radius 9999px; height 32px; padding 0px 0px; type 16px/400; shadow none.
- Card: {"bg":"#fffffff5","border":"1px solid #0000001f","radius":"24px","padding":"0px","shadow":"rgba(16, 22, 38, 0.16) 0px 40px 90px 0px, rgba(16, 22, 38, 0.08) 0px 12px 28px 0px","w":520,"h":446}.

## Responsive and interaction evidence

- desktop 1440px: content 1120px, gutter 465px, H1 64px, 2 lines, center, header 60px, 6 links, 2 CTA, grids 2→2 col; 2→1 col; 2→1 col.
- laptop 1024px: content 944px, gutter 262px, H1 62.7px, 2 lines, center, header 60px, 6 links, 2 CTA, grids 2→2 col; 2→1 col; 2→1 col.
- tablet 768px: content 691px, gutter 165px, H1 55px, 2 lines, center, header 60px, hamburger (Use dark appearance), 1 CTA, grids 2→2 col; 2→1 col; 2→1 col.
- phone 390px: content 350px, gutter 35px, H1 40px, 2 lines, center, header 60px, hamburger (Use dark appearance), 1 CTA, grids 2→2 col; 2→1 col; 2→1 col.
H1 goes 64px → 40px (63%), 2 → 2 lines.
Nav collapses to a hamburger by 390px (first seen at 768px); header 60px → 60px.
Card grids: 2 columns → 2 columns on phones (gap 0px → 0px).
Body text is 16px at the sampled desktop and phone widths.
- Hover button-primary: background #f2f3f5 → #e6e7e9.
- Hover button-secondary: background color(display-p3 0 0.357 1) → #0049cc, shadow added (color(srgb -0.166327 0.364166 1.03865 / 0.24) 0px 16px 40px ).
- Hover nav-link: no visible change.
- Focus button-primary: no visible focus style measured (may rely on :focus-visible with keyboard only).
61 elements carry transitions; typical 0.15s with ease, mostly on transform, opacity, color. 5 running keyframe animations (chip-float 7.5s infinite; chip-float 8s infinite; tree-follow-scroll 0.001s 1).
Alternate dark theme observed; use DESIGN.md for paired colors.

## Logo and icons

Logo lockup: 104×32px, filled. See BRAND.md and its crops for shape evidence.
Icon: 14×14px; filled; stroke none observed, caps not applicable.
Icon: 13×13px; filled; stroke none observed, caps not applicable.

## First images to open

- screenshots/desktop-1440-fold.png: Desktop 1440, above the fold
- screenshots/brand-logo.png: primary logo lockup
- screenshots/brand-symbol.png: possible standalone brand symbol
- screenshots/phone-390-fold.png: Phone 390, above the fold

## Verify the build

Render at desktop, 390px and 320px. Inspect the result, compare against the supplied references, fix the largest visible mismatch, and recheck keyboard focus, overflow, navigation and form behavior. Match the visual language while following the requested product content.
Page background comes from body; large surface colors remain in the palette.