/* bldpr website. Dark only. Values come from the bldpr design system (src/design/tokens.ts). No JavaScript, no external requests. */

@font-face{font-family:"Fraunces Soft";src:url('/assets/fonts/fraunces-soft-black.woff') format('woff');font-weight:900;font-display:swap}
@font-face{font-family:"Fraunces Soft";src:url('/assets/fonts/fraunces-soft-extrabold.woff') format('woff');font-weight:800;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url('/assets/fonts/space-grotesk-400.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url('/assets/fonts/space-grotesk-500.woff') format('woff');font-weight:500;font-display:swap}
@font-face{font-family:"Space Grotesk";src:url('/assets/fonts/space-grotesk-600.woff') format('woff');font-weight:600;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url('/assets/fonts/jetbrains-mono-500.woff') format('woff');font-weight:500;font-display:swap}

:root{
  color-scheme:dark;
  --bg:#0b0b0c;--surface:#161618;--surface-raised:#202023;--surface-sunken:#070708;
  --line:#232326;--line-strong:#66666e;
  --text:#f5f5f6;--text-muted:#a3a3aa;--text-faint:#6c6c74;
  --accent:#ffa3b4;--on-accent:#3d0716;--focus:#ffa3b4;
  --warning:#f3e3a0;--danger:#ff6b86;
  --glow-white:#fff4f2;--glow-text:rgba(255,244,242,.88);
  --drop-white:#fffdfd;--drop-blush:#ffe3e8;--drop-rose:#ffa3b4;--drop-peach:#ffc9b6;--drop-lip:#b3203f;
  --font-display:"Fraunces Soft",Fraunces,Georgia,serif;
  --font-sans:"Space Grotesk",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,monospace;
  --radius-xs:8px;--radius-sm:12px;--radius-md:16px;--radius-lg:20px;--radius-xl:32px;--radius-pill:999px;
  --shadow-card:0 1px 0 rgba(255,255,255,.04) inset,0 8px 24px rgba(0,0,0,.28);
  --shadow-drop:0 4px 0 var(--drop-lip),0 12px 28px rgba(255,163,180,.24);
  --shadow-drop-sm:0 3px 0 var(--drop-lip),0 8px 18px rgba(255,163,180,.22);
  --grain-opacity:.08;
  --gutter:20px;--max:1160px;
}
/* Increase Contrast */
@media (prefers-contrast:more){
  :root{
    --bg:#000;--surface:#141416;--surface-raised:#232327;--surface-sunken:#000;
    --line:#3a3a40;--line-strong:#8a8a92;
    --text:#fff;--text-muted:#c9c9cf;--text-faint:#9a9aa2;
    --accent:#ffbcc8;--focus:#fff;--warning:#f8edc0;--danger:#ff95a8;
    --glow-white:#fff;--glow-text:rgba(255,255,255,.95);
    --grain-opacity:.03;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--bg);color:var(--text);font:400 17px/1.6 var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,p{margin:0}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--text);color:var(--bg);padding:10px 16px;border-radius:var(--radius-pill);font-weight:600;text-decoration:none}
.skip:focus{top:12px}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
@media (min-width:760px){:root{--gutter:40px}}

/* ── type ── */
.h1{font-family:var(--font-display);font-weight:900;font-size:clamp(44px,7vw,88px);line-height:1.02;letter-spacing:-.02em}
.lead{font-size:clamp(18px,1.7vw,21px);line-height:1.55;color:var(--text-muted)}
.overline{font:600 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}

/* ── buttons: the pearl drop from the app icon is the one primary action ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:var(--radius-pill);font:600 16px/20px var(--font-sans);text-decoration:none;cursor:pointer;border:0;white-space:nowrap;transition:transform .16s ease,box-shadow .16s ease}
.btn:active{transform:translateY(2px);transition-duration:.08s}
.btn-drop{color:var(--on-accent);background:radial-gradient(95% 140% at 28% 18%,var(--drop-white) 0%,var(--drop-blush) 42%,var(--drop-rose) 82%,var(--drop-peach) 100%);box-shadow:var(--shadow-drop)}
.btn-drop:hover{box-shadow:0 4px 0 var(--drop-lip),0 14px 38px rgba(255,163,180,.4)}
.btn-sm{min-height:40px;padding:0 18px;font-size:15px;box-shadow:var(--shadow-drop-sm)}

/* ── header ── */
.site-header{position:sticky;top:0;z-index:100;background:rgba(11,11,12,.72);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
@media (prefers-reduced-transparency:reduce){.site-header{background:var(--bg)}}
.site-header .wrap{height:68px;display:flex;align-items:center;gap:16px}
.brand{display:flex;align-items:center;text-decoration:none;flex:none;min-height:44px}
.brand img{height:30px;width:auto}
.nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.nav a.link{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--text-muted);text-decoration:none;font-weight:500;font-size:15px;border-radius:var(--radius-pill)}
.nav a.link:hover,.nav a.link[aria-current=page]{color:var(--text)}
.nav a.link[aria-current=page]{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:6px}
.nav .btn{margin-left:8px}
@media (max-width:620px){.nav a.link{padding:0 9px;font-size:14px}.nav .btn{display:none}}

/* ── ambient glow: the app's soft glow image rising from the top, fading into bg ── */
.ambient{position:relative;isolation:isolate;overflow-x:clip;--ambient-h:520px}
.ambient::before{content:"";position:absolute;z-index:-3;left:0;right:0;top:0;height:var(--ambient-h);pointer-events:none;background:url('/assets/brand/glow.jpg') center top/cover no-repeat}
.ambient::after{content:"";position:absolute;z-index:-2;left:0;right:0;top:0;height:calc(var(--ambient-h) + 2px);pointer-events:none;background:linear-gradient(to bottom,rgba(11,11,12,0) 0%,rgba(11,11,12,.2) 45%,var(--bg) 100%)}
@media (prefers-contrast:more){.ambient::before{opacity:.6}}
.grain{position:absolute;left:0;right:0;top:0;height:var(--ambient-h);z-index:-1;pointer-events:none;opacity:var(--grain-opacity);mix-blend-mode:overlay;-webkit-mask-image:linear-gradient(to bottom,#000 50%,transparent);mask-image:linear-gradient(to bottom,#000 50%,transparent);
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* ── footer ── */
.site-footer{border-top:1px solid var(--line);padding:32px 0 40px;margin-top:40px}
.foot-note{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;font-size:13px;color:var(--text-muted)}
.foot-note a{color:var(--text-muted)}
.foot-note a:hover{color:var(--accent)}

/* ── document pages ── */
.doc{max-width:780px;margin:0 auto;padding:88px var(--gutter) 40px}
@media (min-width:760px){.doc{padding-top:112px}}
.doc .overline{color:var(--glow-text)}
.doc .h1{font-size:clamp(42px,6vw,68px);margin:14px 0 18px;color:var(--glow-white);text-shadow:0 0 30px rgba(255,244,242,.25)}
.doc .lead{margin-bottom:12px;max-width:600px;color:var(--glow-text)}
.doc-date{font:500 13px var(--font-mono);color:var(--text-muted);margin-top:18px}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin:36px 0 8px}
.toc a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--line);color:var(--text-muted);font:600 13px var(--font-sans);text-decoration:none}
.toc a:hover{color:var(--text);border-color:var(--line-strong)}
.summary{margin:40px 0 8px;padding:24px 26px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}
.summary h2{font:600 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}
.summary ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.summary li{position:relative;padding-left:28px;font-size:16px;line-height:1.55}
.summary li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:999px;background:var(--surface-sunken) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffa3b4' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M5 12.5l4.5 4.5L19 7.5'/></svg>") center/11px no-repeat}
.doc-section{padding:36px 0;border-top:1px solid var(--line)}
.toc+.doc-section{border-top:0}
.doc-section h2{font:800 25px/1.25 var(--font-display);margin-bottom:14px}
.doc-section h3{font:600 16px/1.4 var(--font-sans);margin:24px 0 8px}
.doc-section p,.doc-section li{color:var(--text-muted);font-size:16px;line-height:1.7;overflow-wrap:anywhere}
.doc-section p+p,.doc-section ul+p{margin-top:12px}
.doc-section ul{margin:10px 0 0;padding-left:20px}
.doc-section li+li{margin-top:8px}
.doc-section strong{color:var(--text);font-weight:600}
.doc-section a{color:var(--accent);text-underline-offset:.18em}
.notice{margin-top:18px;padding:18px 20px;border-radius:var(--radius-md);background:var(--surface);border:1px solid rgba(243,227,160,.35)}
.notice p{color:var(--text)}
.table{width:100%;border-collapse:collapse;margin-top:14px;font-size:15px}
.table th,.table td{text-align:left;vertical-align:top;padding:12px 12px 12px 0;border-top:1px solid var(--line)}
.table th{color:var(--text);font-weight:600;width:34%}
.table td{color:var(--text-muted)}
.after-table{margin-top:16px}
@media (max-width:560px){.table th,.table td{display:block;width:auto;padding:4px 0}.table th{padding-top:14px}.table td{border-top:0;padding-bottom:12px}}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
@media print{.site-header,.site-footer,.toc,.skip{display:none}body{background:#fff;color:#000}.ambient::before,.ambient::after,.grain{display:none}.doc{padding:0;max-width:none}.doc .h1,.doc .overline{color:#000;text-shadow:none}.doc-section p,.doc-section li,.lead,.doc-date{color:#222}.summary{border-color:#ccc;background:none;box-shadow:none}.doc-section a{color:#000}}
