@font-face{font-family:Gasoek One;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/gasoekone.woff2) format("woff2")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-display:swap;src:url(/fonts/bricolagegrotesque.woff2) format("woff2")}:root{--cream:#f4eee1;--cream-2:#fbf7ec;--paper:#fff;--sky:#afd8e0;--sky-soft:#cfeaef;--teal:#3aa7bb;--teal-deep:#25749c;--deep:#0a527a;--deep-2:#083f5e;--navy:#254254;--navy-2:#3a5a6e;--navy-3:#5e7c8d;--coral:#e48069;--coral-deep:#c75f45;--line:#e4dac6;--line-2:#ece4d3;--star:#e48069;--radius:20px;--radius-sm:14px;--shadow-sm:0 2px 4px rgba(37,66,84,.06),0 1px 2px rgba(37,66,84,.08);--shadow-md:0 14px 34px -16px rgba(37,66,84,.34);--shadow-lg:0 30px 70px -24px rgba(8,40,60,.5);--maxw:1180px;--display:"Gasoek One",system-ui,sans-serif;--body:"Bricolage Grotesque",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--navy);font-family:var(--body);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img{max-width:100%;display:block}a{color:var(--teal-deep);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.06;margin:0 0 .4em;color:var(--navy)}p{margin:0 0 1em}:focus-visible{outline:3px solid hsla(11,69%,65%,.6);outline-offset:3px;border-radius:8px}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}.center{text-align:center}.muted{color:var(--navy-2)}.brand,.wordmark{display:inline-flex;align-items:center;gap:11px;font-family:var(--body);font-weight:800;font-size:1.42rem;letter-spacing:-.01em}.brand,.brand__a,.wordmark,.wordmark .wm-a{color:var(--navy)}.brand__sub,.wordmark .wm-b{color:var(--coral)}.brand-mark{width:38px;height:38px;flex:none;border-radius:50%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;font-family:var(--body);font-weight:700;font-size:1.04rem;line-height:1;padding:14px 24px;border-radius:var(--radius-sm);border:2px solid var(--navy);cursor:pointer;white-space:nowrap;transition:transform .12s ease,box-shadow .18s ease,background .18s ease}.btn,.btn:hover{text-decoration:none}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(2px)}.btn--primary{background:var(--coral);color:var(--navy);box-shadow:0 4px 0 var(--coral-deep)}.btn--primary:hover{background:#ec8d77;box-shadow:0 6px 0 var(--coral-deep)}.btn--primary:active{box-shadow:0 2px 0 var(--coral-deep)}.btn--navy{background:var(--navy);color:var(--cream-2);box-shadow:0 4px 0 #16303f}.btn--navy:hover{background:#2d4f64;box-shadow:0 6px 0 #16303f}.btn--ghost{background:transparent;color:var(--navy);box-shadow:0 4px 0 rgba(37,66,84,.18)}.btn--ghost:hover{background:rgba(37,66,84,.05);box-shadow:0 6px 0 rgba(37,66,84,.18)}.btn--lg{padding:16px 30px;font-size:1.16rem}.btn:disabled{opacity:.55;cursor:progress;transform:none}.field{width:100%;padding:13px 16px;background:var(--paper);border:2px solid var(--line);border-radius:var(--radius-sm);color:var(--navy);font-size:1rem;font-family:var(--body)}.field::placeholder{color:var(--navy-3)}.field:focus{outline:none;border-color:var(--coral)}.card{background:var(--cream-2);border:2px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-md)}.card--flat{box-shadow:var(--shadow-sm)}.eyebrow,.pill{gap:8px;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--coral-deep);background:hsla(11,69%,65%,.14);border:1.5px solid hsla(11,69%,65%,.4);padding:8px 15px}.chip,.eyebrow,.pill{display:inline-flex;align-items:center;font-weight:700;border-radius:999px}.chip{font-family:var(--body);font-size:.96rem;cursor:pointer;padding:9px 17px;border:2px solid var(--line);background:var(--cream-2);color:var(--navy);gap:7px;transition:all .15s ease}.chip:hover,.chip[aria-pressed=true]{border-color:var(--coral)}.chip[aria-pressed=true]{background:var(--coral);color:var(--navy)}.stars{display:inline-flex;gap:4px;color:var(--star)}@media (max-width:560px){body{font-size:16px}.wrap{padding:0 16px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.wordmark{font-size:1.8rem}.wordmark .brand-mark{width:44px;height:44px}.tab-nav{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:28px}.tab-nav a{padding:10px 14px;font-size:14px;color:var(--navy-2);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-weight:500}.tab-nav a:hover{color:var(--navy);text-decoration:none}.tab-nav a.active{color:var(--navy);border-bottom-color:var(--coral);font-weight:700}.counter-strip{display:flex;gap:24px;margin-bottom:32px;padding:14px 18px;background:var(--cream-2);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:14px;flex-wrap:wrap;align-items:center}.counter-strip strong{font-weight:700}section{margin-bottom:36px}section h2{font-family:var(--display);font-weight:400;font-size:22px;margin:0 0 12px;color:var(--navy)}section h2 .count{color:var(--navy-3);font-size:14px;font-family:var(--body);font-weight:400;margin-left:8px}section p.section-blurb{color:var(--navy-3);font-size:13px;margin:4px 0 16px}table.dash{width:100%;border-collapse:collapse;font-size:14px}table.dash thead tr{color:var(--navy-3);font-size:12px}table.dash thead th{text-align:left;padding:8px 0;font-weight:600}table.dash thead th.right{text-align:right}table.dash tbody td{padding:10px 0;vertical-align:middle}table.dash tbody tr{border-top:1px solid var(--line-2)}table.dash .mono{font-family:ui-monospace,Menlo,monospace}table.dash .muted{color:var(--navy-3)}table.dash .num,table.dash .right{text-align:right}table.dash .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;box-sizing:border-box}.dot--ok{background:#10b981}.dot--stale{background:#f59e0b}.dot--failed{background:#dc2626}.dot--never{background:#e2e8f0;border:1px solid var(--navy-3)}.dot--todo{background:var(--cream);border:1px dashed var(--navy-3)}.dot--disabled{background:var(--navy-3)}.todo-badge{margin-left:8px;padding:1px 6px;font-size:10px;border:1px solid var(--coral);color:var(--coral-deep);background:var(--paper);border-radius:4px;font-family:var(--body);font-weight:700;letter-spacing:.4px;text-transform:uppercase}.link-out{font-size:12px;color:var(--teal-deep);text-decoration:none;margin-left:10px;white-space:nowrap}.link-out:hover{text-decoration:underline}.warn-callout{background:var(--cream-2);border-left:1px solid var(--coral);border:1px solid var(--coral);border-left-width:4px;padding:14px 18px;border-radius:var(--radius-sm);margin-bottom:24px;font-size:14px;color:var(--navy)}.page-footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--navy-3)}.profile-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 20px;margin-bottom:16px;background:var(--cream-2)}.profile-card h3{margin:0 0 12px;font-family:ui-monospace,Menlo,monospace;font-size:15px;font-weight:600;color:var(--navy)}.kv{display:grid;grid-template-columns:200px 1fr;padding:6px 0;font-size:14px;border-bottom:1px solid var(--line-2)}.kv:last-child{border-bottom:none}.kv-key{color:var(--navy-3)}tr.dim{opacity:.6}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-family:ui-monospace,Menlo,monospace;font-size:11px;font-weight:600;line-height:1.4;letter-spacing:.2px;border:1px solid transparent;white-space:nowrap}.pill--csv{background:#e0f2fe;color:#075985;border-color:#bae6fd}.pill--api{background:#dcfce7;color:#14532d;border-color:#bbf7d0}.pill--doc{background:#fef3c7;color:#78350f;border-color:#fde68a}.pill--scrape{background:#ffe4d3;color:#9a3412;border-color:#fed7aa}.pill--drive{background:#ede9fe;color:#4c1d95;border-color:#ddd6fe}.pill--orchestrator{background:#e0e7ff;color:#1e1b4b;border-color:#c7d2fe}.pill--postgres{background:#ccfbf1;color:#115e59;border-color:#99f6e4}.pill--default{background:#f3f4f6;color:#374151;border-color:#e5e7eb}.topbar{display:flex;align-items:center;gap:20px;padding-bottom:14px;margin-bottom:28px;border-bottom:1px solid var(--line)}.topbar__brand{font-size:1.4rem;text-decoration:none}.topbar__nav{display:flex;gap:6px}.topbar__nav a{padding:6px 13px;border-radius:999px;font-size:14px;font-weight:600;color:var(--navy-2);text-decoration:none}.topbar__nav a:hover{background:var(--cream-2);color:var(--navy)}.topbar__nav a.active{background:var(--navy);color:var(--cream-2)}.topbar__account{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:14px}.topbar__account .muted{color:var(--navy-3)}.topbar__account a{color:var(--teal-deep);font-weight:700;text-decoration:none}.table-scroll{overflow-x:auto}@media (max-width:640px){.topbar{flex-wrap:wrap;row-gap:10px}.topbar__account{overflow-wrap:anywhere}.topbar .wm-a{display:none}.topbar__brand .brand-mark{width:34px;height:34px}.table-scroll>table.dash{min-width:680px}}.hub-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.hub-hero h1{font-family:var(--display);font-weight:400;font-size:2rem;margin:6px 0 4px;color:var(--navy)}.hub-hero img{width:150px;height:auto;flex:none}.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:20px;gap:20px}.hub-card{transition:transform .12s ease,box-shadow .12s ease}.hub-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.hub-card h2{font-family:var(--display);font-weight:400;font-size:1.4rem;margin:0 0 6px}.hub-card h2 a{color:var(--coral-deep);text-decoration:none}.hub-card h2 a:hover{text-decoration:underline}.hub-tasks{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}.hub-tasks a{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;border-radius:10px;background:var(--paper);border:1px solid var(--line);color:var(--navy);text-decoration:none;font-weight:600;font-size:14px}.hub-tasks a:after{content:"→";color:var(--navy-3)}.hub-tasks a:hover{border-color:var(--coral);color:var(--coral-deep)}.hub-tasks a:hover:after{color:var(--coral)}@media (max-width:640px){.hub-hero img{display:none}}input[type=checkbox]{accent-color:var(--coral)}