@font-face { font-family: "URW Gothic L Demi"; src: url("../fonts/urw_gothic_l_demi.ttf") format("truetype"); font-style: normal; font-weight: 600; font-display: swap; } @font-face { font-family: "Nunito"; src: url("../fonts/Nunito-VariableFont_wght.ttf") format("truetype"); font-style: normal; font-weight: 200 900; font-display: swap; } @font-face { font-family: "Nunito"; src: url("../fonts/Nunito-Italic-VariableFont_wght.ttf") format("truetype"); font-style: italic; font-weight: 200 900; font-display: swap; } :root { --ob-blue: #00a7e6; --ob-blue-soft: #33b9eb; --ob-blue-shade-1: #0086b8; --ob-blue-shade-2: #00648a; --ob-blue-shade-3: #00435c; --ob-blue-shade-4: #00212e; --ob-blue-tint-1: #33b9eb; --ob-blue-tint-2: #66caf0; --ob-blue-tint-3: #99dcf5; --ob-blue-tint-4: #ccedfa; --ob-accent: #f59c00; --ob-dark: #343537; --ob-slate: #343537; --ob-white: #ffffff; --ob-bg: #f5fbfe; --ob-surface: #ffffff; --ob-surface-soft: #99dcf5; --ob-text: var(--ob-dark); --ob-text-soft: rgba(52, 53, 55, 0.72); --ob-border: rgba(52, 53, 55, 0.15); --ob-code-bg: #eef3f6; --ob-success: #188f5c; --ob-warning: var(--ob-accent); --ob-danger: #c43b3b; --ob-shadow: 0 18px 40px rgba(52, 53, 55, 0.11); --ob-focus: 0 0 0 3px rgba(0, 167, 230, 0.32); --ob-nav-bg: linear-gradient(178deg, #343537 0%, #2d2f31 100%); --ob-nav-text: #ffffff; --ob-nav-border: rgba(255, 255, 255, 0.14); --ob-nav-link: rgba(255, 255, 255, 0.79); --ob-nav-link-active-bg: rgba(51, 185, 235, 0.18); --ob-nav-link-active-border: rgba(255, 255, 255, 0.24); --ob-nav-ghost-border: rgba(255, 255, 255, 0.3); --ob-nav-ghost-hover: rgba(255, 255, 255, 0.14); --ob-btn-light-bg: #ffffff; --ob-btn-light-text: var(--ob-dark); --ob-btn-light-border: var(--ob-border); --ob-btn-light-hover-border: rgba(0, 167, 230, 0.48); --ob-toast-bg: #111114; --ob-toast-text: #ffffff; --ob-radius: 14px; --ob-radius-lg: 20px; --ob-font-body: "Nunito", "Segoe UI", Arial, sans-serif; --ob-font-heading: "Nunito", "Segoe UI", Arial, sans-serif; --ob-font-strong: "URW Gothic L Demi", "Nunito", "Segoe UI", Arial, sans-serif; --ob-nav-width: 282px; --ob-content-max: 1140px; } html[data-theme="dark"] { --ob-bg: #14171b; --ob-surface: #22252a; --ob-surface-soft: #1f2328; --ob-text: #f5f6f7; --ob-text-soft: rgba(245, 246, 247, 0.72); --ob-border: rgba(245, 246, 247, 0.16); --ob-code-bg: #1a1d21; --ob-shadow: 0 16px 34px rgba(0, 0, 0, 0.32); --ob-nav-bg: linear-gradient(180deg, #17181b 0%, #1f2429 100%); --ob-nav-link: rgba(245, 246, 247, 0.82); --ob-nav-link-active-bg: rgba(51, 185, 235, 0.28); --ob-btn-light-bg: #272b31; --ob-btn-light-text: #f5f6f7; --ob-btn-light-border: rgba(245, 246, 247, 0.25); --ob-btn-light-hover-border: rgba(102, 202, 240, 0.72); --ob-toast-bg: #0f1012; } * { box-sizing: border-box; } html { scroll-behavior: smooth; color-scheme: light; } html[data-theme="dark"] { color-scheme: dark; } body { margin: 0; background: var(--ob-bg); color: var(--ob-text); font-family: var(--ob-font-body); line-height: 1.58; } a { color: inherit; text-decoration: none; } button, a { font: inherit; } a:focus, button:focus, input:focus, textarea:focus { outline: none; box-shadow: var(--ob-focus); } .skip-link { position: absolute; left: 12px; top: 12px; background: #111114; color: #ffffff; border-radius: 10px; padding: 8px 12px; transform: translateY(-160%); z-index: 100; } .skip-link:focus { transform: translateY(0); } .app { display: grid; grid-template-columns: var(--ob-nav-width) 1fr; min-height: 100vh; } .sidenav { position: sticky; top: 0; height: 100vh; padding: 18px; background: var(--ob-nav-bg); color: var(--ob-nav-text); border-right: 1px solid var(--ob-nav-border); display: flex; flex-direction: column; gap: 14px; } .sidenav__top { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; } .sidenav__controls { display: flex; align-items: center; justify-content: flex-start; gap: 6px; width: 100%; } .brand { min-width: 0; } .brand__logo { display: block; width: 164px; height: auto; } .sidenav__toggle { display: none; } .sidenav__nav { display: flex; flex-direction: column; gap: 4px; } .navlink { border-radius: 11px; padding: 9px 10px; color: var(--ob-nav-link); border: 1px solid transparent; } .navlink:hover, .navlink.is-active { background: var(--ob-nav-link-active-bg); color: var(--ob-nav-text); border-color: var(--ob-nav-link-active-border); } .main { padding: 30px 28px 52px; } .section { max-width: var(--ob-content-max); margin: 0 auto 34px; scroll-margin-top: 20px; } .hero__card { border: 1px solid rgba(245, 251, 254, 0.14); border-radius: 24px; background: linear-gradient(135deg, #343537 0%, #22262a 48%, #203745 100%); padding: clamp(22px, 3vw, 36px); box-shadow: 0 26px 54px rgba(15, 19, 23, 0.38); position: relative; overflow: hidden; isolation: isolate; } .hero__card::before { content: ""; position: absolute; right: -80px; top: -90px; width: 300px; height: 300px; border-radius: 999px; background: radial-gradient(circle, rgba(51, 185, 235, 0.48) 0%, rgba(0, 167, 230, 0) 70%); z-index: 0; } .hero__card::after { content: ""; position: absolute; left: -56px; bottom: -70px; width: 260px; height: 220px; border-radius: 999px; background: radial-gradient(circle, rgba(245, 156, 0, 0.25) 0%, rgba(245, 156, 0, 0) 70%); z-index: 0; } .hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr); gap: clamp(18px, 2.4vw, 28px); } .hero__main { max-width: 70ch; } .hero__actions { margin-top: 8px; } .hero .kicker { color: rgba(245, 251, 254, 0.8); } .hero h1 { color: #f5fbfe; } .hero .lead { color: rgba(245, 251, 254, 0.86); } .hero .pill { border-color: rgba(245, 251, 254, 0.28); color: rgba(245, 251, 254, 0.9); background: rgba(245, 251, 254, 0.09); } .hero .pill--brand { border-color: rgba(0, 167, 230, 0.52); color: #f5fbfe; background: rgba(0, 167, 230, 0.24); } .hero .btn--light { background: rgba(245, 251, 254, 0.1); border-color: rgba(245, 251, 254, 0.32); color: #f5fbfe; } .hero .btn--light:hover { border-color: rgba(0, 167, 230, 0.84); } .hero__signal { display: grid; gap: 12px; border: 1px solid rgba(245, 251, 254, 0.18); border-radius: 18px; background: linear-gradient(160deg, rgba(245, 251, 254, 0.15), rgba(245, 251, 254, 0.06)); padding: 14px; backdrop-filter: blur(2px); } .hero__logo-stage { border: 1px solid rgba(245, 251, 254, 0.18); border-radius: 14px; background: linear-gradient(145deg, rgba(28, 31, 34, 0.88), rgba(43, 48, 53, 0.84)); min-height: 94px; display: flex; align-items: center; justify-content: center; padding: 14px; } .hero__logo-stage img { width: min(100%, 200px); height: auto; } .hero__metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .hero__metric { border: 1px solid rgba(245, 251, 254, 0.2); border-radius: 12px; background: rgba(16, 20, 24, 0.46); padding: 10px; display: grid; gap: 5px; } .hero__metric-chip { width: 18px; height: 18px; border-radius: 999px; border: 1px solid rgba(245, 251, 254, 0.56); } .hero__metric-label { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(245, 251, 254, 0.72); } .hero__metric strong { color: #f5fbfe; font-size: 13px; } .hero__tagline { margin: 0; color: rgba(245, 251, 254, 0.9); font-size: 13px; } .kicker { margin: 0; font-size: 12px; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ob-text-soft); } h1, h2, h3, h4, p { margin-top: 0; } h1 { font-family: var(--ob-font-strong); } h2, h3, h4, th { font-family: var(--ob-font-heading); font-weight: 700; } h1 { margin: 12px 0; font-weight: 600; font-size: clamp(38px, 5vw, 62px); line-height: 1.02; max-width: 16ch; } h2 { margin: 0; font-size: clamp(26px, 3.1vw, 32px); line-height: 1.12; } h3 { margin-bottom: 10px; font-size: 21px; line-height: 1.2; } .lead { max-width: 72ch; margin-bottom: 14px; font-size: clamp(17px, 2vw, 20px); } .section__head { margin-bottom: 18px; } .muted { color: var(--ob-text-soft); } .small { font-size: 12px; } .grid { display: grid; gap: 22px; } .grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .card { border: 1px solid var(--ob-border); border-radius: var(--ob-radius); background: var(--ob-surface); box-shadow: var(--ob-shadow); padding: 22px; } .section > .grid, .section > .card { margin-top: 22px; } .metric { min-height: 138px; } .quote { margin-top: 12px; border-left: 4px solid var(--ob-blue); padding: 10px 12px; background: rgba(0, 167, 230, 0.08); border-radius: 10px; } .quote__text { margin: 0; font-family: var(--ob-font-body); font-weight: 700; } .table-wrap { overflow-x: auto; } .table { width: 100%; border-collapse: collapse; min-width: 560px; } .table th, .table td { text-align: left; border-bottom: 1px solid var(--ob-border); padding: 11px 10px; vertical-align: top; } .table th { color: var(--ob-text); font-size: 13px; text-transform: uppercase; letter-spacing: 0.08em; } .table td { color: var(--ob-text-soft); } .logo-grid { display: grid; gap: 12px; } .logo-stage { min-height: 116px; border-radius: 14px; border: 1px solid var(--ob-border); display: flex; align-items: center; justify-content: center; padding: 16px; } .logo-stage img { max-width: 100%; max-height: 66px; width: auto; height: auto; } .logo-stage--icon img { max-height: 88px; } .logo-stage--light { background: #ffffff; } .logo-stage--dark { background: #343537; } .asset-actions { margin-top: 12px; } .logo-rules { margin-top: 16px; } .swatch { display: flex; flex-direction: column; gap: 12px; } .swatch__chip { height: 62px; border-radius: 12px; border: 1px solid var(--ob-border); } .swatch__meta { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; } .swatch__meta span { color: var(--ob-text-soft); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; } .tone-swatches { display: grid; gap: 10px; } .tone-swatch { display: flex; align-items: center; gap: 10px; width: 100%; border: 1px solid var(--ob-border); border-radius: 10px; background: var(--ob-surface); color: var(--ob-text); padding: 8px 10px; cursor: pointer; text-align: left; } .tone-swatch:hover { border-color: var(--ob-blue-soft); } .tone-swatch__chip { width: 16px; height: 16px; border-radius: 999px; border: 1px solid rgba(0, 0, 0, 0.2); flex: 0 0 auto; } .tone-swatch__value { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; } .color-usage { margin-top: 16px; } .display-sample { font-family: var(--ob-font-body); font-weight: 700; font-size: clamp(30px, 4vw, 46px); line-height: 1.08; margin-bottom: 18px; } .type-sample { border: 1px solid var(--ob-border); border-radius: 12px; background: rgba(51, 185, 235, 0.08); padding: 14px; } .type-kicker { margin: 0 0 10px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ob-text-soft); } .type-h1-demo { margin: 0 0 12px; font-family: var(--ob-font-strong); font-weight: 600; font-size: clamp(22px, 3.2vw, 32px); line-height: 1.04; white-space: nowrap; } .type-h2-demo { margin: 0 0 10px; font-family: var(--ob-font-heading); font-weight: 700; font-size: clamp(20px, 2.6vw, 30px); line-height: 1.12; white-space: nowrap; } .type-body-demo { margin: 0 0 10px; font-family: var(--ob-font-body); font-size: 17px; line-height: 1.58; } .type-meta { margin: 10px 0 0; font-size: 13px; color: var(--ob-text-soft); } .type-compare { margin-top: 12px; } .type-compare-line { margin: 0 0 12px; font-size: clamp(24px, 2.8vw, 34px); line-height: 1.16; } .type-compare-line--body { font-family: var(--ob-font-body); font-weight: 700; } .type-compare-line--strong { font-family: var(--ob-font-strong); font-weight: 600; } .type-glyph-line { margin: 0; font-size: 15px; line-height: 1.4; color: var(--ob-text-soft); } .type-glyph-line--body { font-family: var(--ob-font-body); font-weight: 600; } .type-glyph-line--strong { font-family: var(--ob-font-strong); font-weight: 600; } .component-stack { margin-top: 16px; } .component-hero { margin-top: 8px; border: 1px solid rgba(245, 251, 254, 0.14); border-radius: 24px; background: linear-gradient(135deg, #343537 0%, #22262a 48%, #203745 100%); padding: clamp(18px, 2.6vw, 26px); color: #f5fbfe; box-shadow: 0 26px 54px rgba(15, 19, 23, 0.38); position: relative; overflow: hidden; isolation: isolate; } .component-hero::before { content: ""; position: absolute; right: -80px; top: -90px; width: 300px; height: 300px; border-radius: 999px; background: radial-gradient(circle, rgba(51, 185, 235, 0.48) 0%, rgba(0, 167, 230, 0) 70%); z-index: 0; } .component-hero::after { content: ""; position: absolute; left: -56px; bottom: -70px; width: 260px; height: 220px; border-radius: 999px; background: radial-gradient(circle, rgba(245, 156, 0, 0.25) 0%, rgba(245, 156, 0, 0) 70%); z-index: 0; } .component-hero__kicker { margin: 0 0 10px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.12em; color: rgba(245, 251, 254, 0.78); } .component-hero__title { margin: 0 0 10px; font-family: var(--ob-font-strong); font-weight: 600; font-size: clamp(30px, 4vw, 44px); line-height: 1.06; color: #ffffff; } .component-hero__text { max-width: 60ch; margin: 0 0 14px; color: rgba(245, 251, 254, 0.92); } .component-hero__kicker, .component-hero__title, .component-hero__text, .component-hero .row, .component-hero .cluster { position: relative; z-index: 1; } .component-hero .btn--light { background: rgba(245, 251, 254, 0.1); border-color: rgba(245, 251, 254, 0.32); color: #f5fbfe; } .component-hero .btn--light:hover { border-color: rgba(0, 167, 230, 0.84); } .component-hero .row { margin-top: 6px; margin-bottom: 14px; gap: 10px; } .component-hero .cluster { margin-top: 0; margin-bottom: 0; gap: 8px; } .component-hero .pill { border-color: rgba(245, 251, 254, 0.26); color: rgba(245, 251, 254, 0.9); background: rgba(245, 251, 254, 0.08); } .demo-form { display: grid; gap: 10px; } .field { display: grid; gap: 6px; color: var(--ob-text-soft); } .input { width: 100%; border-radius: 11px; border: 1px solid var(--ob-border); background: var(--ob-surface); color: var(--ob-text); min-height: 42px; padding: 10px 12px; } textarea.input { resize: vertical; } .alert { border: 1px solid rgba(0, 167, 230, 0.42); border-radius: 12px; background: rgba(0, 167, 230, 0.12); color: var(--ob-text); padding: 12px; display: grid; gap: 6px; } .cluster { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; } .row { display: flex; align-items: center; gap: 10px; } .row--wrap { flex-wrap: wrap; } .row--space { justify-content: space-between; } .btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 14px; border-radius: 12px; border: 1px solid transparent; cursor: pointer; font-family: var(--ob-font-strong); font-weight: 600; } .btn--tiny { padding: 4px 8px; border-radius: 9px; font-size: 11px; min-height: 26px; } .btn--sm { padding: 8px 10px; border-radius: 10px; font-size: 12px; } .btn--primary { background: linear-gradient(132deg, var(--ob-blue) 0%, var(--ob-blue-soft) 100%); color: #ffffff; } .btn--primary:hover { filter: brightness(1.06); } .btn--light { background: var(--ob-btn-light-bg); color: var(--ob-btn-light-text); border-color: var(--ob-btn-light-border); } .btn--light:hover { border-color: var(--ob-btn-light-hover-border); } .sidenav .btn--ghost { background: transparent; color: var(--ob-nav-text); border-color: var(--ob-nav-ghost-border); } .sidenav .btn--ghost:hover { background: var(--ob-nav-ghost-hover); } .pill { display: inline-flex; align-items: center; border-radius: 999px; border: 1px solid var(--ob-border); padding: 6px 10px; font-size: 12px; color: var(--ob-text-soft); background: var(--ob-surface); } .pill--brand { border-color: rgba(0, 167, 230, 0.44); color: var(--ob-dark); background: rgba(0, 167, 230, 0.14); } .pill--accent { border-color: rgba(245, 156, 0, 0.46); color: #8a5800; background: rgba(245, 156, 0, 0.16); } .pill--success { border-color: rgba(24, 143, 92, 0.4); color: #0f6f46; background: rgba(24, 143, 92, 0.12); } .bullets { margin: 0; padding-left: 18px; } .bullets li { margin: 7px 0; } .code { margin: 12px 0 0; padding: 14px; border-radius: 12px; border: 1px solid var(--ob-border); background: var(--ob-code-bg); overflow: auto; } .code code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; color: var(--ob-text); } .footer { max-width: var(--ob-content-max); margin: 32px auto 0; padding-top: 14px; border-top: 1px solid var(--ob-border); } .toast { position: fixed; right: 16px; bottom: 16px; background: var(--ob-toast-bg); color: var(--ob-toast-text); border-radius: 12px; border: 1px solid rgba(255, 255, 255, 0.2); padding: 9px 12px; box-shadow: 0 10px 24px rgba(34, 34, 33, 0.35); opacity: 0; transform: translateY(8px); transition: opacity 0.18s ease, transform 0.18s ease; pointer-events: none; } .toast.is-on { opacity: 1; transform: translateY(0); } @media (max-width: 1080px) { .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 980px) { .app { grid-template-columns: 1fr; } .sidenav { position: fixed; inset: 0 0 auto 0; height: auto; z-index: 20; border-right: none; border-bottom: 1px solid var(--ob-nav-border); } .sidenav__toggle { display: inline-flex; } .sidenav__nav { display: none; padding-top: 8px; max-height: min(56vh, 460px); overflow: auto; } .sidenav__nav.is-open { display: flex; } .main { padding-top: 122px; } .hero__grid { grid-template-columns: 1fr; } .hero__signal { max-width: 560px; } .grid--2, .grid--3 { grid-template-columns: 1fr; } .table { min-width: 460px; } h1 { max-width: 100%; } } @media (max-width: 620px) { .main { padding-left: 16px; padding-right: 16px; } .hero__card, .card { padding: 14px; } .hero__metrics { grid-template-columns: 1fr; } }