/* ============================================================ Carlos Arias — Brand Tokens v1 Sumi-e: ink on paper, vermillion as seal. SOURCE OF TRUTH. Both /mocks and the Astro theme import this file. Never redeclare these values anywhere else — a hardcoded hex in a mock is how the design system dies. ============================================================ */ :root { /* ---- Ground & ink -------------------------------------- */ /* Washi-toned ground, never pure #FFF. Ink carries a cool/blue bias — real sumi ink is blue-black, not neutral grey. The whole ramp inherits that bias. */ --ca-paper: #F6F5F2; --ca-paper-2: #EFEEEA; --ca-rule: #DFDDD7; --ca-ink-4: #9A9CA3; --ca-ink-3: #6E7078; --ca-ink-2: #3D3F47; --ca-ink: #14151A; /* ---- Seal ---------------------------------------------- */ /* Shuniku (朱肉) — seal ink. Target 1–2% coverage per screen. Considered and rejected: Shu-iro #EA5506 (drifts orange at small sizes), Akane #B7282E (formal to the point of cold). */ --ca-seal: #D0342C; /* ---- Type ---------------------------------------------- */ /* Faces are PLACEHOLDER system stacks. Scale and role assignments are final; swap in self-hosted faces at build. */ --ca-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Songti SC", Georgia, "Times New Roman", serif; --ca-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif; --ca-mono: ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Mono", Menlo, Consolas, monospace; /* 1.333 modular scale — wide intervals suit sparse layouts */ --ca-s1: 0.75rem; /* 12px · mono · eyebrow, meta, date */ --ca-s2: 0.875rem; /* 14px · sans · small, captions, UI */ --ca-s3: 1rem; /* 16px · sans · body */ --ca-s4: 1.333rem; /* 21px · sans · lede, pull-quote */ --ca-s5: 1.777rem; /* 28px · serif · sub-heading */ --ca-s6: 2.369rem; /* 38px · serif · section heading */ --ca-s7: 3.157rem; /* 50px · serif · page title */ --ca-s8: 4.209rem; /* 67px · serif · display */ --ca-lh-tight: 1.1; --ca-lh-head: 1.15; --ca-lh-body: 1.65; /* ---- Layout -------------------------------------------- */ --ca-measure: 62ch; /* running text cap */ --ca-gutter: clamp(1.5rem, 6vw, 7rem); --ca-radius: 2px; /* near-square; not rounded-lg */ --ca-hairline: 1px; /* ---- Motion -------------------------------------------- */ /* Wabi-sabi motion is slow, organic, and never demands attention. Nothing bounces. Nothing pulses. Nothing loops in the viewport competing with the content. If an effect asks to be watched, it belongs to a different brand. Durations run long by web convention — ink moves at its own pace. Easing is asymmetric: quick to start, long to settle, like a brush lifting off paper. */ --ca-dur-quick: 180ms; /* focus, small state changes */ --ca-dur-base: 280ms; /* hover, link underlines */ --ca-dur-slow: 620ms; /* section reveals */ --ca-dur-ink: 1500ms; /* signature moments only */ --ca-ease: cubic-bezier(.33, .1, .25, 1); /* settle */ --ca-ease-press: cubic-bezier(.2, .9, .3, 1); /* hanko */ --ca-reveal-y: 12px; /* travel on scroll reveal — small. */ --ca-stagger: 70ms; /* between siblings */ } /* ---- Ink surface ----------------------------------------- */ /* A section that stays ink-ground in BOTH themes — for committed dark moments where the content itself demands darkness (video, cinematic imagery). Maps the standard token names onto dark values, so anything nested inside needs no changes at all. Use sparingly. One per page, at most. A page that is half dark and half light by accident just looks broken; by intent it reads as an entrance. */ :root { --ca-ink-surface-bg: #121317; --ca-ink-surface-bg-2: #191A1F; --ca-ink-surface-rule: #2A2C33; --ca-ink-surface-fg: #EDECE8; --ca-ink-surface-fg-2: #C2C1BD; --ca-ink-surface-fg-3: #8B8D95; --ca-ink-surface-fg-4: #5E606A; --ca-ink-surface-seal: #E8564A; } .ca-ink-surface { --ca-paper: var(--ca-ink-surface-bg); --ca-paper-2: var(--ca-ink-surface-bg-2); --ca-rule: var(--ca-ink-surface-rule); --ca-ink: var(--ca-ink-surface-fg); --ca-ink-2: var(--ca-ink-surface-fg-2); --ca-ink-3: var(--ca-ink-surface-fg-3); --ca-ink-4: var(--ca-ink-surface-fg-4); --ca-seal: var(--ca-ink-surface-seal); background: var(--ca-paper); color: var(--ca-ink); } /* ---- Dark: ink ground, paper text ------------------------ */ /* The seal lifts on dark — #D0342C muddies against near-black, so dark mode uses a more luminous variant. Not an inversion. */ @media (prefers-color-scheme: dark) { :root { --ca-paper: #121317; --ca-paper-2: #191A1F; --ca-rule: #2A2C33; --ca-ink-4: #5E606A; --ca-ink-3: #8B8D95; --ca-ink-2: #C2C1BD; --ca-ink: #EDECE8; --ca-seal: #E8564A; } } :root[data-theme="dark"] { --ca-paper: #121317; --ca-paper-2: #191A1F; --ca-rule: #2A2C33; --ca-ink-4: #5E606A; --ca-ink-3: #8B8D95; --ca-ink-2: #C2C1BD; --ca-ink: #EDECE8; --ca-seal: #E8564A; } :root[data-theme="light"] { --ca-paper: #F6F5F2; --ca-paper-2: #EFEEEA; --ca-rule: #DFDDD7; --ca-ink-4: #9A9CA3; --ca-ink-3: #6E7078; --ca-ink-2: #3D3F47; --ca-ink: #14151A; --ca-seal: #D0342C; }