:root{--wo-teal:#153243;--wo-teal-700:#1d4257;--wo-teal-300:#5a7383;--wo-gold:#f1bd61;--wo-gold-600:#d99f30;--wo-gold-100:#fbeccb;--wo-cream:#fffaf6;--wo-white:#fff;--wo-sage:#ecefea;--wo-sand:#f6efe7;--wo-ink:#111614;--wo-body:#45504e;--wo-muted:#76817d;--wo-on-dark:#f4f1ec;--wo-on-dark-muted:#c2cdd1;--wo-border:#e7e1d8;--wo-border-strong:#d8cfc1;--wo-border-dark:#f4f1ec33;--font-display:"Hanken Grotesk", system-ui, -apple-system, sans-serif;--font-sans:"Manrope", system-ui, -apple-system, sans-serif;--text-xs:.8rem;--text-sm:.9rem;--text-base:1.0625rem;--text-lg:1.2rem;--text-xl:clamp(1.35rem, 1.1rem + 1vw, 1.6rem);--text-2xl:clamp(1.7rem, 1.3rem + 1.6vw, 2.1rem);--text-3xl:clamp(2.05rem, 1.55rem + 2.3vw, 2.8rem);--text-4xl:clamp(2.5rem, 1.8rem + 3.2vw, 3.7rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-xl:32px;--radius-pill:999px;--shadow-sm:0 1px 2px #1532430f;--shadow-md:0 8px 24px #15324314;--shadow-lg:0 18px 48px #1532431f;--shadow-gold:0 14px 36px #f1bd6159;--container:1200px;--container-wide:1320px}*,:before,:after{box-sizing:border-box}.ds{background:var(--wo-cream);color:var(--wo-body);font-family:var(--font-sans);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;line-height:1.65}.ds h1,.ds h2{margin:0 0 var(--space-4);color:var(--wo-ink);font-family:var(--font-display);letter-spacing:-.02em;font-weight:800;line-height:1.1}.ds h3,.ds h4{margin:0 0 var(--space-4);color:var(--wo-ink);font-family:var(--font-sans);letter-spacing:-.01em;font-weight:700;line-height:1.2}.ds h1{font-size:var(--text-4xl)}.ds h2{font-size:var(--text-3xl)}.ds h3{font-size:var(--text-xl)}.ds h4{font-size:var(--text-lg)}.ds p{margin:0 0 var(--space-4);max-width:62ch}.ds a:not(.btn){color:var(--wo-teal)}.ds img{max-width:100%;display:block}.accent{color:var(--wo-teal-300)}.section--teal .accent{color:var(--wo-gold)}.num{font-family:var(--font-display);color:var(--wo-gold-600);margin-right:.5rem;font-weight:800}.wrap{width:min(calc(100% - 2.5rem), var(--container));margin-inline:auto}.wrap--wide{width:min(calc(100% - 2.5rem), var(--container-wide))}.section{padding-block:var(--space-9)}.section--tight{padding-block:var(--space-8)}.section--cream{background:var(--wo-cream)}.section--sage{background:var(--wo-sage)}.section--sand{background:var(--wo-sand)}.section--teal{background:var(--wo-teal);color:var(--wo-on-dark)}.section--teal h1,.section--teal h2,.section--teal h3{color:var(--wo-white)}.lede{font-size:var(--text-lg);color:var(--wo-body)}.section--teal .lede{color:var(--wo-on-dark)}.btn{border-radius:var(--radius-pill);min-height:3.25rem;font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.6rem;font-weight:600;line-height:1;text-decoration:none;transition:transform .18s,background .18s,color .18s,box-shadow .18s;display:inline-flex}.btn:hover{transform:translateY(-2px)}.btn .arrow{transition:transform .18s}.btn:hover .arrow{transform:translate(3px)}.btn--primary{background:var(--wo-gold);color:var(--wo-teal);box-shadow:var(--shadow-sm)}.btn--primary:hover{background:var(--wo-gold-600);box-shadow:var(--shadow-gold)}.btn--teal{background:var(--wo-teal);color:var(--wo-white)}.btn--teal:hover{background:var(--wo-teal-700);box-shadow:var(--shadow-md)}.btn--outline{border-color:var(--wo-border-strong);color:var(--wo-teal);background:0 0}.btn--outline:hover{border-color:var(--wo-teal);background:var(--wo-white)}.btn--ghost-dark{color:var(--wo-white);background:#ffffff1f;border-color:#fff9}.btn--ghost-dark:hover{border-color:var(--wo-white);color:var(--wo-white);background:#ffffff38}.btn--sm{min-height:2.6rem;font-size:var(--text-sm);padding:.5rem 1.1rem}.btn-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.link-arrow{color:var(--wo-teal);align-items:center;gap:.4rem;font-weight:600;text-decoration:none;transition:gap .18s;display:inline-flex}.link-arrow:hover{gap:.7rem}.badge{border-radius:var(--radius-pill);background:var(--wo-gold-100);color:var(--wo-teal);font-size:var(--text-xs);letter-spacing:.02em;align-items:center;gap:.4rem;padding:.4rem .85rem;font-weight:700;display:inline-flex}.badge--teal{background:var(--wo-teal);color:var(--wo-white)}.badge--outline{border:1px solid var(--wo-border-strong);color:var(--wo-body);background:0 0}.stars{color:var(--wo-gold-600);letter-spacing:.12em;font-size:var(--text-base)}.card{background:var(--wo-white);border:1px solid var(--wo-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.form-grid{gap:var(--space-4) var(--space-5);grid-template-columns:1fr 1fr;display:grid}.form-grid__full{grid-column:1/-1}.field{gap:.4rem;display:grid}.field label{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--wo-ink);font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--wo-border-strong);border-radius:var(--radius-md);background:var(--wo-white);width:100%;font-family:var(--font-sans);font-size:var(--text-base);color:var(--wo-ink);padding:.85rem 1rem}.field textarea{resize:vertical;min-height:7rem}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--wo-gold-100);border-color:var(--wo-gold-600)}.lab-topbar{z-index:50;background:var(--wo-teal);color:var(--wo-on-dark);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem clamp(1rem,4vw,2.5rem);display:flex;position:sticky;top:0}.lab-topbar a{color:var(--wo-on-dark);font-family:var(--font-sans);font-weight:500;font-size:var(--text-sm);text-decoration:none}.lab-topbar .lab-brand{color:var(--wo-white);align-items:center;gap:.6rem;font-weight:800;display:flex}.lab-topbar nav{flex-wrap:wrap;gap:1.1rem;display:flex}.lab-topbar nav a:hover{color:var(--wo-gold)}.lab-hero{background:var(--wo-teal);color:var(--wo-on-dark);padding:clamp(3rem,7vw,5.5rem) clamp(1rem,4vw,2.5rem)}.lab-hero .kicker{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--wo-gold);margin:0 0 .5rem}.lab-hero h1{max-width:18ch;font-family:var(--font-display);font-weight:800;font-size:var(--text-4xl);color:var(--wo-white);margin:0 0 1rem;line-height:1.05}.lab-hero p{max-width:62ch;color:var(--wo-on-dark-muted);font-size:var(--text-lg)}.lab-entry{border-top:1px solid var(--wo-border)}.lab-entry__head{width:min(calc(100% - 2.5rem), var(--container-wide));padding-block:var(--space-5) var(--space-3);flex-wrap:wrap;align-items:baseline;gap:.5rem 1rem;margin-inline:auto;display:flex}.lab-entry__id{font-family:var(--font-display);font-weight:800;font-size:var(--text-lg);color:var(--wo-gold-600)}.lab-entry__title{font-family:var(--font-sans);font-weight:700;font-size:var(--text-lg);color:var(--wo-ink)}.lab-entry__note{max-width:52ch;font-size:var(--text-sm);color:var(--wo-muted);flex:18rem}.lab-frame{width:min(calc(100% - 2.5rem), var(--container-wide));margin:0 auto var(--space-7);border:1px solid var(--wo-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}.anchor{scroll-margin-top:5rem}.swatch-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(190px,1fr));display:grid}.swatch{border:1px solid var(--wo-border);border-radius:var(--radius-md);background:var(--wo-white);overflow:hidden}.swatch__chip{height:96px}.swatch__meta{padding:.75rem .9rem}.swatch__name{color:var(--wo-ink);font-weight:700;font-size:var(--text-sm)}.swatch__val{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:var(--wo-muted)}.token-code{font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:var(--text-xs);color:var(--wo-teal);background:var(--wo-sand);border-radius:6px;padding:.2rem .5rem}.grid-2{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.grid-3{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.grid-4{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}@media (width<=640px){.section{padding-block:var(--space-8)}.form-grid{grid-template-columns:1fr}}
