@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Neue Haas Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--ease-out:cubic-bezier(.16, 1, .3, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--text-meta:.8125rem;--text-meta--line-height:1.3;--text-meta--letter-spacing:.06em;--text-meta--font-weight:500;--text-small:.9375rem;--text-body:1.0625rem;--text-body--line-height:1.55;--text-lead:1.375rem;--text-lead--line-height:1.4;--text-lead--letter-spacing:-.01em;--text-h3:1.5rem;--text-h3--line-height:1.12;--text-h3--letter-spacing:-.01em;--text-h3--font-weight:700;--text-h2:clamp(1.5rem, 2.6vw, 2.25rem);--text-h2--line-height:1.12;--text-h2--letter-spacing:-.01em;--text-h2--font-weight:700;--text-h1:clamp(2rem, 4.5vw, 3.5rem);--text-h1--line-height:1.12;--text-h1--letter-spacing:-.01em;--text-h1--font-weight:700;--text-display:clamp(2.75rem, 7vw, 6rem);--text-display--line-height:.92;--text-display--letter-spacing:-.03em;--text-display--font-weight:900;--text-hero:clamp(3.5rem, 13vw, 12rem);--text-hero--line-height:.92;--text-hero--letter-spacing:-.03em;--text-hero--font-weight:900;--text-intro:clamp(2.4rem, 5vw, 4.25rem);--text-intro--line-height:1.02;--text-intro--letter-spacing:-.03em;--text-intro--font-weight:900;--text-section:clamp(1.9rem, 3.6vw, 3rem);--text-section--line-height:.92;--text-section--letter-spacing:-.03em;--text-section--font-weight:900;--text-stat:clamp(2.25rem, 4vw, 3.25rem);--text-stat--line-height:.92;--text-stat--letter-spacing:-.03em;--text-stat--font-weight:900;--text-project:clamp(1.5rem, 2.6vw, 2rem);--text-project--line-height:1.12;--text-project--letter-spacing:-.02em;--text-project--font-weight:700;--text-contact:clamp(1.5rem, 3.4vw, 2.5rem);--text-contact--line-height:1.12;--text-contact--letter-spacing:-.02em;--text-contact--font-weight:700}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{scroll-behavior:smooth;background:var(--surface)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--surface);color:var(--text-primary);font-size:var(--text-body);line-height:var(--text-body--line-height);font-feature-settings:"kern" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background .42s var(--ease-out),color .42s var(--ease-out)}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}}@layer components{.link-slide{background-image:linear-gradient(var(--link-underline),var(--link-underline));transition:background-size .42s var(--ease-out),background-position .42s var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px}@media(hover:hover){.link-slide:hover{background-position:100% 100%;background-size:0 1px}}}@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mr-2{margin-right:calc(var(--spacing) * 2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-full{height:100%}.w-0{width:0}.w-full{width:100%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-accent{border-color:var(--accent)}.border-ink{border-color:var(--text-primary)}.border-rule{border-color:var(--rule)}.border-rule-strong{border-color:var(--rule-strong)}.border-transparent{border-color:#0000}.bg-ink{background-color:var(--text-primary)}.bg-inset{background-color:var(--surface-inset)}.bg-transparent{background-color:#0000}.px-1{padding-inline:var(--spacing)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-4\.5{padding-block:calc(var(--spacing) * 4.5)}.py-6{padding-block:calc(var(--spacing) * 6)}.text-contact{font-size:var(--text-contact);line-height:var(--tw-leading,var(--text-contact--line-height));letter-spacing:var(--tw-tracking,var(--text-contact--letter-spacing));font-weight:var(--tw-font-weight,var(--text-contact--font-weight))}.text-display{font-size:var(--text-display);line-height:var(--tw-leading,var(--text-display--line-height));letter-spacing:var(--tw-tracking,var(--text-display--letter-spacing));font-weight:var(--tw-font-weight,var(--text-display--font-weight))}.text-h1{font-size:var(--text-h1);line-height:var(--tw-leading,var(--text-h1--line-height));letter-spacing:var(--tw-tracking,var(--text-h1--letter-spacing));font-weight:var(--tw-font-weight,var(--text-h1--font-weight))}.text-h2{font-size:var(--text-h2);line-height:var(--tw-leading,var(--text-h2--line-height));letter-spacing:var(--tw-tracking,var(--text-h2--letter-spacing));font-weight:var(--tw-font-weight,var(--text-h2--font-weight))}.text-h3{font-size:var(--text-h3);line-height:var(--tw-leading,var(--text-h3--line-height));letter-spacing:var(--tw-tracking,var(--text-h3--letter-spacing));font-weight:var(--tw-font-weight,var(--text-h3--font-weight))}.text-hero{font-size:var(--text-hero);line-height:var(--tw-leading,var(--text-hero--line-height));letter-spacing:var(--tw-tracking,var(--text-hero--letter-spacing));font-weight:var(--tw-font-weight,var(--text-hero--font-weight))}.text-intro{font-size:var(--text-intro);line-height:var(--tw-leading,var(--text-intro--line-height));letter-spacing:var(--tw-tracking,var(--text-intro--letter-spacing));font-weight:var(--tw-font-weight,var(--text-intro--font-weight))}.text-meta{font-size:var(--text-meta);line-height:var(--tw-leading,var(--text-meta--line-height));letter-spacing:var(--tw-tracking,var(--text-meta--letter-spacing));font-weight:var(--tw-font-weight,var(--text-meta--font-weight))}.text-project{font-size:var(--text-project);line-height:var(--tw-leading,var(--text-project--line-height));letter-spacing:var(--tw-tracking,var(--text-project--letter-spacing));font-weight:var(--tw-font-weight,var(--text-project--font-weight))}.text-section{font-size:var(--text-section);line-height:var(--tw-leading,var(--text-section--line-height));letter-spacing:var(--tw-tracking,var(--text-section--letter-spacing));font-weight:var(--tw-font-weight,var(--text-section--font-weight))}.text-stat{font-size:var(--text-stat);line-height:var(--tw-leading,var(--text-stat--line-height));letter-spacing:var(--tw-tracking,var(--text-stat--letter-spacing));font-weight:var(--tw-font-weight,var(--text-stat--font-weight))}.text-lead{font-size:var(--text-lead);line-height:var(--tw-leading,var(--text-lead--line-height));letter-spacing:var(--tw-tracking,var(--text-lead--letter-spacing))}.text-body{font-size:var(--text-body);line-height:var(--tw-leading,var(--text-body--line-height))}.text-small{font-size:var(--text-small)}.leading-\[1\.4\]{--tw-leading:1.4;line-height:1.4}.leading-none{--tw-leading:1;line-height:1}.text-accent{color:var(--accent)}.text-ink{color:var(--text-primary)}.text-muted{color:var(--text-secondary)}.text-surface{color:var(--surface)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.opacity-40{opacity:.4}.transition-\[background-color\,color\,border-color\]{transition-property:background-color,color,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-\[180ms\]{--tw-duration:.18s;transition-duration:.18s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.select-none{-webkit-user-select:none;user-select:none}@media(hover:hover){.hover\:border-accent:hover{border-color:var(--accent)}.hover\:border-ink:hover{border-color:var(--text-primary)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:text-accent:hover{color:var(--accent)}}@media(min-width:40rem){.sm\:\[grid-template-columns\:minmax\(120px\,1fr\)_2fr\]{grid-template-columns:minmax(120px,1fr) 2fr}.sm\:items-baseline{align-items:baseline}.sm\:gap-6{gap:calc(var(--spacing) * 6)}}}@font-face{font-family:Neue Haas Grotesk;src:url(/fonts/NHaasGroteskDSPro-45Lt.woff2)format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Neue Haas Grotesk;src:url(/fonts/NHaasGroteskDSPro-55Rg.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Neue Haas Grotesk;src:url(/fonts/NHaasGroteskDSPro-65Md.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Neue Haas Grotesk;src:url(/fonts/NHaasGroteskDSPro-75Bd.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Neue Haas Grotesk;src:url(/fonts/NHaasGroteskDSPro-95Blk.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}html[data-ftheme=dark]{--paper:#06080d;--ink:#f7f9fc;--surface:#06080d;--surface-inset:#0b0f17;--text-primary:#f7f9fc;--text-secondary:#aab2c0;--rule:#293140;--rule-strong:#f7f9fc4d;--ink-05:#f7f9fc0d;--ink-08:#f7f9fc17;--accent:#58a6ff;--link-underline:#58a6ff80;color-scheme:dark}html[data-ftheme=light]{--paper:#f5f7fa;--ink:#0b0d12;--surface:#f5f7fa;--surface-inset:#eceff3;--text-primary:#0b0d12;--text-secondary:#626a78;--rule:#cdd3dc;--rule-strong:#0b0d123d;--ink-05:#0b0d120d;--ink-08:#0b0d1214;--accent:#075fcc;--link-underline:#075fcc66;color-scheme:light}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}:root{--fs-meta: .8125rem;--fs-small: .9375rem;--fs-body: 1.0625rem;--fs-lead: 1.375rem;--fs-h3: 1.5rem;--tr-meta: .06em;--tr-tight: -.01em;--tr-display: -.03em;--fw-regular: 400;--fw-medium: 500;--fw-bold: 700;--fw-black: 900;--dur: .42s;--dur-fast: .18s}html[data-ftheme]{--text-accent: var(--accent);--ink-muted: var(--text-secondary);--border-hairline: var(--rule);--border-strong: var(--rule-strong);--link: var(--accent);--focus-ring: var(--accent)}body{font-family:var(--font-sans)}.display{font-weight:var(--fw-black);line-height:.92;letter-spacing:var(--tr-display)}.themetoggle{position:fixed;top:20px;right:20px;z-index:120;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--surface-inset);border:1px solid var(--rule-strong);color:var(--text-primary);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.themetoggle:hover{border-color:var(--text-accent);color:var(--text-accent)}.socbtn{width:44px;height:44px;border:1px solid var(--rule-strong);display:flex;align-items:center;justify-content:center;color:var(--ink-muted);text-decoration:none;font-weight:500;font-size:11px;letter-spacing:.04em;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.socbtn:hover{color:var(--text-primary);border-color:var(--text-primary)}.shell{display:grid;grid-template-columns:clamp(300px,26vw,368px) minmax(0,1fr) 64px;max-width:1660px;margin-inline:auto;gap:0;padding:24px clamp(16px,2vw,32px);box-sizing:border-box}.mobilenav{display:none}.aside{position:sticky;top:24px;align-self:start;height:calc(100vh - 48px)}.card{height:100%;border:1px solid var(--rule);padding:30px;display:flex;flex-direction:column;background:var(--surface-inset);box-sizing:border-box;overflow:auto}.wordmark{font-weight:var(--fw-black);font-size:clamp(1.85rem,2.3vw,2.4rem);letter-spacing:-.02em;word-spacing:.08em;text-transform:uppercase;line-height:.9}.duo{position:relative}.duo img{display:block;width:100%;height:100%;object-fit:cover}.asidefoot{margin-top:auto;padding-top:20px;border-top:1px solid var(--rule);display:flex;flex-direction:column;gap:13px}.main{padding:0 clamp(16px,3vw,52px);min-width:0}.rail{position:sticky;top:24px;align-self:start;height:calc(100vh - 48px);display:flex;align-items:center;justify-content:flex-end}.railinner{display:flex;flex-direction:column;gap:22px;align-items:flex-end}.dot{text-align:right;text-transform:uppercase;font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);color:var(--ink-muted);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}.dot:hover{color:var(--text-primary)}.dot[data-active=true]{color:var(--text-accent)}.dot .lbl{display:none}.dot .ic{display:none;justify-content:flex-end}html[data-navmode=bar] .dot .lbl{display:block}html[data-navmode=rail] .dot .ic{display:flex}.sec{padding:84px 0;scroll-margin-top:32px}.sec:first-child{padding-top:16px}.sec+.sec{border-top:1px solid var(--rule)}.kicker{display:inline-flex;align-items:baseline;gap:12px;font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-secondary)}.kicker b{font-weight:var(--fw-medium);color:var(--text-accent)}.h2d{font-size:clamp(2.1rem,4.4vw,3.7rem);margin:18px 0 0;max-width:17ch;text-transform:uppercase;line-height:.95;letter-spacing:-.02em;word-spacing:.08em}.sechead{margin-bottom:44px}.sec-lead{margin:16px 0 0;max-width:52ch;font-size:var(--fs-body);line-height:1.6;color:var(--text-secondary)}.metarow{--rail: 148px;--rail-gap: 32px;display:grid;grid-template-columns:var(--rail) minmax(0,1fr);gap:var(--rail-gap);align-items:start}.herohead{font-size:clamp(2.4rem,5vw,4.6rem);text-transform:uppercase;line-height:.98;letter-spacing:-.02em;word-spacing:.08em;margin:18px 0 0;max-width:16ch;text-wrap:balance}.heroaccent{color:var(--text-accent)}.herolead{font-size:var(--fs-lead);line-height:1.5;color:var(--text-secondary);max-width:54ch;margin:28px 0 0}.aboutmeta{border-top:1px solid var(--rule)}.amrow{--rail: 128px;--rail-gap: 20px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:baseline}.amrow .k{font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-secondary)}.amrow .v{font-size:var(--fs-body);color:var(--text-primary)}.pubfeat{display:grid;grid-template-columns:200px 1fr;gap:36px;align-items:start;border:1px solid var(--rule);padding:32px;background:var(--surface-inset);margin-bottom:44px}.pubfeat img{width:100%;height:100%;object-fit:cover}.booklinks{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.booklink{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--rule-strong);text-decoration:none;color:var(--text-primary);font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;background:transparent;cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast)}.booklink:hover{color:var(--text-accent);border-color:var(--text-accent)}.recgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}.reccard{display:flex;flex-direction:column;gap:10px;padding:26px 24px;background:var(--surface-inset);text-decoration:none;color:var(--text-primary);transition:background var(--dur-fast)}.reccard:hover{background:var(--ink-05)}.reccard .rk{font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-accent)}.reccard .rt{font-weight:var(--fw-bold);font-size:var(--fs-h3);letter-spacing:-.01em;line-height:1.15}.reccard .rn{font-size:var(--fs-body);color:var(--text-secondary);line-height:1.5}.reccard .la{margin-top:auto;padding-top:6px;color:var(--text-secondary);display:flex;align-items:center;gap:8px;font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;font-weight:var(--fw-medium);transition:color var(--dur-fast)}.reccard:hover .la{color:var(--text-accent)}.presslabel{display:block;margin:44px 0 16px}.pressrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}.presscard{display:flex;flex-direction:column;gap:6px;padding:20px;background:var(--surface-inset);text-decoration:none;color:var(--text-primary);transition:background var(--dur-fast),color var(--dur-fast)}.presscard:hover{background:var(--ink-05);color:var(--text-accent)}.presspreview{display:block;aspect-ratio:16 / 10;margin-bottom:6px;background:var(--ink-05);overflow:hidden}.presspreview img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:opacity var(--dur-fast)}.presscard:hover .presspreview img{opacity:.85}.pressname{font-weight:var(--fw-bold);font-size:var(--fs-body);letter-spacing:-.01em}.pressdate{font-size:var(--fs-meta);text-transform:uppercase;letter-spacing:var(--tr-meta);color:var(--text-secondary)}.cbig{display:inline-flex;align-items:center;gap:16px;color:var(--text-primary);text-decoration:none}.cbig span{font-weight:var(--fw-bold);font-size:clamp(1.5rem,3.4vw,2.5rem);letter-spacing:-.02em}.cform{display:flex;flex-direction:column;gap:20px;margin-top:20px;max-width:560px}.frow{display:flex;flex-direction:column;gap:8px}.flabel{font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-secondary)}.finput{width:100%;box-sizing:border-box;background:var(--surface-inset);border:1px solid var(--rule-strong);color:var(--text-primary);font:inherit;font-size:var(--fs-body);padding:12px 14px;border-radius:0;transition:border-color var(--dur-fast)}.finput:focus{outline:none;border-color:var(--text-accent)}.finput::placeholder{color:var(--text-secondary);opacity:.7}textarea.finput{resize:vertical;min-height:120px}.fsend{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;background:var(--text-primary);color:var(--surface);border:0;cursor:pointer;font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;padding:14px 24px;transition:opacity var(--dur-fast)}.fsend:hover{opacity:.88}.fsend:disabled{cursor:default;opacity:.55}.fsubmit{flex-direction:row;flex-wrap:wrap;align-items:center;gap:16px}.fstatus{margin:0;font-size:var(--fs-small);line-height:1.5;color:var(--text-secondary)}.fstatus[data-state=sent]{color:var(--text-accent)}.ferror{margin:0;font-size:var(--fs-small);color:var(--text-accent)}.wafbox{display:none}.wafbox[data-active=true]{display:block;align-self:flex-start;background:#fff;color-scheme:light;padding:16px;border:1px solid var(--rule-strong)}.mbackdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:flex-start;justify-content:center;padding:clamp(16px,4vh,64px) 20px;z-index:100;overflow:auto}.win{width:min(940px,100%);background:var(--surface-inset);border:1px solid var(--rule-strong)}.wintop{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--surface-inset);z-index:2}.windots{display:flex;gap:8px}.windots i{width:11px;height:11px;border:1px solid var(--rule-strong);display:block}.wintitle{font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-secondary)}.winclose{margin-left:auto;background:transparent;border:1px solid var(--rule-strong);color:var(--text-secondary);width:34px;height:34px;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;transition:color var(--dur-fast),border-color var(--dur-fast)}.winclose:hover{color:var(--ink);border-color:var(--ink)}.winbody{padding:clamp(24px,3vw,40px)}.appmodal{--frame-h: min(58vh, 540px);display:grid;grid-template-columns:clamp(180px,calc(var(--frame-h) * var(--shot-ratio, .474)),460px) minmax(0,1fr);gap:40px;align-items:start}.appmodal[data-gallery=false]{grid-template-columns:minmax(0,1fr)}.mockup{aspect-ratio:var(--shot-ratio, 9 / 19);border:1px solid var(--rule-strong);background:var(--surface);position:relative;overflow:hidden}.appmodal[data-shape=tall]{--tall-ratio: max(var(--shot-ratio, .474), .5);grid-template-columns:clamp(180px,calc(var(--frame-h) * var(--tall-ratio)),460px) minmax(0,1fr)}.mockup[data-shape=tall]{aspect-ratio:var(--tall-ratio)}.mockup[data-shape=tall] .shot{object-fit:cover;object-position:top}.gallery{display:flex;flex-direction:column;gap:14px}.shotbtn{position:absolute;inset:0;padding:0;border:0;background:transparent;cursor:zoom-in;display:block}.shot{display:block;width:100%;height:100%;object-fit:contain}.shotexpand{position:absolute;right:8px;bottom:8px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:#06080d80;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:.75;transition:opacity var(--dur-fast)}.shotbtn:hover .shotexpand,.shotbtn:focus-visible .shotexpand{opacity:1}.gnav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:#06080d80;color:#fff;border:0;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background var(--dur-fast)}.gnav:hover{background:#06080dd9}.gnav.prev{left:8px}.gnav.next{right:8px}.gmeta{display:flex;align-items:center;gap:8px}.gdots{display:flex;flex-wrap:wrap;gap:6px}.gdot{width:20px;height:3px;background:var(--rule-strong);border:0;padding:0;cursor:pointer;transition:background var(--dur-fast)}.gdot[data-active=true]{background:var(--text-accent)}.gcount{margin-left:auto;white-space:nowrap}.metricrow{display:flex;flex-wrap:wrap;gap:1px;background:var(--rule);border:1px solid var(--rule);margin:22px 0}.metric{padding:16px 20px;background:var(--surface-inset);flex:1;min-width:120px}.joblink{display:inline-flex;align-items:center;gap:10px;padding:16px 20px;border:1px solid var(--rule-strong);width:100%;box-sizing:border-box;cursor:pointer;background:transparent;color:inherit;font:inherit;text-align:left;transition:border-color var(--dur-fast)}.joblink:hover{border-color:var(--text-accent)}.gnote{margin:0;font-size:var(--fs-meta);line-height:1.5;color:var(--text-secondary)}.storelink{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-accent);text-decoration:none}.storelink:hover{text-decoration:underline}.storegone{margin-top:22px}.lbox{position:fixed;inset:0;z-index:200;background:#06080deb;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vh,48px);cursor:zoom-out}.lboximg{display:block;max-width:96vw;max-height:92vh;object-fit:contain;cursor:default}.lbox[data-shape=tall]{align-items:flex-start;overflow-y:auto}.lbox[data-shape=tall] .lboximg{width:min(96vw,780px);max-height:none}.lbox[data-shape=tall] .lboxclose{position:fixed}.lboxclose,.lboxnav{position:absolute;display:flex;align-items:center;justify-content:center;background:#06080d80;color:#fff;border:1px solid rgba(255,255,255,.25);cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background var(--dur-fast),border-color var(--dur-fast)}.lboxclose:hover,.lboxnav:hover{background:#06080de6;border-color:#fff9}.lboxclose{top:clamp(12px,3vh,28px);right:clamp(12px,3vh,28px);width:42px;height:42px;font-size:22px;line-height:1}.lboxnav{top:50%;transform:translateY(-50%);width:46px;height:46px}.lboxnav.prev{left:clamp(8px,2vw,28px)}.lboxnav.next{right:clamp(8px,2vw,28px)}.lboxcount{position:absolute;bottom:clamp(12px,3vh,28px);left:50%;transform:translate(-50%);color:#ffffffbf;white-space:nowrap}.role{padding:34px 0;border-top:1px solid var(--rule);scroll-margin-top:32px}.role-when{position:sticky;top:28px;align-self:start}.role-span{font-weight:var(--fw-bold);font-size:var(--fs-body);letter-spacing:var(--tr-tight)}.role-dates{margin-top:6px;font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-secondary)}.role-title{margin:0;font-weight:var(--fw-bold);font-size:var(--fs-h3);letter-spacing:var(--tr-tight);line-height:1.15}.role-org{margin-top:6px;font-size:var(--fs-body);color:var(--text-accent)}.role-where{color:var(--text-secondary)}.role-where:before{content:" — "}.role-summary{margin:14px 0 0;max-width:58ch;font-size:var(--fs-lead);line-height:1.45;letter-spacing:var(--tr-tight)}.role-bullets{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px;max-width:74ch}.role-bullets li{position:relative;padding-left:18px;font-size:var(--fs-body);line-height:1.55;color:var(--text-secondary)}.role-bullets li:before{content:"";position:absolute;left:0;top:.68em;width:8px;height:1px;background:var(--rule-strong)}.role-bullets b{font-weight:var(--fw-bold);color:var(--text-primary)}.role-stack{margin:18px 0 0;font-size:var(--fs-meta);letter-spacing:var(--tr-meta);color:var(--text-secondary)}.role-stack b{margin-right:12px;font-weight:var(--fw-medium);text-transform:uppercase;color:var(--text-primary)}.role-work{margin-top:26px;padding-left:20px;border-left:1px solid var(--rule)}.worklist{display:grid;grid-template-columns:minmax(0,1fr);gap:1px;margin-top:12px;background:var(--rule);border:1px solid var(--rule)}.work-item{display:grid;grid-template-columns:76px minmax(0,1fr);gap:18px;align-items:start;width:100%;box-sizing:border-box;padding:18px;text-align:left;background:var(--surface-inset);border:0;font:inherit;color:inherit;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.work-item:hover{background:var(--ink-05)}.work-thumb{display:flex;align-items:center;justify-content:center;aspect-ratio:9 / 16;overflow:hidden;background:var(--surface);border:1px solid var(--rule-strong);font-weight:var(--fw-black);font-size:var(--fs-lead);letter-spacing:var(--tr-tight);color:var(--rule-strong)}.work-thumb img{display:block;width:100%;height:100%;object-fit:cover}.work-thumb[data-shape=wide]{aspect-ratio:4 / 3}.work-thumb[data-shape=wide] img{object-fit:contain}.work-thumb[data-shape=tall] img{object-position:top}.work-body{display:block;min-width:0}.work-title{display:block;font-weight:var(--fw-bold);font-size:var(--fs-body);letter-spacing:var(--tr-tight)}.work-tagline{display:block;margin-top:4px;font-size:var(--fs-body);color:var(--text-secondary)}.work-metrics{display:block;margin-top:12px;font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase}.work-metrics span+span:before{content:" · ";color:var(--text-secondary)}.work-stack{display:block;margin-top:6px;font-size:var(--fs-meta);letter-spacing:var(--tr-meta);color:var(--text-secondary)}.work-open{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-secondary);transition:color var(--dur-fast) var(--ease-out)}.work-item:hover .work-open{color:var(--text-accent)}.xlist{border-top:1px solid var(--rule)}.xrow{--rail: 200px;padding:26px 0;border-bottom:1px solid var(--rule)}.xarea{font-weight:var(--fw-bold);font-size:var(--fs-lead);letter-spacing:var(--tr-tight);line-height:1.2}.xarea span{display:block;margin-top:8px;font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase;color:var(--text-accent)}.xclaim{margin:0;max-width:62ch;font-size:var(--fs-body);line-height:1.6}.xev{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.xev li{position:relative;padding-left:18px;font-size:var(--fs-meta);letter-spacing:var(--tr-meta);line-height:1.45;color:var(--text-secondary)}.xev li:before{content:"";position:absolute;left:0;top:.55em;width:8px;height:1px;background:var(--text-accent)}.fluent{line-height:1.7}.bookcover{aspect-ratio:3 / 4;background:var(--surface);border:1px solid var(--rule-strong)}.booktitle{margin:12px 0 0;font-weight:var(--fw-bold);font-size:clamp(1.4rem,2.4vw,2rem);letter-spacing:var(--tr-tight)}.bookdesc{margin:14px 0 0;max-width:56ch;font-size:var(--fs-body);line-height:1.6;color:var(--text-secondary)}.certlabel{display:block;margin:40px 0 16px}.presstitle{font-size:var(--fs-small);line-height:1.45;color:var(--text-secondary)}.contactfields{margin-top:28px;max-width:640px}.contactform{margin-top:40px}.formlabel{display:block;margin-bottom:6px}.printonly{display:none}.applemark{flex:none;position:relative;top:-1px}.asideportrait{width:min(100%,300px);aspect-ratio:1 / 1;margin:24px 0 22px}.asiderole{display:flex;align-items:center;gap:9px;margin-bottom:12px;font-weight:var(--fw-medium);font-size:1.05rem;letter-spacing:var(--tr-tight);color:var(--text-primary)}.asideblurb{margin:0;font-weight:var(--fw-regular);font-size:1rem;line-height:1.55;color:var(--text-secondary)}.asidesocials{display:flex;gap:10px}.asideactions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.asidebtn{padding:14px 6px;justify-content:center;text-align:center;white-space:nowrap}@keyframes mBackdrop{0%{opacity:0}to{opacity:1}}@keyframes mWin{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes railIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.mbackdrop{animation:mBackdrop .2s var(--ease-out) both}.win{animation:mWin .34s var(--ease-out) both}html[data-navmode=bar] .dot .lbl,html[data-navmode=rail] .dot .ic{animation:railIn .3s var(--ease-out) both}.railinner .dot .lbl,.railinner .dot .ic{animation-delay:calc(var(--i, 0) * 35ms)}@media(prefers-reduced-motion:reduce){.mbackdrop,.win,.dot .lbl,.dot .ic{animation:none;transition:none}}@media(max-width:1240px){.metarow{grid-template-columns:minmax(0,1fr);gap:10px}.role-when{position:static;display:flex;align-items:baseline;gap:12px}.role-dates{margin-top:0}}@media(max-width:860px){.role-work{padding-left:0;border-left:0;padding-top:20px;border-top:1px solid var(--rule)}.sec,.role{scroll-margin-top:72px}.shell{grid-template-columns:minmax(0,1fr)}.aside{position:static;height:auto;min-width:0}.rail{display:none}.card{height:auto}.main{padding:0}.sec{padding:56px 0}.mobilenav{display:flex;position:sticky;top:0;z-index:50;gap:4px;overflow-x:auto;background:var(--surface);border-bottom:1px solid var(--rule);padding:0 16px}.mobilenav a{flex:none;padding:14px 12px;text-decoration:none;color:var(--text-secondary);font-weight:var(--fw-medium);font-size:var(--fs-meta);letter-spacing:var(--tr-meta);text-transform:uppercase}.mobilenav a[data-active=true]{color:var(--text-accent);box-shadow:inset 0 -2px 0 var(--text-accent)}}@media(max-width:720px){.appmodal,.appmodal[data-shape=tall]{grid-template-columns:minmax(0,1fr)}.mockup{width:min(100%,calc(60vh * var(--shot-ratio, .474)))}.mockup[data-shape=tall]{width:min(100%,calc(60vh * var(--tall-ratio)))}.pubfeat{grid-template-columns:1fr;gap:24px}.work-item{grid-template-columns:56px minmax(0,1fr);gap:14px;padding:14px}}@media print{@page{size:A4 portrait;margin:14mm 12mm}html,html[data-ftheme=dark],html[data-ftheme=light]{--paper: #fff;--ink: #000;--surface: #fff;--surface-inset: #fff;--text-primary: #000;--text-secondary: #333;--rule: #bbb;--rule-strong: #888;--ink-05: transparent;--ink-08: transparent;--accent: #000;--link-underline: transparent;background:#fff}body{background:#fff;color:#000;font-size:10pt;line-height:1.4}*,*:before,*:after{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}.mobilenav,.rail,.themetoggle,.mbackdrop,.win,.lbox,.cform,.formlabel,.contactform,.wafbox,.presspreview,.work-thumb,.work-open,.bookcover,.asideactions{display:none!important}.printonly{display:block}.shell{display:block;max-width:none;padding:0}.aside{position:static;height:auto}.card{height:auto;padding:0 0 8mm;border:0;border-bottom:1pt solid var(--rule-strong);overflow:visible}.wordmark{font-size:24pt}.asideportrait{display:none}.asiderole{margin:2mm 0 1.5mm;font-size:11pt}.asideblurb{font-size:9.5pt;max-width:100%}.asidefoot{margin-top:3mm;padding-top:0;border-top:0}.asidesocials{display:none}.main{padding:0}.sec{padding:6mm 0 0;border-top:0}.sec+.sec{border-top:0}#experience,#expertise,#recognition{break-before:page}h1,h2,h3,.kicker,.presslabel,.certlabel{break-after:avoid}.role,.role-work,.worklist,.work-item,.xrow,.reccard,.presscard,.amrow,.pubfeat{break-inside:avoid}p,li{orphans:3;widows:3}.herohead{font-size:20pt;max-width:none}.h2d{font-size:16pt;max-width:none}.herolead,.sec-lead{font-size:10.5pt;max-width:none;color:#000}.recgrid,.pressrow,.worklist{display:block;background:none;border:0;border-top:1pt solid var(--rule)}.reccard,.presscard,.work-item{display:block;padding:2.5mm 0;background:none;border-bottom:1pt solid var(--rule)}.role{padding:4mm 0}.role-when{position:static}.role-work{margin-top:3mm;padding-left:0;padding-top:2mm;border-left:0;border-top:1pt solid var(--rule)}.work-item{padding-left:0}.work-metrics,.work-stack,.role-stack,.role-dates,.xev li{color:#333}.pubfeat{display:block;padding:0;border:0;background:none;margin-bottom:6mm}.booklinks{display:block;margin-top:3mm}.booklink{display:block;padding:0;border:0}.main svg{display:none}a[href^=http]:after{content:" (" attr(href) ")";font-size:8pt;color:#555;word-break:break-all}a[href^="#"]:after,a[href^="mailto:"]:after,a[href^="tel:"]:after{content:""}a{color:#000;text-decoration:none}}
