/* Baby Whale Docs — shares the launch-site palette, adds a docs layout. */

:root{
  --ink:#0f1115;--muted:#61666b;--faint:#81858c;--line:#e1e5ee;--hair:#eceef2;
  --sea:#4176e6;--sea-deep:#0e3074;--sea-light:#edf3fe;--sea-tint:#e4edfd;
  --bg:#fff;--side:#f9fafb;
  --ok:#1f845a;--ok-bg:#e6faed;--warn:#b45309;--warn-bg:#fef5e7;--info-bg:#edf3fe;
  --display:"Manrope",sans-serif;--body:"DM Sans",system-ui,sans-serif;--mono:"JetBrains Mono",monospace;
}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:radial-gradient(ellipse 74% 34rem at 58% -12rem,rgba(65,118,230,.13),transparent 72%),radial-gradient(ellipse 48% 28rem at 96% 22rem,rgba(143,227,176,.08),transparent 72%),#fbfcfe;background-attachment:fixed;line-height:1.65;font-size:15.5px;-webkit-font-smoothing:antialiased}
a{color:inherit}img{max-width:100%;display:block}
::selection{background:rgba(65,118,230,.18)}

/* ── header ── */
.docs-header{position:sticky;top:0;z-index:50;padding:10px 16px 0;background:transparent}
.docs-header-inner{position:relative;isolation:isolate;max-width:1280px;margin:auto;height:58px;padding:0 16px;display:flex;align-items:center;gap:26px;border-radius:16px}
.docs-header-inner::before{content:"";position:absolute;inset:0;z-index:-1;border:1px solid rgba(255,255,255,.88);border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.91),rgba(247,250,255,.82));box-shadow:0 12px 32px rgba(14,48,116,.07),inset 0 1px 0 #fff;opacity:0;transition:opacity .14s ease-out;pointer-events:none}
.docs-header.scrolled .docs-header-inner::before{opacity:1}
.docs-logo{display:flex;align-items:center;gap:9px;text-decoration:none;font:800 15.5px var(--display);letter-spacing:-.02em;flex-shrink:0}
.docs-logo img{width:28px;height:28px;object-fit:contain}
.docs-logo em{font-style:normal;color:var(--sea);font-weight:600}
.docs-search{position:relative;flex:1;max-width:420px}
.docs-search svg{position:absolute;left:11px;top:50%;translate:0 -50%;width:13px;height:13px;stroke:var(--faint);fill:none;stroke-width:1.8;stroke-linecap:round}
.docs-search input{width:100%;height:36px;border:1px solid var(--line);border-radius:8px;background:var(--side);padding:0 34px 0 32px;font:400 13.5px var(--body);color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s}
.docs-search input:focus{border-color:var(--sea);box-shadow:0 0 0 3px rgba(65,118,230,.1);background:#fff}
.docs-search kbd{position:absolute;right:9px;top:50%;translate:0 -50%;font:500 10px var(--mono);color:var(--faint);border:1px solid var(--line);border-radius:4px;padding:1px 5px;background:#fff}
.docs-search-results{position:absolute;top:42px;left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 44px rgba(15,17,21,.12);overflow:hidden;display:none;max-height:330px;overflow-y:auto}
.docs-search-results.open{display:block}
.docs-search-results a{display:block;padding:10px 14px;text-decoration:none;border-bottom:1px solid var(--hair)}
.docs-search-results a:last-child{border-bottom:0}
.docs-search-results a:hover,.docs-search-results a.sel{background:var(--sea-light)}
.docs-search-results b{display:block;font:600 13.5px var(--display);color:var(--ink)}
.docs-search-results small{color:var(--faint);font-size:12px}
.docs-search-results .none{padding:14px;color:var(--faint);font-size:13px}
.docs-header-links{margin-left:auto;display:flex;gap:22px;align-items:center}
.docs-header-links a{text-decoration:none;font-size:13.5px;color:var(--muted);font-weight:500}
.docs-header-links a:hover{color:var(--ink)}
.docs-header-links .cta{color:#fff;background:var(--ink);padding:8px 14px;border-radius:8px;font-weight:600}
.docs-header-links .cta:hover{background:#2f3438;color:#fff}
.docs-burger{display:none;margin-left:auto;flex-direction:column;gap:5px;border:0;background:none;cursor:pointer;padding:6px}
.docs-burger span{width:20px;height:1.6px;background:var(--ink)}

/* ── layout ── */
.docs-layout{max-width:1440px;margin:auto;padding:0 24px;display:grid;grid-template-columns:250px minmax(0,1fr);gap:46px;align-items:start}
.docs-sidebar{position:sticky;top:68px;height:calc(100vh - 68px);overflow-y:auto;padding:26px 18px 40px 0}
.docs-sidebar nav{display:flex;flex-direction:column}
.docs-nav-group{font:600 10.5px var(--display);text-transform:uppercase;letter-spacing:.12em;color:var(--faint);margin:20px 0 7px;padding-left:11px}
.docs-nav-group:first-child{margin-top:0}
.docs-sidebar nav a{position:relative;display:block;padding:6px 11px;margin:1px 0;border-radius:7px;text-decoration:none;font-size:13.5px;color:#4a5054}
.docs-sidebar nav a:hover{background:var(--side);color:var(--ink)}
.docs-sidebar nav a.active{background:var(--sea-tint);color:var(--sea-deep);font-weight:600}
.docs-sidebar nav a.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2.5px;border-radius:2px;background:var(--sea)}

/* ── article ── */
.docs-main{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:46px;padding:34px 0 80px;min-width:0}
.docs-article{min-width:0;max-width:900px}
.docs-crumb{font:500 10.5px var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--sea);margin-bottom:14px}
.docs-article h1{font:800 clamp(28px,4vw,38px)/1.15 var(--display);letter-spacing:-.035em;margin-bottom:14px}
.docs-lead{font-size:16.5px;color:var(--muted);margin-bottom:34px;max-width:640px}
.docs-article h2{font:700 21.5px var(--display);letter-spacing:-.02em;margin:44px 0 12px;scroll-margin-top:76px}
.docs-article h3{font:700 16.5px var(--display);letter-spacing:-.01em;margin:30px 0 8px;scroll-margin-top:76px}
.docs-article p{margin:10px 0;color:#33383c}
.docs-article ul,.docs-article ol{margin:12px 0 12px 22px;color:#33383c}
.docs-article li{margin:5px 0}
.docs-article li::marker{color:var(--sea)}
.docs-article strong{font-weight:600;color:var(--ink)}
.docs-article a{color:var(--sea);text-decoration:none;font-weight:500}
.docs-article a:hover{text-decoration:underline}
.docs-article code:not(pre code){font:400 .84em var(--mono);background:#f1f3f5;border-radius:5px;padding:2px 6px;color:var(--sea-deep)}
.docs-article hr{border:0;border-top:1px solid var(--hair);margin:36px 0}

/* code blocks */
.codeblock{position:relative;background:#101418;color:#dfe5ea;border-radius:11px;margin:16px 0;overflow:hidden;box-shadow:0 8px 26px rgba(15,17,21,.08)}
.codeblock-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 13px;border-bottom:1px solid rgba(255,255,255,.07);font:500 11px var(--mono);color:#8b959e}
.codeblock pre{padding:13px 16px;overflow-x:auto}
.codeblock code{font:400 12.8px/1.62 var(--mono);white-space:pre}
.tok-c{color:#76828c;font-style:italic}.tok-s{color:#8fe3b0}.tok-k{color:#82aeff}.tok-n{color:#f2b56b}
.codeblock .cb-copy{position:absolute;top:6px;right:8px;border:0;background:rgba(255,255,255,.08);color:#aeb7bf;font:500 10px var(--mono);border-radius:5px;padding:4px 9px;cursor:pointer;opacity:0;transition:.2s}
.codeblock:hover .cb-copy{opacity:1}.cb-copy:hover{background:rgba(255,255,255,.16);color:#fff}.cb-copy.done{color:#8fe3b0}

/* callouts */
.callout{display:flex;gap:12px;border:1px solid;border-radius:10px;padding:13px 16px;margin:18px 0;font-size:14px}
.callout p{margin:0}
.callout .ic{flex-shrink:0;font-size:15px;line-height:1.5}
.callout.note{border-color:#c9dbfb;background:var(--info-bg)}.callout.note .ic{color:var(--sea)}
.callout.tip{border-color:#bfe8d0;background:var(--ok-bg)}.callout.tip .ic{color:var(--ok)}
.callout.warn{border-color:#f2d9a8;background:var(--warn-bg)}.callout.warn .ic{color:var(--warn)}
.callout b{color:var(--ink)}

/* tables */
.tbl-wrap{overflow-x:auto;margin:16px 0;border:1px solid var(--line);border-radius:10px}
.docs-article table{border-collapse:collapse;width:100%;font-size:13.5px}
.docs-article th{font:600 10.5px var(--display);text-transform:uppercase;letter-spacing:.08em;color:var(--faint);text-align:left;padding:10px 14px;background:var(--side);border-bottom:1px solid var(--line);white-space:nowrap}
.docs-article td{padding:10px 14px;border-bottom:1px solid var(--hair);vertical-align:top}
.docs-article tr:last-child td{border-bottom:0}
.docs-article td:first-child{font-weight:600;white-space:nowrap}

/* pager */
.docs-pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:56px}
.docs-pager a{text-decoration:none;border:1px solid var(--line);border-radius:11px;padding:14px 17px;transition:border-color .2s,box-shadow .2s}
.docs-pager a:hover{border-color:var(--sea);box-shadow:0 6px 18px rgba(65,118,230,.09);text-decoration:none}
.docs-pager span{display:block;font:500 10.5px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-bottom:4px}
.docs-pager b{font:600 14.5px var(--display);color:var(--ink)}
.docs-pager .next{text-align:right}

/* toc */
.docs-toc{position:sticky;top:68px;padding:38px 0;max-height:calc(100vh - 68px);overflow-y:auto;width:200px}
.docs-toc p{font:600 10.5px var(--display);text-transform:uppercase;letter-spacing:.12em;color:var(--faint);margin-bottom:9px}
.docs-toc a{display:block;font-size:12.5px;color:var(--muted);text-decoration:none;padding:3.5px 0 3.5px 12px;border-left:1.5px solid var(--hair)}
.docs-toc a:hover{color:var(--ink)}
.docs-toc a.active{color:var(--sea);border-left-color:var(--sea);font-weight:500}
.docs-toc a.lv3{padding-left:24px}

/* changelog — frosted glass cards */
.cl-entry{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.78);border-radius:20px;padding:24px 26px;margin-bottom:24px;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(244,247,253,.58));backdrop-filter:blur(22px) saturate(1.45);-webkit-backdrop-filter:blur(22px) saturate(1.45);box-shadow:0 20px 60px rgba(14,48,116,.09),0 0 0 1px rgba(65,118,230,.06),inset 0 1px 0 rgba(255,255,255,.96);transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s}
.cl-entry:hover{transform:translateY(-2px);box-shadow:0 32px 80px rgba(14,48,116,.14),0 2px 8px rgba(14,48,116,.06),inset 0 1px 0 rgba(255,255,255,.95)}
.cl-entry::before{content:"";position:absolute;top:0;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);pointer-events:none}
.cl-entry::after{content:"";position:absolute;top:-110px;left:-10%;right:-10%;height:200px;background:radial-gradient(closest-side,rgba(255,255,255,.55),transparent);pointer-events:none}
.cl-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.cl-head h2{font:700 22px var(--display);letter-spacing:-.02em;margin:0;font-variant-numeric:tabular-nums}
.cl-date{font:400 12px var(--mono);color:var(--faint)}
.cl-badge{font:600 10.5px var(--display);letter-spacing:.08em;text-transform:uppercase;padding:4px 11px;border-radius:100px;border:1px solid rgba(255,255,255,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 4px 14px rgba(14,48,116,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.cl-badge.latest{background:rgba(230,250,237,.75);color:var(--ok)}
.cl-badge.breaking{background:rgba(253,234,234,.75);color:#c0392b}
.cl-badge.feature{background:rgba(228,237,253,.75);color:var(--sea-deep)}
.cl-title{font-size:16px;font-weight:500;color:var(--ink);margin:2px 0 4px}
.cl-entry h3{font:600 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin:20px 0 8px}
.cl-entry ul{margin:0 0 6px 20px}
.cl-entry li{margin:4px 0}
.cl-banner{display:block;width:100%;height:auto;border-radius:14px;border:1px solid rgba(255,255,255,.8);outline:1px solid rgba(225,229,238,.5);margin-bottom:18px;box-shadow:0 14px 40px rgba(14,48,116,.12),inset 0 1px 0 rgba(255,255,255,.6)}
.cl-subscribe{margin-top:28px;padding:14px 18px;border:1px solid rgba(255,255,255,.7);outline:1px solid rgba(225,229,238,.5);border-radius:14px;background:rgba(255,255,255,.6);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);box-shadow:0 12px 32px rgba(14,48,116,.07),inset 0 1px 0 rgba(255,255,255,.8);font-size:13.5px;color:var(--muted)}

/* footer */
.docs-footer{border-top:1px solid var(--hair);background:var(--side)}
.docs-footer-inner{max-width:1280px;margin:auto;padding:20px 24px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--faint)}
.docs-footer a{color:var(--muted);text-decoration:none}
.docs-footer a:hover{color:var(--sea)}

/* responsive */
@media (max-width:1200px){.docs-layout{grid-template-columns:250px minmax(0,1fr)}.docs-toc{display:none}}
@media (max-width:980px){
  .docs-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .docs-sidebar{position:fixed;top:68px;left:0;bottom:0;width:272px;background:rgba(255,255,255,.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-right:1px solid rgba(225,229,238,.7);z-index:60;transform:translateX(-102%);transition:transform .28s cubic-bezier(.22,1,.36,1);height:calc(100vh - 68px)}
  .docs-sidebar.open{transform:none;box-shadow:24px 0 60px rgba(15,17,21,.1)}
  .docs-burger{display:flex}
  .docs-header-links a:not(.cta){display:none}
  .docs-header-inner{gap:12px;padding:0 16px}
  .docs-logo{white-space:nowrap}
  .docs-header-links .cta{white-space:nowrap;padding:8px 12px;font-size:12.5px}
  .docs-search{max-width:none}
  .docs-search kbd{display:none}
  .docs-search input{height:34px;font-size:13px;padding-right:12px}
  .docs-main{grid-template-columns:minmax(0,1fr);padding-top:26px}
}
@media (max-width:640px){
  .docs-header{padding:8px 10px 0}
  .docs-header-inner{height:56px;padding:0 10px;gap:8px;border-radius:15px}
  .docs-search{display:none}
  .docs-logo{font-size:14px;gap:7px}
  .docs-logo img{width:26px;height:26px}
  .docs-header-links{margin-left:auto}
  .docs-header-links .cta{padding:8px 11px}
  .docs-burger{margin-left:0;padding:5px}
  .docs-layout{padding:0 24px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
