@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2)format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2)format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/space-grotesk-latin-500-normal.lFbtlQH6.woff2)format("woff2"),url(/_astro/space-grotesk-latin-500-normal.CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/space-grotesk-latin-600-normal.DjKNqYRj.woff2)format("woff2"),url(/_astro/space-grotesk-latin-600-normal.BflQw4A9.woff)format("woff")}:root{color-scheme:light dark;--font-sans:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display:"Space Grotesk", system-ui, sans-serif;--font-mono:"SF Mono", "Fira Code", "Consolas", monospace;--type-size-10:.625rem;--type-size-11:.6875rem;--type-size-12:.75rem;--type-size-13:.8125rem;--type-size-14:.875rem;--type-size-15:.9375rem;--type-size-16:1rem;--type-size-18:1.125rem;--type-size-24:1.5rem;--type-size-36:2.25rem;--type-size-56:3.5rem;--type-weight-regular:400;--type-weight-medium:500;--type-weight-semibold:600;--type-weight-bold:700;--type-tracking-display:-.03em;--type-tracking-heading:-.02em;--type-tracking-tight:-.01em;--type-tracking-caps:.04em;--type-tracking-badge:.06em;--type-tracking-label:.08em;--type-leading-display:1.05;--type-leading-heading:1.25;--type-leading-title:1.3;--type-leading-snug:1.4;--type-leading-compact:1.55;--type-leading-body:1.65;--type-display:var(--type-weight-bold) var(--type-size-56)/var(--type-leading-display) var(--font-display);--type-display-tracking:var(--type-tracking-display);--type-display-transform:none;--type-heading:var(--type-weight-bold) var(--type-size-24)/var(--type-leading-heading) var(--font-display);--type-heading-tracking:var(--type-tracking-heading);--type-heading-transform:none;--type-subheading:var(--type-weight-semibold) var(--type-size-16)/var(--type-leading-snug) var(--font-display);--type-subheading-tracking:var(--type-tracking-caps);--type-subheading-transform:uppercase;--type-label:var(--type-weight-bold) var(--type-size-11)/var(--type-leading-body) var(--font-display);--type-label-tracking:var(--type-tracking-label);--type-label-transform:uppercase;--type-badge:var(--type-weight-bold) var(--type-size-10)/var(--type-leading-body) var(--font-display);--type-badge-tracking:var(--type-tracking-badge);--type-badge-transform:uppercase;--type-body:var(--type-weight-regular) var(--type-size-16)/var(--type-leading-body) var(--font-sans);--type-body-tracking:0em;--type-body-transform:none;--type-meta:var(--type-weight-regular) var(--type-size-13)/var(--type-leading-body) var(--font-sans);--type-meta-tracking:0em;--type-meta-transform:none;--type-mono:var(--type-weight-regular) var(--type-size-13)/var(--type-leading-body) var(--font-mono);--type-mono-tracking:0em;--type-mono-transform:none;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--sp-16:64px;--stroke-hairline:1px;--stroke-rule:2px;--stroke-rail:4px;--radius:0px;--transition:.15s ease;--bg:#f5f5f0;--bg-alt:#ebebeb;--surface:#fff;--text:#0a0a0a;--text-muted:#6a6a6a;--ink:#0a0a0a;--border:#0a0a0a;--border-light:#d0d0c8;--accent:#057079;--accent-soft:#c8eaed;--accent-light:#e8f6f7;--on-accent:#fff;--focus:#057079;--success:#2f6b3a;--success-bg:#ddebd9;--warning:#7a4e00;--warning-bg:#f5e7c4;--danger:#b3261e;--danger-bg:#f6deda;--info:#1f4fa8;--info-bg:#dce5f4;--status-draft:#5c5c58;--status-draft-bg:#eceae4;--status-review:var(--accent);--status-review-bg:var(--accent-soft);--status-complete:var(--success);--status-complete-bg:var(--success-bg);--status-in-progress:var(--warning);--status-in-progress-bg:var(--warning-bg);--status-launched:var(--info);--status-launched-bg:var(--info-bg);--category-1:#1f4fa8;--category-2:#5b3f9e;--category-3:#7a4e00;--category-4:#6b4a00;--category-5:#2f6b3a;--category-1-bg:#dce5f4;--category-2-bg:#e6e0f2;--category-3-bg:#f5e7c4;--category-4-bg:#fef08a;--category-5-bg:#ddebd9;--selection-bg:#fef08a;--selection-fg:#422006;--shadow:none;--card:var(--surface);--muted:var(--text-muted);--done:var(--success);--done-bg:var(--success-bg);--badge-draft:var(--status-draft);--badge-review:var(--status-review);--badge-complete:var(--status-complete);--tag-builders-bg:var(--category-1-bg);--tag-builders:var(--category-1);--tag-builders-text:var(--category-1);--tag-operators-bg:var(--category-2-bg);--tag-operators:var(--category-2);--tag-operators-text:var(--category-2);--tag-learners-bg:var(--category-3-bg);--tag-learners:var(--category-3);--tag-learners-text:var(--category-3);--beachhead-bg:var(--category-4-bg);--beachhead:var(--category-4);--revenue-paid:var(--success);--revenue-paid-bg:var(--success-bg);--revenue-invoiced:var(--accent);--revenue-invoiced-bg:var(--accent-soft);--revenue-estimated:var(--warning);--revenue-estimated-bg:var(--warning-bg);--invoice-paid:var(--success);--invoice-paid-bg:var(--success-bg);--invoice-issued:var(--accent);--invoice-issued-bg:var(--accent-soft);--invoice-overdue:var(--danger);--invoice-overdue-bg:var(--danger-bg);--invoice-draft:var(--status-draft);--invoice-draft-bg:var(--status-draft-bg);--timeline-today:var(--danger);--timeline-vacation:color-mix(in srgb, var(--warning-bg) 35%, transparent)}[data-mode=dark],[data-theme=dark]{--bg:#121212;--bg-alt:#1a1a1a;--surface:#1e1e22;--text:#e6e6e0;--text-muted:#94948c;--ink:#e6e6e0;--border:#74746e;--border-light:#2e2e2c;--accent:#2abfcc;--accent-soft:#0d3d40;--accent-light:#082a2d;--on-accent:#121212;--focus:#2abfcc;--success:#8fcb97;--success-bg:#17301b;--warning:#e9c46a;--warning-bg:#3a2a08;--danger:#f09a8f;--danger-bg:#45120e;--info:#9db7ea;--info-bg:#182a4d;--status-draft:#94948c;--status-draft-bg:#26262a;--category-1:#9db7ea;--category-2:#c1b0ea;--category-3:#e9c46a;--category-4:#facc15;--category-5:#8fcb97;--category-1-bg:#182a4d;--category-2-bg:#2a1f48;--category-3-bg:#3a2a08;--category-4-bg:#422006;--category-5-bg:#17301b;--selection-bg:#facc15;--selection-fg:#121212}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font:var(--type-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::selection{background-color:var(--selection-bg);color:var(--selection-fg)}::selection{background-color:var(--selection-bg);color:var(--selection-fg)}h1{font:var(--type-display);letter-spacing:var(--type-display-tracking);text-transform:var(--type-display-transform)}h2{font:var(--type-heading);letter-spacing:var(--type-heading-tracking);text-transform:var(--type-heading-transform)}h3{font:var(--type-subheading);letter-spacing:var(--type-subheading-tracking);text-transform:var(--type-subheading-transform)}.micro-label{font:var(--type-label);letter-spacing:var(--type-label-tracking);text-transform:var(--type-label-transform);color:var(--text-muted)}.meta{font:var(--type-meta);color:var(--text-muted)}.mono{font-family:var(--font-mono);font-size:var(--type-size-13)}p,li,blockquote,dd,figcaption{orphans:2;widows:2;text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance;orphans:2;widows:2}.prose{text-wrap:pretty}.site-nav{align-items:center;gap:var(--sp-8);padding:var(--sp-4) var(--sp-8);border-bottom:var(--stroke-rule) solid var(--ink);background:var(--surface);display:flex}.site-nav .nav-brand{font-family:var(--font-display);font-size:var(--type-size-15);font-weight:var(--type-weight-bold);color:var(--ink);white-space:nowrap;letter-spacing:var(--type-tracking-tight);text-decoration:none}.site-nav .nav-brand:hover{opacity:.7}.nav-brand img{width:auto;height:28px;display:block}.site-nav .nav-links{gap:var(--sp-6);flex-wrap:wrap;align-items:center;margin-left:auto;list-style:none;display:flex}.site-nav .nav-links a{font-family:var(--font-display);font-size:var(--type-size-13);font-weight:var(--type-weight-medium);color:var(--text-muted);padding-bottom:var(--sp-1);border-bottom:var(--stroke-rule) solid transparent;transition:color var(--transition), border-color var(--transition);text-decoration:none}.site-nav .nav-links a:hover{color:var(--text)}.site-nav .nav-links a.active{color:var(--ink);border-bottom-color:var(--accent)}.page{max-width:72rem;padding:var(--sp-12) var(--sp-8) var(--sp-16);margin:0 auto}.page-header{margin-bottom:var(--sp-12);padding-bottom:var(--sp-8);border-bottom:var(--stroke-rule) solid var(--ink)}.page-header h1{margin-bottom:var(--sp-3)}.page-header .tagline{font-size:var(--type-size-16);color:var(--text-muted);max-width:40rem;line-height:var(--type-leading-compact);margin-bottom:var(--sp-2)}.page-header .tagline:last-of-type{margin-bottom:var(--sp-4)}.page-header .tagline-secondary{font-size:var(--type-size-15)}.page-header .meta-row{gap:var(--sp-2) var(--sp-6);font-size:var(--type-size-13);color:var(--text-muted);flex-wrap:wrap;display:flex}.page-header .meta-row span{white-space:nowrap}.page-header .meta-row strong{color:var(--text);font-weight:var(--type-weight-semibold)}.module{background:var(--surface);border:var(--stroke-hairline) solid var(--border-light);border-top:var(--stroke-rule) solid var(--ink);padding:var(--sp-6);margin-bottom:var(--sp-6)}.module.accent-left{border-left:var(--stroke-rail) solid var(--accent);border-top:var(--stroke-rule) solid var(--ink)}.module-header{margin-bottom:var(--sp-4)}.module-header .micro-label{margin-bottom:var(--sp-2)}.section-label{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);margin-top:var(--sp-8);display:flex}.section-label .micro-label{flex-shrink:0}.section-label:after{content:"";height:var(--stroke-rule);background:var(--ink);flex:1}details.portal-source-files{margin-bottom:var(--sp-6)}details.portal-source-files>summary.portal-source-files-summary{cursor:pointer;user-select:none;margin-bottom:0;list-style:none}details.portal-source-files>summary.portal-source-files-summary::-webkit-details-marker{display:none}details.portal-source-files>summary.portal-source-files-summary::marker{content:""}details.portal-source-files[open]>summary.portal-source-files-summary{margin-bottom:var(--sp-4)}details.portal-source-files>summary.portal-source-files-summary:focus{outline:none}details.portal-source-files>summary.portal-source-files-summary:focus-visible{outline:var(--stroke-rule) solid var(--focus);outline-offset:2px}.portal-source-files-chevron{color:var(--text-muted);transition:transform var(--transition);flex-shrink:0;font-size:.5rem;line-height:1}details.portal-source-files[open] .portal-source-files-chevron{transform:rotate(-180deg)}.progress-track{background:var(--border-light);height:4px;margin:var(--sp-3) 0;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width .3s}.card-grid{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=640px){.card-grid{grid-template-columns:1fr}}.index-card{background:var(--surface);border:var(--stroke-hairline) solid var(--border-light);border-top:var(--stroke-rule) solid var(--ink);padding:var(--sp-6);color:inherit;gap:var(--sp-3);transition:border-left-color var(--transition), border-top-color var(--transition);flex-direction:column;text-decoration:none;display:flex}.index-card:hover{border-left:var(--stroke-rail) solid var(--accent)}.index-card .card-label{font-family:var(--font-display);font-size:var(--type-size-11);font-weight:var(--type-weight-bold);text-transform:uppercase;letter-spacing:var(--type-tracking-label);color:var(--text-muted)}.index-card h3{font-family:var(--font-display);font-size:var(--type-size-16);font-weight:var(--type-weight-bold);letter-spacing:var(--type-tracking-tight);text-transform:none;line-height:var(--type-leading-title)}.index-card .card-detail{font-size:var(--type-size-14);color:var(--text-muted);line-height:var(--type-leading-compact)}.index-card .card-meta{align-items:center;gap:var(--sp-2);padding-top:var(--sp-2);margin-top:auto;display:flex}a.index-card.coming-soon{opacity:.45;pointer-events:none}article.index-card.coming-soon{opacity:.45}article.index-card.coming-soon,article.index-card.coming-soon *{pointer-events:none}a.index-card.coming-soon .card-label:after,article.index-card.coming-soon .card-label:after{content:" · coming soon";text-transform:none;letter-spacing:normal;opacity:.7;font-style:italic}article.index-card{background:var(--surface);border:var(--stroke-hairline) solid var(--border-light);border-top:var(--stroke-rule) solid var(--ink);transition:border-left-color var(--transition), border-top-color var(--transition);flex-direction:column;gap:0;padding:0;display:flex}article.index-card:hover{border-left:var(--stroke-rail) solid var(--accent)}article.index-card .index-card-primary{color:inherit;gap:var(--sp-3);padding:var(--sp-6);flex-direction:column;flex:1;text-decoration:none;display:flex}article.index-card .index-card-quick{padding:var(--sp-2) var(--sp-6) var(--sp-6);border-top:var(--stroke-hairline) solid var(--border-light);margin:0}article.index-card .card-meta{padding-top:var(--sp-2);margin-top:auto}h2.section-label{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;margin:0}.table-scroll{-webkit-overflow-scrolling:touch;width:100%;margin-bottom:var(--sp-6);overflow-x:auto}.table-scroll:focus{outline:var(--stroke-rule) solid var(--focus);outline-offset:2px}.table-scroll .data-table{margin-bottom:0}.badge{font:var(--type-badge);letter-spacing:var(--type-badge-tracking);text-transform:var(--type-badge-transform);white-space:nowrap;padding:.15rem .5rem;display:inline-block}.badge-draft{background:var(--status-draft-bg);color:var(--status-draft)}.badge-review{background:var(--status-review-bg);color:var(--status-review)}.badge-complete{background:var(--status-complete-bg);color:var(--status-complete)}.badge-in-progress{background:var(--status-in-progress-bg);color:var(--status-in-progress)}.badge-launched{background:var(--status-launched-bg);color:var(--status-launched)}.tag{font-family:var(--font-display);font-size:var(--type-size-10);font-weight:var(--type-weight-bold);letter-spacing:var(--type-tracking-caps);padding:.1rem .45rem;display:inline-block}.tag-1{background:var(--category-1-bg);color:var(--category-1)}.tag-2{background:var(--category-2-bg);color:var(--category-2)}.tag-3{background:var(--category-3-bg);color:var(--category-3)}.tag-4{background:var(--category-4-bg);color:var(--category-4)}.tag-5{background:var(--category-5-bg);color:var(--category-5)}.tag-builders{background:var(--category-1-bg);color:var(--category-1)}.tag-operators{background:var(--category-2-bg);color:var(--category-2)}.tag-learners{background:var(--category-3-bg);color:var(--category-3)}.beachhead{font-family:var(--font-display);font-size:var(--type-size-10);font-weight:var(--type-weight-bold);background:var(--category-4-bg);color:var(--category-4);letter-spacing:var(--type-tracking-caps);padding:.1rem .45rem;display:inline-block}.data-table{border-collapse:collapse;width:100%;font-size:var(--type-size-14)}.data-table th,.data-table td{text-align:left;padding:var(--sp-3) var(--sp-2);border-bottom:var(--stroke-hairline) solid var(--border-light);vertical-align:top}.data-table th{font-family:var(--font-display);font-size:var(--type-size-11);font-weight:var(--type-weight-bold);text-transform:uppercase;letter-spacing:var(--type-tracking-badge);color:var(--text-muted);border-bottom:var(--stroke-rule) solid var(--ink)}.data-table tr:last-child td{border-bottom:none}.data-table a{color:var(--accent);text-decoration:none}.data-table a:hover{text-decoration:underline}.question-list{counter-reset:question;padding:0;list-style:none}.question-list li{counter-increment:question;padding:var(--sp-3) 0 var(--sp-3) var(--sp-8);border-bottom:var(--stroke-hairline) solid var(--border-light);font-size:var(--type-size-14);line-height:var(--type-leading-compact);position:relative}.question-list li:last-child{border-bottom:none}.question-list li:before{content:counter(question);left:0;top:var(--sp-3);font-family:var(--font-display);font-size:var(--type-size-12);font-weight:var(--type-weight-bold);color:var(--accent);text-align:right;width:1.5rem;position:absolute}.question-list strong{font-weight:var(--type-weight-semibold)}.portal-quiet-btn{font-family:inherit;font-size:var(--type-size-13);padding:var(--sp-2) var(--sp-4);border:var(--stroke-hairline) solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;transition:border-color var(--transition), background var(--transition), color var(--transition)}.portal-quiet-btn:hover{border-color:var(--ink);background:var(--bg-alt)}.portal-quiet-btn.is-selected,.portal-quiet-btn.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:var(--type-weight-semibold)}.portal-quiet-btn.is-selected:hover,.portal-quiet-btn.is-active:hover{border-color:var(--accent);background:color-mix(in srgb, var(--accent-soft) 85%, var(--surface))}.btn-primary{font-family:inherit;font-size:var(--type-size-13);font-weight:var(--type-weight-semibold);padding:var(--sp-2) var(--sp-4);border:var(--stroke-hairline) solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--on-accent);cursor:pointer;transition:background var(--transition), border-color var(--transition)}.btn-primary:hover{background:color-mix(in srgb, var(--accent) 85%, var(--ink));border-color:color-mix(in srgb, var(--accent) 85%, var(--ink))}.btn-primary:disabled,.portal-quiet-btn:disabled{opacity:.45;cursor:not-allowed}.field{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-direction:column;display:flex}.field>label{font:var(--type-label);letter-spacing:var(--type-label-tracking);text-transform:var(--type-label-transform);color:var(--text-muted)}.input{font:var(--type-body);font-size:var(--type-size-14);padding:var(--sp-2) var(--sp-3);border:var(--stroke-hairline) solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);width:100%}.input::placeholder{color:var(--text-muted)}.input:focus-visible{outline:var(--stroke-rule) solid var(--focus);outline-offset:0}.input[aria-invalid=true]{border-color:var(--danger)}.field .field-hint{font:var(--type-meta);color:var(--text-muted)}.field .field-error{font:var(--type-meta);color:var(--danger)}.alert{padding:var(--sp-3) var(--sp-4);border-left:var(--stroke-rail) solid currentColor;font-size:var(--type-size-14);margin-bottom:var(--sp-4)}.alert strong{font-weight:var(--type-weight-semibold)}.alert-success{background:var(--success-bg);color:var(--success)}.alert-warning{background:var(--warning-bg);color:var(--warning)}.alert-danger{background:var(--danger-bg);color:var(--danger)}.alert-info{background:var(--info-bg);color:var(--info)}a{color:var(--accent);transition:color var(--transition), text-decoration-color var(--transition);text-decoration:none}a:hover{text-underline-offset:.2em;text-decoration:underline}a:visited{color:color-mix(in srgb, var(--accent) 82%, var(--text) 18%)}a.text-link{color:var(--accent);transition:color var(--transition);text-decoration:none}a.text-link:hover{text-decoration:underline}.site-footer{margin-top:var(--sp-16);padding-top:var(--sp-6);border-top:var(--stroke-rule) solid var(--ink);text-align:center}.site-footer p{font-size:var(--type-size-12);color:var(--text-muted);line-height:1.6}.site-footer .quote{margin-top:var(--sp-2);font-style:italic;font-size:var(--type-size-13);color:var(--text-muted)}:focus-visible{outline:var(--stroke-rule) solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=640px){h1{font-size:var(--type-size-36)}.site-nav{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);flex-direction:column}.site-nav .nav-links{gap:var(--sp-4);flex-wrap:wrap;margin-left:0}.page{padding:var(--sp-8) var(--sp-4) var(--sp-12)}}@media print{p,li,blockquote,dd,figcaption,td,th,.prose{orphans:3;widows:3;text-wrap:pretty}h1,h2,h3,h4,h5,h6{orphans:3;widows:3;text-wrap:balance}}:root{--page-max:72rem;--figure-max:48rem;--phone-max:24rem}html{background:var(--bg);color:var(--text)}body{font:var(--type-body);letter-spacing:var(--type-body-tracking);margin:0}a{color:var(--ink);text-underline-offset:.2em}a:hover{color:var(--accent)}.skip{position:absolute;left:-999px}.skip:focus{z-index:10;background:var(--bg);padding:.5rem;top:1rem;left:1rem}.wrap{width:min(100% - 2rem, var(--page-max));margin-inline:auto}.site-header{border-bottom:var(--stroke-rule) solid var(--border);padding-block:1rem}.site-footer{--foot-bg:#f6f4ee;--foot-ink:#17150f;--foot-muted:#726c5e;--foot-rule:#ded9cc;--foot-accent:#067f8a;--foot-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;--foot-body:"Inter", system-ui, sans-serif;background:var(--foot-bg);color:var(--foot-ink);border-top:1px solid var(--foot-rule);text-align:left;flex-direction:column;justify-content:space-between;gap:2rem;margin-top:6rem;padding:40px 72px 28px;display:flex}.foot-links{gap:120px;display:flex}.foot-col{flex-direction:column;gap:12px;display:flex}.foot-label{font-family:var(--foot-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--foot-muted);margin:0;font-size:12px;font-weight:500;line-height:16px}.foot-items{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.foot-items a{font-family:var(--foot-body);color:var(--foot-ink);font-size:15px;line-height:20px;text-decoration:none}.foot-items a:hover{color:var(--foot-accent)}.foot-email{color:#05656f!important}.foot-name{justify-content:space-between;align-items:flex-end;gap:32px;display:flex}a.foot-mark,a.foot-mark:link,a.foot-mark:visited,a.foot-mark:hover,a.foot-mark:active,a.foot-mark:focus,a.foot-mark:focus-visible{color:var(--foot-ink);-webkit-text-fill-color:var(--foot-ink);flex-shrink:0;line-height:0;display:block}a.foot-mark:hover{opacity:.72}.foot-mark-glyph{aspect-ratio:966/1144;background-color:var(--foot-ink);width:128px;display:block;-webkit-mask:url(/logos/luis-cielak-mark-black.svg) 50%/contain no-repeat;mask:url(/logos/luis-cielak-mark-black.svg) 50%/contain no-repeat}.foot-baseline{font-family:var(--foot-mono);letter-spacing:.14em;text-transform:uppercase;align-items:baseline;gap:40px;margin:0;padding-bottom:8px;font-size:12px;font-weight:500;line-height:16px;display:flex}.foot-top{color:var(--foot-ink);text-decoration:none}.foot-top:hover{color:var(--foot-accent)}.foot-meta{color:var(--foot-muted)}.site-footer a:focus-visible{outline:2px solid var(--foot-accent);outline-offset:3px}html[data-page=nameplate] .site-footer{margin-top:0}@media (width<=720px){.site-footer{gap:1.5rem;padding:24px 24px 16px}.foot-links{gap:40px}.foot-name{flex-direction:column;align-items:flex-start;gap:16px}.foot-mark-glyph{width:80px}.foot-baseline{flex-direction:column;gap:10px;padding-bottom:0}.foot-items a,.foot-top{position:relative}.foot-items a:before,.foot-top:before{content:"";width:max(100%,44px);height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}.nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.brand-lockup{align-items:center;line-height:0;text-decoration:none;display:inline-flex}.brand-lockup img{width:auto;height:32px;display:block}.brand-lockup:hover{opacity:.72}@media (width<=480px){.brand-lockup img{height:24px}}.nav-links{font:var(--type-meta);letter-spacing:var(--type-meta-tracking);text-transform:uppercase;flex-wrap:wrap;gap:1.25rem;display:flex}.nav-links a{text-decoration:none}.hero h1{font:var(--type-display);letter-spacing:var(--type-display-tracking);max-width:18ch;margin:3rem 0 1rem}.lede{font:var(--type-subheading);letter-spacing:var(--type-subheading-tracking);max-width:40rem}.clients{font:var(--type-meta);letter-spacing:var(--type-meta-tracking);text-transform:uppercase;flex-wrap:wrap;gap:.5rem 1.25rem;margin:2rem 0 3rem;display:flex}.section-title{font:var(--type-heading);letter-spacing:var(--type-heading-tracking);margin:3rem 0 1rem}.work-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=48rem){.work-grid{grid-template-columns:1fr 1fr}.work-card.featured{grid-column:1/-1}}.work-card{border:var(--stroke-rule) solid var(--border);background:var(--surface);text-decoration:none;display:block}.work-card img,.work-card picture{width:100%;height:auto;display:block}.work-card .meta{padding:1rem 1.1rem 1.25rem}.work-card h2{font:var(--type-heading);letter-spacing:var(--type-heading-tracking);margin:0 0 .35rem}.badge{font:var(--type-badge);letter-spacing:var(--type-badge-tracking);text-transform:uppercase;border:var(--stroke-hairline) solid var(--border);margin-right:.4rem;padding:.15rem .4rem;display:inline-block}.cs-header{padding-block:2.5rem 1.5rem}.cs-header h1{font:var(--type-display);letter-spacing:var(--type-display-tracking);margin:0 0 .75rem}.cs-kicker{font:var(--type-label);letter-spacing:var(--type-label-tracking);text-transform:uppercase;margin:0 0 .75rem}.cs-sub{font:var(--type-subheading);letter-spacing:var(--type-subheading-tracking);max-width:42rem}.meta-row{font:var(--type-meta);letter-spacing:var(--type-meta-tracking);flex-wrap:wrap;gap:1rem 2rem;margin:1.5rem 0;display:flex}.meta-row dt{font:var(--type-label);letter-spacing:var(--type-label-tracking);text-transform:uppercase}.meta-row dd{margin:.15rem 0 0}.note{font:var(--type-meta);letter-spacing:var(--type-meta-tracking);border-left:var(--stroke-rail) solid var(--accent);padding-left:.75rem}.metrics{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;margin:1.5rem 0;display:grid}.metric{border:var(--stroke-hairline) solid var(--border);padding:1rem}.metric .value{font:var(--type-heading);letter-spacing:var(--type-heading-tracking);display:block}.research-heard{margin-top:1.5rem}.research-heard h3{font:var(--type-label);letter-spacing:var(--type-label-tracking);text-transform:uppercase;margin:0 0 1rem}.research-quotes{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.research-quote{border:var(--stroke-hairline) solid var(--border);height:100%;margin:0;padding:1rem}.research-quote p{margin:0 0 1rem}.research-quote footer{align-items:center;gap:.75rem;display:flex}.rq-avatar{border:var(--stroke-hairline) solid var(--border);width:2.25rem;height:2.25rem;font:var(--type-label);letter-spacing:var(--type-label-tracking);text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rq-id{flex-direction:column;gap:.15rem;min-width:0;display:flex}.rq-name{font:var(--type-label);letter-spacing:var(--type-label-tracking);font-style:normal}.rq-context{font:var(--type-meta);letter-spacing:var(--type-meta-tracking)}.challenges{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;display:grid}.challenge{border:var(--stroke-rule) solid var(--border);padding:1rem}.challenge h3{font:var(--type-label);letter-spacing:var(--type-label-tracking);text-transform:uppercase;margin:0 0 .5rem}.cs-section{border-top:var(--stroke-hairline) solid var(--border);padding-block:2rem}.cs-section h2{font:var(--type-heading);letter-spacing:var(--type-heading-tracking);margin:0 0 1rem}.prose p,.prose li{max-width:42rem}.prose ul{padding-left:1.2rem}.prose table{border-collapse:collapse;width:100%;font:var(--type-body);margin:1rem 0}.prose th,.prose td{border:var(--stroke-hairline) solid var(--border);text-align:left;vertical-align:top;padding:.5rem .65rem}.figure{max-width:var(--figure-max);margin:1.25rem 0 0}.figure.phone{max-width:var(--phone-max)}.figure.phone.is-screen picture{box-sizing:border-box;background:color-mix(in srgb, var(--ink) 12%, var(--bg));border-radius:2.4rem;padding:14px}.figure.phone.is-screen picture img{border-radius:1.7rem}.figure img,.figure picture,.figure video{width:100%;height:auto;display:block}.figure figcaption{font:var(--type-meta);letter-spacing:var(--type-meta-tracking);margin-top:.5rem}.next{border-top:var(--stroke-rule) solid var(--border);justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;display:flex}.page h1{font:var(--type-display);letter-spacing:var(--type-display-tracking)}.todo{font:var(--type-mono);letter-spacing:var(--type-mono-tracking);border:var(--stroke-hairline) dashed var(--border);margin:1rem 0;padding:.75rem 1rem}html[data-page=nameplate]{--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;--np-ink:#17150f;--np-paper:#fff;--np-teal:#8fd4db;--np-rule:#ffffff24;--np-muted:#ffffff8c;--np-body:#ffffffb8;--np-nav:#fffc;--np-ghost:#ffffff4d;--np-draft:#fff9;--np-draft-rule:#ffffff40;--np-faint:#ffffff73;--np-ease:cubic-bezier(.2, 0, 0, 1);--np-dur-1:.16s;--np-dur-2:.28s;--np-dur-3:.4s;--np-motion:var(--np-dur-1) var(--np-ease);background:var(--np-ink);color:var(--np-paper);color-scheme:dark;scroll-behavior:smooth}html[data-page=nameplate] body{background:var(--np-ink);color:var(--np-paper)}html[data-page=nameplate] ::selection{background:var(--np-teal);color:var(--np-ink)}html[data-page=nameplate] .skip:focus{background:var(--np-ink);color:var(--np-paper);outline:2px solid var(--np-teal)}html[data-page=nameplate] a:focus-visible{outline:2px solid var(--np-teal);outline-offset:3px}.plate-bar{border-bottom:1px solid var(--np-rule);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px 28px;padding:24px 64px;font-size:12px;font-weight:400;line-height:16px;display:grid}.plate-name{color:var(--np-paper);justify-self:start;text-decoration:none}.plate-status{color:var(--np-muted);white-space:nowrap;gap:28px;margin:0;display:flex}.plate-nav{justify-content:flex-end;gap:28px;display:flex}.plate-nav a{color:var(--np-nav);transition:color var(--np-motion);text-decoration:none;position:relative}.plate-nav a:after{content:"";background:var(--np-teal);transform-origin:0;height:1px;transition:transform var(--np-dur-3) var(--np-ease);position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.plate-nav a:hover,.plate-nav a:focus-visible{color:var(--np-paper)}.plate-nav a:hover:after,.plate-nav a:focus-visible:after{transform:scaleX(1)}.plate-nav a:last-child,.plate-nav a[aria-current=page]{color:var(--np-paper)}.plate-nav a[aria-current=page]:after{display:none}.about-bar .plate-nav a:last-child{color:var(--np-nav)}.about-bar .plate-nav a[aria-current=page]{color:var(--np-paper)}.plate-stage{isolation:isolate;position:relative}.plate-field{z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 var(--field-fade-top,12%), #000 var(--field-fade-bottom,62%), transparent 100%);mask-image:linear-gradient(to bottom, transparent 0%, #000 var(--field-fade-top,12%), #000 var(--field-fade-bottom,62%), transparent 100%);position:absolute;inset:0}.plate-period{transition:color var(--np-dur-1) var(--np-ease);display:inline-block;position:relative}.plate-period:after{content:"";position:absolute;inset:45% -.18em -.08em -.08em}.plate-stage.is-full-stop .plate-period{color:var(--np-teal)}.plate-hero{padding:80px 60px 56px}.plate-kicker{color:var(--np-teal);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 32px;font-size:13px;line-height:16px}.nameplate h1{color:var(--np-paper);font-family:var(--font-display);letter-spacing:-.04em;text-transform:none;text-wrap:wrap;margin:0;font-size:clamp(3.25rem,18.05vw,16.25rem);font-weight:500;line-height:.86}.plate-intro{justify-content:space-between;align-items:flex-end;gap:64px;padding:0 64px 72px;display:flex}.plate-bio{max-width:560px;color:var(--np-body);font-family:var(--font-sans);margin:0;font-size:20px;line-height:30px}.plate-actions{flex-wrap:wrap;flex-shrink:0;gap:12px;display:flex}.plate-btn{border:1px solid var(--np-paper);background:var(--np-paper);color:var(--np-ink);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;transition:background-color var(--np-motion), border-color var(--np-motion), color var(--np-motion);padding:14px 22px;font-size:13px;line-height:16px;text-decoration:none;display:inline-block}.plate-btn-arrow{transition:transform var(--np-dur-2) var(--np-ease);display:inline-block}.plate-btn-ghost{border-color:var(--np-ghost);color:var(--np-paper);text-transform:none;background:0 0}.plate-btn:hover{background:var(--np-teal);border-color:var(--np-teal);color:var(--np-ink)}.plate-btn:hover .plate-btn-arrow{transform:translate(4px)}.plate-btn:active{background:color-mix(in srgb, var(--np-teal) 82%, var(--np-ink));border-color:color-mix(in srgb, var(--np-teal) 82%, var(--np-ink))}.plate-clients{border-top:1px solid var(--np-rule);flex-direction:column;gap:18px;margin:0;padding:28px 64px 48px;display:flex}.plate-clients p{color:var(--np-muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:12px;line-height:18px}.plate-client-group{flex-wrap:wrap;justify-content:center;align-items:center;gap:28px 48px;margin:0;padding:0;list-style:none;display:flex}.plate-client-group li{flex:none;justify-content:center;align-items:center;min-height:44px;display:flex}.plate-clients img{opacity:.88;filter:brightness(0)invert();user-select:none;max-width:100%;height:auto;display:block}.plate-client-group .plate-client-break{min-height:0;display:none}@media (width>=721px){.plate-client-group{gap:0 clamp(28px,4vw,64px)}.plate-client-group .plate-client-break{flex:0 0 100%;width:100%;height:28px;min-height:0;display:block}.plate-client-group .plate-client-break-late{display:none}}@media (width>=1200px){.plate-client-group{column-gap:72px}.plate-client-group .plate-client-break-late{height:32px;display:block}}@media (width<=720px){.plate-client-group{gap:20px 32px}}.plate-strip{border-top:1px solid var(--np-rule);grid-template-columns:1fr 1fr;margin:0;padding:0;scroll-margin-top:24px;list-style:none;display:grid}.plate-strip>li{border-right:1px solid var(--np-rule);min-width:0}.plate-strip>li:last-child{border-right:0}.plate-strip a{height:100%;color:inherit;transition:background-color var(--np-motion), opacity var(--np-motion);flex-direction:column;gap:14px;padding:32px 32px 40px;text-decoration:none;display:flex;position:relative}.plate-strip a:hover{background:color-mix(in srgb, var(--np-paper) 6%, transparent)}.plate-strip a:not(.plate-more):before{content:"";background:var(--np-teal);transform-origin:0;height:1px;transition:transform var(--np-dur-3) var(--np-ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.plate-card-arrow{color:var(--np-teal);opacity:0;transition:opacity var(--np-dur-1) var(--np-ease), transform var(--np-dur-2) var(--np-ease);position:absolute;top:32px;right:32px;transform:translate(-6px,6px)}.plate-strip a .plate-blurb{transition:color var(--np-dur-1) var(--np-ease)}.plate-strip a:hover:not(.plate-more):before,.plate-strip a:focus-visible:not(.plate-more):before{transform:scaleX(1)}.plate-strip a:hover .plate-card-arrow,.plate-strip a:focus-visible .plate-card-arrow{opacity:1;transform:none}.plate-strip a:hover .plate-blurb,.plate-strip a:focus-visible .plate-blurb{color:var(--np-body)}.plate-strip:has(a:focus-visible) a:not(:focus-visible){opacity:.5}@media (hover:hover){.plate-strip:has(a:hover) a:not(:hover){opacity:.5}}.plate-kicker-row{align-items:center;gap:8px;display:flex}.plate-index{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--np-teal);font-size:12px;line-height:16px}.plate-result{color:var(--np-teal);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin-top:2px;font-size:12px;line-height:16px}.plate-study{color:var(--np-paper);font-family:var(--font-display);letter-spacing:-.01em;font-size:24px;font-weight:500;line-height:28px}.plate-blurb{color:var(--np-muted);font-family:var(--font-sans);font-size:14px;line-height:21px}.plate-draft{border:1px solid var(--np-draft-rule);color:var(--np-draft);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;padding:2px 6px;font-size:10px;line-height:12px;display:inline-block}.plate-catalog{border-top:1px solid var(--np-rule);padding:40px 64px 8px}.plate-catalog h2{color:var(--np-teal);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:400;line-height:16px}.plate-catalog ol{margin:0;padding:0;list-style:none}.plate-catalog li{border-top:1px solid var(--np-rule)}.plate-catalog a{color:inherit;transition:opacity var(--np-motion);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"index draft""title title""blurb blurb""result result";gap:8px 16px;padding:28px 0 32px;text-decoration:none;display:grid}.plate-catalog .plate-index{grid-area:index}.plate-catalog .plate-study{transition:color var(--np-dur-1) var(--np-ease), transform var(--np-dur-2) var(--np-ease);grid-area:title}.plate-catalog .plate-blurb{grid-area:blurb;max-width:42rem}.plate-catalog .plate-result{grid-area:result;margin-top:0}.plate-catalog .plate-draft{grid-area:draft;justify-self:end}.plate-catalog a:hover .plate-study,.plate-catalog a:focus-visible .plate-study{color:var(--np-teal);transform:translate(4px)}.plate-quotes{border-top:1px solid var(--np-rule);padding:40px 64px 80px}.plate-quotes h2{color:var(--np-teal);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:400;line-height:16px}.plate-quotes ul{margin:0;padding:0;list-style:none}.plate-quotes li{border-top:1px solid var(--np-rule)}.plate-quotes blockquote{flex-direction:column;gap:16px;margin:0;padding:28px 0 32px;display:flex}.plate-quote-meta{align-items:center;gap:12px;display:flex}.plate-quote-text{max-width:48rem;color:var(--np-paper);font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:28px;font-weight:500;line-height:36px}.plate-quotes footer{margin:0}.plate-quote-cite{color:var(--np-muted);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-style:normal;line-height:16px}.plate-quotes-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.plate-quote-nav{gap:8px;display:flex}.plate-quote-arrow{border:1px solid var(--np-rule);width:36px;height:36px;color:var(--np-muted);cursor:pointer;transition:border-color var(--np-motion), color var(--np-motion), background-color var(--np-motion);background:0 0;justify-content:center;align-items:center;padding:0;display:flex}.plate-quote-arrow:hover,.plate-quote-arrow:focus-visible{border-color:var(--np-teal);color:var(--np-paper)}.plate-quotes--cards .plate-quote-marquee{scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:16px -64px 0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 64px calc(100% - 64px),#0000);mask-image:linear-gradient(90deg,#0000,#000 64px calc(100% - 64px),#0000)}.plate-quotes--cards .plate-quote-marquee::-webkit-scrollbar{display:none}.plate-quotes--cards .plate-quote-track{width:max-content;display:flex}.plate-quotes--cards .plate-quote-group{flex-shrink:0;gap:16px;margin:0;padding:0 0 0 16px;list-style:none;display:flex}.plate-quotes--cards li{border-top:0;flex:0 0 min(400px,78vw)}.plate-quotes--cards blockquote{border:1px solid var(--np-rule);background:color-mix(in srgb, var(--np-paper) 3%, transparent);flex-direction:column;gap:20px;height:100%;margin:0;padding:28px;display:flex;position:relative}.pqc-mark{color:var(--np-rule);font-family:var(--font-display);pointer-events:none;font-size:72px;line-height:1;position:absolute;top:8px;right:24px}.plate-quotes--cards .plate-quote-text{max-width:none;color:var(--np-body);flex:1;font-size:18px;line-height:27px}.pqc-foot{border-top:1px solid var(--np-rule);align-items:center;gap:12px;margin:0;padding-top:20px;display:flex}.pqc-avatar{border:1px solid var(--np-rule);width:36px;height:36px;color:var(--np-paper);font-family:var(--font-mono);text-transform:uppercase;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.pqc-id{flex-direction:column;gap:2px;min-width:0;display:flex}.pqc-name{color:var(--np-paper);font-family:var(--font-display);letter-spacing:-.01em;font-size:15px;font-weight:500;line-height:20px}.pqc-role{color:var(--np-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:11px;line-height:16px}.pqc-link{border:1px solid var(--np-rule);width:36px;height:36px;color:var(--np-muted);flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:color .2s,border-color .2s;display:flex}.pqc-link:hover{color:var(--np-paper);border-color:var(--np-paper)}.pqc-link:focus-visible{color:var(--np-paper);border-color:var(--np-paper);outline:2px solid var(--np-paper);outline-offset:2px}@media (hover:hover){.plate-catalog ol:hover a,.plate-catalog ol:focus-within a{opacity:.5}.plate-catalog ol a:hover,.plate-catalog ol a:focus-visible{opacity:1}}@media (prefers-reduced-motion:reduce){html[data-page=nameplate]{scroll-behavior:auto}html[data-page=nameplate] .plate-catalog .plate-study{transition-property:color}html[data-page=nameplate] .plate-btn:hover .plate-btn-arrow,html[data-page=nameplate] .plate-catalog a:hover .plate-study,html[data-page=nameplate] .plate-catalog a:focus-visible .plate-study,html[data-page=nameplate] .plate-card-arrow{transform:none}html[data-page=nameplate] .plate-card-arrow{transition-property:opacity}html[data-page=nameplate] .plate-nav a:after,html[data-page=nameplate] .plate-strip a:not(.plate-more):before{transition:none}}@media (width<=1040px) and (width>=721px){.plate-bar{column-gap:20px;padding-inline:32px}}@media (width<=720px){.plate-bar{grid-template-columns:1fr auto;gap:14px 20px;padding-block:20px;padding-inline:20px}.plate-status{justify-self:end}.plate-nav{white-space:normal;flex-wrap:wrap;grid-column:1/-1;justify-content:flex-start;gap:10px 20px}}@media (width<=960px){.plate-intro,.plate-clients,.plate-catalog,.plate-quotes{padding-inline:20px}.plate-hero{padding:48px 20px 32px}.plate-intro{flex-direction:column;align-items:stretch;gap:28px;padding-bottom:40px}.nameplate h1{font-size:clamp(3.15rem,16vw,8rem)}.plate-quotes--cards .plate-quote-marquee{margin-inline:-20px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20px calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#0000,#000 20px calc(100% - 20px),#0000)}.plate-quotes--cards .plate-quote-group{gap:12px;padding-left:12px}}html[data-page=resume]{--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;--cv-bg:#f6f4ee;--cv-ink:#17150f;--cv-text:#17150f;--cv-muted:#726c5e;--cv-faint:#a8a090;--cv-border:#ded9cc;--cv-accent:#067f8a;background:var(--cv-bg);color:var(--cv-text)}html[data-page=resume] body{background:var(--cv-bg);color:var(--cv-text)}html[data-page=resume] ::selection{background:var(--cv-accent);color:#fff}html[data-page=resume] .skip:focus,html[data-page=resume] a:focus-visible{outline:2px solid var(--cv-accent);outline-offset:3px}html[data-page=resume] .skip:focus{background:var(--cv-bg);color:var(--cv-ink)}html[data-page=resume] a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}html[data-page=resume] a:hover{color:var(--cv-accent)}.cv-band{border-bottom:1px solid var(--cv-border)}.cv-band-ink{border-bottom:2px solid var(--cv-ink)}.cv-band-top{border-bottom:0;border-top:2px solid var(--cv-ink)}.cv-sheet{box-sizing:border-box;width:min(100%,1440px);margin-inline:auto;padding-inline:64px}.cv-bar{justify-content:space-between;align-items:center;gap:24px;padding-block:28px;display:flex}.cv-name{color:var(--cv-ink);font-family:var(--font-display);letter-spacing:-.01em;font-size:18px;font-weight:600;line-height:22px;text-decoration:none}.cv-nav{flex-wrap:wrap;justify-content:flex-end;gap:32px;display:flex}.cv-nav a{color:var(--cv-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px;line-height:16px;text-decoration:none}.cv-nav a[aria-current=page]{color:var(--cv-ink)}.cv-hero{padding-top:72px;padding-bottom:40px}.cv-kicker-row{justify-content:space-between;align-items:baseline;gap:16px 32px;display:flex}.cv-kicker,.cv-download,.cv-impact h2,.cv-work h2,.cv-facts h2,.cv-foot p{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:12px;font-weight:400;line-height:16px}.cv-kicker{color:var(--cv-accent)}.cv-download,.cv-foot a{color:var(--cv-ink);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px;line-height:16px}.cv-download{margin:0;text-decoration:none}.cv-download:hover{color:var(--cv-accent)}.cv-hero h1{letter-spacing:-.02em;text-transform:none;margin:24px 0 0;font-weight:500}.cv-title,.cv-title-faint{font-family:var(--font-display);letter-spacing:-.02em;font-size:56px;font-weight:500;line-height:60px;display:block}.cv-title{color:var(--cv-ink)}.cv-title-faint{color:var(--cv-faint)}.cv-lede{max-width:760px;color:var(--cv-muted);font-family:var(--font-sans);margin:28px 0 0;font-size:18px;line-height:28px}.cv-contact{color:var(--cv-muted);font-family:var(--font-mono);letter-spacing:.04em;flex-wrap:wrap;gap:12px 40px;margin:28px 0 0;padding:0;font-size:12px;line-height:16px;list-style:none;display:flex}.cv-contact a{color:inherit;text-decoration:none}.cv-contact li:nth-child(2) a{color:var(--cv-ink)}.cv-impact,.cv-work{padding-block:48px}.cv-impact h2,.cv-work h2,.cv-facts h2{color:var(--cv-faint)}.cv-impact h2{margin-bottom:28px}.cv-impact ol{grid-template-columns:1fr 1fr;gap:28px 64px;margin:0;padding:0;list-style:none;display:grid}.cv-impact li{align-items:flex-start;gap:16px;display:flex}.cv-impact li span{color:var(--cv-accent);font-family:var(--font-mono);flex:0 0 1.25rem;padding-top:3px;font-size:12px;line-height:16px}.cv-impact li p{color:var(--cv-text);font-family:var(--font-sans);margin:0;font-size:16px;line-height:24px}.cv-work{padding-bottom:0}.cv-work h2{margin-bottom:8px}.cv-work>ol{margin:0;padding:0;list-style:none}.cv-work>ol>li{border-top:1px solid var(--cv-border);gap:40px;padding-block:24px;display:flex}.cv-work>ol>li.is-lead{padding-block:32px}.cv-work>ol>li.is-ink{border-top:2px solid var(--cv-ink)}.cv-work>ol>li.is-last{border-bottom:1px solid var(--cv-border)}.cv-when{color:var(--cv-muted);font-family:var(--font-mono);flex:0 0 160px;margin:0;font-size:12px;line-height:16px}.cv-when span{display:block}.cv-when.is-faint{color:var(--cv-faint)}.cv-role{flex-direction:column;flex:1 1 0;gap:6px;min-width:0;display:flex}.cv-work .is-lead .cv-role{gap:12px}.cv-role-head{justify-content:space-between;align-items:baseline;gap:16px 24px;display:flex}.cv-role h3{color:var(--cv-ink);font-family:var(--font-display);letter-spacing:-.01em;text-transform:none;margin:0;font-size:20px;font-weight:500;line-height:24px}.cv-work .is-lead h3{font-size:24px;line-height:30px}.cv-role-head p,.cv-org,.cv-summary{margin:0}.cv-role-head p,.cv-org{color:var(--cv-muted);font-family:var(--font-mono);font-size:12px;line-height:16px}.cv-role-head p{flex-shrink:0}.cv-org{color:var(--cv-accent);letter-spacing:.12em;text-transform:uppercase}.cv-summary{max-width:720px;color:var(--cv-muted);font-family:var(--font-sans);margin-top:4px;font-size:14px;line-height:21px}.cv-work .is-lead .cv-summary{margin-top:6px;font-size:15px;line-height:23px}.cv-facts{grid-template-columns:1fr 1fr 1fr;gap:48px;padding-top:56px;padding-bottom:72px;display:grid}.cv-facts h2{margin-bottom:14px}.cv-facts h2.is-accent{color:var(--cv-accent)}.cv-facts p{color:var(--cv-text);font-family:var(--font-sans);margin:0;font-size:15px;line-height:24px}.cv-facts>div>h2+p+h2{margin-top:28px}.cv-tools h2{margin-bottom:10px}.cv-tools h2+p+h2,.cv-edu h2+p+h2,.cv-edu .cv-school+h2,.cv-edu .cv-certs+h2{margin-top:24px}.cv-tools p{font-family:var(--font-mono);font-size:13px;line-height:22px}.cv-facts .cv-degree{color:var(--cv-ink);font-family:var(--font-display);font-size:17px;font-weight:500;line-height:22px}.cv-facts .cv-school{color:var(--cv-muted);font-family:var(--font-mono);margin-top:4px;font-size:12px;line-height:16px}.cv-edu .cv-degree+.cv-school+.cv-degree{margin-top:16px}.cv-facts .cv-certs{line-height:22px}.cv-edu h2{margin-bottom:12px}.cv-facts .cv-community{color:var(--cv-muted);font-family:var(--font-sans);margin-top:6px;font-size:14px;line-height:21px}.cv-foot{justify-content:space-between;align-items:center;gap:16px 32px;padding-block:36px;display:flex}.cv-foot p{color:var(--cv-faint);letter-spacing:.08em}.cv-foot a{text-decoration:none}@media (width<=1100px){.cv-facts{grid-template-columns:1fr;gap:36px}}@media (width<=960px){.cv-sheet{padding-inline:20px}.cv-title,.cv-title-faint{font-size:clamp(36px,8vw,56px);line-height:1.07}.cv-impact ol{grid-template-columns:1fr}}@media (width<=720px){.cv-bar{flex-direction:column;align-items:flex-start;gap:14px}.cv-nav{justify-content:flex-start;gap:16px 24px}.cv-work>ol>li{flex-direction:column;gap:12px}.cv-when{flex-basis:auto}.cv-role-head{flex-wrap:wrap}.cv-foot{flex-direction:column;align-items:flex-start}}.about{color:var(--np-paper);border-top:1px solid var(--np-rule)}.about-intro{box-sizing:border-box;grid-template-columns:minmax(30rem,1.15fr) minmax(16rem,520px);align-items:start;gap:72px;width:min(100%,1440px);margin-inline:auto;padding:48px 64px 96px;display:grid}.about-copy{min-width:0;padding-top:48px}.about h2{color:var(--np-paper);font-family:var(--font-display);letter-spacing:-.02em;text-transform:none;margin:0;font-size:44px;font-weight:500;line-height:1.25}.about-closer{max-width:28rem;color:var(--np-paper);font-family:var(--font-display);letter-spacing:-.01em;margin:40px 0 0;font-size:20px;font-weight:500;line-height:1.45}.about-portrait{aspect-ratio:560/620;object-fit:cover;object-position:center;border-radius:17px;justify-self:end;width:100%;height:auto;display:block}@media (width<=1280px){.about-intro{gap:64px;padding-inline:48px}}@media (width<=900px){.about-intro{grid-template-columns:1fr;gap:32px;padding:28px 20px 48px}.about-copy{padding-top:0}.about-portrait{order:-1;justify-self:start;width:min(100%,560px)}.about h2{font-size:clamp(32px,8vw,44px);line-height:1.2}}@media (width<=720px){.plate-strip{grid-template-columns:1fr}.plate-strip>li,.plate-strip>li:nth-child(2n),.plate-strip>li:nth-child(-n+2){border-right:0;border-bottom:1px solid var(--np-rule)}.plate-strip>li:last-child{border-bottom:0}}.product-study{--ps-muted:color-mix(in srgb, var(--text) 62%, var(--bg));--ps-gap:clamp(3rem, 8vw, 6rem)}.ps-hero{padding-block:clamp(2.5rem,6vw,4.5rem) 0}.ps-kicker{font:var(--type-label);letter-spacing:var(--type-label-tracking);text-transform:uppercase;margin:0 0 1rem}.ps-hero h1{font:var(--type-display);letter-spacing:var(--type-display-tracking);max-width:20ch;margin:0 0 1rem}.ps-sub{font:var(--type-subheading);letter-spacing:var(--type-subheading-tracking);max-width:44rem;margin:0}.ps-lede{margin-top:1.5rem}.ps-lede p{font:var(--type-subheading);letter-spacing:var(--type-subheading-tracking);color:var(--ps-muted);max-width:44rem}.ps-meta{color:var(--ps-muted);margin:2rem 0 0}.ps-overview{margin-top:2.5rem}.ps-overview p:first-child{font:var(--type-subheading);letter-spacing:var(--type-subheading-tracking);max-width:44rem}.ps-principles{padding-block:var(--ps-gap)}.ps-principles ul{border-top:var(--stroke-rule) solid var(--border);padding:0;grid-template-columns:repeat(4,1fr);gap:1.5rem 2rem;margin:0;padding-top:2rem;list-style:none;display:grid}.ps-principles h2{font:var(--type-heading);letter-spacing:var(--type-heading-tracking);margin:0 0 .5rem}.ps-principles p{color:var(--ps-muted);max-width:24ch;margin:0}.ps-band{padding-block:calc(var(--ps-gap) / 2)}.ps-band-head{margin-bottom:1.5rem}.ps-band-head h2{font:var(--type-heading);letter-spacing:var(--type-heading-tracking);max-width:24ch;margin:0}.ps-band-head p{color:var(--ps-muted);max-width:44rem;margin:.75rem 0 0}.ps-panel{background:var(--surface);border:var(--stroke-hairline) solid var(--border);justify-content:center;padding:clamp(1.25rem,4vw,2.5rem);display:flex}.ps-panel .figure{margin:0}.ps-approvals{gap:1.25rem;display:grid}.ps-approvals.is-pair{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}.ps-approvals .ps-panel{width:100%}.agent-map{margin:1.5rem 0 0}.agent-map-panel{background:var(--surface);border:var(--stroke-hairline) solid var(--border);padding:clamp(1.25rem,4vw,2.25rem)}.agent-map-kicker{font:var(--type-meta);letter-spacing:var(--type-meta-tracking);text-transform:uppercase;color:var(--ps-muted);margin:0 0 .75rem}.agent-map-roster{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.agent-map-roster li{background:var(--bg);border:var(--stroke-hairline) solid var(--border);flex-direction:column;gap:.35rem;padding:.9rem 1rem;display:flex}.agent-map-roster strong,.agent-map-runtime strong{font:var(--type-heading);letter-spacing:var(--type-heading-tracking)}.agent-map-roster span,.agent-map-runtime span:last-child{color:var(--ps-muted)}.agent-map-runtime{border:var(--stroke-hairline) solid var(--border);background:var(--bg);flex-direction:column;gap:.35rem;margin:1.25rem 0 0;padding:1rem 1.1rem;display:flex}.agent-map-runtime .agent-map-kicker{margin:0}.agent-map figcaption{font:var(--type-meta);letter-spacing:var(--type-meta-tracking);color:var(--ps-muted);margin-top:.75rem}.ps-close{padding-block:var(--ps-gap);border-top:var(--stroke-hairline) solid var(--border)}.ps-close .prose p:first-child{font:var(--type-heading);letter-spacing:var(--type-heading-tracking);max-width:30ch}.ps-phones{padding-block:var(--ps-gap)}.phone-stage{--phone-center:320px;--phone-ratio:1.67;--phone-chip:2.75rem;background:var(--surface);border:var(--stroke-hairline) solid var(--border);outline:none;margin-top:2.5rem;padding:2.25rem 3.5rem 1.5rem;position:relative}.phone-stage:focus-visible{outline:var(--stroke-rail) solid var(--accent);outline-offset:3px}.phone-stage-viewport{height:calc(var(--phone-center) * var(--phone-ratio) + var(--phone-chip));touch-action:pan-y;position:relative;overflow:hidden}.phone-stage-track{height:100%;margin:0;padding:0;list-style:none}.phone-slide{width:var(--phone-center);cursor:pointer;transition:transform .4s,opacity .4s;position:absolute;top:0;left:50%;transform:translate(-50%)}.phone-slide-stack{flex-direction:column;align-items:center;display:flex}.phone-slide-label{background:var(--bg);border:var(--stroke-hairline) solid var(--border);min-height:1.7rem;font:var(--type-meta);letter-spacing:var(--type-meta-tracking);color:var(--ink);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;margin-bottom:.7rem;padding:.3rem .8rem;display:inline-flex}.phone-slide-frame{width:100%}.phone-slide-frame img,.phone-slide-frame picture{width:100%;height:auto;display:block}.phone-slide-frame.is-screen{box-sizing:border-box;background:color-mix(in srgb, var(--ink) 12%, var(--bg));border-radius:2.4rem;padding:14px}.phone-slide-frame.is-screen img,.phone-slide-frame.is-screen picture img{border-radius:1.7rem}.phone-slide[data-offset="0"]{z-index:3;opacity:1;transform:translate(-50%)scale(1)}.phone-slide[data-offset="-1"]{z-index:2;opacity:.68;transform:translate(-108%)scale(.82)}.phone-slide[data-offset="1"]{z-index:2;opacity:.68;transform:translate(8%)scale(.82)}.phone-slide[data-offset="-2"]{z-index:1;opacity:.32;transform:translate(-158%)scale(.66)}.phone-slide[data-offset="2"]{z-index:1;opacity:.32;transform:translate(58%)scale(.66)}.phone-slide:not([data-offset="0"]):not([data-offset="-1"]):not([data-offset="1"]):not([data-offset="-2"]):not([data-offset="2"]){opacity:0;pointer-events:none;z-index:0}.phone-stage[data-reduced=true] .phone-slide{transition:none}@media (prefers-reduced-motion:reduce){.phone-slide{transition:none}}.phone-stage-controls{inset:calc(var(--phone-chip) + 1rem) 0 auto;height:calc(var(--phone-center) * var(--phone-ratio));pointer-events:none;z-index:4;justify-content:space-between;align-items:center;display:flex;position:absolute}.phone-stage-arrow{pointer-events:auto;background:var(--bg);width:2.75rem;height:2.75rem;color:var(--ink);border:var(--stroke-hairline) solid var(--border);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.phone-stage-arrow:hover{color:var(--accent);border-color:var(--accent)}.phone-stage-arrow:focus-visible{outline:var(--stroke-rail) solid var(--accent);outline-offset:2px}.phone-stage-caption{text-align:center;max-width:44rem;min-height:3.2em;font:var(--type-meta);letter-spacing:var(--type-meta-tracking);color:var(--ps-muted);margin:1.25rem auto 0}@media (width<=960px){.ps-principles ul{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.ps-principles ul{grid-template-columns:1fr}.phone-stage{--phone-center:min(280px, 68vw);padding-inline:2.5rem}.phone-slide[data-offset="-2"],.phone-slide[data-offset="2"]{opacity:0;pointer-events:none}}@media (width<=390px){.phone-stage{--phone-center:min(280px, calc(100vw - 3rem));padding:1.5rem .75rem 1.25rem}.phone-slide:not([data-offset="0"]){opacity:0;pointer-events:none}.phone-slide-label{white-space:normal;text-align:center;max-width:100%}.phone-stage-controls{pointer-events:auto;justify-content:center;gap:1rem;height:auto;margin-top:1rem;position:static;inset:auto}}.lab{padding:64px}.lab-hero{max-width:720px;padding-bottom:56px}.lab h1{color:var(--np-paper);font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 24px;font-size:clamp(2.5rem,7vw,4.5rem);font-weight:500;line-height:.95}.lab-intro{color:var(--np-body);font-family:var(--font-sans);margin:0;font-size:18px;line-height:28px}.lab-controls{flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:32px;display:flex}.lab-toggle{border:1px solid var(--np-ghost);color:var(--np-paper);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:border-color var(--np-motion), background-color var(--np-motion), color var(--np-motion);background:0 0;align-items:center;gap:10px;padding:12px 18px;font-size:12px;line-height:16px;display:inline-flex}.lab-toggle:hover{border-color:var(--np-teal)}.lab-toggle[aria-pressed=true]{border-color:var(--np-teal);background:var(--np-teal);color:var(--np-ink)}.lab-toggle .reduce-state{font-weight:500}.lab-toggle:focus-visible{outline:2px solid var(--np-teal);outline-offset:3px}.lab-token{color:var(--np-faint);font-family:var(--font-mono);letter-spacing:.08em;margin:0;font-size:12px;line-height:16px}.lab-specimens{gap:0;display:grid}.lab-specimen{border-top:1px solid var(--np-rule);grid-template-columns:minmax(0,20rem) minmax(0,1fr);gap:24px 64px;padding:48px 0;display:grid}.lab-specimen-head{flex-direction:column;gap:16px;display:flex}.lab-specimen-desc{color:var(--np-muted);font-family:var(--font-sans);margin:0;font-size:15px;line-height:23px}.lab-stage{border:1px solid var(--np-rule);background:color-mix(in srgb, var(--np-paper) 3%, transparent);align-self:start;min-width:0;padding:8px}.lab-specimen-meta{color:var(--np-faint);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;flex-wrap:wrap;grid-column:2;gap:8px 28px;margin:16px 0 0;font-size:11px;line-height:14px;display:flex}.lab-catalog{border-top:0;padding:0 24px}.lab-strip{border-top:0;grid-template-columns:repeat(3,minmax(0,1fr))}.lab-actions{padding:24px}.lab-nav{justify-content:flex-start;padding:24px}.lab[data-reduce=on] .plate-catalog .plate-study{transition-property:color}.lab[data-reduce=on] .plate-catalog a:hover .plate-study,.lab[data-reduce=on] .plate-catalog a:focus-visible .plate-study,.lab[data-reduce=on] .plate-btn:hover .plate-btn-arrow{transform:none}.lab[data-reduce=on] .plate-nav a:after{transition:none}.feature-stage{margin-top:2rem}.feature-stage-panel{--fs-bg:var(--ink);--fs-fg:var(--bg);background:var(--fs-bg);color:var(--fs-fg);border-radius:1.75rem;flex-direction:column;gap:1.5rem;padding:clamp(1.5rem,4vw,3.25rem);display:flex}.feature-stage-heading{font:var(--type-display);letter-spacing:var(--type-display-tracking);text-transform:none;max-width:12em;margin:0;font-size:clamp(2rem,4vw,3.25rem);line-height:1.05}.feature-stage-tabs{flex-wrap:wrap;gap:.5rem;display:flex}.feature-stage-tabs button{appearance:none;font:var(--type-weight-medium) var(--type-size-15)/1 var(--font-sans);letter-spacing:0;text-transform:none;color:inherit;border:1px solid color-mix(in srgb, var(--fs-fg) 40%, transparent);cursor:pointer;background:0 0;border-radius:999px;padding:.45rem .9rem}.feature-stage-tabs button[aria-selected=true]{background:var(--fs-fg);color:var(--fs-bg);border-color:var(--fs-fg)}.feature-stage-tabs button:hover{border-color:var(--fs-fg)}.feature-stage-tabs button:focus-visible{outline:2px solid var(--fs-fg);outline-offset:3px}.feature-stage-item{flex-direction:column;gap:.85rem;display:flex}.feature-stage-phone{width:min(100%, var(--stage-phone));margin:0}.feature-stage-phone img{width:100%;height:auto;display:block}.feature-stage-phone.is-screen{box-sizing:border-box;background:color-mix(in srgb, var(--fs-fg) 16%, var(--fs-bg));border-radius:2.4rem;padding:14px}.feature-stage-phone.is-screen img{border-radius:1.7rem}.feature-stage-title{font:var(--type-weight-medium) var(--type-size-18)/var(--type-leading-snug) var(--font-sans);letter-spacing:0;margin:0 0 .35rem}.feature-stage-caption p{max-width:28rem;margin:0}.feature-stage-caption p+p{color:color-mix(in srgb, var(--fs-fg) 72%, transparent)}.feature-stage[data-ready] .feature-stage-panel{grid-template-columns:minmax(0, 1fr) minmax(0, var(--stage-phone));grid-template-rows:auto auto 1fr;align-items:stretch;gap:1.25rem clamp(1.5rem,4vw,4rem);display:grid}.feature-stage[data-ready] .feature-stage-heading{grid-area:1/1;align-self:end}.feature-stage[data-ready] .feature-stage-tabs{grid-area:2/1;align-self:start}.feature-stage[data-ready] .feature-stage-item[data-selected]{display:contents}.feature-stage[data-ready] .feature-stage-item:not([data-selected]){display:none}.feature-stage[data-ready] .feature-stage-phone{grid-area:1/2/span 3;place-self:center end}.feature-stage[data-ready] .feature-stage-caption{grid-area:3/1;align-self:end}@media (width<=800px){.feature-stage[data-ready] .feature-stage-panel,.feature-stage[data-ready] .feature-stage-item[data-selected]{flex-direction:column;display:flex}.feature-stage[data-ready] .feature-stage-phone{order:1;place-self:center}.feature-stage[data-ready] .feature-stage-caption{order:2}}@media (width<=960px){.lab{padding:20px}.lab-specimen{grid-template-columns:1fr;gap:20px}.lab-specimen-meta{grid-column:1}.lab-strip{grid-template-columns:1fr}}.editorial-study{--es-bg:#f6f4ee;--es-surface:#fff;--es-ink:#17150f;--es-muted:#726c5e;--es-faint:#a8a090;--es-rule:#ded9cc;--es-accent:#067f8a;--es-on-accent:#fff;--es-display:"Space Grotesk", system-ui, sans-serif;--es-body:"Inter", system-ui, sans-serif;--es-mono:"IBM Plex Mono", ui-monospace, "SF Mono", monospace;--es-gap:clamp(3rem, 7vw, 5.5rem);background:var(--es-bg);color:var(--es-ink);font-family:var(--es-body);padding-bottom:var(--es-gap)}.editorial-study .wrap{width:min(100% - 2rem,75rem)}.es-hero{padding-block:clamp(1.75rem,4vw,3rem) 0}.es-kicker{font-family:var(--es-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--es-accent);align-items:center;gap:.75rem;margin:0 0 1.25rem;font-size:.8125rem;display:flex}.es-badge{font-family:var(--es-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--es-muted);border:1px solid var(--es-rule);border-radius:999px;padding:.15rem .5rem;font-size:.6875rem}.es-hero h1{font-family:var(--es-display);letter-spacing:-.02em;max-width:16ch;margin:0 0 1.25rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:600;line-height:1.02}.es-lede{color:var(--es-muted);max-width:44rem;margin:0;font-size:clamp(1.0625rem,1.6vw,1.25rem);line-height:1.5}.es-meta{border-top:1px solid var(--es-ink);flex-wrap:wrap;gap:2.5rem;margin:2.5rem 0 0;padding-top:1.5rem;display:flex}.es-meta div{flex-direction:column;gap:.35rem;display:flex}.es-meta dt{font-family:var(--es-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--es-faint);font-size:.6875rem}.es-meta dd{color:var(--es-ink);max-width:22ch;margin:0;font-size:.9375rem}.es-tldr{border-top:1px solid var(--es-ink);margin-top:clamp(1.25rem,2.5vw,2rem);padding-block:clamp(1.25rem,3vw,2rem) 0}.es-tldr .es-eyebrow{margin-bottom:.75rem}.es-tldr-body{font-family:var(--es-display);letter-spacing:-.01em;color:var(--es-ink);max-width:42rem;margin:0;font-size:clamp(1.1875rem,2.2vw,1.5rem);font-weight:500;line-height:1.35}.es-week,.es-gallery,.es-process{margin-top:clamp(1.5rem,3vw,2.5rem)}.es-week-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.35rem 1.5rem;margin-bottom:1rem;display:flex}.es-week-caption{font-family:var(--es-mono);letter-spacing:.04em;color:var(--es-faint);margin:0;font-size:.75rem}.es-week-strip,.es-gallery-grid,.es-process-strip{margin:0;padding:0;list-style:none}.es-week-strip{scroll-snap-type:x mandatory;gap:.75rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.es-week-item,.es-gallery-grid li,.es-process-step{flex-direction:column;gap:.35rem;display:flex}.es-week-item{scroll-snap-align:start;flex:none;width:min(42vw,168px)}.es-week-label{font-family:var(--es-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--es-accent);font-size:.6875rem}.es-week-title{color:var(--es-ink);font-size:.8125rem;line-height:1.3}.es-phone{box-shadow:0 10px 24px color-mix(in srgb, var(--es-ink) 12%, transparent);background:#2a2118;border-radius:1.35rem;margin:0;overflow:hidden}.es-phone img,.es-phone picture{width:100%;height:auto;display:block}.es-phone.is-screen{background:color-mix(in srgb, var(--es-ink) 14%, var(--es-bg));padding:8px}.es-phone.is-screen img{border-radius:1rem}.es-gallery-grid{grid-template-columns:repeat(2,minmax(0,220px));gap:1rem 1.25rem;display:grid}.es-process-strip{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.es-lofi{background:var(--es-surface);border:1px solid var(--es-rule);font-family:var(--es-mono);color:var(--es-ink);white-space:pre;border-radius:.75rem;margin:0;padding:.85rem .9rem;font-size:.62rem;line-height:1.35;overflow-x:auto}.es-built{gap:1.25rem;max-width:52rem;margin:0;padding:0;list-style:none;display:grid}.es-built li{border-top:1px solid var(--es-rule);grid-template-columns:minmax(6rem,8rem) minmax(0,1fr);gap:.75rem 1.5rem;padding-top:1.1rem;display:grid}.es-built li:first-child{border-top:0;padding-top:0}.es-exp-ab{color:var(--es-ink);gap:.45rem;margin:0 0 .85rem;font-size:.875rem;line-height:1.45;display:grid}.es-exp-ab b{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-accent);margin-right:.4rem;font-size:.6875rem}.es-pos-state{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-faint);border:1px dashed var(--es-faint);vertical-align:middle;border-radius:999px;margin-left:.4rem;padding:.1rem .4rem;font-size:.625rem;display:inline-block}.es-pos-app.is-unconfirmed{opacity:.92}.es-pos-unconfirmed{border:1px dashed var(--es-faint);background:color-mix(in srgb, var(--es-surface) 70%, transparent);flex-wrap:wrap;align-items:baseline;gap:.75rem 1.75rem;margin-top:.75rem;padding:1rem 1.1rem;display:flex}.es-pos-unconfirmed-label{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-faint);width:100%;margin:0;font-size:.6875rem}.es-split{padding-block:var(--es-gap);border-top:1px solid var(--es-rule);margin-top:var(--es-gap);grid-template-columns:minmax(0,640px) minmax(0,260px);gap:clamp(2rem,6vw,5rem);display:grid}.es-split:first-of-type{border-top:0;margin-top:0}.es-eyebrow{font-family:var(--es-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--es-accent);margin:0 0 1.25rem;font-size:.75rem}.es-main h2{font-family:var(--es-display);letter-spacing:-.015em;max-width:22ch;margin:0 0 1.25rem;font-size:clamp(1.6rem,3vw,2.125rem);font-weight:600;line-height:1.12}.es-body{color:var(--es-muted);max-width:52ch;margin:0;font-size:1.0625rem;line-height:1.6}.es-note{align-self:start}.es-note-label{font-family:var(--es-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--es-faint);margin:0 0 .75rem;font-size:.6875rem}.es-note p:last-child{color:var(--es-muted);margin:0;font-size:.9375rem;font-style:italic;line-height:1.55}.es-quotes{flex-direction:column;gap:1.75rem;display:flex}.es-quote{border-left:2px solid var(--es-accent);margin:0;padding-left:1.25rem}.es-quote p{font-family:var(--es-display);letter-spacing:-.01em;margin:0 0 .75rem;font-size:clamp(1.1875rem,2vw,1.5rem);font-weight:500;line-height:1.3}.es-quote cite{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-faint);font-size:.75rem;font-style:normal}.es-figure{margin-top:var(--es-gap)}.es-figure-head{background:var(--es-surface);border:1px solid var(--es-rule);border-bottom:0;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding:1.5rem 1.75rem 0;display:flex}.es-figure-title{font-family:var(--es-display);letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:600}.es-figure-caption{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-faint);margin:0;font-size:.75rem}.es-steps{background:var(--es-surface);border:1px solid var(--es-rule);align-items:stretch;gap:.5rem;margin:0;padding:1.75rem;list-style:none;display:flex;overflow-x:auto}.es-step{border:1px solid var(--es-rule);flex-direction:column;flex:1 1 0;gap:.4rem;min-width:140px;padding:1rem;display:flex}.es-step:last-of-type{background:var(--es-accent);border-color:var(--es-accent);color:var(--es-on-accent)}.es-step-index{font-family:var(--es-mono);letter-spacing:.1em;color:var(--es-faint);font-size:.6875rem}.es-step:last-of-type .es-step-index{color:color-mix(in srgb, var(--es-on-accent) 70%, transparent)}.es-step-label{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-accent);font-size:.75rem}.es-step:last-of-type .es-step-label{color:var(--es-on-accent)}.es-step-title{color:var(--es-ink);font-size:.9375rem;line-height:1.3}.es-step:last-of-type .es-step-title{color:var(--es-on-accent)}.es-step-arrow{color:var(--es-faint);flex:none;align-self:center;font-size:1.25rem}.es-stats{border-top:1px solid var(--es-rule);grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem 1.25rem;margin-top:2rem;padding-top:1.5rem;display:grid}.es-stat{flex-direction:column;gap:.35rem;display:flex}.es-stat-value{font-family:var(--es-display);letter-spacing:-.02em;font-size:clamp(1.75rem,3vw,2.25rem);font-weight:600;line-height:1}.es-stat-label{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-faint);font-size:.6875rem}.es-block{margin-top:var(--es-gap);padding-top:var(--es-gap);border-top:1px solid var(--es-rule)}.es-block .es-eyebrow{margin-bottom:1rem}.es-block-title{font-family:var(--es-display);letter-spacing:-.02em;max-width:22ch;margin:0 0 1rem;font-size:clamp(1.5rem,3vw,2rem);font-weight:600;line-height:1.15}.es-block .es-body{margin-bottom:1.5rem}.es-method{gap:1.25rem;max-width:52rem;margin:0;padding:0;list-style:none;display:grid}.es-method li{border-top:1px solid var(--es-rule);grid-template-columns:minmax(6rem,8rem) minmax(0,1fr);gap:.75rem 1.5rem;padding-top:1.1rem;display:grid}.es-method li:first-child{border-top:0;padding-top:0}.es-method-label{font-family:var(--es-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--es-accent);font-size:.75rem}.es-method-body{color:var(--es-muted);font-size:.9375rem;line-height:1.55}.es-method-note{font-family:var(--es-mono);letter-spacing:.04em;color:var(--es-faint);max-width:52rem;margin:1.5rem 0 0;font-size:.75rem}.es-flows{margin-top:var(--es-gap);padding-top:var(--es-gap);border-top:1px solid var(--es-rule)}.es-flow-stage{margin-top:1.5rem}.es-flow-tabs{flex-wrap:wrap;gap:.35rem;margin-bottom:1.25rem;display:flex}.es-flow-tabs [role=tab]{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-muted);border:1px solid var(--es-rule);cursor:pointer;background:0 0;padding:.45rem .75rem;font-size:.75rem}.es-flow-tabs [role=tab][aria-selected=true]{color:var(--es-on-accent);background:var(--es-accent);border-color:var(--es-accent)}.es-flow-tabs [role=tab]:focus-visible{outline:2px solid var(--es-accent);outline-offset:2px}.es-flow-panel{grid-template-columns:minmax(0, var(--es-flow-phone,260px)) minmax(0, 1fr);align-items:center;gap:1.5rem 2.5rem;display:none}.es-flow-panel[data-selected]{display:grid}.es-flow-phone{width:min(100%, var(--es-flow-phone,260px));box-shadow:0 18px 40px color-mix(in srgb, var(--es-ink) 16%, transparent);background:#2a2118;border-radius:28px;margin:0;overflow:hidden}.es-flow-video,.es-flow-fallback img,.es-flow-fallback picture{width:100%;height:auto;display:block}.es-flow-caption{max-width:34ch}.es-flow-title{font-family:var(--es-display);letter-spacing:-.015em;margin:0 0 .5rem;font-size:1.25rem;font-weight:600}.es-flow-caption p{color:var(--es-muted);margin:0;line-height:1.5}.es-pos-map{margin:0}.es-pos-grid{grid-template-rows:auto 1fr 1fr;grid-template-columns:auto 1fr 1fr;align-items:stretch;gap:.5rem .75rem;display:grid}.es-pos-corner{width:0;height:0}.es-pos-x,.es-pos-y{font-family:var(--es-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--es-faint);font-size:.6875rem}.es-pos-y{writing-mode:vertical-rl;place-self:center end;transform:rotate(180deg)}.es-pos-cell{border:1px solid var(--es-rule);background:var(--es-surface);flex-direction:column;gap:.85rem;padding:1rem 1.1rem;display:flex}.es-pos-cell.is-here{border-color:var(--es-accent)}.es-pos-app{color:var(--es-ink);font-size:.9375rem;font-weight:500;display:block}.es-pos-take{font-family:var(--es-mono);letter-spacing:.04em;color:var(--es-muted);margin-top:.2rem;font-size:.75rem;font-weight:400;display:block}.es-pos-aside{font-family:var(--es-mono);letter-spacing:.04em;color:var(--es-faint);margin:.85rem 0 0;font-size:.75rem}.es-jobs{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.es-jobs li{border-top:1px solid var(--es-rule);color:var(--es-ink);flex-direction:column;gap:.2rem;max-width:52rem;padding-top:1rem;font-size:1rem;line-height:1.5;display:flex}.es-jobs li span{color:var(--es-muted)}.es-jobs li:first-child{border-top:0;padding-top:0}.es-jobs b{font-weight:600}.es-experiments{gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.es-experiments li{border:1px solid var(--es-rule);background:var(--es-surface);padding:1.25rem 1.5rem}.es-experiments h3{font-family:var(--es-display);letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.es-experiments p{color:var(--es-muted);margin:0 0 .75rem;line-height:1.5}.es-exp-meta{font-family:var(--es-mono);letter-spacing:.04em;color:var(--es-faint);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex;margin:0!important}.es-proto{margin-top:var(--es-gap);padding-top:var(--es-gap);border-top:1px solid var(--es-rule)}.es-proto-frame-wrap{flex-direction:column;align-items:center;gap:.85rem;margin-top:1.5rem;display:flex}.es-proto-frame{aspect-ratio:390/844;width:min(100%,390px);box-shadow:0 24px 60px color-mix(in srgb, var(--es-ink) 18%, transparent);background:#2a2118;border-radius:36px;position:relative;overflow:hidden}.es-proto-iframe{background:var(--es-surface);border:0;width:100%;height:100%;display:block}.es-proto-status{z-index:1;text-align:center;background:var(--es-surface);color:var(--es-muted);place-items:center;margin:0;padding:1.5rem;font-size:.9375rem;display:grid;position:absolute;inset:0}.es-proto-frame[data-state=ready] .es-proto-status{display:none}.es-proto-frame[data-state=loading] .es-proto-iframe,.es-proto-frame[data-state=error] .es-proto-iframe{opacity:0;pointer-events:none}.es-proto-retry{font:inherit;color:var(--es-accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.es-proto-actions{margin:0}.es-proto-link{font-family:var(--es-display);color:var(--es-accent);font-size:1.0625rem;font-weight:600}.es-proto-link:hover{color:var(--es-ink)}.es-proto-note{font-family:var(--es-mono);letter-spacing:.04em;color:var(--es-faint);text-align:center;max-width:40ch;margin:0;font-size:.75rem}.es-close-grid{margin-top:var(--es-gap);border-top:1px solid var(--es-ink);padding-top:2rem}.es-cells{grid-template-columns:repeat(3,1fr);gap:1.5rem 2.5rem;display:grid}.es-cell{flex-direction:column;gap:.5rem;display:flex}.es-cell-value{font-family:var(--es-display);letter-spacing:-.02em;font-size:clamp(2rem,4vw,2.75rem);font-weight:600;line-height:1}.es-cell-label{color:var(--es-muted);max-width:34ch;font-size:.9375rem;line-height:1.5}.es-next{margin-top:var(--es-gap);border-top:1px solid var(--es-rule);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1.5rem;padding-top:2rem;display:flex}.es-next span{font-family:var(--es-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--es-faint);font-size:.75rem}.es-next a{font-family:var(--es-display);letter-spacing:-.015em;color:var(--es-ink);font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:600}.es-next a:hover{color:var(--es-accent)}@media (width<=760px){.es-split{grid-template-columns:1fr;gap:2rem}.es-note{border-top:1px solid var(--es-rule);padding-top:1.5rem}.es-cells{grid-template-columns:1fr}.es-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.es-pos-grid{grid-template-rows:auto auto auto auto;grid-template-columns:1fr 1fr}.es-pos-corner,.es-pos-y{display:none}.es-pos-x{grid-column:span 1}.es-step-arrow{display:none}.es-proto-frame{border-radius:28px;width:min(100%,320px)}.es-method li{grid-template-columns:1fr;gap:.35rem}.es-flow-panel[data-selected]{text-align:center;grid-template-columns:1fr;justify-items:center}.es-flow-caption{max-width:40ch}.es-gallery-grid,.es-process-strip{grid-template-columns:1fr 1fr}.es-process-step:first-child{grid-column:1/-1}.es-built li{grid-template-columns:1fr;gap:.35rem}.es-week-item{width:min(48vw,180px)}.es-hero{padding-block:1.25rem 0}.es-hero h1{margin-bottom:.75rem}.es-meta{gap:.85rem 1.5rem;margin-top:1.25rem;padding-top:1rem}.es-tldr{margin-top:1rem;padding-block:1rem 0}.es-week,.es-gallery,.es-process{margin-top:1.15rem}}@media print{html[data-page=resume]{color:#17150f;background:#fff}html[data-page=resume] body{background:#fff}html[data-page=resume] .skip,html[data-page=resume] .cv-bar,html[data-page=resume] .cv-download{display:none}html[data-page=resume] .cv-sheet{width:100%;padding-inline:0}html[data-page=resume] .cv-hero,html[data-page=resume] .cv-impact,html[data-page=resume] .cv-work,html[data-page=resume] .cv-facts,html[data-page=resume] .cv-foot{padding-block:12pt}html[data-page=resume] .cv-lede,html[data-page=resume] .cv-summary,html[data-page=resume] .cv-impact p,html[data-page=resume] .cv-facts p{font-size:10.5pt;line-height:1.4}@page{size:letter;margin:.7in}}
