@property --bg{syntax:"<color>";inherits:true;initial-value:transparent}@property --surface{syntax:"<color>";inherits:true;initial-value:transparent}@property --border{syntax:"<color>";inherits:true;initial-value:transparent}@property --text{syntax:"<color>";inherits:true;initial-value:transparent}@property --muted{syntax:"<color>";inherits:true;initial-value:transparent}@property --accent{syntax:"<color>";inherits:true;initial-value:transparent}@property --inv-bg{syntax:"<color>";inherits:true;initial-value:transparent}@property --inv-text{syntax:"<color>";inherits:true;initial-value:transparent}@property --inv-muted{syntax:"<color>";inherits:true;initial-value:transparent}@property --inv-accent{syntax:"<color>";inherits:true;initial-value:transparent}@property --frame-desk{syntax:"<color>";inherits:true;initial-value:transparent}@property --frame-band{syntax:"<color>";inherits:true;initial-value:transparent}@property --frame-rim{syntax:"<color>";inherits:true;initial-value:transparent}@property --name-ink{syntax:"<color>";inherits:true;initial-value:transparent}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.flex-shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.border{border-width:1px}.uppercase{text-transform:uppercase}.outline{outline-style:solid}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--light-bg:#fbfcfc;--light-surface:#f2f3f3;--light-border:#d6d8d8;--light-text:#151515;--light-muted:#666666;--light-accent:#7a7a7a;--dark-bg:#0d1626;--dark-surface:#162034;--dark-border:#27314a;--dark-text:#e9edf3;--dark-muted:#a4adbb;--dark-accent:#a3aab6;--bg:var(--light-bg);--surface:var(--light-surface);--border:var(--light-border);--text:var(--light-text);--muted:var(--light-muted);--accent:var(--light-accent);--inv-bg:var(--dark-bg);--inv-text:var(--dark-text);--inv-muted:var(--dark-muted);--inv-accent:var(--dark-accent);--frame-desk:#eceeee;--frame-band:#8e8e8e;--frame-rim:#4a4545;--name-ink:#444444;--nav-h:0px;--sheet-mr:40px;--sheet-mb:40px;--sheet-mt:28px;--sheet-max:1440px;--sheet-right:max(var(--sheet-mr),calc((100vw - var(--sheet-max)) / 2 + 8px));--font-serif:"Piazzolla",Georgia,serif;--font-sans:"Inter",system-ui,-apple-system,sans-serif;--device-bezel:#18191a;--device-base-hi:#e1e3e3;--device-base-lo:#b9bcbc;--device-notch:#a2a5a5;--device-screen:#eef0f3;--ease-scene:cubic-bezier(0.645,0.045,0.355,1);--dur-scene:400ms;--fs-h1:clamp(28px,1.8vw + 14px,40px);--fs-display:var(--fs-h1);--fs-h2:clamp(22px,0.9vw + 14px,28px);--fs-h3:clamp(18px,0.5vw + 13px,21px);--fs-body:clamp(17px,0.3vw + 14px,19px);--fs-small:15px;--fs-label:13px}@media (min-width:1441px){:root{--fs-h1:min(calc(20px + 1.3889vw),60px);--fs-h2:min(calc(14px + 0.9722vw),42px);--fs-h3:min(calc(10.5px + 0.7292vw),31.5px);--fs-body:min(calc(9.5px + 0.6597vw),28.5px);--fs-small:min(calc(7.5px + 0.5208vw),22.5px);--fs-label:min(calc(6.5px + 0.4514vw),19.5px);--sheet-max:min(calc(720px + 50vw),2160px)}}[data-scene=dark],[data-theme=dark]{--bg:var(--dark-bg);--surface:var(--dark-surface);--border:var(--dark-border);--text:var(--dark-text);--muted:var(--dark-muted);--accent:var(--dark-accent);--inv-bg:var(--light-bg);--inv-text:var(--light-text);--inv-muted:var(--light-muted);--inv-accent:var(--light-accent)}[data-theme=dark]{--frame-desk:#070d18;--frame-band:#a3aab6;--frame-rim:#2b3448;--name-ink:#c9cdd4}[data-theme=dark][data-scene=dark]{--bg:var(--light-bg);--surface:var(--light-surface);--border:var(--light-border);--text:var(--light-text);--muted:var(--light-muted);--accent:var(--light-accent);--inv-bg:var(--dark-bg);--inv-text:var(--dark-text);--inv-muted:var(--dark-muted);--inv-accent:var(--dark-accent)}html{transition:--bg var(--dur-scene) var(--ease-scene),--surface var(--dur-scene) var(--ease-scene),--border var(--dur-scene) var(--ease-scene),--text var(--dur-scene) var(--ease-scene),--muted var(--dur-scene) var(--ease-scene),--accent var(--dur-scene) var(--ease-scene),--inv-bg var(--dur-scene) var(--ease-scene),--inv-text var(--dur-scene) var(--ease-scene),--inv-muted var(--dur-scene) var(--ease-scene),--inv-accent var(--dur-scene) var(--ease-scene),--frame-desk var(--dur-scene) var(--ease-scene),--frame-band var(--dur-scene) var(--ease-scene),--frame-rim var(--dur-scene) var(--ease-scene),--name-ink var(--dur-scene) var(--ease-scene)}@media (prefers-reduced-motion:reduce){html{transition:none}}html{scroll-behavior:smooth}body{font-family:var(--font-sans);font-weight:300;background:var(--bg);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased}body,html{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L22 12 L12 22 L2 12 Z' stroke='%232a2418' stroke-width='1.2' fill='none' opacity='0.85'/%3E%3Ccircle cx='12' cy='12' r='2' fill='%232a2418' opacity='0.85'/%3E%3C/svg%3E") 12 12,auto}a,button,input,select{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L22 12 L12 22 L2 12 Z' stroke='%232a2418' stroke-width='1.2' fill='%232a2418' fill-opacity='0.15' opacity='0.9'/%3E%3Ccircle cx='12' cy='12' r='2.5' fill='%232a2418' opacity='0.9'/%3E%3C/svg%3E") 12 12,pointer}body:has(.sheet){background:var(--frame-desk)}body{transition:background-color var(--dur-scene) var(--ease-scene),color var(--dur-scene) var(--ease-scene)}.sheet{position:relative;max-width:var(--sheet-max);margin:var(--sheet-mt) var(--sheet-mr) var(--sheet-mb) max(16px,calc((100% - var(--sheet-max)) / 2 - 8px));min-height:calc(100vh - 68px);background:var(--bg);box-shadow:12px -12px 0 0 var(--frame-band),16px -16px 0 0 var(--frame-rim);padding:56px clamp(20px,3vw,48px) 96px}.theme-toggle{position:fixed;bottom:calc(var(--sheet-mb) + 16px);right:calc(var(--sheet-right) + 16px);z-index:50;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:2px;transition:border-color .15s ease-out}body:has(.sheet) .theme-toggle{position:absolute;bottom:auto;top:calc(var(--sheet-mt) + 10px)}@media (hover:hover) and (pointer:fine){.theme-toggle:hover{border-color:var(--text)}}[data-theme=dark]:not([data-scene=dark]) .work-row{--tint-shown:color-mix(in oklab,var(--tint) 14%,var(--dark-surface))}.site-head{display:flex;align-items:baseline;gap:clamp(24px,8vw,168px);flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--muted);margin-bottom:44px}.site-name{font-family:var(--font-serif);font-size:var(--fs-h1);font-weight:400;color:var(--name-ink);text-decoration:none;letter-spacing:-.5px}.site-links{display:flex;gap:clamp(24px,8vw,168px)}.site-links a{font-family:var(--font-sans);font-size:var(--fs-h2);font-weight:400;color:var(--text);text-decoration:none}.site-links a:hover,.site-links a[aria-current=page]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.cs-shell .site-head{max-width:1000px;margin:0 auto;padding:32px 40px 18px}.tree{--line:1px solid var(--muted);--stub:64px;--name-mid:calc(var(--fs-h1) * 0.6);--branch-mid:calc(var(--fs-h2) * 0.8);--leaf-mid:calc(var(--fs-h3) * 0.65);--branch-gap:64px;--leaf-gap:28px;border-top:1px solid var(--muted);padding-top:28px;display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start}.tree-name{display:flex;align-items:center;gap:0;font-family:var(--font-serif);font-size:var(--fs-h1);font-weight:400;color:var(--name-ink);letter-spacing:-.5px;line-height:1.2}.tree-name:after{content:"";width:clamp(32px,10vw,196px);height:1px;background-color:var(--muted);margin-left:28px;transform-origin:left;position:relative;top:.5px}.tree-name{height:calc(var(--fs-h1) * 1.2);grid-column:1;grid-row:1}.tree-branches{grid-column:2;grid-row:1/span 3}.tree-intro{grid-column:1;grid-row:2;width:0;min-width:100%;box-sizing:border-box;margin:20px 0 0;padding-right:32px;font-family:var(--font-serif);font-size:var(--fs-small);line-height:1.55;color:var(--text);text-wrap:pretty}.tree-intro p{margin:0}.tree-intro p+p{margin-top:.8em}.tree{grid-template-rows:auto auto 1fr}.tree-graphic{grid-column:1;grid-row:3;align-self:start;justify-self:end;margin:32px 16px 0 0;width:min(calc(100% - 16px),460px)}.tree-graphic canvas{display:block}@media (min-width:1001px){.tree-intro{min-height:calc(50vh - 52px)}}@media (max-width:1000px){.tree-graphic{display:none}}.tree-branches{list-style:none;padding:0;margin:0;padding-top:max(0px,var(--name-mid) - var(--branch-mid));--head-mid:var(--branch-mid);--gap:var(--branch-gap)}.tree-branch,.tree-leaf{position:relative;padding-left:var(--stub)}.tree-branch:after,.tree-leaf:after{content:"";position:absolute;left:0;top:0;bottom:0;width:1px;background-color:var(--muted);transform-origin:top}.tree-branch+.tree-branch:after,.tree-leaf+.tree-leaf:after{top:calc(-1 * var(--gap))}.tree-branch:first-child:after,.tree-leaf:first-child:after{top:var(--head-mid)}.tree-branch:last-child:after,.tree-leaf:last-child:after{bottom:auto;height:calc(var(--gap) + var(--head-mid))}.tree-branch:only-child:after,.tree-leaf:only-child:after{display:none}.tree-branch:before,.tree-leaf:before{content:"";position:absolute;left:0;top:var(--head-mid);width:calc(var(--stub) - 16px);height:1px;background-color:var(--muted);transform-origin:left}.tree{--seg:45ms}.tree-branch:after,.tree-branch:before,.tree-leaf:after,.tree-leaf:before,.tree-name:after{background-image:linear-gradient(var(--text),var(--text));background-repeat:no-repeat;background-position:0 0;background-size:0 0}.tree-branch:before,.tree-leaf:before,.tree-name:after{background-size:0 100%}.tree-branch:after,.tree-leaf:after{background-size:100% 0}.tree[data-lit] .tree-branch:after,.tree[data-lit] .tree-branch:before,.tree[data-lit] .tree-leaf:after,.tree[data-lit] .tree-leaf:before{background-color:var(--border)}.tree[data-lit] .tree-name:after{background-size:100% 100%;transition:background-size var(--seg) linear}.tree[data-lit] [data-lit=through]:after{background-size:100% 100%;transition:background-size var(--seg) linear var(--dt)}.tree[data-lit] [data-lit=end]:after{--cut:calc(var(--gap) + var(--head-mid));background-size:100% var(--cut);transition:background-size var(--seg) linear var(--dt)}.tree[data-lit] [data-lit=end]:first-child:after{--cut:0px}.tree[data-lit] [data-lit=end]:before{background-size:100% 100%;transition:background-size var(--seg) linear var(--ds)}.tree[data-intro] .tree-name:after{animation:tree-grow-x .3s cubic-bezier(.32,.72,0,1) both}.tree[data-intro] .tree-branch:after{animation:tree-grow-y .26s cubic-bezier(.32,.72,0,1) both;animation-delay:calc(.25s + var(--b) * .2s)}.tree[data-intro] .tree-branch:before{animation:tree-grow-x .22s cubic-bezier(.32,.72,0,1) both;animation-delay:calc(.33s + var(--b) * .2s)}.tree[data-intro] .tree-head{animation:tree-reveal .32s cubic-bezier(.32,.72,0,1) both;animation-delay:calc(.42s + var(--b) * .2s)}.tree[data-intro] .tree-leaf:after{animation:tree-grow-y .2s cubic-bezier(.32,.72,0,1) both;animation-delay:calc(.62s + var(--b) * .2s + var(--l) * 90ms)}.tree[data-intro] .tree-leaf:before{animation:tree-grow-x .2s cubic-bezier(.32,.72,0,1) both;animation-delay:calc(.7s + var(--b) * .2s + var(--l) * 90ms)}.tree[data-intro] .tree-leaf>a{animation:tree-reveal .36s cubic-bezier(.32,.72,0,1) both;animation-delay:calc(.78s + var(--b) * .2s + var(--l) * 90ms)}.tree:not([data-intro]) .tree-leaves[data-opened] .tree-leaf:before{animation:tree-grow-x .18s cubic-bezier(.32,.72,0,1) both;animation-delay:calc(var(--l) * 40ms)}.tree:not([data-intro]) .tree-leaves[data-opened] .tree-leaf>a{animation:tree-reveal .26s cubic-bezier(.32,.72,0,1) both;animation-delay:calc(60ms + var(--l) * 40ms)}.tree[data-intro=wait] *,.tree[data-intro=wait] .tree-name:after,.tree[data-intro=wait] :after,.tree[data-intro=wait] :before{animation-play-state:paused!important}@keyframes tree-grow-x{0%{transform:scaleX(0)}}@keyframes tree-grow-y{0%{transform:scaleY(0)}}@keyframes tree-reveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@media (prefers-reduced-motion:reduce){.tree *,.tree :after,.tree :before,.tree-name:after{animation:none!important;transition:none!important}}.tree-branch{display:grid;grid-template-columns:12em minmax(0,1fr);align-items:start}.tree-branch+.tree-branch{margin-top:var(--branch-gap)}@media (max-width:1180px){.tree-branch{grid-template-columns:minmax(0,1fr);row-gap:16px}}.tree-head{display:flex;align-items:center;gap:10px;font-family:var(--font-sans);font-size:var(--fs-h2);line-height:1.6}.tree-head a{color:var(--text);text-decoration:none}.tree-head a:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.tree-toggle{width:28px;height:28px;border:0;background:none;color:var(--muted);padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:4px}.tree-toggle svg{transition:transform .2s cubic-bezier(.32,.72,0,1)}.tree-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}.tree-toggle:hover{color:var(--text);background:var(--surface)}@media (prefers-reduced-motion:reduce){.tree-toggle svg{transition:none}}.tree-leaves{list-style:none;padding:0;margin:0;padding-top:max(0px,var(--branch-mid) - var(--leaf-mid));--head-mid:var(--leaf-mid);--gap:var(--leaf-gap)}.tree-leaves[hidden]{display:none}.tree-leaf+.tree-leaf{margin-top:var(--leaf-gap)}.tree-leaf a{color:inherit;text-decoration:none;display:block}.tree-leaf a:hover .leaf-title{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.leaf-line{font-size:var(--fs-small);line-height:1.55}.leaf-head,.leaf-line{font-family:var(--font-serif);color:var(--text);max-width:30em}.leaf-head{font-size:var(--fs-h3);line-height:1.3;margin-bottom:4px;text-wrap:balance}.leaf-title{font-weight:400;margin-right:.5em}.leaf-head .leaf-date{font-family:var(--font-sans);font-size:var(--fs-label);color:var(--muted)}.leaf-date{white-space:nowrap}.leaf-summary{font-style:italic}.leaf-award{font-weight:700}.leaf-venue{color:var(--muted)}.page-intro{max-width:46em;margin-bottom:48px}.page-intro h1{font-family:var(--font-sans);font-size:var(--fs-h1);font-weight:400;line-height:1.2;margin-bottom:16px}.page-intro p{font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.5;color:var(--text)}.page-intro p+p{margin-top:.75em}.page-intro cite{font-style:italic}.page-intro p a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.work-list{gap:80px;max-width:600px}.work-list,.work-rows{list-style:none;padding:0;margin:0;display:grid}.work-rows{gap:72px}.work-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.3fr);gap:24px;align-items:start}.work-visuals{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.6fr);gap:24px;align-items:stretch}.work-row-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.work-row-2 .work-media{align-self:start}.section-kicker{font-family:var(--font-sans);font-size:var(--fs-h1);font-weight:400;line-height:1.2;margin:8px 0 32px}.work-grid{list-style:none;padding:0;margin:72px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 24px}.work-grid .work-body{padding:18px 0 0}.work-grid li[id],.work-row-2[id]{scroll-margin-top:32px}@media (max-width:640px){.work-grid{grid-template-columns:1fr;gap:48px;margin-top:56px}}.work-row-2 .work-quote{grid-column:auto;margin-top:24px;padding:4px 0 4px 18px}.work-row-2 .work-quote blockquote{font-size:var(--fs-small)}.work-row .work-body{padding:0}.work-banner{display:flex;align-items:center;justify-content:center;padding:10%;background:var(--tint-shown,var(--tint));border-radius:2px;text-decoration:none;color:var(--text);box-shadow:inset 0 0 0 1px rgb(0 0 0/.06);container-type:inline-size}.work-title-sm{font-size:var(--fs-h3);line-height:1.25;text-wrap:balance}.work-quote{grid-column:1/-1;margin:4px 0 0;padding:20px 0 0 20px;border-left:2px solid var(--text);max-width:52em}.work-quote blockquote{font-family:var(--font-serif);font-style:italic;font-size:var(--fs-body);line-height:1.55;margin:0}.work-quote figcaption{font-family:var(--font-sans);font-size:var(--fs-label);color:var(--muted);margin-top:10px}.work-quote figcaption a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.be{font-family:var(--font-sans);width:100%;box-shadow:0 1px 2px rgb(0 0 0/.06),0 8px 24px -8px rgb(0 0 0/.12)}.be-pv{background:#fff;border:1.5px solid #3b6a8f;border-radius:6px;padding:7cqw;font-size:4.6cqw;color:#1d2733}.be-pv-head{display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.08em;font-size:3.6cqw;color:#6a7480}.be-pv-ok{text-transform:none;letter-spacing:0;color:#2f7a52;background:#e3f2e9;padding:.15em .6em;border-radius:999px}.be-pv-field{font-weight:600;margin-top:4cqw}.be-pv-value{font-size:8cqw;font-weight:600;line-height:1.2}.be-pv-quote{margin-top:4cqw;background:#eef1f4;border-left:3px solid #a9b4bf;padding:2.6cqw 3.4cqw;font-size:3.8cqw}.be-pv-actions{display:flex;gap:2.4cqw;margin-top:5cqw;font-size:3.8cqw;color:#1d2733}.be-pv-actions span{padding:1.6cqw 3cqw}.be-pv-actions .be-pv-primary{background:#13283a;color:#fff;border-radius:4px}.be-lk{display:flex;align-items:center;gap:3cqw;background:#0f2a33;border:1px solid rgb(255 255 255/.14);border-radius:999px;padding:3cqw 3cqw 3cqw 6cqw;color:#dce9ee;font-size:5.2cqw}.be-lk-text{flex:1}.be-lk-send{display:inline-flex;align-items:center;justify-content:center;width:11cqw;height:11cqw;border-radius:50%;background:#cfe3ea;color:#0f2a33;font-size:6cqw}.be-cc{background:#1b201d;border-radius:6px;padding:6cqw;font-size:4cqw;color:#e8ece9}.be-cc-chips{display:flex;flex-wrap:wrap;gap:1.6cqw;font-size:3.5cqw;font-family:ui-monospace,SF Mono,Menlo,monospace}.be-cc-chips span{padding:1.2cqw 2cqw;border-radius:4px;background:#2a302c}.be-cc-sev{color:#f2c94c}.be-cc-crack{color:#ff5a4f}.be-cc-button{display:flex;align-items:center;justify-content:center;gap:2.4cqw;margin-top:5cqw;padding:3.6cqw;background:#2f6df6;color:#fff;border-radius:4px;font-weight:500;font-size:4.4cqw}.work-media{display:block;aspect-ratio:16/10;border-radius:2px;overflow:hidden;background:var(--tint)}.work-loop{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}@media (max-width:1000px){.work-row:not(.work-row-2){grid-template-columns:1fr}}@media (max-width:640px){.work-row-2,.work-visuals{grid-template-columns:1fr}.work-banner{padding:28px 18%;min-height:120px}}.work-photo{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--surface)}.work-photo img{display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.work-body{padding:16px 20px 0}.work-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.work-title{font-family:var(--font-serif);font-size:var(--fs-h1);font-weight:400;line-height:1.1}.work-title a{color:inherit;text-decoration:none}.work-title a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.work-year{font-family:var(--font-serif);font-size:var(--fs-h1);font-weight:300;color:var(--accent)}.work-with{color:var(--muted);margin-top:2px}.work-award,.work-with{font-family:var(--font-sans);font-size:var(--fs-small)}.work-award{font-style:italic;margin-top:14px}.work-summary{margin-top:14px}.work-links,.work-summary{font-family:var(--font-sans);font-size:var(--fs-body);line-height:1.5}.work-links{margin-top:16px}.work-links a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.work-meta{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--muted);margin-top:4px}.work-deck{font-family:var(--font-serif);font-size:var(--fs-body);font-style:italic;line-height:1.5;margin-top:12px}.site-foot{display:flex;justify-content:space-between;gap:16px;margin-top:96px;padding-top:18px;border-top:1px solid var(--border);font-family:var(--font-sans);font-size:var(--fs-label);color:var(--muted)}.site-foot a{color:inherit;text-decoration:none}.site-foot a:hover{color:var(--text)}.cs-wrap{max-width:1000px;margin:0 auto;padding:calc(var(--nav-h) + 72px) 40px 120px;overflow-x:clip}.cs-back{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-label);font-weight:300;color:var(--muted);text-decoration:none;margin-bottom:52px;transition:color .15s}.cs-back:hover{color:var(--text)}.cs-num{font-size:var(--fs-label);font-weight:400;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.cs-title{font-size:var(--fs-display);color:var(--text);line-height:1.08;letter-spacing:-1px;margin-bottom:24px;max-width:900px}.cs-oneliner,.cs-title{font-family:var(--font-serif);font-weight:400}.cs-oneliner{font-style:italic;font-size:var(--fs-h3);color:var(--muted);line-height:1.45;max-width:780px;margin-bottom:60px}.cs-links{display:flex;flex-wrap:wrap;gap:6px 28px;margin:-28px 0 44px;font-family:var(--font-sans);font-size:var(--fs-small);color:var(--muted)}.cs-links a{color:var(--text);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}.cs-meta{display:grid;grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:72px}.cs-meta-cell{background:var(--bg);padding:22px 24px}.cs-meta-label{font-size:var(--fs-label);font-weight:400;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.cs-meta-value{font-size:var(--fs-small);font-weight:300;color:var(--text);line-height:1.5}.cs-section{margin-bottom:72px}.cs-section-title{font-size:var(--fs-label);font-weight:400;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent);margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--border)}.cs-body{font-family:var(--font-serif);font-size:var(--fs-body);font-weight:400;color:var(--text);line-height:1.75}.cs-body p+p{margin-top:1.25em}.cs-body ul{list-style:none;padding:0;margin-top:1em}.cs-body ul li{padding:4px 0 4px 18px;position:relative;font-size:inherit}.cs-body ul li:before{content:"—";position:absolute;left:0;color:var(--border);font-size:var(--fs-label);line-height:2.1}.cs-img{width:100%;margin:40px 0;border:1px solid var(--border);overflow:hidden}.cs-img img{display:block}body:has(.cs-process){overflow-x:clip}.cs-wrap:has(.cs-process){overflow-x:visible}.cs-process{--process-max:1360px;--process-gutter:40px;--process-gap:160px;--role-col:0.275;--stage-inset:32px;--process-w:min(var(--process-max),calc(100vw - 2 * var(--process-gutter)));--role-w:calc((var(--process-w) - var(--process-gap)) * var(--role-col));--edge-w:calc((100vw - var(--process-w)) / 2);width:var(--process-w);margin:0 0 56px calc(50% - var(--process-w) / 2);padding-top:40px}.cs-role-eyebrow{font-size:var(--fs-small);font-weight:500;letter-spacing:2.4px;text-transform:uppercase;color:var(--accent);margin-bottom:14px}.cs-role-label{font-size:var(--fs-h1);font-weight:400;line-height:1.05;letter-spacing:-.5px;color:var(--text);margin-bottom:18px}.cs-role-desc,.cs-role-label{font-family:var(--font-serif)}.cs-role-desc{font-style:italic;font-size:var(--fs-body);line-height:1.55;color:var(--muted);max-width:420px}.cs-step-num{font-size:var(--fs-label);font-weight:400;letter-spacing:1.6px;color:var(--accent);margin-bottom:10px}.cs-step-title{font-size:var(--fs-h2);font-weight:400;color:var(--text);line-height:1.15;margin-bottom:12px}.cs-step-body,.cs-step-title{font-family:var(--font-serif)}.cs-step-body{font-size:var(--fs-body);line-height:1.6;color:var(--muted)}.cs-step-body p+p{margin-top:1em}.cs-pt-card{position:relative;z-index:1;padding:0 var(--stage-inset);display:grid}.cs-pt-card>.cs-device{grid-area:1/1;align-self:start}.cs-pt .cs-device{opacity:0;transition:opacity var(--dur-scene) var(--ease-scene)}.cs-pt .cs-device[data-active]{opacity:1}@media (prefers-reduced-motion:reduce){.cs-pt .cs-device{transition:none}}.cs-phone{width:100%;max-width:calc((100vh - 380px) * .4862 + 20px);margin:0 auto}.cs-phone-screen{position:relative;aspect-ratio:1126/2316;overflow:hidden;box-sizing:content-box;border:10px solid var(--device-bezel);border-radius:44px;background:var(--device-bezel)}.cs-laptop{width:100%;max-width:calc((100vh - 360px) * 1.6);margin:0 auto}.cs-laptop-screen{position:relative;aspect-ratio:16/10;overflow:hidden;box-sizing:content-box;border:solid var(--device-bezel);border-width:12px 12px 16px;border-radius:16px 16px 4px 4px;background:var(--device-screen)}.cs-laptop-base{position:relative;height:14px;width:112%;margin-left:-6%;background:linear-gradient(var(--device-base-hi),var(--device-base-lo));border-radius:2px 2px 12px 12px}.cs-laptop-base:after{content:"";position:absolute;top:0;left:50%;width:14%;height:5px;transform:translateX(-50%);background:var(--device-notch);border-radius:0 0 6px 6px}.cs-pl-shot,.cs-pt-shot{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;display:block}.cs-pt-role,.cs-pt-shot,.cs-pt-text{opacity:0;transition:opacity var(--dur-scene) var(--ease-scene)}.cs-pt-role[data-active],.cs-pt-shot[data-state=active],.cs-pt-text[data-state=active]{opacity:1}@media (prefers-reduced-motion:reduce){.cs-pt-role,.cs-pt-shot,.cs-pt-text{transition:none}}.cs-pt{position:relative}.cs-pt-stage{position:sticky;top:var(--nav-h);height:calc(100vh - var(--nav-h));display:grid;grid-template-columns:var(--role-w) minmax(0,1fr);gap:var(--process-gap);align-items:start;padding-top:40px}.cs-pt-stage:before{content:"";position:absolute;top:0;bottom:0;z-index:0;pointer-events:none;left:calc(-1 * var(--edge-w));--feather:calc(48px + var(--process-gap) + var(--stage-inset));width:calc(var(--edge-w) + var(--role-w) + var(--process-gap) + var(--stage-inset));background:radial-gradient(ellipse 100% 150% at 0 35%,var(--inv-bg) 0,color-mix(in srgb,var(--inv-bg) 100%,transparent) calc(100% - var(--feather) * 1),color-mix(in srgb,var(--inv-bg) 99.5%,transparent) calc(100% - var(--feather) * .9167),color-mix(in srgb,var(--inv-bg) 96.5%,transparent) calc(100% - var(--feather) * .8333),color-mix(in srgb,var(--inv-bg) 89.6%,transparent) calc(100% - var(--feather) * .75),color-mix(in srgb,var(--inv-bg) 79%,transparent) calc(100% - var(--feather) * .6667),color-mix(in srgb,var(--inv-bg) 65.3%,transparent) calc(100% - var(--feather) * .5833),color-mix(in srgb,var(--inv-bg) 50%,transparent) calc(100% - var(--feather) * .5),color-mix(in srgb,var(--inv-bg) 34.7%,transparent) calc(100% - var(--feather) * .4167),color-mix(in srgb,var(--inv-bg) 21%,transparent) calc(100% - var(--feather) * .3333),color-mix(in srgb,var(--inv-bg) 10.4%,transparent) calc(100% - var(--feather) * .25),color-mix(in srgb,var(--inv-bg) 3.5%,transparent) calc(100% - var(--feather) * .1667),color-mix(in srgb,var(--inv-bg) .5%,transparent) calc(100% - var(--feather) * .0833),color-mix(in srgb,var(--inv-bg) 0%,transparent) calc(100% - var(--feather) * 0))}.cs-pt-left{position:relative;z-index:1;height:100%;padding-right:24px}.cs-pt-left .cs-role-eyebrow{color:var(--inv-accent)}.cs-pt-left .cs-role-label{color:var(--inv-text)}.cs-pt-left .cs-role-desc{color:var(--inv-muted)}.cs-pt-rail{position:relative;min-height:360px}.cs-pt-role{position:absolute;inset:0 0 auto 0}.cs-pt-count{position:absolute;bottom:48px;left:0;font-size:var(--fs-label);letter-spacing:1.6px;color:var(--inv-muted)}.cs-pt-right{position:relative;z-index:1;display:flex;flex-direction:column;gap:28px}.cs-pt-shot{position:absolute;inset:0}.cs-pt-texts{display:grid;min-height:170px;padding:0 var(--stage-inset)}.cs-pt-text{grid-area:1/1}.cs-pl{display:none}.cs-pl-group{padding:48px 0;border-top:1px solid var(--border)}.cs-pl-group:first-child{border-top:none}.cs-pl-group>.cs-role-desc{margin-bottom:32px}.cs-pl-step+.cs-pl-step{margin-top:56px}.cs-pl-step .cs-pt-card{margin-bottom:20px}@media (max-width:900px){.cs-pt{display:none}.cs-pl{display:block}}.cs-refs{padding-left:18px;font-size:var(--fs-small);font-weight:300;color:var(--muted);line-height:1.6}.cs-refs li+li{margin-top:8px}.cs-foot-rule{height:1px;background:var(--border);border:none;margin:72px 0 40px}.cs-pipeline{margin:40px 0}.cs-code{border:1px solid var(--border);border-radius:6px;padding:20px 24px;overflow-x:auto;font-family:Courier New,monospace;font-size:var(--fs-label);line-height:1.7;color:var(--text);white-space:pre;margin:0}.cs-carousel,.cs-code{background:var(--surface)}.cs-carousel{margin:32px 0;border:1px solid var(--border)}.cs-carousel-img{position:relative;width:100%;aspect-ratio:16/9;background:var(--surface)}.cs-carousel-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--border);background:var(--bg)}.cs-carousel-btn{background:none;border:.5px solid var(--border);border-radius:7px;width:32px;height:28px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-label);color:var(--muted);cursor:pointer;transition:color .4s,border-color .4s}.cs-carousel-btn:hover{color:var(--text);border-color:var(--accent)}.cs-carousel-meta{display:flex;align-items:center;gap:16px;flex:1;justify-content:center}.cs-carousel-caption{font-size:var(--fs-label);font-weight:300;color:var(--muted);letter-spacing:.2px}.cs-carousel-count{font-size:var(--fs-label);font-weight:400;color:var(--accent);letter-spacing:1px;white-space:nowrap}.mac-page{min-height:calc(100vh - var(--nav-h));display:flex;align-items:center;justify-content:center;padding:40px 24px}.mac-card{width:420px;max-width:100%;border-radius:12px;overflow:hidden;border:1px solid var(--border);box-shadow:0 8px 56px rgba(0,0,0,.1),0 2px 8px rgba(0,0,0,.05);background:var(--bg)}.mac-bar{background:var(--surface);height:46px;display:flex;align-items:center;justify-content:center;position:relative;border-bottom:1px solid var(--border)}.mac-bar-title{font-size:var(--fs-label);font-weight:400;color:var(--muted)}.mac-body{padding:32px 28px 28px}.mac-icon{font-size:32px;margin-bottom:14px}.mac-heading{font-family:var(--font-serif);font-size:var(--fs-h2);font-weight:400;color:var(--text);margin-bottom:10px;line-height:1.3}.mac-sub{font-size:var(--fs-small);color:var(--muted);line-height:1.65}.mac-path,.mac-sub{font-weight:300;margin-bottom:24px}.mac-path{font-size:var(--fs-label);color:var(--accent);letter-spacing:.3px;font-family:Courier New,monospace}.mac-sep{height:1px;background:var(--border);margin-bottom:16px}.mac-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 18px;border-radius:6px;border:1px solid var(--border);background:var(--surface);font-family:var(--font-sans);font-size:var(--fs-label);font-weight:300;color:var(--muted);text-decoration:none;transition:background .12s}.mac-btn:hover{background:var(--border)}.mac-btn-primary{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:400}.mac-btn-primary:hover{background:var(--name-ink)}@media (max-width:860px){.tree{grid-template-columns:1fr;row-gap:24px;--stub:28px;grid-template-rows:none}.tree-branches,.tree-intro,.tree-name{grid-column:1;grid-row:auto}.tree-intro{width:auto;min-width:0;margin-top:-12px;padding-right:0;max-width:34em}.leaf-date{white-space:normal}.tree-name:after{display:none}.tree-branch{grid-template-columns:1fr;row-gap:16px}.tree{--branch-gap:40px}}@media (max-width:640px){:root{--sheet-mr:20px;--sheet-mb:24px;--sheet-mt:20px}.sheet{margin:20px 20px 24px 8px;padding:56px 20px 64px;box-shadow:8px -8px 0 0 var(--frame-band),11px -11px 0 0 var(--frame-rim)}.site-head,.site-links{gap:20px}.cs-shell .site-head{padding:24px 20px 14px}.cs-wrap{padding:calc(var(--nav-h) + 40px) 20px 80px}.cs-oneliner{margin-bottom:40px}.cs-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.cs-process{width:auto;margin-left:0}.cs-role-label{margin-bottom:12px}.cs-process{--stage-inset:6%}.cs-laptop-screen{border-width:6px 6px 9px;border-radius:10px 10px 3px 3px}.cs-laptop-base{height:8px}.cs-carousel-btn{width:28px;height:26px}}.type-once{white-space:pre-wrap}.type-caret,.type-ghost{visibility:hidden}.type-caret{display:inline-block;width:.08em;height:1em;margin:0 .04em -.12em;background:currentColor}.type-caret[data-typing]{visibility:visible;animation:caret-blink 1s steps(1) infinite}@keyframes caret-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.type-caret[data-typing]{animation:none}}[data-scene=dark]:not([data-theme=dark]),[data-scene=dark]:not([data-theme=dark]) body,[data-theme=dark]:not([data-scene=dark]),[data-theme=dark]:not([data-scene=dark]) body{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L22 12 L12 22 L2 12 Z' stroke='%23e9edf3' stroke-width='1.2' fill='none' opacity='0.85'/%3E%3Ccircle cx='12' cy='12' r='2' fill='%23e9edf3' opacity='0.85'/%3E%3C/svg%3E") 12 12,auto}[data-scene=dark]:not([data-theme=dark]) a,[data-scene=dark]:not([data-theme=dark]) button,[data-theme=dark]:not([data-scene=dark]) a,[data-theme=dark]:not([data-scene=dark]) button{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M12 2 L22 12 L12 22 L2 12 Z' stroke='%23e9edf3' stroke-width='1.2' fill='%23e9edf3' fill-opacity='0.15' opacity='0.9'/%3E%3Ccircle cx='12' cy='12' r='2.5' fill='%23e9edf3' opacity='0.9'/%3E%3C/svg%3E") 12 12,pointer}