@font-face{font-family:geistSans;src:url(../media/GeistVF-s.p.40fv_8nktjm_5.woff)format("woff");font-display:swap;font-weight:100 900}@font-face{font-family:geistSans Fallback;src:local(Arial);ascent-override:85.83%;descent-override:20.52%;line-gap-override:9.33%;size-adjust:107.19%}.N6BAzW_className{font-family:geistSans,geistSans Fallback}.N6BAzW_variable{--font-geist-sans:"geistSans", "geistSans Fallback"}
@font-face{font-family:geistMono;src:url(../media/GeistMonoVF-s.p.0kq4e1146y5_w.woff)format("woff");font-display:swap;font-weight:100 900}@font-face{font-family:geistMono Fallback;src:local(Arial);ascent-override:69.97%;descent-override:16.73%;line-gap-override:7.61%;size-adjust:131.49%}._7gagPW_className{font-family:geistMono,geistMono Fallback}._7gagPW_variable{--font-geist-mono:"geistMono", "geistMono Fallback"}
*,:before,:after,::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:#3b82f680;--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: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family: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:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.bottom-full{bottom:100%}.left-0{left:0}.left-1\/2{left:50%}.right-0{right:0}.top-0{top:0}.top-4{top:1rem}.z-40{z-index:40}.z-50{z-index:50}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-12{height:3rem}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-\[40rem\]{height:40rem}.w-12{width:3rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-xl{max-width:36rem}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.origin-left{transform-origin:0}.-translate-x-1\/2{--tw-translate-x:-50%;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))}.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))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-2{column-gap:.5rem}.gap-y-1{row-gap:.25rem}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.whitespace-nowrap{white-space:nowrap}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-b-0{border-bottom-width:0}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r-0{border-right-width:0}.border-r-2{border-right-width:2px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-black{--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.border-pink-400{--tw-border-opacity:1;border-color:rgb(244 114 182/var(--tw-border-opacity,1))}.border-purple-400{--tw-border-opacity:1;border-color:rgb(192 132 252/var(--tw-border-opacity,1))}.border-yellow-400{--tw-border-opacity:1;border-color:rgb(250 204 21/var(--tw-border-opacity,1))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-blue-200{--tw-bg-opacity:1;background-color:rgb(191 219 254/var(--tw-bg-opacity,1))}.bg-blue-400{--tw-bg-opacity:1;background-color:rgb(96 165 250/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-cyan-500{--tw-bg-opacity:1;background-color:rgb(6 182 212/var(--tw-bg-opacity,1))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgb(99 102 241/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-400{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-pink-200{--tw-bg-opacity:1;background-color:rgb(251 207 232/var(--tw-bg-opacity,1))}.bg-pink-400{--tw-bg-opacity:1;background-color:rgb(244 114 182/var(--tw-bg-opacity,1))}.bg-pink-50{--tw-bg-opacity:1;background-color:rgb(253 242 248/var(--tw-bg-opacity,1))}.bg-pink-500{--tw-bg-opacity:1;background-color:rgb(236 72 153/var(--tw-bg-opacity,1))}.bg-purple-200{--tw-bg-opacity:1;background-color:rgb(233 213 255/var(--tw-bg-opacity,1))}.bg-purple-400{--tw-bg-opacity:1;background-color:rgb(192 132 252/var(--tw-bg-opacity,1))}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-rose-500{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-200{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity,1))}.bg-yellow-300{--tw-bg-opacity:1;background-color:rgb(253 224 71/var(--tw-bg-opacity,1))}.bg-yellow-400{--tw-bg-opacity:1;background-color:rgb(250 204 21/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.fill-red-500{fill:#ef4444}.object-cover{object-fit:cover}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[11px\]{font-size:11px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.3em\]{letter-spacing:.3em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}.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)}.blur-sm{--tw-blur:blur(4px);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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}:root{--paper:#f8f7f3;--ink:#191919;--accent:#ed6b35;--muted:#62615c;--line:#d7d6d0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{background:var(--paper);color:var(--ink);font-family:var(--font-geist-sans), sans-serif;margin:0}::selection{color:var(--ink);background:#f9b899}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline-offset:5px;outline:3px solid #a43b13}.shell{width:min(1120px,100% - 96px);margin-inline:auto}.site-header{z-index:10;background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0}.nav-inner{justify-content:space-between;align-items:center;height:84px;display:flex}.wordmark{letter-spacing:-1.5px;font-size:29px;font-weight:850}.wordmark span,.accent{color:var(--accent)}nav{align-items:center;gap:32px;font-size:13px;font-weight:550;display:flex}nav a,.text-link,.hero-bottom a,.footer>a{padding-block:12px}nav a:hover,.text-link:hover,.footer>a:hover,.hero-bottom a:hover{text-underline-offset:5px;text-decoration:underline}.skip-link{z-index:30;background:var(--ink);color:#fff;padding:12px;position:fixed;top:-80px;left:20px}.skip-link:focus{top:12px}.hero{grid-template-columns:1fr 320px;align-items:center;gap:70px;padding-top:90px;display:grid;position:relative}.eyebrow,.project-meta,.stack,.period,figcaption,.hero-bottom{font-family:var(--font-geist-mono), monospace}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;align-items:center;gap:10px;margin:0 0 25px;font-size:12px;display:flex}.accent-square{background:var(--accent);width:8px;height:8px}h1{letter-spacing:-5px;margin:0 0 28px;font-size:clamp(58px,6.4vw,88px);font-weight:800;line-height:.99}.hero-role{margin-bottom:13px;font-size:19px;font-weight:600}.hero-description{color:var(--muted);max-width:400px;font-size:16px;line-height:1.75}.hero-actions{align-items:center;gap:30px;margin-top:30px;display:flex}.button{border:2px solid var(--ink);justify-content:space-between;align-items:center;gap:30px;min-height:48px;padding:15px 20px;font-size:13px;font-weight:650;transition:transform .15s,box-shadow .15s;display:inline-flex}.primary{background:var(--accent);box-shadow:3px 3px 0 var(--ink)}.button:hover{box-shadow:5px 5px 0 var(--ink);transform:translate(-1px,-1px)}.button:active{box-shadow:none;transform:translate(2px,2px)}.text-link{font-size:13px;font-weight:600}.portrait{margin:0;transform:translateY(5px)}.portrait-frame{border:2px solid var(--ink);box-shadow:7px 7px 0 var(--ink);background:#ddd}.portrait img{aspect-ratio:4/5;object-fit:cover;filter:saturate(.55);width:100%}figcaption{color:var(--muted);justify-content:space-between;gap:12px;margin-top:20px;font-size:12px;line-height:1.6;display:flex}.hero-bottom{border-bottom:1px solid var(--ink);text-transform:uppercase;letter-spacing:1px;color:var(--muted);grid-column:1/-1;justify-content:space-between;padding:15px 0 22px;font-size:12px;display:flex}.section{border-bottom:1px solid var(--line);padding:90px 0}.section-heading{margin-bottom:36px}.section-heading .eyebrow{color:var(--muted);margin-bottom:16px}h2{letter-spacing:-1.8px;margin:0;font-size:clamp(32px,3.5vw,46px);font-weight:750;line-height:1.13}.project-grid{grid-template-columns:1.25fr 1fr 1fr;align-items:start;gap:18px;display:grid}.project-card{border:1px solid var(--ink);min-width:0;padding:26px}.project-card.featured{border:2px solid var(--ink);background:#eeede7;padding:25px}.project-meta{color:var(--muted);justify-content:space-between;gap:12px;margin-bottom:38px;font-size:12px;display:flex}.project-meta>span:first-child{color:#9b3d17}.project-card h3{letter-spacing:-.7px;min-height:83px;font-size:24px;font-weight:700;line-height:1.15}.project-card>p{color:var(--muted);min-height:72px;margin:18px 0 25px;font-size:14px;line-height:1.7}.project-card .stack,.stack{color:var(--muted);font-size:12px;line-height:1.9}.project-card .stack{min-height:38px;margin-bottom:28px}details{border-top:1px solid var(--line)}summary{cursor:pointer;justify-content:space-between;padding:17px 0 0;font-size:12px;font-weight:650;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary span{font-size:18px;line-height:1}details[open] summary span{transform:rotate(45deg)}details p{color:var(--muted);margin-top:18px;font-size:13px;line-height:1.7}.work-link{margin-top:22px;display:inline-block}.experience{grid-template-columns:1fr 1.5fr;gap:60px;display:grid}.experience-row{border-bottom:1px solid var(--line);grid-template-columns:120px 1fr;gap:24px;padding:26px 0;display:grid}.experience-row:first-child{padding-top:0}.experience-row:last-child{border-bottom:0;padding-bottom:0}.period{color:var(--muted);font-size:12px;line-height:1.8}.experience-row h3{font-size:17px;font-weight:700;line-height:1.4}.company{margin-top:5px;font-size:12px}.experience-description{color:var(--muted);margin:14px 0;font-size:13px;line-height:1.8}.about{grid-template-columns:1fr 1.5fr;gap:60px;display:grid}.about-content>p{color:var(--muted);margin-bottom:18px;font-size:15px;line-height:1.85}.about-content .about-lead{color:var(--ink);font-size:21px;font-weight:550}.skills{border-top:1px solid var(--line);margin-top:32px}.skills>div{border-bottom:1px solid var(--line);grid-template-columns:125px 1fr;gap:16px;padding:15px 0;font-size:12px;line-height:1.8;display:grid}.skills h3{font-weight:650}.skills p{color:var(--muted)}.contact{padding-bottom:65px}.contact h2{letter-spacing:-2.5px;font-size:clamp(40px,5.4vw,70px)}.contact-bottom{justify-content:space-between;align-items:center;gap:24px;margin-top:32px;display:flex}.contact-bottom p{color:var(--muted);font-size:14px;line-height:1.8}.email-link{text-underline-offset:5px;overflow-wrap:anywhere;margin-top:26px;font-size:13px;text-decoration:underline;display:inline-block}.footer{color:var(--muted);justify-content:space-between;align-items:center;gap:24px;padding-block:28px;font-size:12px;display:flex}.footer nav{gap:20px;font-size:12px}@media (max-width:950px){.hero{grid-template-columns:1fr 260px;gap:35px}h1{letter-spacing:-3px}.project-grid{grid-template-columns:1fr}.project-card h3,.project-card>p,.project-card .stack{min-height:0}.project-meta{margin-bottom:24px}.experience,.about{grid-template-columns:1fr;gap:8px}}@media (max-width:700px){.shell{width:calc(100% - 40px)}.nav-inner{height:70px}nav{gap:22px;font-size:12px}.hero{grid-template-columns:1fr;gap:45px;padding-top:55px}h1{letter-spacing:-2.5px;font-size:clamp(46px,11.5vw,72px)}.hero-role{font-size:17px}.hero-description{font-size:15px}.hero-actions{gap:24px}.portrait{justify-self:center;width:min(280px,82%)}.hero-bottom{gap:16px;padding-bottom:18px;font-size:12px}.section{padding-block:58px}.experience-row{grid-template-columns:1fr;gap:8px}.skills>div{grid-template-columns:105px 1fr}.contact-bottom{flex-direction:column;align-items:flex-start}.footer{flex-wrap:wrap;gap:10px 22px;padding-block:22px}.footer>p{width:100%}.footer nav{gap:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.site-header{transition:box-shadow .22s,border-color .22s}.site-header.is-scrolled{border-color:#b9b8b2;box-shadow:0 3px #1919190d}.site-header nav a,.text-link,.hero-bottom a,.footer a{position:relative}.site-header nav a:after,.text-link:after,.hero-bottom a:after,.footer a:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .2s cubic-bezier(.22,1,.36,1);position:absolute;bottom:5px;left:0;right:0;transform:scaleX(0)}.site-header nav a[aria-current=location]:after,.site-header nav a:focus-visible:after,.text-link:focus-visible:after,.hero-bottom a:focus-visible:after,.footer a:focus-visible:after{transform:scaleX(1)}.button span,.text-link span,.site-header nav a span{transition:transform .18s;display:inline-block}.button:focus-visible span,.text-link:focus-visible span{transform:translate(2px,-2px)}.project-card{transition:box-shadow .22s,border-color .22s}.project-card:focus-within{box-shadow:4px 4px 0 var(--ink);border-color:#a43b13}.portrait-frame{transition:box-shadow .3s;overflow:hidden}.portrait img{transition:filter .45s,transform .65s cubic-bezier(.22,1,.36,1)}summary{min-height:44px;transition:color .18s}summary:hover,summary:focus-visible{color:#a43b13}summary span{transition:transform .24s cubic-bezier(.22,1,.36,1)}details[open]>p{animation:.24s ease-out note-reveal}@keyframes note-reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@supports (interpolate-size:allow-keywords){details{interpolate-size:allow-keywords}details::details-content{opacity:0;block-size:0;transition:block-size .28s ease, content-visibility .28s allow-discrete, opacity .2s ease;overflow:clip}details[open]::details-content{opacity:1;block-size:auto}}@media (hover:hover) and (pointer:fine){.site-header nav a:hover,.text-link:hover,.hero-bottom a:hover,.footer a:hover{text-decoration:none}.site-header nav a:hover:after,.text-link:hover:after,.hero-bottom a:hover:after,.footer a:hover:after{transform:scaleX(1)}.button:hover span,.text-link:hover span,.site-header nav a:hover span{transform:translate(2px,-2px)}.project-card:hover{box-shadow:4px 4px 0 var(--ink)}.portrait-frame:hover{box-shadow:10px 10px 0 var(--ink)}.portrait-frame:hover img{filter:saturate(.9);transform:scale(1.025)}}@media (prefers-reduced-motion:reduce){html:focus-within,html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}details::details-content{transition:none!important;animation:none!important}.button:hover,.button:active,.button:hover span,.text-link:hover span,.site-header nav a:hover span,.portrait-frame:hover img{transform:none}}.hero{grid-template-columns:minmax(0,1fr) 400px;gap:45px}.hero-art{perspective:1000px}.hero-art .portrait-frame{transition:transform .55s cubic-bezier(.22,1,.36,1),box-shadow .35s;position:relative;transform:rotate(-1deg)}.hero-art img{aspect-ratio:auto;filter:none;height:auto}.hero-art .portrait-frame:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 25%,#ffffff1f 48%,#0000 65%);position:absolute;inset:0;transform:translate(-130%)}.project-link{gap:12px;margin-bottom:20px;display:inline-flex}.experience-link{margin-top:8px;font-size:12px;display:inline-block}.education{border-left:2px solid var(--accent);margin-top:30px;padding-left:20px}.education .eyebrow{margin-bottom:12px;font-size:12px}.education h3{font-size:17px;font-weight:650}.education>p:not(.eyebrow){color:var(--muted);margin-top:8px;font-size:13px;line-height:1.8}@media (hover:hover) and (pointer:fine){.hero-art .portrait-frame:hover{box-shadow:10px 10px 0 var(--ink);transform:rotate(0)translateY(-3px)}.hero-art .portrait-frame:hover img{filter:none;transform:none}.hero-art .portrait-frame:hover:after{animation:.85s ease-out art-light}}@keyframes art-light{to{transform:translate(130%)}}@media (max-width:950px){.hero{grid-template-columns:minmax(0,1fr) 300px;gap:25px}}@media (max-width:700px){.hero{grid-template-columns:1fr;gap:45px}.hero-art{width:min(400px,94%)}}@media (prefers-reduced-motion:reduce){.hero-art .portrait-frame,.hero-art .portrait-frame:hover{transform:none}.hero-art .portrait-frame:after{display:none}}.social-block{margin-top:30px}.social-label{font-family:var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);margin-bottom:12px;font-size:12px}.hero-socials{flex-wrap:wrap;gap:10px;display:flex}.hero-socials a{border:1px solid var(--ink);background:var(--paper);align-items:center;min-height:44px;padding:10px 16px;font-size:13px;font-weight:650;transition:background .18s,transform .18s,box-shadow .18s;display:inline-flex}.hero-socials a:hover,.hero-socials a:focus-visible{box-shadow:3px 3px 0 var(--ink);background:#fce4d7;text-decoration:none;transform:translate(-1px,-1px)}.hero-socials a:active{box-shadow:none;transform:translate(1px,1px)}@media (prefers-reduced-motion:reduce){.hero-socials a:hover,.hero-socials a:active{transform:none}}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.project-card,.project-card.featured{border:1px solid var(--ink);background:var(--paper);padding:22px}.project-card.featured{box-shadow:4px 4px 0 var(--ink)}.project-meta{align-items:center;gap:8px;margin-bottom:18px;font-size:12px}.project-meta>span:first-child{background:var(--ink);width:27px;height:27px;color:var(--paper);place-items:center;font-size:12px;display:grid}.project-art{border:1px solid var(--ink);height:180px;margin-bottom:25px;position:relative;overflow:hidden}.art-caption{font-family:var(--font-geist-mono), monospace;letter-spacing:1.5px;z-index:1;font-size:12px;position:absolute;top:12px;left:14px}.project-art-0{background-color:#f0b293;background-image:linear-gradient(#19191910 1px,#0000 1px),linear-gradient(90deg,#19191910 1px,#0000 1px);background-size:20px 20px}.outcome-art{position:absolute;inset:45px 16px 15px}.outcome-art strong{z-index:1;letter-spacing:-3px;font-size:46px;font-weight:800;line-height:1;position:relative}.outcome-art strong span{vertical-align:top;font-size:27px}.art-subtitle{letter-spacing:2px;margin-top:8px;font-size:12px;display:block}.art-bars{opacity:.7;align-items:end;gap:5px;width:52%;height:80px;display:flex;position:absolute;bottom:-15px;right:-16px}.art-bars i{background:var(--ink);transform-origin:bottom;flex:1;transition:transform .4s}.project-art-1{color:#efeee8;background:#202320}.signal-wave{justify-content:center;align-items:center;gap:7px;height:70px;margin-top:49px;padding-inline:25px;display:flex}.signal-wave i{background:#ed946c;flex:1;max-width:9px;min-height:3px;transition:transform .4s}.signal-score{font-family:var(--font-geist-mono), monospace;font-size:19px;position:absolute;bottom:12px;left:14px}.signal-score small{letter-spacing:1px;color:#b1b6ae;font-size:12px}.project-art-2{background:#e8e5dc}.kite-diamond{background:var(--accent);border:1px solid var(--ink);width:82px;height:82px;box-shadow:8px 8px 0 var(--ink);transition:transform .45s;position:absolute;top:48px;right:50px;transform:rotate(45deg)}.kite-orbit{border:1px solid #19191940;border-radius:50%;width:170px;height:170px;position:absolute;bottom:-65px;right:-28px}.kite-label{letter-spacing:-2px;font-size:36px;font-weight:800;position:absolute;bottom:15px;left:15px}.kite-label span{margin-left:8px;font-weight:400}.project-card h3{letter-spacing:-.8px;min-height:80px;font-size:23px}.project-card>p{min-height:68px;margin:14px 0 20px;font-size:13px}.project-tech{flex-wrap:wrap;align-content:start;gap:6px;min-height:56px;margin-bottom:20px;display:flex}.project-tech span{font-family:var(--font-geist-mono), monospace;border:1px solid var(--line);padding:4px 7px;font-size:12px;line-height:1.5}.project-link{border:1px solid var(--ink);justify-content:space-between;align-items:center;min-height:44px;margin-bottom:16px;padding:11px 13px;transition:background .18s;display:flex}.project-link:after{display:none}.project-link:hover,.project-link:focus-visible{background:var(--ink);color:var(--paper);text-decoration:none}.project-card.featured .project-link{background:var(--accent);color:var(--ink)}.project-card summary{padding-top:12px;font-size:12px}@media (hover:hover) and (pointer:fine){.project-card:hover .art-bars i:nth-child(odd){transform:scaleY(.8)}.project-card:hover .signal-wave i:nth-child(odd){transform:scaleY(.6)}.project-card:hover .signal-wave i:nth-child(2n){transform:scaleY(1.15)}.project-card:hover .kite-diamond{transform:translate(5px,-5px)rotate(52deg)}}@media (max-width:950px){.project-grid{grid-template-columns:1fr}.project-art{height:200px}.project-card h3,.project-card>p,.project-tech{min-height:0}.art-bars{width:40%}}@media (prefers-reduced-motion:reduce){.project-card:hover .art-bars i,.project-card:hover .signal-wave i{transform:none}.project-card:hover .kite-diamond{transform:rotate(45deg)}}.draft-label{color:#674026;font:12px var(--font-geist-mono), monospace;letter-spacing:.3px;white-space:nowrap;background:#f9e9dd;border:1px solid #b6a99f;padding:3px 6px;display:inline-block}.writing-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:35px;display:flex}.writing-heading>p{color:var(--muted);font-size:14px;line-height:1.8}.essay-meta{font:12px var(--font-geist-mono), monospace;color:var(--muted);justify-content:space-between;align-items:center;gap:15px;display:flex}.essay-cta{justify-content:space-between;margin-top:auto;padding-top:30px;font-size:12px;font-weight:650;display:flex}.case-study-link{justify-content:space-between;align-items:center;padding:10px 0 20px;font-size:12px;font-weight:650;display:flex}.editorial{padding-block:65px 90px}.editorial>h1{margin-top:30px;font-size:clamp(48px,7vw,88px)}.editorial-deck{color:var(--muted);max-width:660px;margin-top:24px;font-size:19px;line-height:1.7}.draft-notice{border-left:3px solid var(--accent);color:#63554a;background:#f1ece3;max-width:760px;margin:30px 0;padding:18px 20px;font-size:13px;line-height:1.8}.article-header{max-width:900px;margin-top:50px;animation:.5s ease-out both article-enter}.article-header h1{letter-spacing:-2.5px;font-size:clamp(40px,6vw,78px);line-height:1.07}.article-byline{font:12px var(--font-geist-mono), monospace;color:var(--muted);border-bottom:1px solid var(--line);padding-block:25px;line-height:1.8}.article-layout{grid-template-columns:230px minmax(0,680px);gap:70px;margin-top:45px;display:grid}.article-toc{align-self:start;position:sticky;top:120px}.article-toc nav{flex-direction:column;align-items:start;gap:8px;display:flex}.article-toc nav a{font-size:12px;line-height:1.5}.reader-body{max-width:720px}.reader-body>section{margin-bottom:55px;scroll-margin-top:20px}.reader-body h2{letter-spacing:-.8px;margin-bottom:20px;font-size:29px}.reader-body p{color:var(--muted);font-size:16px;line-height:1.85}.content-slot{border:1px dashed #b5ada2;margin-top:20px;padding:24px}.content-slot>span{font:12px var(--font-geist-mono), monospace;text-transform:uppercase;color:#9b3d17;letter-spacing:1px}.content-slot p{margin-top:12px;font-size:14px}.quote-slot{border-left:3px solid var(--ink);margin-top:30px;padding:26px}.quote-slot p{font-size:23px;line-height:1.5}.article-end{border-top:1px solid var(--ink);padding-top:30px}.article-end a{font-size:25px;font-weight:650}.reading-progress{background:var(--accent);z-index:50;transform-origin:0;height:3px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}.case-facts{border-block:1px solid var(--ink);grid-template-columns:repeat(3,1fr);margin:35px 0 55px;padding-block:25px;display:grid}.case-facts strong,.case-facts span{display:block}.case-facts strong{letter-spacing:-1px;font-size:38px;font-weight:750}.case-facts span{color:var(--muted);margin-top:8px;font-size:12px}.case-body{margin-inline:auto}.media-slot{text-align:center;border:1px solid var(--ink);background:repeating-linear-gradient(45deg,#eeece5,#eeece5 1px,#0000 1px 12px);place-items:center;gap:15px;padding:45px 25px;display:grid}.media-slot>span:first-child{font:36px var(--font-geist-mono), monospace}.media-slot h3{font-size:22px;font-weight:650}.media-slot p{max-width:360px;font-size:14px}.architecture{align-items:center;gap:12px;margin:25px 0;display:flex}.architecture span{text-align:center;border:1px solid var(--ink);font:12px var(--font-geist-mono), monospace;flex:1;padding:18px 10px}.decision{padding-bottom:18px}@keyframes article-enter{0%{opacity:0;translate:0 10px}to{opacity:1;translate:0}}@media (max-width:950px){.article-layout{grid-template-columns:1fr;gap:25px}.article-toc{position:static}.article-toc nav{flex-flow:wrap;gap:8px 20px}}@media (max-width:700px){.writing-heading{flex-direction:column;align-items:start}.editorial{padding-top:40px}.article-header{margin-top:35px}.article-header h1{letter-spacing:-1.5px}.case-facts{gap:10px}.case-facts strong{font-size:30px}.case-facts span{font-size:12px}.architecture{flex-direction:column;align-items:stretch}.architecture b{text-align:center;transform:rotate(90deg)}}@media (prefers-reduced-motion:reduce){.article-header{animation:none}}.notebook-header{padding-bottom:42px}.notebook-header h1{margin-top:25px;font-size:clamp(55px,8vw,100px)}@media (max-width:700px){.notebook-header{padding-bottom:30px}}.thought-icon{vertical-align:middle;width:1em;height:1em;display:inline-block}body{overflow-x:clip}.nav-inner{gap:24px}.site-header nav{margin-left:auto}.nav-resume{border:1px solid var(--ink);align-items:center;gap:6px;min-height:40px;padding:8px 14px;font-size:13px;font-weight:650;transition:background .18s,color .18s;display:inline-flex}.nav-resume:hover,.nav-resume:focus-visible{background:var(--ink);color:var(--paper)}@media (max-width:860px){html{scroll-padding-top:130px}.nav-inner{flex-wrap:wrap;gap:0 16px;height:auto;padding-top:14px}.wordmark{margin-right:auto}.site-header nav{scrollbar-width:none;order:3;gap:22px;width:100%;margin:0;font-size:13px;overflow-x:auto}.site-header nav::-webkit-scrollbar{display:none}.site-header nav a{white-space:nowrap}}.notebook .writing-heading{margin-bottom:36px}.notebook .section-heading{margin-bottom:0}.bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(190px,auto);gap:18px;display:grid}.bento-tile{border:1px solid var(--ink);background:var(--paper);flex-direction:column;min-width:0;transition:box-shadow .2s,transform .2s;display:flex}a.bento-tile:focus-visible{outline-offset:4px;outline:3px solid #a43b13}.tile-feature{box-shadow:5px 5px 0 var(--ink);grid-area:span 2/span 2}.tile-thoughts{background:#eee9df;grid-column:span 2;padding:26px}.tile-small{grid-column:span 1}.tile-wide{flex-direction:row;grid-column:span 2}.tile-cta{background:var(--accent);grid-column:span 2;padding:26px}.tile-cover{border-bottom:1px solid var(--ink);background:#e7e1d5;flex-direction:column;justify-content:space-between;gap:12px;padding:18px 22px;display:flex}.tile-cover>span{font:12px var(--font-geist-mono), monospace;letter-spacing:1px;text-transform:uppercase}.tile-cover strong{font:56px var(--font-geist-mono), monospace;letter-spacing:-5px;align-self:center;transition:transform .25s}.tile-feature .tile-cover{background:#e7e1d5;flex:1;min-height:220px}.tile-feature .tile-cover strong{letter-spacing:-8px;font-size:96px}.blog-tile:nth-of-type(3) .tile-cover{background:var(--ink);color:var(--paper)}.blog-tile:nth-of-type(4) .tile-cover{background:#edac8b}.tile-wide .tile-cover{border-bottom:0;border-right:1px solid var(--ink);background:#dfdfd2;width:40%}.tile-wide .tile-cover strong{letter-spacing:-3px;font-size:40px}.tile-copy{flex-direction:column;flex:1;padding:20px 22px 22px;display:flex}.tile-copy h3{letter-spacing:-.6px;margin-top:14px;font-size:21px;font-weight:700;line-height:1.2}.tile-feature .tile-copy h3{letter-spacing:-1px;font-size:30px}.tile-copy>p,.tile-thoughts>p,.tile-cta>p{color:var(--muted);margin-top:12px;font-size:14px;line-height:1.7}.tile-small .tile-cover strong{font-size:44px}.tile-small .essay-meta{flex-direction:column;align-items:start;gap:8px}.thoughts-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.thoughts-head .eyebrow{color:var(--muted);margin:0}.portal-symbol{color:#b64b23;font-size:44px;line-height:1}.tile-thoughts h3,.tile-cta h3{letter-spacing:-.8px;margin-top:18px;font-size:26px;font-weight:750;line-height:1.15}.thought-list{margin-top:14px;padding:0;list-style:none}.thought-list li{border-top:1px solid var(--line);padding:12px 0;font-size:14px;line-height:1.6}.thought-list span{font:12px var(--font-geist-mono), monospace;color:var(--muted)}.tile-cta .eyebrow{margin-bottom:0}.tile-cta .essay-cta{font-size:14px}@media (hover:hover) and (pointer:fine){a.bento-tile:hover{box-shadow:7px 7px 0 var(--ink);transform:translate(-2px,-2px)}a.bento-tile:hover .tile-cover strong{transform:translateY(-4px)}a.bento-tile:hover .essay-cta>span{transform:translate(3px,-3px)}}@media (max-width:950px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-feature,.tile-thoughts,.tile-wide,.tile-cta{grid-column:span 2}.tile-feature{grid-row:span 1}}@media (max-width:560px){.bento{grid-template-columns:1fr;grid-auto-rows:auto}.bento-tile,.tile-feature,.tile-thoughts,.tile-wide,.tile-cta,.tile-small{grid-column:auto}.tile-wide{flex-direction:column}.tile-wide .tile-cover{border-right:0;border-bottom:1px solid var(--ink);width:auto}.tile-cover strong,.tile-feature .tile-cover strong{font-size:52px}.tile-feature .tile-cover{min-height:160px}}@media (prefers-reduced-motion:reduce){a.bento-tile:hover,a.bento-tile:hover .tile-cover strong{transform:none}}.contact-details{border-top:1px solid var(--line);margin-top:30px;padding-top:22px}.email-row{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.email-row .email-link{margin-top:0;font-size:15px}.copy-email{border:1px solid var(--ink);min-height:40px;font:12px var(--font-geist-mono), monospace;cursor:pointer;background:0 0;padding:8px 14px;transition:background .18s}.copy-email:hover{background:#fce4d7}.copy-email:focus-visible{outline-offset:3px;outline:3px solid #a43b13}.contact-meta{font:12px/1.7 var(--font-geist-mono), monospace;color:var(--muted);margin-top:14px}html.fullpage,html.fullpage body{height:100%;overflow:hidden}html.fullpage main#main{inset:var(--header-h,84px) 0 0;width:auto;margin:0;position:fixed}html.fullpage main>section{overscroll-behavior:contain;visibility:hidden;opacity:0;scrollbar-width:thin;scrollbar-color:var(--line) transparent;border-bottom:0;margin:0;padding:clamp(28px,6vh,72px) max(48px,50vw - 560px);position:absolute;inset:0;overflow-y:auto}html.fullpage main>section.is-active{visibility:visible;opacity:1;z-index:1}html.fullpage main>section:focus{outline:none}html.fullpage .hero,html.fullpage .experience,html.fullpage .about{align-content:safe center}html.fullpage .hero{padding-top:clamp(28px,6vh,72px)}html.fullpage #work,html.fullpage #notebook,html.fullpage #contact{flex-direction:column;justify-content:safe center;display:flex}html.fullpage .work-link{align-self:flex-start}html.fullpage .contact .footer{margin-top:auto;padding-top:40px}.contact .footer{border-top:1px solid var(--line);margin-top:48px;padding-inline:0}.page-curtain{z-index:40;background:var(--ink);color:var(--paper);pointer-events:none;will-change:transform;align-items:center;padding-inline:max(48px,50vw - 560px);display:none;position:fixed;inset:0;transform:translateY(100%)}html.fullpage .page-curtain{display:flex}.page-curtain:before{content:"";background:var(--accent);height:10px;position:absolute;left:0;right:0}.page-curtain[data-direction=up]:before{top:0}.page-curtain[data-direction=down]:before{bottom:0}.page-curtain-label{font:750 clamp(48px, 10vw, 140px)/.95 var(--font-geist-sans), sans-serif;letter-spacing:clamp(-6px,-.4vw,-2px);flex-direction:column;gap:18px;display:flex}.page-curtain-label b{font:400 clamp(14px, 1.4vw, 18px) var(--font-geist-mono), monospace;letter-spacing:3px;color:var(--accent)}.page-dots{display:none}html.fullpage .page-dots{z-index:20;flex-direction:column;align-items:center;gap:14px;display:flex;position:fixed;top:50%;right:max(14px,50vw - 640px);transform:translateY(-50%)}.page-dots button{border:1.5px solid var(--ink);background:var(--paper);cursor:pointer;width:12px;height:12px;padding:0;transition:background .18s,transform .18s;position:relative}.page-dots button:before{content:"";position:absolute;inset:-10px}.page-dots button[aria-current=true]{background:var(--accent);transform:rotate(45deg)}.page-dots button:focus-visible{outline-offset:4px;outline:3px solid #a43b13}.page-dot-label{background:var(--ink);color:var(--paper);font:12px var(--font-geist-mono), monospace;white-space:nowrap;opacity:0;pointer-events:none;padding:4px 8px;transition:opacity .16s;position:absolute;top:50%;right:24px;transform:translateY(-50%)}.page-dots button[aria-current=true] .page-dot-label{transform-origin:50%;transform:translateY(-50%)rotate(-45deg)}.page-dots button:hover .page-dot-label,.page-dots button:focus-visible .page-dot-label{opacity:1}.page-count{font:12px var(--font-geist-mono), monospace;color:var(--muted);writing-mode:vertical-rl;margin-top:6px}@media (max-width:1250px){html.fullpage .page-dots{right:14px}html.fullpage main>section{padding-right:max(64px,50vw - 560px)}}@media (max-width:700px){html.fullpage main>section{padding:28px 20px 64px}html.fullpage .page-dots{background:var(--paper);border:1px solid var(--ink);flex-direction:row;gap:10px;padding:6px 10px;top:auto;bottom:14px;right:14px;transform:none}.page-dots button{width:9px;height:9px}.page-dot-label{display:none}.page-count{writing-mode:horizontal-tb;margin:0 0 0 4px}.page-curtain{padding-inline:20px}}@media (prefers-reduced-motion:reduce){.page-dots button{transition:none}}@media (min-width:951px){html.fullpage .section-heading{margin-bottom:24px}html.fullpage .project-meta{margin-bottom:12px}html.fullpage .project-art{height:140px;margin-bottom:16px}html.fullpage .outcome-art{inset:36px 16px 12px}html.fullpage .signal-wave{height:60px;margin-top:36px}html.fullpage .kite-diamond{width:70px;height:70px;top:34px}html.fullpage .project-card h3{min-height:54px;font-size:22px}html.fullpage .project-card>p{min-height:0;margin:8px 0 14px}html.fullpage .project-tech{min-height:0;margin-bottom:14px}html.fullpage .project-link{margin-bottom:4px}html.fullpage .project-card summary{min-height:36px;padding-top:8px}html.fullpage .work-link{margin-top:14px}html.fullpage .experience{grid-template-columns:minmax(0,1fr) minmax(0,2.6fr);gap:48px}html.fullpage .experience>div:last-child{grid-template-columns:1fr 1fr;gap:0 36px;display:grid}html.fullpage .experience-row,html.fullpage .experience-row:first-child,html.fullpage .experience-row:last-child{border-bottom:1px solid var(--line);grid-template-columns:1fr;gap:6px;padding:18px 0}html.fullpage .experience-row{align-content:start}html.fullpage .experience-row:nth-child(-n+2){padding-top:0}html.fullpage .experience-row:nth-last-child(-n+2){border-bottom:0}html.fullpage .experience-description{margin:8px 0}html.fullpage .notebook .writing-heading{margin-bottom:14px}html.fullpage .bento{grid-auto-rows:minmax(110px,auto);gap:14px}html.fullpage .tile-feature .tile-cover strong{font-size:76px}html.fullpage .tile-small .tile-cover strong{font-size:34px}html.fullpage .tile-cover{padding:14px 18px}html.fullpage .tile-copy{padding:14px 18px 16px}html.fullpage .tile-thoughts,html.fullpage .tile-cta{padding:16px 22px}html.fullpage .tile-thoughts h3,html.fullpage .tile-cta h3{margin-top:12px;font-size:23px}html.fullpage .portal-symbol{font-size:34px}html.fullpage .notebook h2 br{display:none}html.fullpage .tile-small .essay-meta,html.fullpage .tile-small .tile-cover{flex-direction:row;align-items:center}html.fullpage .tile-small .tile-cover strong{align-self:auto}html.fullpage .tile-feature .tile-cover{min-height:120px}html.fullpage .tile-wide .tile-copy>p{display:none}html.fullpage .hero{row-gap:24px}html.fullpage .social-block{margin-top:22px}}.hover\:translate-x-1:hover{--tw-translate-x:.25rem;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))}.hover\:translate-x-\[-1px\]:hover{--tw-translate-x:-1px;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))}.hover\:translate-x-\[-2px\]:hover{--tw-translate-x:-2px;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))}.hover\:translate-x-\[-3px\]:hover{--tw-translate-x:-3px;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))}.hover\:translate-y-\[-1px\]:hover{--tw-translate-y:-1px;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))}.hover\:translate-y-\[-2px\]:hover{--tw-translate-y:-2px;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))}.hover\:translate-y-\[-3px\]:hover{--tw-translate-y:-3px;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))}.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.hover\:bg-blue-500:hover{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:text-orange-500:hover{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.active\:translate-x-\[1px\]:active{--tw-translate-x:1px;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))}.active\:translate-y-\[1px\]:active{--tw-translate-y:1px;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))}.group:hover .group-hover\:translate-x-1{--tw-translate-x:.25rem;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))}.group:hover .group-hover\:translate-y-\[-2px\]{--tw-translate-y:-2px;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))}@media (min-width:768px){.md\:mx-0{margin-left:0;margin-right:0}.md\:mb-10{margin-bottom:2.5rem}.md\:block{display:block}.md\:h-6{height:1.5rem}.md\:w-6{width:1.5rem}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-start{justify-content:flex-start}.md\:gap-10{gap:2.5rem}.md\:gap-4{gap:1rem}.md\:gap-5{gap:1.25rem}.md\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.md\:p-5{padding:1.25rem}.md\:p-6{padding:1.5rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:text-left{text-align:left}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-\[11px\]{font-size:11px}.md\:text-\[12px\]{font-size:12px}.md\:text-\[15px\]{font-size:15px}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}
