@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-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-mono)}}@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;-webkit-text-decoration:inherit;-webkit-text-decoration: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}}@layer components;@layer utilities{.\!visible{visibility:visible!important}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.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}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.filter{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,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}.project-row+.project-row{margin-top:clamp(72px,9vw,140px)}.project-screen,.clipboard-desktop,.puck-panel{translate:0 var(--media-y,0px)}.identity-mark{color:var(--ink);flex:none;display:block}.identity-frame{color:var(--orange)}.signature-canvas{pointer-events:none;opacity:0;width:365px;height:365px;transition:opacity .2s;position:absolute}.signature-canvas[data-ready=true]{opacity:1}.signature:has(.signature-canvas[data-ready=true]) .signature-static{opacity:0}.lab-experiment-visual .signature-canvas{width:440px;height:440px}.project-canvas-croxync .canvas-caption{color:#554a3b}.project-canvas-puck .canvas-caption{color:#354631}.clipboard-showcase{min-height:500px;padding:15px 16% 15px 0;position:relative}.clipboard-desktop{border-radius:8px;box-shadow:0 22px 50px -20px #4a403644}.clipboard-desktop .browser-frame{background:#f8f5ec}.clipboard-interface{color:#3d372c;background:#f8f5ec;padding:28px}.clipboard-ui-header{align-items:center;gap:11px;padding-bottom:22px;display:flex}.clipboard-logo{color:#b4773b;font-size:30px}.clipboard-ui-header strong{letter-spacing:-.04em;font-size:22px;display:block}.clipboard-ui-header>div>span{color:#625849;margin-top:2px;font-size:9px;display:block}.clipboard-menu{margin-left:auto;font-size:24px}.clipboard-tabs{border-bottom:1px solid #ded5c4;align-items:center;gap:18px;margin-bottom:20px;padding-bottom:15px;font-size:10px;display:flex}.clipboard-tabs .active{color:#5b4129;background:#e8decb;border-radius:3px;padding:5px 14px}.clipboard-demo-clips{flex-direction:column;gap:12px;display:flex}.clipboard-demo-clip{background:#fffdf8;border:1px solid #e1d9c9;border-radius:6px;padding:16px 19px;position:relative}.clipboard-demo-clip>div{color:#7c7162;justify-content:space-between;margin-bottom:10px;font-size:8px;display:flex}.clip-category{color:#936334}.clipboard-demo-clip>strong{font-size:13px;font-weight:550}.clipboard-demo-clip>p{color:#625849;margin-top:6px;font-size:9px}.clip-icon{color:#9c805a;font-size:13px;position:absolute;bottom:20px;right:16px}.clipboard-save-area{color:#625849;border:1px solid #ddd2c0;border-radius:4px;justify-content:space-between;margin-top:20px;padding:14px;font-size:10px;display:flex}.clipboard-phone{filter:drop-shadow(0 20px 22px #4c43363a);width:27%;max-width:280px;position:absolute;top:35px;right:0}.phone-frame{background:#f8f5ec;border:7px solid #34332f;border-radius:32px;padding-bottom:22px;position:relative;overflow:hidden}.phone-status{color:#38342e;justify-content:space-between;padding:14px 18px 9px;font-size:8px;display:flex}.phone-home{background:#34332f;border-radius:2px;width:30%;height:3px;position:absolute;bottom:7px;left:35%}.clipboard-interface-compact{padding:15px 13px}.clipboard-interface-compact .clipboard-logo{font-size:20px}.clipboard-interface-compact .clipboard-ui-header{gap:7px;padding-bottom:16px}.clipboard-interface-compact .clipboard-ui-header strong{font-size:17px}.clipboard-interface-compact .clipboard-tabs{gap:11px;margin-bottom:14px;font-size:8px}.clipboard-interface-compact .clipboard-tabs .active{padding:4px 8px}.clipboard-interface-compact .clipboard-demo-clip{padding:12px 10px}.clipboard-interface-compact .clipboard-demo-clip>strong{padding-right:5px;font-size:10px;line-height:1.4;display:block}.clipboard-interface-compact .clipboard-demo-clip>p{max-width:130px;font-size:7px}.clipboard-interface-compact .clipboard-demo-clip>div{font-size:6px}.clipboard-interface-compact .clip-icon{display:none}.clipboard-interface-compact .clipboard-save-area{padding:9px;font-size:7px}.desktop-showcase{grid-template-columns:1fr 1fr;align-items:center;gap:10%;padding:0 3%;display:grid}.puck-panel{justify-self:end;max-width:440px;box-shadow:0 24px 38px -20px #2636234d}.puck-panel img{width:100%}.puck-personality p{letter-spacing:-.045em;color:#354631;margin-top:50px;font-size:clamp(23px,3.2vw,52px);line-height:1.16}.puck-eyes{gap:24px;padding-block:20px;display:flex}.puck-eyes span{background:#36452e;border-radius:46px;width:82px;height:56px;display:block;position:relative}.puck-eyes span:after{content:"";background:#d5dccb;border-radius:50%;width:20px;height:20px;position:absolute;top:18px;left:24px}.puck-desktop-note{color:#526249;margin-top:48px;font-size:12px;line-height:1.7;display:block}.case-header{padding-block:42px 62px}.case-back{gap:14px;font-size:12px}.back-arrow{width:18px;transform:rotate(180deg)}.case-title-row{justify-content:space-between;align-items:end;gap:40px;margin-top:55px;display:flex}.case-title-row h1{letter-spacing:-.075em;font-size:clamp(100px,15vw,240px);font-weight:450;line-height:.95}.case-title-row>span{color:var(--secondary);text-align:right;padding-bottom:14px;font-size:12px;line-height:1.8}.case-overview{grid-template-columns:7fr 4fr;gap:10%;margin-top:48px;display:grid}.case-overview>p{letter-spacing:-.03em;max-width:760px;font-size:clamp(22px,2.5vw,38px);line-height:1.25}.case-overview dl{gap:24px;margin:0;display:grid}.case-overview dt{color:var(--secondary);margin-bottom:7px;font-size:11px}.case-overview dd{margin:0;font-size:13px;line-height:1.5}.case-media-caption{color:var(--secondary);margin-top:18px;font-size:11px}.case-body{padding-block:32px 48px}.case-section{grid-template-columns:3fr 8fr;gap:8%;padding-top:90px;display:grid}.case-section-label{color:var(--secondary);padding-top:10px;font-size:12px}.case-section h2{letter-spacing:-.055em;max-width:780px;margin-bottom:30px;font-size:clamp(34px,4.4vw,64px);font-weight:450;line-height:1.05}.case-section p{max-width:680px;color:var(--secondary);margin-top:20px;font-size:18px;line-height:1.7}.room-lifecycle{border-block:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:12px;margin-top:26px;padding-block:26px;font-size:12px;display:flex}.room-lifecycle>span:nth-child(2n){color:var(--secondary)}.architecture-diagram{background:var(--diagram-surface,#e8e5dd);margin:42px 0 0;padding:32px}.architecture-diagram figcaption{color:var(--secondary);margin-bottom:28px;font-size:11px}.architecture-client,.architecture-app{border:1px solid var(--diagram-rule,#aaa99e);background:var(--paper);flex-direction:column;align-items:center;max-width:290px;margin-inline:auto;padding:17px;display:flex}.architecture-app{border-color:var(--ink);background:var(--ink);color:var(--paper)}.architecture-diagram span{font-size:15px}.architecture-diagram small{margin-top:6px;font-size:10px}.architecture-connector{background:var(--diagram-rule,#aaa99e);width:1px;height:24px;margin-inline:auto;display:block}.architecture-branches{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:28px;display:grid;position:relative}.architecture-branches:before{content:"";border-top:1px solid var(--diagram-rule,#aaa99e);position:absolute;top:-15px;left:16.66%;right:16.66%}.architecture-branches>div{text-align:center;border:1px solid var(--diagram-rule,#aaa99e);background:var(--paper);flex-direction:column;align-items:center;padding:18px 8px;display:flex;position:relative}.architecture-branches>div:before{content:"";background:var(--diagram-rule,#aaa99e);width:1px;height:15px;position:absolute;top:-16px}.case-ending{border-top:1px solid var(--rule);margin-top:64px;padding-block:38px 100px}.case-ending>span{color:var(--secondary);font-size:12px}.case-ending>div{flex-direction:column;gap:20px;margin-top:36px;display:flex}.case-live-link{letter-spacing:-.045em;align-items:center;gap:30px;font-size:clamp(32px,4.5vw,70px);display:inline-flex}.case-live-link .arrow{width:30px;height:30px}.case-ending>.text-link{margin-top:26px;font-size:12px}.case-evidence{color:var(--secondary);flex-wrap:wrap;gap:16px;margin-top:45px;font-size:11px;display:flex}.case-evidence a{text-underline-offset:3px;text-decoration:underline}.private-project-notice{border-left:2px solid var(--moss);margin-top:28px;padding:22px;font-size:14px;line-height:1.6}.private-project-notice p{color:var(--secondary);margin-top:8px}.content-placeholder{color:#a24029;font-size:12px;display:block}.about-page>h1{font-size:clamp(58px,7.8vw,132px)}.about-page-body{grid-template-columns:7fr 4fr;gap:10%;margin-top:74px;display:grid}.about-bio p{color:var(--secondary);max-width:640px;margin-top:25px;font-size:18px;line-height:1.65}.about-bio .about-lead{letter-spacing:-.035em;color:var(--ink);margin-top:0;font-size:30px;line-height:1.3}.about-bio h2{margin-top:44px;font-size:15px;font-weight:550}.about-bio .tools-list{margin-top:16px;font-size:16px}.about-bio>.text-link{margin-top:25px;font-size:13px}.about-portrait{align-self:start;margin:0}.about-portrait img{filter:saturate(.6);width:100%}.about-portrait figcaption{color:var(--secondary);margin-top:13px;font-size:10px}.lab-experiment{grid-template-columns:6fr 5fr;align-items:center;gap:8%;margin-top:70px;display:grid}.lab-experiment-visual{background:var(--surface);place-items:center;min-height:400px;display:grid;overflow:clip}.lab-experiment-visual .signature{width:100%;max-width:440px;height:400px}.lab-experiment-visual .signature-static{width:440px;height:440px}.lab-status{color:var(--secondary);font-size:11px}.lab-experiment-detail h2{letter-spacing:-.05em;margin-top:17px;font-size:clamp(32px,4vw,56px);font-weight:450}.lab-experiment-detail p{color:var(--secondary);margin-top:22px;font-size:16px;line-height:1.65}.lab-experiment-detail details{border-top:1px solid var(--rule);margin-top:26px}.lab-experiment-detail summary{cursor:pointer;justify-content:space-between;padding-block:18px;font-size:12px;display:flex}.lab-experiment-detail details .text-link{margin-top:12px;font-size:12px}.lab-index{margin-top:84px}.lab-index-header{border-bottom:1px solid var(--rule);color:var(--secondary);justify-content:space-between;padding-bottom:18px;font-size:12px;display:flex}.lab-index-row{border-bottom:1px solid var(--rule);grid-template-columns:5fr 4fr 2fr 24px;align-items:center;gap:24px;padding-block:28px;display:grid}.lab-index-row h2{letter-spacing:-.035em;font-size:clamp(24px,2.5vw,38px);font-weight:450}.lab-index-row p{color:var(--secondary);max-width:450px;margin-top:10px;font-size:13px;line-height:1.6}.lab-index-row>span{color:var(--secondary);font-size:11px}.lab-index-row .arrow{width:18px}.lab-index-row:hover .arrow{transform:translate(2px,-2px)}.home-notebook{padding-bottom:var(--section-space)}.home-notebook-header{justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:30px;display:flex}.home-notebook-header h2{letter-spacing:-.05em;font-size:clamp(32px,4vw,60px);font-weight:450}.home-notebook-header .text-link{font-size:12px}.home-lab-link{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:24px;margin-top:60px;padding-block:32px;display:flex}.home-lab-link p{letter-spacing:-.03em;font-size:25px}.home-lab-link span{color:var(--secondary);margin-top:10px;font-size:13px;display:block}.home-lab-link>.arrow{width:36px;height:36px}@media (max-width:1000px){.signature-canvas{width:290px;height:290px}.clipboard-interface{padding:20px}.clipboard-interface-compact{padding:14px 9px}.clipboard-interface-compact .clipboard-tabs{gap:6px}.clipboard-showcase{min-height:470px}.clipboard-phone{width:29%}.puck-eyes{gap:16px}.puck-eyes span{width:60px;height:42px}.puck-eyes span:after{width:16px;height:16px;top:13px;left:18px}.puck-personality p{margin-top:20px}.case-title-row h1{font-size:14vw}.case-section{grid-template-columns:2fr 8fr;gap:5%}.about-page-body{gap:6%}.about-bio .about-lead{font-size:26px}.lab-index-row{grid-template-columns:6fr 3fr 2fr 20px;gap:16px}}@media (max-width:700px){.signature-canvas{display:none}.project-row+.project-row{margin-top:72px}.clipboard-showcase{min-height:420px;padding:0}.clipboard-desktop{width:125%;margin-left:-10%;transform:translateY(12px)}.clipboard-desktop .clipboard-interface{padding:16px 22px}.clipboard-desktop .clipboard-demo-clip{padding:15px}.clipboard-phone{width:46%;top:65px;right:-8%}.phone-frame{border-width:5px;border-radius:24px}.clipboard-interface-compact .clipboard-tabs{gap:5px;font-size:6px}.clipboard-interface-compact .clipboard-ui-header strong{font-size:14px}.clipboard-interface-compact .clipboard-ui-header>div>span{font-size:7px}.clipboard-interface-compact .clipboard-logo{display:none}.clipboard-interface-compact .clipboard-demo-clip>strong{font-size:9px}.clipboard-interface-compact .clipboard-demo-clip>p{font-size:6px}.clipboard-desktop .clipboard-demo-clip>strong{max-width:60%;display:block}.clipboard-desktop .clipboard-demo-clip>p{max-width:55%}.desktop-showcase{grid-template-columns:1fr;gap:20px;padding:0}.puck-personality{justify-content:space-between;align-items:center;padding:0 8px;display:flex}.puck-personality p{margin:0;font-size:15px;line-height:1.3}.puck-eyes{gap:10px;padding:0}.puck-eyes span{width:47px;height:32px}.puck-eyes span:after{width:12px;height:12px;top:10px;left:14px}.puck-desktop-note{display:none}.puck-panel{justify-self:center;width:78%;margin-top:14px}.case-header{padding-block:28px 40px}.case-title-row{flex-direction:column;align-items:flex-start;gap:18px;margin-top:30px}.case-title-row h1{font-size:clamp(70px,18vw,115px)}.case-title-row>span{text-align:left;font-size:11px}.case-overview{grid-template-columns:1fr;gap:28px;margin-top:20px}.case-overview>p{font-size:23px}.case-overview dl{grid-template-columns:1fr 1fr;gap:24px}.case-overview dd{font-size:11px}.case-section{grid-template-columns:1fr;gap:24px;padding-top:56px}.case-section-label{padding-top:0;font-size:11px}.case-section h2{margin-bottom:24px;font-size:39px}.case-section p{font-size:16px}.room-lifecycle{gap:10px;font-size:10px}.architecture-diagram{padding:20px 14px}.architecture-branches{gap:7px}.architecture-diagram span{font-size:12px}.architecture-diagram small{font-size:8px;line-height:1.4}.case-ending{margin-top:30px;padding-bottom:65px}.case-live-link{gap:20px;font-size:32px}.case-live-link .arrow{width:24px;height:24px}.about-page>h1{font-size:clamp(42px,10.3vw,72px)}.about-page-body{grid-template-columns:1fr;gap:40px;margin-top:45px}.about-bio .about-lead{font-size:25px}.about-bio p{font-size:16px}.about-portrait{max-width:450px}.lab-experiment{grid-template-columns:1fr;gap:28px;margin-top:45px}.lab-experiment-visual{min-height:320px}.lab-experiment-visual .signature{height:320px;margin:0}.lab-experiment-visual .signature-static{width:340px;height:340px}.lab-index{margin-top:55px}.lab-index-row{grid-template-columns:1fr 22px;gap:15px}.lab-index-row>div{grid-column:1}.lab-index-row>span{font-size:10px}.lab-index-row>span:first-of-type,.lab-index-row>span:nth-of-type(2){grid-column:1}.lab-index-row>.arrow{grid-area:1/2}.home-notebook-header h2{font-size:36px}.home-lab-link{margin-top:40px}.home-lab-link p{font-size:23px}.home-lab-link span{font-size:12px;line-height:1.5}}@media (min-width:1800px){.signature-canvas{width:430px;height:430px}}@media (prefers-reduced-motion:reduce){.project-screen,.clipboard-desktop,.puck-panel{translate:none}}.writing-page>p{max-width:640px}.writing-index{border-top:1px solid var(--rule);margin-top:72px}.writing-row{border-bottom:1px solid var(--rule);grid-template-columns:2fr 9fr 24px;align-items:start;gap:30px;padding-block:36px;display:grid}.writing-row time{color:var(--secondary);padding-top:9px;font-size:11px}.writing-row h2,.writing-row h3{letter-spacing:-.043em;max-width:850px;font-size:clamp(25px,3.3vw,48px);font-weight:450;line-height:1.13}.writing-row p{color:var(--secondary);max-width:650px;margin-top:14px;font-size:14px;line-height:1.6}.writing-row div>span{color:var(--secondary);margin-top:19px;font-size:10px;display:block}.writing-reading-time{white-space:nowrap;margin-left:25px}.writing-row>.arrow{width:21px;margin-top:9px}.writing-row:hover>.arrow{transform:translate(2px,-2px)}.home-notebook .writing-index{margin-top:0}.home-notebook .writing-row{grid-template-columns:2fr 9fr 24px}.article-page{padding-block:42px 100px}.article-header{max-width:1060px;margin-inline:auto}.article-tags{color:var(--secondary);margin-top:45px;font-size:12px}.article-header h1{letter-spacing:-.065em;margin-top:26px;font-size:clamp(46px,6.8vw,106px);font-weight:450;line-height:1.02}.article-header>p{color:var(--secondary);max-width:720px;margin-top:30px;font-size:21px;line-height:1.5}.article-meta{color:var(--secondary);flex-wrap:wrap;gap:24px;margin-top:30px;font-size:11px;display:flex}.article-layout{margin-inline:auto;grid-template-columns:220px minmax(0,760px);align-items:start;gap:7%;max-width:1160px;margin-top:72px;display:grid}.article-outline{top:calc(var(--header-height,80px) + 28px);color:var(--secondary);padding-right:15px;font-size:12px;position:sticky}.article-outline summary{color:var(--ink);margin-bottom:20px;font-size:11px;list-style:none}.article-outline ol{margin:0;padding:0;list-style:none}.article-outline li{margin-top:16px;line-height:1.5}.article-outline .outline-subheading{padding-left:12px}.article-outline a{transition:color .16s}.article-outline a:hover,.article-outline a[aria-current=location]{color:var(--ink)}.article-outline a[aria-current=location]{text-underline-offset:4px;text-decoration:underline}.reading-progress{z-index:45;background:var(--orange);width:100%;height:2px;transform:scaleX(var(--reading-progress,0));transform-origin:0;pointer-events:none;position:fixed;top:0;left:0}.article-content{min-width:0;color:var(--reading-ink,#42443d);font-size:18px;line-height:1.8}.article-content>p{margin-block:0 25px}.article-content h2{letter-spacing:-.04em;color:var(--ink);scroll-margin-top:calc(var(--header-height,80px) + 24px);margin-block:64px 24px;font-size:36px;font-weight:500;line-height:1.18}.article-content h3{letter-spacing:-.03em;color:var(--ink);scroll-margin-top:calc(var(--header-height,80px) + 24px);margin-block:44px 20px;font-size:25px;font-weight:500;line-height:1.25}.article-content h1{margin-block:50px 25px;font-size:40px}.article-content>:first-child{margin-top:0}.article-content a{text-underline-offset:4px;-webkit-text-decoration:underline #b0b1a8;text-decoration:underline #b0b1a8}.article-content a:hover{-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.article-content .heading-anchor{align-items:baseline;gap:12px;text-decoration:none;display:flex}.heading-anchor>span{color:#797d70;opacity:0;font-size:.6em;transition:opacity .16s}.heading-anchor:hover>span,.heading-anchor:focus-visible>span{opacity:1}.article-external-arrow{color:var(--secondary);font-size:.75em}.article-content ul,.article-content ol{margin-block:25px;padding-left:24px}.article-content li{margin-block:10px;padding-left:6px}.article-content blockquote{border-left:2px solid var(--moss);letter-spacing:-.02em;margin:36px 0;padding:4px 0 4px 24px;font-size:23px;line-height:1.5}.article-content hr{border:0;border-top:1px solid var(--rule);margin-block:55px}.article-content :not(pre)>code{background:var(--surface);color:var(--ink);border-radius:2px;padding:2px 5px;font-size:.85em}.article-content figure[data-rehype-pretty-code-figure]{margin:34px 0}.article-content figcaption[data-rehype-pretty-code-title]{color:#dde1d3;background:#30332b;border-bottom:1px solid #45483d;padding:13px 18px;font-size:11px}.code-artifact{color:#e3e6dc;background:#242720;border-radius:3px;margin-block:28px;overflow:hidden}figure[data-rehype-pretty-code-figure]>.code-artifact{margin:0}.code-toolbar{color:#c2c8b8;border-bottom:1px solid #42463a;justify-content:space-between;align-items:center;min-height:46px;padding-inline:19px;font-size:10px;display:flex}.code-toolbar button{min-width:44px;min-height:44px;padding:0 8px}.code-artifact pre{margin:0;padding-block:22px;font-family:ui-monospace,monospace;font-size:13px;line-height:1.8;overflow-x:auto}.code-artifact pre>code{counter-reset:line;min-width:max-content;display:grid}.code-artifact [data-line]{border-left:2px solid #0000;padding-inline:20px}.code-artifact [data-highlighted-line]{background:#20251d;border-left-color:#a5b68c}.article-table-scroll{margin-block:32px;overflow-x:auto}.article-content table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.5}.article-content th{text-align:left;color:var(--ink);border-bottom:1px solid var(--rule);font-weight:550}.article-content td{border-bottom:1px solid var(--rule)}.article-content td,.article-content th{vertical-align:top;padding:14px 18px 14px 0}.article-content img{margin-block:32px 12px}.article-content .article-figure{margin:40px 0}.article-content .article-figure figcaption{color:var(--secondary);font-size:12px;line-height:1.5}.article-callout{background:var(--surface);border-left:2px solid var(--moss);margin-block:32px;padding:22px 25px;font-size:16px}.article-callout>strong{color:var(--ink);margin-bottom:10px;font-size:12px;display:block}.article-details{border-block:1px solid var(--rule);margin-block:30px;padding:20px}.article-details summary{cursor:pointer;min-height:44px;font-size:15px}.article-ending{border-top:1px solid var(--rule);max-width:760px;margin:80px auto 0;padding-top:28px}.article-ending>span{color:var(--secondary);font-size:12px}.article-related{letter-spacing:-.04em;justify-content:space-between;align-items:center;gap:30px;margin-top:24px;font-size:30px;line-height:1.2;display:flex}.article-ending .text-link{margin-top:25px;font-size:12px}.next-project-link{margin-top:50px}@media (max-width:1000px){.article-layout{grid-template-columns:160px minmax(0,760px);gap:5%}.article-outline{font-size:11px}}@media (max-width:700px){.writing-index{margin-top:45px}.writing-row,.home-notebook .writing-row{grid-template-columns:1fr 24px;gap:15px;padding-block:27px}.writing-row time{grid-column:1/-1;padding:0;font-size:10px}.writing-row>div{grid-column:1}.writing-row>.arrow{grid-area:2/2}.writing-row h2,.writing-row h3{font-size:28px}.writing-row p{margin-top:12px;font-size:13px}.writing-row div>span{font-size:9px;line-height:1.8}.writing-reading-time{margin:5px 0 0;display:block}.article-page{padding-block:28px 65px}.article-tags{margin-top:30px;font-size:10px}.article-header h1{margin-top:22px;font-size:clamp(43px,10.6vw,66px)}.article-header>p{margin-top:24px;font-size:18px}.article-meta{gap:16px;font-size:10px}.article-layout{grid-template-columns:1fr;gap:28px;margin-top:35px}.article-outline{border-block:1px solid var(--rule);padding:17px 0;font-size:12px;position:static}.article-outline summary{align-items:center;min-height:30px;margin:0;display:flex}.article-outline summary:after{content:"Outline";color:var(--secondary);margin-left:auto;font-size:10px}.article-outline ol{flex-wrap:wrap;column-gap:18px;display:flex}.article-outline li{margin-top:10px;font-size:10px}.article-content{font-size:17px;line-height:1.75}.article-content h2{margin-top:45px;font-size:30px}.article-content h3{font-size:23px}.code-artifact pre{font-size:11px}.article-content table{font-size:12px}.article-content td,.article-content th{padding:12px 14px 12px 0}.article-related{font-size:25px}}:root{--paper:#f2efe8;--ink:#20211e;--secondary:#686a61;--rule:#d4d2c9;--orange:#f0522b;--moss:#67765a;--dark:#242621;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--space-24:96px;--section-space:clamp(80px, 10vw, 160px);--gutter:3.5vw;--container-max:1760px;--radius-small:3px;--radius-frame:8px;--z-navigation:40;--z-cursor:50;--duration-control:.18s;--duration-hover:.3s;--duration-editorial:.65s;--ease-out:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height,80px) + 20px)}body{color:var(--ink);background:var(--paper);font-family:var(--font-geist-sans), Arial, sans-serif;-webkit-font-smoothing:antialiased;margin:0}body:has(dialog[open]){overflow:hidden}::selection{background:var(--orange);color:var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{background:0 0;border:0}button:disabled{cursor:default}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--orange);outline-offset:6px}h1,h2,h3,p{margin:0}img{max-width:100%;height:auto;display:block}.container{width:calc(100% - var(--gutter) * 2);max-width:var(--container-max);margin-inline:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--ink);color:var(--paper);z-index:100;padding:14px 20px;position:fixed;top:12px;left:16px;transform:translateY(-160%)}.skip-link:focus{transform:none}.arrow{stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--duration-control) var(--ease-out);flex:none}.text-link{align-items:center;gap:16px;min-height:44px;display:inline-flex;position:relative}.text-link:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform var(--duration-hover) var(--ease-out);background:currentColor;position:absolute;bottom:7px;left:0;transform:scaleX(0)}.text-link:hover:after{transform-origin:0;transform:scaleX(1)}.text-link:hover .arrow{transform:translate(2px,-2px)}.hero{flex-direction:column;min-height:calc(100svh - 90px);padding-top:31px;padding-bottom:30px;display:flex}.hero-kicker{color:var(--secondary);justify-content:space-between;gap:24px;font-size:12px;display:flex}.hero-coordinates{color:var(--secondary);margin-left:24px;font-size:11px}.hero-nameplate{grid-template-columns:10fr 2fr;align-items:end;gap:24px;margin-top:clamp(32px,3.3vw,64px);display:grid}.hero-title{letter-spacing:-.078em;font-size:clamp(96px,13.3vw,242px);font-weight:540;line-height:.84}.hero-line{margin-bottom:-.025em;padding:.025em .06em .1em 0;display:block;overflow:clip}.hero-line>span{animation:name-reveal .65s var(--ease-out) both;display:block}.hero-line:nth-child(2)>span{animation-delay:75ms}.name-period{color:var(--orange)}.hero-side-note{flex-direction:column;justify-content:space-between;align-self:stretch;padding-top:7px;padding-bottom:20px;font-size:13px;line-height:1.6;display:flex}.vertical-note{writing-mode:vertical-rl;color:var(--secondary);align-self:end;font-size:10px}.hero-bottom{flex:1;grid-template-columns:5fr 4fr 3fr;align-items:end;gap:24px;min-height:235px;margin-top:24px;display:grid}.hero-intro{padding-bottom:6px}.hero-intro>p{letter-spacing:-.045em;font-size:clamp(26px,2.55vw,43px);line-height:1.15}.hero-intro-detail{color:var(--secondary);margin-top:17px;font-size:14px;line-height:1.6}.hero-work-link{gap:48px;margin-top:17px;font-size:13px}.hero-work-link .arrow{width:20px}.signature{justify-content:center;align-items:center;width:100%;max-width:365px;height:245px;margin-inline:auto;display:flex;position:relative}.signature-static{object-fit:contain;width:365px;max-width:none;height:365px;position:absolute}.hero-availability{flex-direction:column;justify-self:end;align-items:flex-start;gap:11px;padding-bottom:8px;font-size:12px;display:flex}.availability{align-items:center;gap:8px;font-size:12px;display:inline-flex}.status-dot{background:var(--moss);border-radius:50%;flex:none;width:6px;height:6px}.hero-availability>span:not(.availability){color:var(--secondary);padding-left:14px}.hero-scroll{color:var(--secondary);align-items:center;gap:25px;min-height:44px;margin-top:52px;font-size:11px;display:inline-flex}.down-arrow{width:18px;transform:rotate(90deg)}.hero-scroll:hover .down-arrow{transform:rotate(90deg)translate(3px)}@keyframes name-reveal{0%{opacity:.15;transform:translateY(28px)}to{opacity:1;transform:none}}.selected-work{padding-top:75px;padding-bottom:8px;scroll-margin-top:10px}.section-heading{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:24px;padding-top:20px;display:flex}.section-heading h2{font-size:14px;font-weight:450}.section-heading>span{color:var(--secondary);font-size:12px}.project-row{margin-top:51px}.project-entry{display:block}.project-heading{grid-template-columns:6fr 5fr 1fr;align-items:center;gap:24px;margin-bottom:27px;display:grid}.project-title-group{align-items:baseline;gap:24px;display:flex}.project-number{color:var(--secondary);align-self:flex-start;margin-top:13px;font-size:12px}.project-title-group h3{letter-spacing:-.065em;font-size:clamp(70px,7.9vw,140px);font-weight:480;line-height:1}.project-summary{padding-top:14px}.project-summary p{letter-spacing:-.025em;max-width:330px;font-size:clamp(18px,1.65vw,26px);line-height:1.3}.project-summary>span{color:var(--secondary);margin-top:12px;font-size:11px;display:block}.project-open{border:1px solid var(--rule);border-radius:50%;justify-self:end;place-items:center;width:54px;height:54px;transition:background .18s,color .18s,border-color .18s;display:grid}.project-open .arrow{width:22px}.project-entry:hover .project-open{background:var(--ink);color:var(--paper);border-color:var(--ink)}.project-entry:hover .project-open .arrow{transform:translate(2px,-2px)}.project-canvas{padding:clamp(28px,4.5vw,80px) clamp(24px,6.3vw,112px) 42px;position:relative;overflow:hidden}.canvas-caption{color:#3f3956;letter-spacing:-.045em;justify-content:space-between;align-items:center;margin-bottom:39px;font-size:clamp(24px,3vw,46px);line-height:1.1;display:flex}.pairme-symbol{gap:3px;width:82px;height:43px;display:flex}.pairme-symbol i{background:#60537b;flex:1;display:block}.pairme-symbol i:first-child{border-radius:50% 0 0 50%}.pairme-symbol i:last-child{border-radius:0 0 50%}.project-screen{transform-origin:50%;transition:transform .55s var(--ease-out);border-radius:var(--radius-frame);box-shadow:0 20px 42px -15px #2b234140}.project-entry:hover .project-screen{transform:scale(1.018)}.browser-frame{border-radius:var(--radius-frame);background:#28243a;border:1px solid #ffffff40;overflow:hidden}.browser-bar{color:#726f80;background:#f6f5fa;justify-content:space-between;align-items:center;height:34px;padding-inline:15px;font-size:9px;display:flex}.browser-dots{gap:5px;width:38px;display:flex}.browser-dots i{border:1px solid #aaa6b7;border-radius:50%;width:5px;height:5px}.browser-plus{text-align:right;width:38px;font-size:15px}.browser-address{font-size:9px}.project-image{width:100%;height:auto}.canvas-bottom-note{text-align:right;color:#60566e;margin-top:26px;font-size:10px;display:block}.project-meta{color:var(--secondary);grid-template-columns:6fr 5fr 1fr;gap:24px;margin-top:18px;font-size:11px;display:grid}.project-meta>:last-child{text-align:right}.about-intro{padding-block:var(--section-space);grid-template-columns:3fr 7fr 2fr;gap:24px;display:grid}.about-intro-label{color:var(--secondary);padding-top:10px;font-size:12px}.about-intro h2{letter-spacing:-.052em;font-size:clamp(36px,4.4vw,75px);font-weight:450;line-height:1.06}.about-intro p{max-width:520px;color:var(--secondary);margin-top:29px;font-size:17px;line-height:1.65}.about-intro .text-link{gap:40px;margin-top:23px;font-size:13px}.about-intro-stamp{color:var(--secondary);place-self:end;font-size:12px;line-height:1.5}.inner-page{padding-block:66px var(--section-space);min-height:65svh}.page-eyebrow{color:var(--secondary);margin-bottom:40px;font-size:13px;display:block}.inner-page>h1,.page-title{letter-spacing:-.065em;font-size:clamp(65px,10vw,160px);font-weight:450;line-height:.98}.inner-page>p{color:var(--secondary);max-width:550px;margin-top:30px;font-size:20px;line-height:1.55}.inner-page>.text-link{margin-top:28px}@view-transition{navigation:auto}::view-transition-old(root){animation:.16s ease-out both page-out}::view-transition-new(root){animation:page-in .26s var(--ease-out) both}@keyframes page-out{to{opacity:0}}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}}@media (min-width:1800px){.hero{min-height:920px}.hero-title{font-size:242px}.hero-bottom{min-height:320px}.signature{height:320px}.signature-static{width:430px;height:430px}}@media (max-width:1000px){.hero-title{font-size:13.6vw}.hero-side-note{font-size:11px}.hero-coordinates{display:none}.hero-bottom{grid-template-columns:5fr 4fr 3fr;gap:12px}.hero-intro>p{font-size:28px}.hero-intro-detail{font-size:12px}.signature-static{width:290px;height:290px}.signature{height:235px}.hero-availability .availability,.hero-availability>span:not(.availability){font-size:10px}.project-heading{grid-template-columns:6fr 5fr 1fr;gap:16px}.project-title-group{gap:15px}.project-summary>span{font-size:10px}.about-intro{grid-template-columns:2fr 7fr}.about-intro-stamp{display:none}}@media (max-width:700px){:root{--gutter:20px;--section-space:88px}html{scroll-padding-top:calc(var(--header-height,76px) + 20px)}.hero{min-height:calc(100svh - 72px);padding-top:24px;padding-bottom:30px}.hero-kicker{gap:14px;font-size:10px}.hero-nameplate{grid-template-columns:1fr;margin-top:43px}.hero-title{letter-spacing:-.078em;font-size:clamp(48px,16.5vw,116px)}.hero-side-note{display:none}.hero-bottom{grid-template-columns:1fr 1fr;align-items:center;gap:12px;min-height:0;margin-top:36px}.hero-intro{grid-column:1/-1;padding-bottom:0}.hero-intro>p{font-size:clamp(28px,6vw,39px)}.hero-intro-detail{margin-top:16px;font-size:13px}.hero-work-link{gap:28px;margin-top:15px}.signature{width:100%;height:158px;margin-left:-15px}.signature-static{width:215px;height:215px}.hero-availability{place-self:center end;gap:9px;padding:0}.hero-availability .availability{max-width:160px;font-size:10px;line-height:1.5}.hero-scroll{gap:10px;margin-top:15px;font-size:10px}.selected-work{padding-top:39px}.section-heading{gap:14px;padding-top:17px}.section-heading h2{font-size:12px}.section-heading>span{font-size:10px}.project-row{margin-top:36px}.project-heading{grid-template-columns:minmax(0,1fr) 44px;gap:20px 12px;margin-bottom:26px}.project-title-group h3{font-size:clamp(50px,18vw,73px)}.project-title-group{gap:15px}.project-number{margin-top:8px;font-size:10px}.project-summary{grid-area:2/1/auto/-1;padding-top:0;padding-left:28px}.project-summary p{max-width:260px;font-size:20px}.project-summary>span{margin-top:8px;font-size:10px}.project-open{width:44px;height:44px}.project-canvas{margin-inline:-4px;padding:27px 18px 22px}.canvas-caption{margin-bottom:27px;font-size:28px}.pairme-symbol{width:50px;height:27px}.project-screen{width:136%;margin-left:0}.browser-bar{height:25px;padding-inline:10px}.browser-address{font-size:8px}.canvas-bottom-note{margin-top:20px;font-size:9px}.project-meta{grid-template-columns:1fr auto;gap:8px 16px;margin-top:17px;font-size:10px;line-height:1.6}.project-meta>:nth-child(2){grid-area:2/1}.project-meta>:last-child{grid-area:1/2}.about-intro{grid-template-columns:1fr;gap:24px}.about-intro-label{padding-top:0}.about-intro h2{font-size:clamp(36px,8.3vw,56px)}.about-intro p{margin-top:25px;font-size:16px;line-height:1.6}.about-intro .text-link{margin-top:18px}.inner-page{padding-top:42px}.page-eyebrow{margin-bottom:28px;font-size:11px}.inner-page>h1,.page-title{font-size:clamp(56px,15vw,96px)}.inner-page>p{font-size:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}.hero-line>span{animation:none}.project-entry:hover .project-screen{transform:none}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
.hero-nameplate{grid-template-columns:minmax(0,3fr) minmax(0,1fr);align-items:start}.hero-portrait{justify-self:end;width:300px;max-width:100%;margin:0;padding-top:6px}.hero-portrait img{aspect-ratio:1/1.08;object-fit:cover;object-position:50% 24%;border-radius:3px;width:100%}.portrait-flip{perspective:1100px;cursor:pointer;background:0 0;width:100%;padding:0;display:block}.portrait-mount{transform-style:preserve-3d;perspective:1100px;display:block}.hero-portrait[data-enhanced=true] .portrait-card{transition:none}.portrait-card{aspect-ratio:1/1.08;transform-style:preserve-3d;transition:transform .7s var(--ease-out);display:block;position:relative}.portrait-card[data-flipped=true]{transform:rotateY(180deg)}.portrait-face{border:10px solid var(--paper);outline:1px solid var(--ink);backface-visibility:hidden;border-radius:2px;display:block;position:absolute;inset:0;overflow:hidden}.portrait-back{transform:rotateY(180deg)}.hero-portrait .portrait-face img{aspect-ratio:auto;border-radius:0;height:100%}.hero-portrait figcaption{color:var(--secondary);flex-direction:column;gap:5px;min-height:30px;margin-top:12px;font-size:10px;line-height:1.5;display:flex}.portrait-side{color:var(--ink);font-size:11px}.hero-copy-mask{margin-bottom:-.05em;padding-bottom:.05em;display:block;overflow:clip}.hero-copy-mask>span{display:block}@media (min-width:701px){.hero-bottom{min-height:205px;margin-top:24px}.hero .signature{height:205px}.hero .signature-static,.hero .signature-canvas{width:320px;height:320px;top:-46px}}.project-canvas-eldor .canvas-caption,.project-canvas-eldor .canvas-bottom-note{color:#303c51}.project-canvas-roach-today .canvas-caption,.project-canvas-roach-today .canvas-bottom-note{color:#4b3028}.project-canvas-energycalc .canvas-caption,.project-canvas-energycalc .canvas-bottom-note{color:#4d441f}.mobile-showcase{grid-template-columns:1fr 1.55fr;align-items:center;gap:7%;padding:8px 0 28px;display:grid}.mobile-showcase-copy>span{color:#43536d;font-size:11px}.mobile-showcase-copy p{letter-spacing:-.05em;color:#303c51;margin:38px 0;font-size:clamp(30px,3.2vw,58px);line-height:1.18}.mobile-showcase-screens{align-items:flex-start;gap:24px;padding-right:15px;display:flex}.mobile-screen-frame{width:48%;translate:0 var(--media-y,0px);background:#141821;border:7px solid #141821;border-radius:20px;overflow:hidden;box-shadow:0 25px 45px -22px #29344866}.mobile-screen-frame:nth-child(2){margin-top:70px}.mobile-screen-frame img{width:100%;height:auto;display:block}.editorial-project-screen{width:96%;margin-inline:auto}.project-canvas-roach-today .browser-bar{color:#5e5146;background:#f3ede3}.project-canvas-energycalc .browser-bar{color:#625634;background:#f6edce}.workflow-showcase{background:#20211e26;border:1px solid #20211e26;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:20px 0 35px;padding:0;list-style:none;display:grid}.workflow-showcase li{background:var(--paper);flex-direction:column;gap:30px;padding:28px;display:flex}.workflow-showcase li>span{color:var(--secondary);font-size:12px}.workflow-showcase li strong{letter-spacing:-.04em;font-size:25px;font-weight:450}.workflow-showcase li>span:last-child{color:var(--ink);align-self:end;font-size:24px}.work-archive{margin-top:var(--section-space);margin-bottom:20px}.work-archive-heading{justify-content:space-between;align-items:baseline;gap:30px;margin-bottom:30px;display:flex}.work-archive-heading h2{letter-spacing:-.05em;font-size:clamp(30px,3.5vw,52px);font-weight:450}.work-index{border-top:1px solid var(--rule)}.work-index-row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,4fr) minmax(0,5fr) minmax(0,2fr) 24px;align-items:center;gap:25px;padding-block:28px;display:grid}.work-index-row h2,.work-index-row h3{letter-spacing:-.045em;font-size:clamp(27px,2.5vw,40px);font-weight:450}.work-index-row p{color:var(--secondary);max-width:440px;font-size:15px;line-height:1.5}.work-index-row>span{color:var(--secondary);font-size:11px;line-height:1.6}.work-index-row .arrow{transition:translate .2s var(--ease-out)}.work-index-row:hover .arrow{translate:2px -2px}.demo-preview{margin-block:var(--section-space) 0;border-top:1px solid var(--rule);grid-template-columns:1fr 2fr;gap:6%;padding-block:32px;display:grid}.demo-preview>span{color:var(--secondary);padding-top:8px;font-size:12px}.demo-preview h2{letter-spacing:-.05em;max-width:900px;font-size:clamp(38px,4.5vw,70px);font-weight:450;line-height:1.08}.demo-preview p{max-width:560px;color:var(--secondary);margin:25px 0;font-size:17px;line-height:1.7}.demo-preview .text-link{font-size:13px}.demo-process{letter-spacing:-.025em;flex-wrap:wrap;gap:20px;margin:70px 0;font-size:18px;display:flex}.demo-process span:not(:last-child):after{content:"→";color:var(--secondary);margin-left:20px}.demo-row{border-top:1px solid var(--rule);grid-template-columns:1fr 1.1fr 160px;gap:7%;padding:42px 0;display:grid}.demo-row h2{letter-spacing:-.045em;font-size:clamp(34px,3.5vw,53px);font-weight:450;line-height:1.1}.demo-row p{font-size:17px;line-height:1.7}.demo-row>div>span{color:var(--secondary);margin-top:18px;font-size:11px;line-height:1.7;display:block}.demo-row .text-link{align-self:start;font-size:13px}.demo-page-note{color:var(--secondary);max-width:700px;margin-top:40px;font-size:13px;line-height:1.7}.lab-experiment-actions{justify-content:end;gap:18px;display:flex}.lab-experiment-actions a{align-items:center;gap:5px;min-height:44px;font-size:12px;display:inline-flex}.lab-experiment-actions .arrow{width:13px}.lab-index-row{grid-template-columns:minmax(0,6fr) minmax(0,2fr) minmax(0,2fr) 125px}@media (max-width:1100px){.hero-portrait{width:230px}.mobile-showcase-screens{gap:14px}.lab-index-row{grid-template-columns:minmax(0,4fr) minmax(0,2fr) minmax(0,2fr) 115px;gap:15px}}@media (max-width:700px){.hero{grid-template-rows:auto auto auto 1fr;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start;row-gap:22px;display:grid;position:relative}.hero-kicker{grid-column:1/-1}.hero-nameplate,.hero-bottom{display:contents}.hero-nameplate>div{grid-area:2/1/auto/-1;margin-top:17px}.hero-intro{grid-area:3/1/auto/-1;margin-top:2px}.hero-portrait{grid-area:4/1;place-self:center start;width:140px;max-width:100%;padding:0}.hero-portrait img{aspect-ratio:1/1.1}.hero-portrait figcaption{margin-top:7px;font-size:9px}.hero-availability{grid-area:4/2}.hero .signature{display:none}.mobile-showcase{padding:0 0 10px;display:block}.mobile-showcase-copy{display:none}.mobile-showcase-screens{gap:12px;width:113%;margin-left:-6%;padding:0}.mobile-screen-frame{border-width:5px;border-radius:15px;width:49%}.mobile-screen-frame:nth-child(2){margin-top:45px}.editorial-project-screen{width:140%;margin-left:0}.workflow-showcase{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-showcase li{gap:20px;padding:17px}.workflow-showcase li strong{font-size:21px}.work-archive-heading{flex-direction:column;gap:10px;margin-bottom:15px}.work-index-row{grid-template-columns:minmax(0,1fr) 24px;gap:12px;padding-block:26px}.work-index-row h2,.work-index-row h3{font-size:31px}.work-index-row p,.work-index-row>span{grid-column:1}.work-index-row p{font-size:14px}.work-index-row .arrow{grid-area:1/2}.demo-preview{grid-template-columns:1fr;gap:24px}.demo-preview p{font-size:15px}.demo-process{gap:14px;margin:35px 0;font-size:15px}.demo-process span:not(:last-child):after{margin-left:14px}.demo-row{grid-template-columns:1fr;gap:22px;padding:32px 0}.demo-row p{font-size:15px}.lab-index-row{grid-template-columns:minmax(0,1fr);gap:10px}.lab-index-row>div,.lab-index-row>span{grid-column:1}.lab-experiment-actions{justify-content:start}}@media (prefers-reduced-motion:reduce){.work-index-row .arrow,.portrait-card{transition:none}.portrait-card[data-flipped=true],.portrait-back{transform:none}.portrait-face[aria-hidden=true]{visibility:hidden}}.case-title-row h1{overflow-wrap:anywhere;min-width:0}.case-title-row{align-items:start}.case-title-row>span{flex:0 0 210px}@media (max-width:700px){.case-title-row>span{flex:initial}}
:root{--paper:#f7f7f5;--ink:#252724;--secondary:#5c6059;--rule:#dedfd9;--surface:#eeefea;--container-max:880px;--gutter:clamp(20px, 4vw, 48px);--section-space:72px}body{font-size:16px}.workbench-page{isolation:isolate;position:relative}.workbench-grid{--dot-ink:var(--grid-dot,#25272426);z-index:-1;pointer-events:none;background-image:radial-gradient(var(--dot-ink) 1px, transparent 1px);background-size:20px 20px;position:absolute;inset:0;overflow:hidden}.magnetic-dots{pointer-events:none;visibility:hidden;width:100%;position:absolute;top:0;left:0}.magnetic-dots[data-active=true]{visibility:visible}:is(.workbench-grid:has(>.magnetic-dots[data-active=true]),.contact-footer:has(>.magnetic-dots[data-active=true])){background-image:none}.workbench-ruler,.workbench-ruler-top{color:var(--grid-ruler,#25272440);position:absolute}.workbench-grid path{fill:none;stroke:currentColor;stroke-width:.7px}.workbench-grid text{fill:currentColor;font-variant-numeric:tabular-nums;font-size:8px}.workbench-ruler{height:100%;top:0}.workbench-ruler-left{left:max(6px, calc((100% - var(--container-max)) / 2 - 48px))}.workbench-ruler-right{right:max(6px, calc((100% - var(--container-max)) / 2 - 32px))}.workbench-ruler-top{width:min(var(--container-max), calc(100% - var(--gutter) * 2));top:0;left:50%;transform:translate(-50%)}@media (max-width:1000px){.workbench-ruler-left{width:8px;left:5px}.workbench-ruler-right{width:16px;right:5px}}.text-link:after{display:none}.workbench-hero{padding-block:20px 32px;display:block}.profile-cover{aspect-ratio:3;background:var(--surface);border-radius:6px;width:100%;max-height:250px;position:relative;overflow:hidden}.profile-cover img{object-fit:cover;object-position:center}.workbench-hero .workbench-intro{padding-inline:16px}.workbench-hero .hero-title{letter-spacing:-.055em;width:auto;font-size:clamp(36px,4.5vw,48px);font-weight:550;line-height:1.1}.workbench-role{margin-top:10px;font-size:16px;line-height:1.5}.workbench-description{text-wrap:pretty;max-width:49ch;margin-top:12px;font-size:18px;line-height:1.65}.workbench-description a{text-decoration:underline;-webkit-text-decoration-color:var(--link-rule,#b0b3aa);text-decoration-color:var(--link-rule,#b0b3aa);text-underline-offset:4px;transition:text-decoration-color .18s}.workbench-description a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.workbench-actions{flex-wrap:wrap;align-items:center;gap:24px;margin-top:18px;display:flex}.workbench-primary{background:var(--ink);min-height:48px;color:var(--paper);border-radius:4px;justify-content:space-between;align-items:center;gap:28px;padding:12px 18px;font-size:13px;transition:transform .18s,background-color .18s;display:inline-flex}.workbench-primary .arrow{width:18px;height:18px}.workbench-primary:hover{background:var(--button-hover,#42463f);transform:translateY(-2px)}.workbench-primary:active{transform:translateY(1px)}.workbench-text-link{align-items:center;gap:12px;min-height:44px;font-size:13px;display:inline-flex}.workbench-text-link .arrow{width:17px;height:17px}.workbench-text-link:hover{text-underline-offset:5px;text-decoration:underline}.workbench-text-link:hover .arrow{transform:translate(2px,-2px)}.workbench-hero .hero-portrait{justify-self:start;width:128px;margin:-64px 0 16px 16px;padding:0;position:relative}.workbench-hero .portrait-card{aspect-ratio:1}.workbench-hero .portrait-face{border:5px solid var(--paper);border-radius:50%;outline:0}.workbench-hero .portrait-face img{object-position:50% 32%}.workbench-hero .hero-portrait figcaption{display:none}.workbench-now{grid-column:1/-1;justify-content:space-between;align-items:center;gap:20px;margin-top:20px;padding:0 16px;font-size:13px;display:flex}.workbench-now>a{flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;display:flex}.workbench-now .arrow{width:14px;height:14px}.workbench-now>a:hover{text-underline-offset:4px;text-decoration:underline}.workbench-section-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;display:flex}.workbench-section-heading h2,.workbench-archive h2,.workbench-about h2{letter-spacing:-.04em;font-size:28px;font-weight:500;line-height:1.2}.workbench-client-demos{scroll-margin-top:calc(var(--header-height,80px) + 20px);margin-top:64px}.client-demo-list{display:grid}.client-demo-link{grid-template-columns:200px minmax(0,1fr) 24px;align-items:center;gap:28px;padding:18px 0;display:grid}.client-demo-screen{background:var(--surface);aspect-ratio:8/5;border-radius:4px;overflow:hidden}.client-demo-screen img{object-fit:cover;object-position:top;width:100%;height:100%;transition:transform .25s}.client-demo-copy h3{letter-spacing:-.45px;font-size:18px;font-weight:550;line-height:1.35}.client-demo-copy p,.client-demo-note{color:var(--secondary);margin-top:8px;font-size:13px;line-height:1.6}.client-demo-open{align-items:center;gap:10px;margin-top:12px;font-size:13px;display:inline-flex}.client-demo-open .arrow{width:14px;height:14px}.client-demo-link>.arrow{width:20px;height:20px}.client-demo-link:hover .client-demo-screen img{transform:scale(1.035)}.client-demo-link:hover h3{text-underline-offset:4px;text-decoration:underline}.client-demo-note{margin-top:16px}.workbench-section-heading>div>p{color:var(--secondary);margin-top:12px;font-size:16px;line-height:1.5}.project-desk{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.desk-index{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.desk-tab{text-align:left;border-radius:4px;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:12px;min-height:80px;padding:12px;transition:background-color .18s,transform .18s;display:grid}.desk-tab:hover{background:var(--surface);transform:translate(3px)}.desk-tab[aria-selected=true]{background:var(--tab-selected,#e6e8e1)}.desk-tab>span{flex-direction:column;gap:7px;display:flex}.desk-tab strong{letter-spacing:-.5px;font-size:18px;font-weight:550}.desk-tab>span>span{color:var(--secondary);font-size:13px;line-height:1.4}.desk-tab>.arrow{display:none}.desk-tab[aria-selected=true]>.arrow,.desk-tab:hover>.arrow{opacity:1}.desk-thumbnail{object-fit:cover;object-position:top;border-radius:3px;width:56px;height:44px}.desk-stage{min-width:0}.desk-panel[hidden]{display:none}.desk-preview{background:var(--preview-pair,#e7e5ed);border-radius:8px;grid-template-rows:minmax(0,1fr);place-items:center;height:360px;padding:24px;display:grid;position:relative;overflow:hidden}.desk-browser-image{object-fit:contain;width:100%;height:100%;min-height:0;max-height:100%;transition:transform .5s var(--ease-out);border-radius:4px}.desk-preview:hover .desk-browser-image{transform:scale(1.035)}.desk-panel[data-project=roach-today] .desk-preview{background:var(--preview-news,#e9e5dd);padding:22px}.desk-panel[data-project=eldor] .desk-preview{background:var(--preview-reader,#dce3e6)}.desk-reader-screens{justify-content:center;gap:20px;width:100%;height:280px;display:flex}.desk-reader-screens img{object-fit:contain;width:auto;min-width:0;height:100%;transition:transform .4s var(--ease-out);border-radius:10px}.desk-reader-screens img:nth-child(2){transform:translateY(25px)}.desk-preview:hover .desk-reader-screens img:first-child{transform:translateY(-6px)}.desk-preview:hover .desk-reader-screens img:nth-child(2){transform:translateY(19px)}.desk-preview-action{background:var(--paper);width:36px;height:36px;color:var(--ink);opacity:0;border-radius:50%;place-items:center;transition:opacity .18s,transform .18s;display:grid;position:absolute;bottom:16px;right:16px;transform:translateY(4px)}.desk-preview:hover .desk-preview-action,.desk-preview:focus-visible .desk-preview-action{opacity:1;transform:none}.desk-preview-action .arrow{width:16px;height:16px}.desk-story{padding-top:18px}.desk-story-heading{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.desk-story h3{letter-spacing:-.65px;font-size:18px;font-weight:500;line-height:1.3}.desk-story-heading>span{color:var(--secondary);white-space:nowrap;font-size:13px}.desk-story>p{max-width:65ch;margin-top:13px;font-size:16px;line-height:1.65}.desk-story-bottom{justify-content:space-between;align-items:center;gap:16px;margin-top:15px;display:flex}.desk-story-bottom>span{color:var(--secondary);font-size:13px}.workbench-archive{grid-template-columns:minmax(0,1fr);gap:0;margin-top:64px;display:grid}.workbench-archive .work-index{border:0;margin:0}.workbench-archive .work-index-row{border:0;border-radius:4px;grid-template-columns:minmax(0,1fr) 110px 18px;align-items:center;gap:4px 18px;min-height:64px;padding:12px;transition:background-color .18s;display:grid}.workbench-archive .work-index-row:hover{background:var(--surface)}.workbench-archive .work-index-row h3{letter-spacing:-.4px;grid-column:1;font-size:18px;font-weight:500;line-height:1.3}.workbench-archive .work-index-row p{color:var(--secondary);grid-area:2/1;font-size:13px;line-height:1.45}.workbench-archive .work-index-row>span{color:var(--secondary);grid-area:1/2/3;font-size:13px;line-height:1.5}.workbench-archive .work-index-row>.arrow{grid-area:1/3/3;width:16px;height:16px}.workbench-about{grid-template-columns:260px minmax(0,1fr);align-items:center;gap:40px;margin-top:72px;display:grid}.workbench-candid{margin:0;transform:rotate(-2deg)}.workbench-candid img{border-radius:6px;width:100%;height:auto}.workbench-candid figcaption{color:var(--secondary);margin-top:14px;font-size:13px;line-height:1.5}.workbench-about-copy>p{max-width:52ch;margin-top:20px;font-size:16px;line-height:1.7}.workbench-about-copy>a{margin-top:20px}.workbench-interests{grid-template-columns:1fr;justify-items:start;gap:2px;margin-top:30px;display:grid}.workbench-interests>span{color:var(--secondary);margin-bottom:8px;font-size:13px}.workbench-interests a{justify-content:space-between;align-items:center;gap:28px;min-height:40px;font-size:16px;display:flex}.workbench-interests .arrow{width:14px;height:14px}.workbench-interests a:hover{text-underline-offset:4px;text-decoration:underline}.workbench-notebook{margin-top:72px}.workbench-notes{flex-direction:column;gap:8px;display:flex}.workbench-note{border-radius:4px;grid-template-columns:125px minmax(0,1fr) 20px;gap:24px;margin-inline:-14px;padding:18px 14px;transition:background-color .18s;display:grid}.workbench-note:hover{background:var(--surface)}.workbench-note time{color:var(--secondary);padding-top:5px;font-size:13px}.workbench-note p{letter-spacing:-.45px;font-size:18px;font-weight:500;line-height:1.4}.workbench-note div>span{color:var(--secondary);max-width:70ch;margin-top:8px;font-size:13px;line-height:1.6;display:block}.workbench-note>.arrow{width:18px;height:18px;margin-top:5px}.contact-footer{--dot-ink:var(--grid-dot,#25272426);isolation:isolate;color:var(--ink);background-color:var(--paper);background-image:radial-gradient(var(--dot-ink) 1px, transparent 1px);background-size:20px 20px;margin-top:64px;padding-block:24px;position:relative;overflow:hidden}.contact-footer>.magnetic-dots{z-index:-1}.contact-intro,.contact-details{justify-content:space-between;align-items:center;gap:16px;display:flex}.contact-intro{flex-wrap:wrap}.contact-intro h2{letter-spacing:-.04em;font-size:28px;font-weight:500;line-height:1.25}.contact-intro .availability{color:var(--secondary);font-size:13px}.contact-details{margin-top:12px}.contact-email{flex-wrap:wrap;align-items:center;gap:4px 16px;display:flex}.contact-address{letter-spacing:-.4px;align-items:center;gap:10px;min-height:44px;font-size:20px;line-height:1.4;display:inline-flex}.contact-address .arrow{width:17px;height:17px;color:var(--orange);flex:none}.contact-address:hover{text-underline-offset:5px;text-decoration:underline}.copy-email{min-height:44px;color:var(--secondary);padding:0;font-size:13px}.copy-email:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.contact-routes{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.contact-routes a{align-items:center;gap:8px;min-height:44px;font-size:13px;display:inline-flex}.contact-routes .arrow{width:14px;height:14px;color:var(--secondary)}.contact-routes a:hover{text-underline-offset:4px;text-decoration:underline}.footer-baseline{color:var(--secondary);justify-content:space-between;align-items:center;gap:20px;font-size:13px;display:flex}.footer-identity{align-items:center;gap:14px;min-height:44px;display:inline-flex}.footer-identity .identity-mark{width:46px;height:32px;color:var(--ink)}.footer-identity>span{color:var(--ink);flex-direction:column;gap:4px;font-size:13px;line-height:1.5;display:flex}.footer-identity>span>span{color:var(--secondary)}.footer-top-link{white-space:nowrap;align-items:center;gap:10px;min-height:44px;display:inline-flex}.footer-top-link .arrow{width:16px;height:16px;transform:rotate(-90deg)}.footer-top-link:hover{color:var(--ink)}@media (max-width:700px){.contact-footer{margin-top:52px}.contact-intro h2{font-size:26px}.contact-details{flex-direction:column;align-items:start;gap:4px}.footer-baseline{flex-wrap:wrap;align-items:start;gap:16px}}@media (max-width:950px){.project-desk{grid-template-columns:minmax(0,1fr);gap:16px}.desk-tab{grid-template-columns:56px minmax(0,1fr);gap:12px;padding:12px 10px}.desk-thumbnail{width:56px;height:45px}.desk-tab>.arrow{display:none}.desk-preview{padding:20px}.desk-reader-screens{gap:12px;height:220px}.desk-story-heading{align-items:start}.desk-story-heading>span{display:none}.desk-story-bottom{flex-direction:column;align-items:start;gap:4px}.workbench-archive{gap:0}.workbench-about{grid-template-columns:240px minmax(0,1fr);gap:32px}}@media (max-width:700px){.workbench-client-demos{margin-top:48px}.workbench-client-demos .workbench-section-heading{flex-wrap:wrap;gap:4px 16px}.client-demo-link{grid-template-columns:100px minmax(0,1fr);gap:16px;padding:16px 0}.client-demo-copy h3{font-size:16px}.client-demo-link>.arrow{display:none}.client-demo-open{margin-top:8px}.workbench-hero{padding-block:14px 28px}.workbench-intro{display:block}.workbench-hero .hero-title{letter-spacing:-.05em;font-size:clamp(32px,8.4vw,42px)}.workbench-role{margin-top:8px;font-size:16px}.workbench-hero .hero-portrait{width:96px;margin-top:-48px;margin-bottom:12px}.workbench-description{margin-top:12px;font-size:16px;line-height:1.65}.workbench-actions{gap:12px 22px;margin-top:18px}.workbench-now{flex-direction:column;align-items:start;gap:12px;font-size:13px}.workbench-now>a{flex-wrap:nowrap;align-items:start;gap:12px;line-height:1.6}.workbench-now>a>.arrow{flex:none;margin-top:3px}.workbench-section-heading{align-items:baseline;gap:16px;margin-bottom:22px}.workbench-section-heading h2,.workbench-archive h2,.workbench-about h2{font-size:26px}.workbench-section-heading>a{white-space:nowrap;gap:8px;font-size:13px}.project-desk{grid-template-columns:1fr;gap:16px}.desk-index{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.desk-tab{flex-direction:column;align-items:start;gap:10px;min-height:96px;padding:10px 9px;display:flex}.desk-tab strong{letter-spacing:-.4px;font-size:16px}.desk-tab>span>span{display:none}.desk-thumbnail{width:100%;height:44px}.desk-preview{border-radius:5px;height:220px;padding:16px}.desk-reader-screens{gap:14px;height:170px}.desk-story{padding-top:20px}.desk-story h3{font-size:22px}.desk-story>p{font-size:16px}.desk-story-bottom{gap:8px;margin-top:16px}.workbench-archive{grid-template-columns:1fr;gap:0;margin-top:56px}.workbench-archive .work-index-row{grid-template-columns:minmax(0,1fr) 18px;padding-inline:0}.workbench-archive .work-index-row>span{display:none}.workbench-archive .work-index-row>.arrow{grid-column:2}.workbench-about{grid-template-columns:1fr;gap:28px;margin-top:60px}.workbench-candid{width:85%;margin-inline:auto;transform:rotate(-2deg)}.workbench-about-copy>p{font-size:16px}.workbench-interests{margin-top:24px}.workbench-notebook{margin-top:60px}.workbench-notebook .workbench-section-heading{flex-wrap:wrap;gap:8px}.workbench-section-heading>div>p{font-size:16px}.workbench-note{grid-template-columns:minmax(0,1fr) 18px;gap:8px 16px;margin:0;padding:20px 0}.workbench-note time{grid-column:1/-1;padding:0}.workbench-note p{font-size:18px}.workbench-note div>span{font-size:13px}.workbench-note>.arrow{grid-area:2/2}}@media (prefers-reduced-motion:reduce){.desk-panel{animation:none}.desk-tab,.client-demo-screen img,.desk-browser-image,.desk-reader-screens img,.workbench-primary{transition:none}.desk-tab:hover,.workbench-primary:hover,.desk-preview:hover .desk-browser-image,.desk-preview:hover .desk-reader-screens img:first-child{transform:none}.desk-preview:hover .desk-reader-screens img:nth-child(2){transform:translateY(25px)}}.workbench-reveal-active{animation:.65s cubic-bezier(.22,1,.36,1) workbench-enter}@keyframes workbench-enter{0%{transform:translateY(16px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.workbench-reveal-active{animation:none}}.desk-panel:focus-visible{outline:2px solid var(--orange);outline-offset:8px}.inner-page,.article-page{padding-block:36px 0}.page-eyebrow{margin-bottom:18px}.inner-page>h1,.article-header h1,.case-title-row h1{letter-spacing:-.05em;overflow-wrap:normal;font-size:clamp(32px,4.5vw,48px);font-weight:550;line-height:1.12}.inner-page>h1{text-wrap:balance;max-width:22ch}.inner-page>p,.article-header>p{max-width:65ch;margin-top:18px;font-size:18px;line-height:1.65}.work-archive,.writing-index{margin-top:36px}.work-archive .work-index-row{gap:18px;padding-block:18px}.work-index-row h2,.work-index-row h3,.writing-row h2,.writing-row h3{letter-spacing:-.4px;font-size:18px;font-weight:550;line-height:1.4}.work-index-row p,.work-index-row>span,.writing-row time,.writing-row div>span,.lab-index-header,.lab-index-row>span{font-size:13px}.writing-row{grid-template-columns:110px minmax(0,1fr) 20px;gap:24px;padding-block:22px}.writing-row p{margin-top:8px;font-size:16px}.writing-row div>span{margin-top:10px}.demo-process{gap:16px;margin-block:32px;font-size:13px}.demo-process span:not(:last-child):after{margin-left:16px}.demo-row{grid-template-columns:minmax(0,1fr) auto;gap:12px 32px;padding-block:24px}.demo-row h2,.lab-experiment-detail h2,.case-section h2,.article-content h2{letter-spacing:-.04em;font-size:28px;font-weight:500;line-height:1.25}.demo-row>div{grid-column:1}.demo-row .text-link{grid-area:1/2/3;align-self:center}.demo-row p,.about-bio p,.lab-experiment-detail p,.case-section p,.article-content{font-size:16px;line-height:1.75}.demo-row>div>span{margin-top:12px;font-size:13px}.inner-page>.demo-page-note{margin-top:24px;font-size:13px}.about-page-body{grid-template-columns:minmax(0,1fr) 260px;gap:40px;margin-top:36px}.about-bio .about-lead{font-size:18px;line-height:1.6}.about-bio p{margin-top:18px}.about-bio h2{margin-top:28px;font-size:18px}.about-portrait img{filter:none;border-radius:6px}.about-portrait figcaption,.lab-status,.lab-experiment-actions a{font-size:13px}.lab-experiment{gap:32px;margin-top:40px}.lab-experiment-visual{border-radius:6px;min-height:300px}.lab-experiment-detail h2{margin-top:12px}.lab-sprite-experiment{grid-template-columns:minmax(0,1fr);gap:24px}.lab-sprite-experiment .lab-experiment-detail{grid-row:1;max-width:65ch}.lab-index{margin-top:48px}.lab-index-row{padding-block:22px}.lab-index-row h2{font-size:18px}.case-header{padding-block:36px}.case-title-row{align-items:start;gap:24px;margin-top:24px}.case-title-row>span{flex-basis:150px;padding:0;font-size:13px}.case-overview{grid-template-columns:minmax(0,1fr) 240px;gap:40px;margin-top:24px}.case-overview>p{letter-spacing:0;font-size:18px;line-height:1.65}.case-overview dl{gap:18px}.case-back,.case-overview dt,.case-media-caption,.case-section-label,.case-ending>span,.case-ending>.text-link,.case-evidence{font-size:13px}.case-body{padding-block:0}.case-section{grid-template-columns:minmax(0,1fr);gap:12px;padding-top:44px}.case-section-label{padding:0}.case-section h2{margin-bottom:16px}.case-section p{margin-top:16px}.case-section>div{max-width:74ch}.case-ending{margin-top:44px;padding-block:24px 0}.case-ending>div{gap:12px;margin-top:20px}.case-live-link,.article-related{font-size:28px;line-height:1.3}.article-tags,.article-meta,.article-outline,.article-outline summary,.article-ending>span{font-size:13px}.article-tags{margin-top:24px}.article-header h1{max-width:26ch;margin-top:16px}.article-meta{margin-top:20px}.article-layout{grid-template-columns:170px minmax(0,1fr);gap:32px;margin-top:40px}.reading-progress{top:var(--header-height,80px)}.article-content h2{margin-block:40px 18px}.article-content h3{margin-block:28px 16px;font-size:22px}.article-ending{margin-top:48px}@media (max-width:700px){.inner-page,.article-page,.case-header{padding-top:28px}.inner-page>p,.article-header>p{font-size:16px}.writing-row{grid-template-columns:minmax(0,1fr) 20px;gap:8px 16px;padding-block:18px}.writing-row time{padding:0}.demo-row{grid-template-columns:minmax(0,1fr);gap:12px}.demo-row .text-link{grid-area:auto/1;justify-self:start}.about-page-body,.lab-experiment,.case-overview,.article-layout{grid-template-columns:minmax(0,1fr);gap:28px}.about-page-body{margin-top:28px}.about-portrait{width:min(100%,300px)}.case-title-row{gap:12px}.case-title-row>span{flex-basis:auto}.case-overview dl{gap:18px}.case-overview dd,.article-outline li{font-size:13px}.article-layout{margin-top:28px}.article-outline{padding-block:12px}.article-outline summary:after{font-size:13px}}
@property --paper{syntax:"<color>";inherits:true;initial-value:#f7f7f5}@property --ink{syntax:"<color>";inherits:true;initial-value:#252724}@property --secondary{syntax:"<color>";inherits:true;initial-value:#5c6059}@property --surface{syntax:"<color>";inherits:true;initial-value:#eeefea}@property --rule{syntax:"<color>";inherits:true;initial-value:#dedfd9}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#000;--ink:#f2f2ed;--secondary:#a3a39c;--surface:#111;--rule:#2c2c2c;--orange:#ff8058;--moss:#a8bf8a;--dark:#090909;--grid-dot:#f2f2ed2b;--grid-ruler:#f2f2ed45;--link-rule:#555;--button-hover:#d6d6ce;--tab-selected:#202020;--preview-pair:#100d18;--preview-reader:#0c1418;--preview-news:#16130f;--reading-ink:#c5c5bf;--diagram-surface:#101010;--diagram-rule:#3d3d3d;--demo-surface:#0e0e0e;--demo-rule:#454545;--demo-selected:#1b2517;--bubble-rule:#3b3b3b}html[data-theme=dark] .project-canvas{--paper:#f7f7f5;--ink:#252724;--secondary:#5c6059;--rule:#dedfd9;--moss:#67765a;color:#252724}html[data-theme=dark] .article-content .code-artifact{background:#0d0d0d}html[data-theme=dark] .article-content a{text-decoration-color:#62625e}html[data-theme=dark] ::selection{color:#000;background:#ff8058}.theme-toggle svg{transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .26s;position:absolute}.theme-icon-moon{opacity:1;transform:rotate(-15deg)scale(1)}.theme-icon-sun{opacity:0;transform:rotate(90deg)scale(.4)}html[data-theme=dark] .theme-icon-moon{opacity:0;transform:rotate(-90deg)scale(.4)}html[data-theme=dark] .theme-icon-sun{opacity:1;transform:rotate(0)scale(1)}:root[data-theme-transition=reveal]::view-transition-group(root){mix-blend-mode:normal;animation:none}:root[data-theme-transition=reveal]::view-transition-old(root){mix-blend-mode:normal;animation:none}:root[data-theme-transition=reveal]::view-transition-new(root){mix-blend-mode:normal;animation:none}:root[data-theme-transition=reveal]::view-transition-old(root){z-index:1}:root[data-theme-transition=reveal]::view-transition-new(root){z-index:2}:root[data-theme-transition=reveal]::view-transition-image-pair(root){isolation:isolate}:root[data-theme-transition=reveal] *,:root[data-theme-transition=reveal] :before,:root[data-theme-transition=reveal] :after{transition:none!important}:root[data-theme-transition=fade]{transition:--paper .45s,--ink .45s,--secondary .45s,--surface .45s,--rule .45s}@media (prefers-reduced-motion:reduce){.theme-toggle svg,:root[data-theme-transition=fade]{transition:none}}
:root{--header-height:80px;--nav-spring:linear(0, .22 10%, .58 24%, .9 38%, 1.045 52%, 1.065 62%, 1.018 80%, 1)}.site-header{z-index:var(--z-navigation);background:var(--paper);position:sticky;top:0}.site-header:after{content:"";width:min(var(--container-max), calc(100% - var(--gutter) * 2));background:var(--rule);opacity:0;height:1px;transition:opacity .18s;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.is-scrolled .site-header:after{opacity:1}.navigation{justify-content:space-between;align-items:center;gap:28px;min-height:80px;display:flex}.wordmark{flex:none;align-items:center;min-height:44px;display:inline-flex}.wordmark .identity-mark{width:56px;height:36px}.desktop-nav{align-items:center;gap:22px;display:flex;position:relative}.nav-link,.nav-contact{min-height:44px;color:var(--secondary);transition:color .18s, transform .44s var(--nav-spring);align-items:center;font-size:13px;font-weight:450;display:inline-flex;position:relative}.nav-link[aria-current]{color:var(--ink)}.nav-link:after{content:"";background:var(--orange);opacity:0;width:3px;height:3px;transition:opacity .18s, transform .44s var(--nav-spring);border-radius:50%;position:absolute;bottom:4px;left:calc(50% - 1.5px);transform:scale(.4)}.nav-link[aria-current]:after{opacity:1;transform:scale(1)}.desktop-nav[data-indicator-ready=true] .nav-link:after{display:none}.nav-indicator{background:var(--orange);opacity:0;pointer-events:none;width:3px;height:3px;transition:transform .54s var(--nav-spring), opacity .12s;border-radius:50%;position:absolute;bottom:4px;left:0}.nav-utilities,.nav-controls{align-items:center;display:flex}.nav-utilities{gap:22px}.nav-controls{gap:2px}.nav-contact{white-space:nowrap;gap:9px}.nav-contact .arrow{width:14px;height:14px}.header-control{width:44px;height:44px;color:var(--secondary);transition:color .18s, transform .48s var(--nav-spring);background:0 0;border:0;border-radius:10px;flex:none;place-items:center;padding:0;display:grid;position:relative}.header-control:before{content:"";background:color-mix(in srgb, var(--ink) 7%, transparent);opacity:0;border-radius:9px;transition:opacity .18s;position:absolute;inset:5px}.header-control>svg{width:18px;height:18px;position:relative}.header-control.theme-toggle>svg{position:absolute}.header-control:focus-visible:before{opacity:1}.header-control:active{transition:transform 90ms ease-out,color .18s;transform:translateY(1px)scale(.9)}.control-indicator{background:var(--secondary);border-radius:50%;width:4px;height:4px;position:absolute;bottom:8px;right:8px}.control-indicator[data-enabled=true]{background:var(--moss)}.menu-toggle{min-height:44px;color:var(--secondary);transition:color .18s, transform .44s var(--nav-spring);align-items:center;gap:8px;padding:0 4px;font-size:13px;display:none}.menu-toggle>span{font-size:18px;font-weight:300}.menu-toggle:active{transform:scale(.94)}.mobile-menu{border:1px solid var(--rule);width:calc(100% - 24px);max-width:380px;height:auto;max-height:calc(100dvh - 24px);color:var(--ink);background:var(--paper);border-radius:12px;margin:0;padding:20px;position:fixed;inset:12px 12px auto auto}.mobile-menu::backdrop{background:#00000061;animation:.18s ease-out nav-backdrop}.mobile-menu[open]{animation:nav-sheet .4s var(--nav-spring);flex-direction:column;display:flex}.mobile-menu-top{color:var(--secondary);justify-content:space-between;align-items:center;gap:16px;font-size:13px;display:flex}.mobile-menu-top button{align-items:center;gap:10px;min-height:44px;padding:0;font-size:13px;display:inline-flex}.mobile-menu-top button>span{font-size:22px}.mobile-menu nav{gap:3px;margin-block:16px;display:grid}.mobile-menu nav a{letter-spacing:-.3px;min-height:48px;transition:background-color .18s, transform .44s var(--nav-spring);border-radius:6px;justify-content:space-between;align-items:center;gap:20px;margin-inline:-12px;padding:8px 12px;font-size:18px;display:flex}.mobile-menu nav a[aria-current]{background:var(--surface)}.mobile-menu nav .arrow{width:16px;height:16px;color:var(--secondary)}.mobile-menu>.text-link{align-self:start;min-height:44px;font-size:13px}.mobile-menu>.text-link .arrow{width:15px;height:15px}.mobile-menu-location{color:var(--secondary);margin-top:20px;font-size:13px;line-height:1.6}@media (hover:hover) and (pointer:fine){.header-control:hover{color:var(--ink);transform:translateY(-1px)scale(1.03)}.header-control:hover:before{opacity:1}.header-control:active{transform:translateY(1px)scale(.9)}.nav-link:hover,.nav-contact:hover,.menu-toggle:hover{color:var(--ink);transform:translateY(-1px)}.nav-contact:hover .arrow{transform:translate(2px,-2px)}.mobile-menu nav a:hover{background:var(--surface);transform:translate(2px)}}@media (max-width:950px){.navigation{gap:20px}.desktop-nav{gap:18px}.nav-contact{display:none}}@media (max-width:700px){:root{--header-height:76px}.navigation{gap:12px;min-height:76px}.desktop-nav,.nav-contact{display:none}.nav-utilities{gap:10px}.menu-toggle{display:inline-flex}}@media (max-width:380px){.nav-utilities,.navigation{gap:4px}.nav-controls{gap:0}.wordmark .identity-mark{width:48px}}@keyframes nav-sheet{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:none}}@keyframes nav-backdrop{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.header-control,.header-control:before,.nav-link,.nav-link:after,.nav-indicator,.nav-contact,.menu-toggle,.mobile-menu nav a,.site-header:after{transition:none}.header-control:hover,.header-control:active,.nav-link:hover,.nav-contact:hover,.nav-contact:hover .arrow,.menu-toggle:hover,.menu-toggle:active,.mobile-menu nav a:hover{transform:none}.mobile-menu[open],.mobile-menu::backdrop{animation:none}}
