Files
wehub-resource-sync 85453da49f
regression / regression-shards (style-16-prod style-9-prod style-17-prod iframe-render-compat variables-prod mp4-h265-sdr, shard-4) (push) Has been cancelled
regression / regression-shards (style-4-prod style-11-prod style-2-prod animejs-adapter typegpu-adapter parallel-capture-regression, shard-5) (push) Has been cancelled
regression / regression-shards (style-7-prod style-8-prod style-10-prod css-spinner-render-compat webm-transparency mp4-h264-sdr webm-vp9, shard-3) (push) Has been cancelled
regression / regression-shards (sub-composition-video style-18-prod raf-ball-render-compat font-variant-numeric sub-comp-t0 sub-comp-id-selector, shard-7) (push) Has been cancelled
Windows render verification / Detect changes (push) Has been cancelled
Windows render verification / Preflight (lint + format) (push) Has been cancelled
Windows render verification / Render on windows-latest (push) Has been cancelled
Windows render verification / Tests on windows-latest (push) Has been cancelled
CI / Detect changes (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Fallow audit (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Typecheck (push) Has been cancelled
CI / Test (push) Has been cancelled
CI / Producer: integration tests (push) Has been cancelled
CI / Producer: unit tests (push) Has been cancelled
CI / File size check (push) Has been cancelled
CI / Test: skills (push) Has been cancelled
CI / Skills: manifest in sync (push) Has been cancelled
CI / CLI: npx shim (macos-latest) (push) Has been cancelled
CI / CLI: npx shim (ubuntu-latest) (push) Has been cancelled
CI / CLI: npx shim (windows-latest) (push) Has been cancelled
CI / SDK: unit + contract + smoke (push) Has been cancelled
CI / Test: runtime contract (push) Has been cancelled
CI / Studio: load smoke (push) Has been cancelled
CI / Smoke: global install (push) Has been cancelled
CI / CLI smoke (required) (push) Has been cancelled
CI / Semantic PR title (push) Has been cancelled
Player perf / Detect changes (push) Has been cancelled
Player perf / Preflight (lint + format) (push) Has been cancelled
Player perf / player-perf (push) Has been cancelled
Player perf / Perf: drift (push) Has been cancelled
Player perf / Perf: fps (push) Has been cancelled
Player perf / Perf: parity (push) Has been cancelled
Player perf / Perf: scrub (push) Has been cancelled
Player perf / Perf: load (push) Has been cancelled
preview-regression / Detect changes (push) Has been cancelled
preview-regression / Preflight (lint + format) (push) Has been cancelled
preview-regression / Preview parity (push) Has been cancelled
preview-regression / preview-regression (push) Has been cancelled
regression / regression (push) Has been cancelled
regression / Detect changes (push) Has been cancelled
regression / Preflight (lint + format) (push) Has been cancelled
regression / regression-shards (hdr-regression style-5-prod style-3-prod mov-prores, shard-1) (push) Has been cancelled
regression / regression-shards (overlay-montage-prod style-12-prod chat missing-host-comp-id png-sequence portrait-edge-bleed, shard-6) (push) Has been cancelled
regression / regression-shards (style-13-prod style-6-prod vignelli-stacking gsap-letters-render-compat audio-mux-parity, shard-8) (push) Has been cancelled
regression / regression-shards (style-15-prod hdr-hlg-regression style-1-prod many-cuts vfr-screen-recording render-symlinked-assets, shard-2) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
CodeQL / Analyze (javascript-typescript) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Docs / Validate docs (push) Has been cancelled
Sync skills to ClawHub / Publish changed skills (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:58:35 +08:00

1269 lines
36 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Coral</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Inter:wght@300;400;600;700&display=swap"
rel="stylesheet"
/>
<style id="ds-tokens">
:root {
--coral: #e85d5d;
--coral-dark: #d44a4a;
--cream: #f5f0e8;
--cream-dark: #e8e0d4;
--ink: #1a1a1a;
--gray: #6b6b6b;
--light-gray: #b0b0b0;
--white: #ffffff;
--display: "Bebas Neue", sans-serif;
--body: "Inter", sans-serif;
--hatch: repeating-linear-gradient(
45deg,
transparent,
transparent 20px,
rgba(0, 0, 0, 0.06) 20px,
rgba(0, 0, 0, 0.06) 40px
);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
background: #0e0e0e;
}
body {
background: var(--cream);
color: var(--ink);
font-family: var(--body);
-webkit-font-smoothing: antialiased;
}
.beb {
font-family: var(--display);
text-transform: uppercase;
}
.eyebrow {
font-family: var(--body);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 4px;
font-size: 13px;
color: var(--coral);
}
/* doc rhythm */
section {
padding: 120px 100px;
position: relative;
}
.sec-head {
display: flex;
align-items: flex-end;
gap: 24px;
margin-bottom: 64px;
border-bottom: 3px solid rgba(26, 26, 26, 0.15);
padding-bottom: 24px;
}
.sec-head .num {
font-family: var(--display);
font-size: 64px;
line-height: 0.8;
color: var(--coral);
}
.sec-head h2 {
font-family: var(--display);
font-size: 64px;
line-height: 0.8;
letter-spacing: 2px;
}
.sec-head .sp {
flex: 1;
}
.sec-head .tag {
font-family: var(--body);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 3px;
font-size: 12px;
color: var(--gray);
}
/* COVER — region split */
.cover {
min-height: 100vh;
display: grid;
grid-template-rows: 38% 62%;
}
.cover .top {
background: var(--coral);
position: relative;
overflow: hidden;
padding: 56px 64px;
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.cover .top::before {
content: "";
position: absolute;
inset: 0;
background: var(--hatch);
pointer-events: none;
}
.cover .top .brand {
font-family: var(--display);
font-size: 40px;
letter-spacing: 6px;
color: var(--ink);
position: relative;
z-index: 2;
}
.cover .top .meta {
text-align: right;
position: relative;
z-index: 2;
}
.cover .top .meta .ml {
font-family: var(--body);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 3px;
font-size: 12px;
color: var(--ink);
opacity: 0.7;
}
.cover .top .meta .mf {
font-family: var(--display);
font-size: 38px;
letter-spacing: 2px;
color: var(--ink);
margin-top: 4px;
}
.cover .top .bignum {
position: absolute;
right: 48px;
bottom: -70px;
font-family: var(--display);
font-size: 340px;
line-height: 0.7;
color: rgba(0, 0, 0, 0.12);
z-index: 1;
}
.cover .bot {
background: var(--cream);
padding: 64px;
display: flex;
flex-direction: column;
justify-content: center;
}
.cover h1 {
font-family: var(--display);
font-size: clamp(80px, 13vw, 190px);
line-height: 0.88;
letter-spacing: 4px;
color: var(--ink);
}
.cover h1 em {
font-style: normal;
color: var(--coral);
}
.cover .rule {
height: 3px;
background: rgba(26, 26, 26, 0.15);
margin: 40px 0 28px;
max-width: 900px;
}
.cover .strap {
font-family: var(--body);
font-weight: 300;
font-size: 24px;
line-height: 1.5;
color: var(--gray);
max-width: 760px;
}
.cover .strap b {
font-weight: 600;
color: var(--ink);
}
/* PALETTE */
.swatches {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0;
border: 1px solid rgba(26, 26, 26, 0.12);
}
.sw {
padding: 0;
}
.sw .chip {
height: 160px;
border-bottom: 1px solid rgba(26, 26, 26, 0.12);
}
.sw:not(:last-child) {
border-right: 1px solid rgba(26, 26, 26, 0.12);
}
.sw .meta {
padding: 22px 24px;
}
.sw .name {
font-family: var(--display);
font-size: 30px;
letter-spacing: 2px;
}
.sw .hex {
font-family: var(--body);
font-size: 13px;
letter-spacing: 1px;
color: var(--gray);
margin-top: 4px;
}
.sw .role {
font-size: 13px;
line-height: 1.5;
color: var(--gray);
margin-top: 12px;
}
.palette-row {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
.palette-row + .palette-row .sw .chip {
border-top: 0;
}
/* TYPE */
.type-row {
display: grid;
grid-template-columns: 260px 1fr;
border-bottom: 1px solid rgba(26, 26, 26, 0.12);
align-items: center;
}
.type-row .lbl {
padding: 28px 0;
}
.type-row .tok {
font-family: var(--body);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 2px;
font-size: 13px;
}
.type-row .meta {
font-size: 12px;
color: var(--gray);
margin-top: 8px;
line-height: 1.6;
}
.type-row .spec {
padding: 28px 0 28px 40px;
border-left: 1px solid rgba(26, 26, 26, 0.12);
overflow: hidden;
}
/* COMPONENTS */
.comp-note {
font-family: var(--body);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 2px;
font-size: 12px;
color: var(--gray);
margin-bottom: 18px;
}
.comp-grid {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 28px;
margin-bottom: 56px;
}
.span3 {
grid-column: span 3;
}
.span4 {
grid-column: span 4;
}
.span6 {
grid-column: span 6;
}
.c-card {
background: var(--white);
border-top: 5px solid var(--coral);
padding: 32px;
height: 100%;
}
.c-card .ico {
width: 48px;
height: 48px;
background: var(--coral);
color: var(--white);
font-family: var(--display);
font-size: 24px;
display: grid;
place-items: center;
margin-bottom: 24px;
}
.c-card .t {
font-family: var(--display);
font-size: 34px;
letter-spacing: 1px;
line-height: 1.05;
}
.c-card .x {
font-size: 14px;
line-height: 1.6;
color: var(--gray);
margin-top: 14px;
}
.c-card .stat {
font-family: var(--display);
font-size: 48px;
color: var(--coral);
margin-top: 24px;
line-height: 1;
}
.c-side {
background: var(--white);
border-left: 4px solid var(--coral);
padding: 20px 24px;
margin-bottom: 18px;
}
.c-side .v {
font-family: var(--display);
font-size: 44px;
letter-spacing: 1px;
line-height: 1;
}
.c-side .l {
font-family: var(--body);
font-size: 12px;
letter-spacing: 1px;
color: var(--gray);
margin-top: 6px;
}
.c-accent {
width: 80px;
height: 4px;
background: var(--coral);
}
.timeline {
position: relative;
height: 120px;
margin-top: 20px;
}
.timeline .line {
position: absolute;
top: 20px;
left: 0;
right: 0;
height: 4px;
background: var(--ink);
}
.timeline .pt {
position: absolute;
top: 12px;
width: 20px;
height: 20px;
border-radius: 50%;
background: var(--coral);
border: 4px solid var(--cream);
}
.timeline .lab {
position: absolute;
top: 44px;
font-family: var(--display);
font-size: 22px;
letter-spacing: 1px;
transform: translateX(-50%);
}
.infobar {
background: var(--cream-dark);
display: flex;
justify-content: space-between;
align-items: center;
padding: 28px 36px;
}
.infobar .bt {
font-family: var(--display);
font-size: 44px;
letter-spacing: 2px;
}
.infobar .bm {
font-family: var(--body);
font-size: 12px;
letter-spacing: 2px;
text-transform: uppercase;
color: var(--gray);
}
/* COMPOSITIONS */
.gallery {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
}
.fw .flabel {
display: flex;
gap: 14px;
align-items: baseline;
margin-bottom: 16px;
font-family: var(--body);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 2px;
font-size: 12px;
color: var(--gray);
}
.fw .flabel b {
color: var(--ink);
letter-spacing: 1px;
}
.frame {
aspect-ratio: 16/9;
container-type: size;
position: relative;
overflow: hidden;
background: var(--cream);
box-shadow: 0 2px 0 rgba(26, 26, 26, 0.1);
}
.frame .hatch {
position: absolute;
inset: 0;
background: var(--hatch);
pointer-events: none;
z-index: 1;
}
.frame .z {
position: relative;
z-index: 2;
}
/* f1 cover region split */
.f1 {
display: grid;
grid-template-rows: 36% 64%;
}
.f1 .t {
background: var(--coral);
position: relative;
overflow: hidden;
display: flex;
justify-content: space-between;
align-items: flex-start;
padding: 2.6cqw 3cqw;
}
.f1 .t .brand {
font-family: var(--display);
font-size: 2cqw;
letter-spacing: 0.4cqw;
color: var(--ink);
}
.f1 .t .mf {
font-family: var(--display);
font-size: 1.9cqw;
letter-spacing: 0.1cqw;
color: var(--ink);
}
.f1 .t .bn {
position: absolute;
right: 2cqw;
bottom: -3cqw;
font-family: var(--display);
font-size: 16cqw;
line-height: 0.7;
color: rgba(0, 0, 0, 0.12);
}
.f1 .b {
background: var(--cream);
padding: 0 3cqw;
display: flex;
flex-direction: column;
justify-content: center;
}
.f1 .b h3 {
font-family: var(--display);
font-size: 8.5cqw;
line-height: 0.86;
letter-spacing: 0.3cqw;
color: var(--ink);
}
.f1 .b h3 em {
font-style: normal;
color: var(--coral);
}
.f1 .b .ey {
font-family: var(--body);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.3cqw;
font-size: 0.95cqw;
color: var(--coral);
margin-bottom: 1.2cqw;
}
/* f2 feature stat — coral full + giant numeral */
.f2 {
background: var(--coral);
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
justify-content: center;
padding: 0 7cqw;
}
.f2 .bn {
position: absolute;
right: 3cqw;
top: -2cqw;
font-family: var(--display);
font-size: 34cqw;
line-height: 0.8;
color: rgba(0, 0, 0, 0.12);
z-index: 1;
}
.f2 .ey {
font-family: var(--body);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.3cqw;
font-size: 1cqw;
color: var(--ink);
margin-bottom: 1.4cqw;
}
.f2 h3 {
font-family: var(--display);
font-size: 7cqw;
line-height: 0.9;
letter-spacing: 0.2cqw;
color: var(--ink);
}
.f2 .x {
font-family: var(--body);
font-weight: 300;
font-size: 1.5cqw;
line-height: 1.5;
color: var(--ink);
max-width: 44cqw;
margin-top: 1.6cqw;
}
/* f3 quote — coral panel + ink panel */
.f3 {
display: grid;
grid-template-columns: 40% 60%;
}
.f3 .l {
background: var(--coral);
position: relative;
overflow: hidden;
display: flex;
align-items: flex-start;
padding: 3cqw;
}
.f3 .l .mark {
font-family: var(--display);
font-size: 24cqw;
line-height: 0.6;
color: rgba(0, 0, 0, 0.35);
}
.f3 .r {
background: var(--ink);
display: flex;
flex-direction: column;
justify-content: center;
padding: 0 5cqw;
}
.f3 .r .q {
font-family: var(--body);
font-weight: 300;
font-size: 2.6cqw;
line-height: 1.35;
color: var(--cream);
}
.f3 .r .acc {
width: 4cqw;
height: 0.25cqw;
background: var(--coral);
margin: 2.4cqw 0 1.4cqw;
}
.f3 .r .at {
font-family: var(--body);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.25cqw;
font-size: 0.95cqw;
color: var(--cream);
}
.f3 .r .ro {
font-family: var(--body);
font-size: 0.85cqw;
letter-spacing: 0.05cqw;
color: var(--light-gray);
margin-top: 0.4cqw;
}
/* f4 closing — cream + coral band */
.f4 {
background: var(--cream);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
position: relative;
}
.f4 .ey {
font-family: var(--body);
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.4cqw;
font-size: 1cqw;
color: var(--coral);
margin-bottom: 1.6cqw;
}
.f4 h3 {
font-family: var(--display);
font-size: 9cqw;
line-height: 0.86;
letter-spacing: 0.3cqw;
color: var(--ink);
}
.f4 .acc {
width: 5cqw;
height: 0.25cqw;
background: var(--coral);
margin-top: 2.4cqw;
}
.f4 .band {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 8cqw;
background: var(--coral);
overflow: hidden;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 4cqw;
}
.f4 .band::before {
content: "";
position: absolute;
inset: 0;
background: var(--hatch);
}
.f4 .band span {
position: relative;
font-family: var(--display);
font-size: 2.2cqw;
letter-spacing: 0.2cqw;
color: var(--ink);
}
/* PRINCIPLES */
.dos {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
}
.do-card {
padding: 40px;
}
.do-card.do {
background: var(--ink);
color: var(--cream);
}
.do-card.dont {
background: var(--white);
border-top: 5px solid var(--coral);
}
.do-card h4 {
font-family: var(--display);
font-size: 40px;
letter-spacing: 2px;
margin-bottom: 24px;
}
.do-card.do h4 {
color: var(--coral);
}
.do-card ul {
list-style: none;
}
.do-card li {
font-size: 16px;
line-height: 1.55;
padding-left: 26px;
position: relative;
margin-bottom: 14px;
}
.do-card li::before {
position: absolute;
left: 0;
font-family: var(--display);
font-size: 18px;
}
.do-card.do li::before {
content: "+";
color: var(--coral);
}
.do-card.dont li::before {
content: "\2715";
color: var(--coral);
}
.do-card.dont li {
color: var(--gray);
}
.foot {
padding: 64px 100px;
background: var(--ink);
color: var(--cream);
display: flex;
justify-content: space-between;
align-items: center;
}
.foot .l {
font-family: var(--display);
font-size: 30px;
letter-spacing: 3px;
}
.foot .r {
font-family: var(--body);
font-weight: 600;
text-transform: uppercase;
letter-spacing: 3px;
font-size: 12px;
color: var(--light-gray);
}
@media (max-width: 1100px) {
.gallery {
grid-template-columns: 1fr;
}
.swatches,
.palette-row {
grid-template-columns: 1fr 1fr;
}
}
</style>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Bebas+Neue&display=swap"
/>
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
/>
<style id="ft-override">
:root {
--primary: #f5f0e8 !important;
--secondary: #1a1a1a !important;
--tertiary: #6b6b6b !important;
--accent: #e85d5d !important;
--f-disp: "Bebas Neue", sans-serif !important;
--f-body: "Inter", sans-serif !important;
--coral: #e85d5d !important;
--cream: #f5f0e8 !important;
--ink: #1a1a1a !important;
--gray: #6b6b6b !important;
--display: "Bebas Neue", sans-serif !important;
--body: "Inter", sans-serif !important;
--coral-dark: #d44a4a !important;
--cream-dark: #e8e0d4 !important;
--light-gray: #b0b0b0 !important;
--white: #ffffff !important;
}
</style>
</head>
<body>
<!-- COVER -->
<section class="cover" style="padding: 0">
<div class="top">
<div class="brand">Coral</div>
<div class="meta">
<div class="ml">Frame System</div>
<div class="mf">Vol. 01 / 1920×1080</div>
</div>
<div class="bignum">01</div>
</div>
<div class="bot">
<h1>Solid planes,<br /><em>hard edges.</em></h1>
<div class="rule"></div>
<div class="strap">
<b>A bold magazine-poster system in motion.</b> Three surfaces — coral fire, ink black,
warm cream — meeting at hard color edges, animated by Bebas Neue caps and a constant 45°
hatch.
</div>
</div>
</section>
<!-- PALETTE -->
<section>
<div class="sec-head">
<span class="num">01</span>
<h2>Palette</h2>
<span class="sp"></span><span class="tag">Three surfaces + ink + neutrals</span>
</div>
<div class="swatches palette-row">
<div class="sw">
<div class="chip" style="background: var(--coral)"></div>
<div class="meta">
<div class="name">Coral</div>
<div class="hex">#E85D5D</div>
<div class="role">The signature — accent and full-region environment.</div>
</div>
</div>
<div class="sw">
<div class="chip" style="background: var(--coral-dark)"></div>
<div class="meta">
<div class="name">Coral Dark</div>
<div class="hex">#D44A4A</div>
<div class="role">Gradient stop + chart comparison series.</div>
</div>
</div>
<div class="sw">
<div class="chip" style="background: var(--cream)"></div>
<div class="meta">
<div class="name">Cream</div>
<div class="hex">#F5F0E8</div>
<div class="role">The warm canvas — magazine paper.</div>
</div>
</div>
<div class="sw">
<div class="chip" style="background: var(--ink)"></div>
<div class="meta">
<div class="name">Black</div>
<div class="hex">#1A1A1A</div>
<div class="role">Strongest surface; quote + statement grounds.</div>
</div>
</div>
</div>
<div class="swatches palette-row" style="border-top: 0">
<div class="sw">
<div class="chip" style="background: var(--cream-dark)"></div>
<div class="meta">
<div class="name">Cream Dark</div>
<div class="hex">#E8E0D4</div>
<div class="role">Subtle region differentiation; info bars.</div>
</div>
</div>
<div class="sw">
<div class="chip" style="background: var(--gray)"></div>
<div class="meta">
<div class="name">Gray</div>
<div class="hex">#6B6B6B</div>
<div class="role">Body paragraphs, labels, meta.</div>
</div>
</div>
<div class="sw">
<div class="chip" style="background: var(--light-gray)"></div>
<div class="meta">
<div class="name">Light Gray</div>
<div class="hex">#B0B0B0</div>
<div class="role">Tertiary text on ink surfaces.</div>
</div>
</div>
<div class="sw">
<div
class="chip"
style="background: var(--white); box-shadow: inset 0 0 0 1px rgba(26, 26, 26, 0.12)"
></div>
<div class="meta">
<div class="name">White</div>
<div class="hex">#FFFFFF</div>
<div class="role">Card fills against coral or cream.</div>
</div>
</div>
</div>
</section>
<!-- TYPOGRAPHY -->
<section style="background: var(--cream-dark)">
<div class="sec-head">
<span class="num">02</span>
<h2>Typography</h2>
<span class="sp"></span><span class="tag">Bebas Neue + Inter</span>
</div>
<div class="type-row">
<div class="lbl">
<div class="tok">hero-title</div>
<div class="meta">Bebas Neue · 120px · 4px track<br />uppercase always · line 0.9</div>
</div>
<div class="spec">
<span class="beb" style="font-size: 104px; letter-spacing: 4px; line-height: 0.9"
>Coral Fire</span
>
</div>
</div>
<div class="type-row">
<div class="lbl">
<div class="tok">jumbo-feature</div>
<div class="meta">Bebas Neue · up to 200px · 12px track</div>
</div>
<div class="spec">
<span class="beb" style="font-size: 120px; letter-spacing: 12px; color: var(--coral)"
>2026</span
>
</div>
</div>
<div class="type-row">
<div class="lbl">
<div class="tok">section-headline</div>
<div class="meta">Bebas Neue · 80px · 2px track</div>
</div>
<div class="spec">
<span class="beb" style="font-size: 72px; letter-spacing: 2px">Hard Color Edges</span>
</div>
</div>
<div class="type-row">
<div class="lbl">
<div class="tok">body-light</div>
<div class="meta">Inter · weight 300 · pull-quote voice</div>
</div>
<div class="spec">
<p style="font-weight: 300; font-size: 28px; line-height: 1.5; max-width: 760px">
The voice break — Inter Light takes over when content needs to feel personal rather than
declarative.
</p>
</div>
</div>
<div class="type-row" style="border-bottom: 0">
<div class="lbl">
<div class="tok">section-label</div>
<div class="meta">Inter · 700 · 4px track · uppercase</div>
</div>
<div class="spec"><span class="eyebrow">Fig. 02 — Type Specimen</span></div>
</div>
</section>
<!-- COMPONENTS -->
<section>
<div class="sec-head">
<span class="num">03</span>
<h2>Components</h2>
<span class="sp"></span><span class="tag">Flat · hard edges · coral borders</span>
</div>
<div class="comp-note">Column cards — white fill, 5px coral top border, 48px icon square</div>
<div class="comp-grid">
<div class="span4">
<div class="c-card">
<div class="ico">A</div>
<div class="t">Region Split</div>
<div class="x">Solid color planes meet at a hard edge. The boundary is the layout.</div>
<div class="stat">01</div>
</div>
</div>
<div class="span4">
<div class="c-card">
<div class="ico">B</div>
<div class="t">Diagonal Hatch</div>
<div class="x">A 45° 6%-opacity overlay gives coral regions texture without depth.</div>
<div class="stat">45°</div>
</div>
</div>
<div class="span4">
<div class="c-card">
<div class="ico">C</div>
<div class="t">Wallpaper Numeral</div>
<div class="x">Oversized Bebas at 12% opacity sits behind a region's title.</div>
<div class="stat">12%</div>
</div>
</div>
</div>
<div class="comp-grid">
<div class="span4">
<div class="comp-note">Sidebar tiles — 4px coral left border</div>
<div class="c-side">
<div class="v">240%</div>
<div class="l">Output Lift</div>
</div>
<div class="c-side">
<div class="v">3.4×</div>
<div class="l">Faster Cuts</div>
</div>
<div class="c-side" style="margin-bottom: 0">
<div class="v">12K</div>
<div class="l">Frames Shipped</div>
</div>
</div>
<div class="span4">
<div class="comp-note">Accent rule + info bar</div>
<div class="c-accent" style="margin-bottom: 28px"></div>
<div class="infobar">
<span class="bt">Coverage</span><span class="bm">Coral · Ink · Cream</span>
</div>
<div style="margin-top: 28px" class="comp-note">Card icon</div>
<div
class="ico"
style="
width: 48px;
height: 48px;
background: var(--coral);
color: #fff;
font-family: var(--display);
font-size: 24px;
display: grid;
place-items: center;
"
>
</div>
</div>
<div class="span4">
<div class="comp-note">Timeline — ink line, coral nodes, cream halo</div>
<div class="timeline">
<div class="line"></div>
<div class="pt" style="left: 4%"></div>
<div class="lab" style="left: 6%">Plan</div>
<div class="pt" style="left: 34%"></div>
<div class="lab" style="left: 36%">Block</div>
<div class="pt" style="left: 64%"></div>
<div class="lab" style="left: 66%">Set</div>
<div class="pt" style="left: 92%"></div>
<div class="lab" style="left: 90%">Ship</div>
</div>
</div>
</div>
</section>
<!-- COMPOSITIONS -->
<section style="background: var(--cream-dark)">
<div class="sec-head">
<span class="num">04</span>
<h2>Frame Compositions</h2>
<span class="sp"></span><span class="tag">True 16:9 · cqw scaled</span>
</div>
<div class="gallery">
<div class="fw">
<div class="flabel"><b>Region-Split Cover</b><span>· identity · coral / cream</span></div>
<div class="frame f1">
<div class="t">
<div class="brand">Coral</div>
<div class="mf">Vol. 01</div>
<div class="bn">01</div>
</div>
<div class="b">
<div class="ey">Frame System</div>
<h3>Solid planes,<br /><em>hard edges.</em></h3>
</div>
</div>
</div>
<div class="fw">
<div class="flabel">
<b>Feature Stat</b><span>· coral environment · wallpaper numeral</span>
</div>
<div class="frame f2">
<div class="bn">240</div>
<div class="z">
<div class="ey">By The Numbers</div>
<h3>Two hundred<br />forty percent.</h3>
<p class="x">
Output lift across the system — the figure carries the region while the hatch gives
it texture.
</p>
</div>
</div>
</div>
<div class="fw">
<div class="flabel">
<b>Quote Layout</b><span>· coral panel + ink panel · giant mark</span>
</div>
<div class="frame f3">
<div class="l"><div class="mark">&ldquo;</div></div>
<div class="r">
<div class="q">Bebas declares.<br />Inter explains.</div>
<div class="acc"></div>
<div class="at">The System Voice</div>
<div class="ro">Typographic Principle</div>
</div>
</div>
</div>
<div class="fw">
<div class="flabel">
<b>Closing Plate</b><span>· closer · cream + coral band · centered</span>
</div>
<div class="frame f4">
<div class="ey">Coral — Frame System</div>
<h3>Meet at<br />the edge.</h3>
<div class="acc"></div>
<div class="band"><span>Thank You</span><span>2026</span></div>
</div>
</div>
</div>
</section>
<!-- PRINCIPLES -->
<section>
<div class="sec-head">
<span class="num">05</span>
<h2>Frame Rules</h2>
<span class="sp"></span><span class="tag">Flat · hard-edge · coral</span>
</div>
<div class="dos">
<div class="do-card do">
<h4>Do</h4>
<ul>
<li>Compose as multi-surface region splits — coral, ink, cream at hard edges.</li>
<li>Set every Bebas element uppercase with 112px letter-spacing.</li>
<li>Render eyebrows in coral on cream/ink, in ink on coral.</li>
<li>Apply the 45° hatch at 6% opacity on coral regions.</li>
<li>Fill underweight coral regions with a 12%-opacity wallpaper numeral.</li>
</ul>
</div>
<div class="do-card dont">
<h4>Don't</h4>
<ul>
<li>Never render Bebas in sentence case or without tracking.</li>
<li>No fourth surface; no drop shadows, elevations, or rounded rectangles.</li>
<li>No white headlines on coral — Bebas on coral is always ink.</li>
<li>No gray headlines; gray is body and meta only.</li>
<li>Don't pair Bebas with a different body sans than Inter.</li>
</ul>
</div>
</div>
</section>
<!-- CAPTIONS — preview of caption-skin.html (the preset's lower-third karaoke look) -->
<style>
/* mirrors caption-skin.html; the skin's --cap-* vocab mapped to this preset's tokens */
.capdemo {
--cap-ink: var(--ink);
--cap-canvas: var(--cream);
--cap-accent: var(--coral);
--cap-accent-2: var(--coral-dark);
}
.capdemo .stage {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 16.67cqh;
display: flex;
align-items: center;
justify-content: center;
z-index: 4;
}
.capdemo .pill {
max-width: 80cqw;
padding: 1.4cqw 3cqw 1.6cqw;
background: var(--cap-canvas);
border: 1px solid var(--cap-ink);
border-radius: 0;
}
.capdemo .line {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 0.1em 0.3em;
font-family: var(--display);
font-weight: 400;
text-transform: uppercase;
font-size: 3.6cqw;
line-height: 1.04;
letter-spacing: 0.06em;
}
.capdemo .w {
display: inline-block;
padding: 0 0.12em;
color: color-mix(in srgb, var(--cap-ink) 40%, var(--cap-canvas));
}
.capdemo .w.spoken {
color: var(--cap-ink);
}
.capdemo .w.active {
color: var(--cap-ink);
background: var(--cap-accent);
box-shadow: 0 0 0 0.1em var(--cap-accent);
}
.capdemo .bandline {
position: absolute;
left: 0;
right: 0;
bottom: 16.67cqh;
border-top: 1px dashed rgba(26, 26, 26, 0.28);
z-index: 3;
}
.capdemo .bandtag {
position: absolute;
right: 3cqw;
bottom: calc(16.67cqh + 0.7cqw);
font-family: var(--body);
font-weight: 600;
text-transform: uppercase;
font-size: 0.85cqw;
letter-spacing: 0.1cqw;
color: var(--gray);
z-index: 4;
}
</style>
<section>
<div class="sec-head">
<span class="num">06</span>
<h2>Captions</h2>
<span class="sp"></span><span class="tag">Lower-third · Karaoke</span>
</div>
<div class="gallery">
<div class="fw">
<div class="flabel"><b>Active line</b><span>· spoken · current · upcoming</span></div>
<div class="frame capdemo">
<div class="hatch" style="background: var(--hatch); opacity: 0.5"></div>
<div class="bandline"></div>
<div class="bandtag">caption band · 16.7%</div>
<div class="stage">
<div class="pill">
<div class="line">
<span class="w spoken">Built</span>
<span class="w spoken">for</span>
<span class="w active">teams</span>
<span class="w">who</span>
<span class="w">ship.</span>
</div>
</div>
</div>
</div>
</div>
<div class="fw">
<div class="flabel"><b>Settled line</b><span>· all spoken · fill cleared</span></div>
<div class="frame capdemo">
<div class="stage">
<div class="pill">
<div class="line">
<span class="w spoken">Ship</span>
<span class="w spoken">faster</span>
<span class="w spoken">today.</span>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<div class="foot">
<span class="l">Coral</span>
<span class="r">Frame Showcase · Atoms Sacred · Composition Free</span>
</div>
<template id="__bundler_thumbnail">
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<rect width="100" height="100" fill="#F5F0E8" />
<rect width="100" height="42" fill="#E85D5D" />
<rect x="20" y="60" width="60" height="9" fill="#1A1A1A" />
<rect x="20" y="74" width="38" height="9" fill="#E85D5D" />
</svg>
</template>
</body>
</html>