@font-face{font-family:switzer;src:url(../media/switzer_400-s.p.6f2693a7.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:switzer;src:url(../media/switzer_500-s.p.049e6315.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:switzer;src:url(../media/switzer_600-s.p.e86f99b2.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:switzer;src:url(../media/switzer_700-s.p.620fbf4a.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:switzer;src:url(../media/switzer_800-s.p.ff97d2c6.woff2)format("woff2");font-display:swap;font-weight:800;font-style:normal}@font-face{font-family:switzer;src:url(../media/switzer_900-s.p.4b4b21d3.woff2)format("woff2");font-display:swap;font-weight:900;font-style:normal}@font-face{font-family:switzer Fallback;src:local(Arial);ascent-override:96.67%;descent-override:24.66%;line-gap-override:8.88%;size-adjust:101.38%}.switzer_ab91e1d9-module__-RKwBa__className{font-family:switzer,switzer Fallback,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.switzer_ab91e1d9-module__-RKwBa__variable{--font-switzer:"switzer","switzer Fallback",-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}
@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{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-outline-style:solid;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--tracking-tight:-.025em;--tracking-wide:.025em;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-mono);--color-ink:#0a0a0a;--color-paper:#fff;--color-mute:#5a5a5a}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::-webkit-file-upload-button{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%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,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{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:transparent;border-radius:0}::-webkit-file-upload-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:transparent;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:transparent;border-radius:0}:where(select:-webkit-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:-moz-any([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:-webkit-any([multiple],[size])) optgroup option:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:-moz-any([multiple],[size])) optgroup option:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:is([multiple],[size])) optgroup option:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-left:20px}:where(select:-webkit-any([multiple],[size])) optgroup option:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:where(select:-moz-any([multiple],[size])) optgroup option:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:where(select:is([multiple],[size])) optgroup option:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-right:20px}:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::-webkit-file-upload-button{margin-right:4px}:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::file-selector-button{margin-right:4px}:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)))::file-selector-button{margin-right:4px}:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::-webkit-file-upload-button{margin-left:4px}:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::file-selector-button{margin-left:4px}:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))::file-selector-button{margin-left: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-top:0;padding-bottom:0}::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-month-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-day-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-hour-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-minute-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-second-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-millisecond-field{padding-top:0;padding-bottom:0}::-webkit-datetime-edit-meridiem-field{padding-top:0;padding-bottom:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button{-webkit-appearance:button;-moz-appearance:button;appearance:button}input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-file-upload-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance: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{.invisible{visibility:hidden}.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}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,-webkit-text-decoration-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))}}:root{--color-ink:#0a0a0a;--color-paper:#fff;--color-paper-soft:#f4f3ef;--color-mute:#5a5a5a;--color-rule:#0a0a0a;--color-accent:#d9352b;--color-signature:#ff0149;--font-display:var(--font-switzer),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-body:var(--font-switzer),-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--text-display-xl:clamp(96px,22vw,360px);--text-display-lg:clamp(84px,19vw,320px);--text-display-md:clamp(48px,12vw,200px);--text-title-lg:clamp(36px,5.5vw,84px);--text-title-md:clamp(28px,3.5vw,56px);--text-title-sm:clamp(20px,2.2vw,32px);--text-body-lg:clamp(18px,1.6vw,22px);--text-body-md:17px;--text-body-sm:14px;--text-ui-md:13px;--text-ui-sm:11px;--text-ui-xs:10px;--tracking-display:-.05em;--tracking-tight:-.025em;--tracking-normal:0em;--tracking-ui:.04em;--tracking-wide:.06em;--leading-display:.85;--leading-title:1.05;--leading-body:1.55;--leading-ui:1.3;--ease-out-expo:cubic-bezier(.22,1,.36,1);--ease-in-out-quad:cubic-bezier(.45,0,.55,1);--grid-pad:32px;--bar-height:28px;--corner-size:7px;--corner-inset:18px;--gap-xs:16px;--gap-sm:24px;--gap-md:32px;--gap-lg:56px;--gap-xl:80px;--gap-2xl:120px}@media (max-width:768px){:root{--grid-pad:20px}}@media (max-width:600px){:root{--gap-xs:12px;--gap-sm:18px;--gap-md:24px;--gap-lg:40px;--gap-xl:56px;--gap-2xl:80px}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--color-paper);color:var(--color-ink);font-feature-settings:"ss01","ss02","cv01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}:focus{outline:none}:focus-visible{outline:2px solid var(--color-ink);outline-offset:3px;border-radius:1px}.corner{width:var(--corner-size);height:var(--corner-size);background:var(--color-ink);z-index:100;pointer-events:none;position:fixed}.corner-tl{top:var(--corner-inset);left:var(--corner-inset)}.corner-tr{top:var(--corner-inset);right:var(--corner-inset)}.corner-bl{bottom:var(--corner-inset);left:var(--corner-inset)}.corner-br{bottom:var(--corner-inset);right:var(--corner-inset)}.info-bar{letter-spacing:.01em;height:var(--bar-height);z-index:50;-webkit-backdrop-filter:blur(8px);background:rgba(255,255,255,.85);grid-template-columns:1fr 2fr 1fr;align-items:center;padding:0 12px;font-size:11px;font-weight:500;display:grid;position:fixed;left:0;right:0}.info-bar.top{border-bottom:1px solid var(--color-ink);top:0}.info-bar.bottom{border-top:1px solid var(--color-ink);bottom:0}.info-bar .center{text-align:center}.info-bar .right{text-align:right}.info-bar a:hover{text-underline-offset:3px;text-decoration:underline}.hero{min-height:100vh;padding:60px var(--grid-pad)80px;flex-direction:column;justify-content:center;display:flex;position:relative}.hero h1{letter-spacing:var(--tracking-display);margin-bottom:24px;font-size:max(72px,min(14vw,240px));font-weight:900;line-height:.82}.hero h1 .nb{font-style:italic;font-weight:700}.hero .dot{font-weight:300}.hero .tagline{letter-spacing:-.01em;max-width:720px;margin-top:32px;font-size:max(16px,min(1.6vw,22px));font-weight:500;line-height:1.3}.hero .meta{color:var(--color-mute);flex-wrap:wrap;gap:32px;margin-top:48px;font-size:12px;font-weight:500;display:flex}.hero .meta a{transition:color .2s var(--ease-in-out-quad)}.hero .meta a:hover{color:var(--color-ink)}.section-label{letter-spacing:var(--tracking-ui);text-transform:uppercase;align-items:center;gap:8px;margin-bottom:32px;font-size:11px;font-weight:600;display:flex}.section-label:before{content:"";background:var(--color-ink);flex:none;width:7px;height:7px}.projects{padding:96px var(--grid-pad)120px;max-width:1280px;margin:0 auto}.project-grid{grid-template-columns:1fr;gap:16px;display:grid}.project-grid>*{display:flex}@media (min-width:640px){.project-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.project-grid{grid-template-columns:repeat(4,1fr)}}.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}.card{perspective:1000px;cursor:pointer;flex:1;min-height:440px;transition:box-shadow .2s,transform .2s;position:relative}.card:hover:not(.flipped){transform:translateY(-3px);box-shadow:0 8px 22px rgba(0,0,0,.08)}@keyframes card-peek{0%{transform:rotateY(0)}40%{transform:rotateY(24deg)}to{transform:rotateY(0)}}.card.peeking:not(.flipped) .card-inner{animation:1.4s cubic-bezier(.22,1,.36,1) .6s card-peek}.card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.22,1,.36,1);display:grid}.card.flipped .card-inner{transform:rotateY(180deg)}.card-front,.card-back{-webkit-backface-visibility:hidden;backface-visibility:hidden;background:var(--color-paper);color:var(--color-ink);border:1px solid var(--color-ink);flex-direction:column;grid-area:1/1;padding:32px;display:flex}.card-front{justify-content:flex-start}.card-back{transform:rotateY(180deg)}.status-dot{background:#00c853;border-radius:50%;width:8px;height:8px;animation:2.4s ease-in-out infinite status-pulse;position:absolute;top:16px;right:16px}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.55}}.card-tag{letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:500}.card-category{letter-spacing:.06em;text-transform:uppercase;color:var(--color-mute);font-size:11px;font-weight:500}.card-front-mid{flex-direction:column;margin-top:28px;display:flex}.card-title{letter-spacing:-.03em;margin-top:0;margin-bottom:20px;font-size:max(28px,min(4vw,32px));font-weight:700;line-height:1.02}.card-front .card-category{margin-top:8px}.card-front-desc{color:var(--color-ink);margin-top:28px;font-size:14px;font-weight:400;line-height:1.5}.card-front-proof{letter-spacing:.01em;color:var(--color-ink);margin-top:14px;font-size:13px;font-weight:600;line-height:1.4}.card-front-foot{justify-content:space-between;align-items:baseline;gap:16px;margin-top:auto;padding-top:24px;display:flex}.card-front-cs{letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink);font-size:11px;font-weight:600;transition:opacity .15s}.card-front-cs:hover{text-underline-offset:4px;text-decoration:underline}.flip-hint{letter-spacing:.05em;text-transform:uppercase;color:var(--color-mute);opacity:.7;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:11px;font-weight:500;transition:opacity .2s,color .2s}.card:hover:not(.flipped) .flip-hint{opacity:1;color:var(--color-ink)}.card-title-sm{letter-spacing:-.02em;font-size:20px;font-weight:700;line-height:1.05}.card-back-body{flex:1;margin-top:20px}.card-detail{color:var(--color-ink);font-size:14px;font-weight:400;line-height:1.5}.card-buttons{flex-direction:column;gap:8px;margin-top:18px;display:flex}.card-button{background:var(--color-paper);border:1px solid var(--color-ink);width:100%;color:var(--color-ink);letter-spacing:.05em;text-transform:uppercase;text-align:center;cursor:pointer;border-radius:0;padding:14px 20px;font-size:13px;font-weight:600;transition:background .18s,color .18s;display:block}.card-button:hover{background:var(--color-ink);color:var(--color-paper)}.about{padding:100px var(--grid-pad);border-top:1px solid var(--color-ink);grid-template-columns:1fr 2fr;gap:80px;display:grid}.about h2{letter-spacing:-.035em;font-size:max(40px,min(6vw,84px));font-weight:800;line-height:.9}.about .bio{max-width:640px;font-size:17px;line-height:1.55}.about .bio p{margin-bottom:20px}.about .bio p:first-child{letter-spacing:-.015em;font-size:22px;font-weight:500}.about .bio a:hover{text-underline-offset:4px;text-decoration:underline}.about .credentials{color:var(--color-mute);margin-top:32px;font-size:12px;line-height:1.7}.contact{padding:120px var(--grid-pad)80px;border-top:1px solid var(--color-ink)}.contact h2{letter-spacing:var(--tracking-display);margin-bottom:48px;font-size:max(64px,min(12vw,200px));font-weight:900;line-height:.82}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px;font-size:13px;line-height:1.6;display:grid}.contact-grid .label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-mute);margin-bottom:6px;font-size:10px;font-weight:600}.contact-grid a:hover{text-underline-offset:4px;text-decoration:underline}.hero-cascade{text-align:center;padding:120px var(--grid-pad)0;flex-direction:column;align-items:center;display:flex}@media (max-width:600px){.hero-cascade{padding:80px var(--grid-pad)0}.projects{padding-top:64px}}.hero-bio-wrap{max-width:1280px;padding:0 var(--grid-pad);margin:96px auto 0}.hero-bio{text-align:center;max-width:640px;margin:0 auto;font-size:18px;line-height:1.65}.hero-bio p{margin:0}.hero-bio p+p{margin-top:var(--gap-sm)}.hero-bio a:hover{text-underline-offset:4px;text-decoration:underline}@media (max-width:600px){.hero-bio-wrap{margin-top:64px}}.hero-dot{background:var(--color-signature);border-radius:50%;width:18px;height:18px;margin-bottom:44px;display:block}.pink-dot-signature{justify-content:center;align-items:center;width:100%;padding:48px 0;display:flex}.pink-dot{background-color:var(--color-signature);border-radius:50%;width:18px;height:18px;display:block}@media (max-width:600px){.pink-dot-signature{padding:32px 0}.pink-dot{width:14px;height:14px}}.hero-cascade .line{font-weight:900;line-height:.9;display:block}.hero-cascade .line-1{letter-spacing:-.045em;font-size:max(72px,min(14vw,220px))}.hero-cascade .line-2{letter-spacing:-.04em;font-size:max(48px,min(9vw,140px))}.hero-cascade .hero-cue{font-size:var(--text-ui-md);color:var(--color-mute);margin-top:40px;font-weight:500;transition:color .2s}.hero-cascade .hero-cue:hover{color:var(--color-ink)}.case-figure{border-top:1px solid var(--color-ink);border-bottom:1px solid var(--color-ink);padding:var(--gap-md)0;margin:var(--gap-xl)0;text-align:center;overflow-x:auto}.case-figure img{width:100%;max-width:800px;height:auto;margin:0 auto;display:block}.case-figure figcaption{color:var(--color-mute);margin-top:16px;font-size:12px}.case-study-diagram{border-top:1px solid var(--color-ink);border-bottom:1px solid var(--color-ink);padding:var(--gap-md)0;margin:var(--gap-xl)0 0;text-align:center}.case-study-diagram svg{width:100%;max-width:800px;height:auto;margin:0 auto;display:block}.case-study-diagram figcaption{color:var(--color-mute);margin-top:16px;font-size:12px;font-weight:500}.live-box{border:1px solid var(--color-ink);letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink);align-items:center;gap:8px;padding:14px 24px;font-size:13px;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.live-box:hover{background:var(--color-ink);color:var(--color-paper)}.availability-note{font-size:var(--text-body-md);line-height:var(--leading-body);color:var(--color-ink)}.information{padding:64px var(--grid-pad)80px;border-top:1px solid var(--color-ink)}.information-footer{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:40px;font-size:13px;line-height:1.6;display:grid}.information-footer .label{font-size:var(--text-ui-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-mute);margin-bottom:6px;font-weight:600}.information-footer a:hover{text-underline-offset:4px;text-decoration:underline}.case{padding:0 0 60px}.case-hero{text-align:center;padding:var(--gap-2xl)var(--grid-pad)0;background:var(--color-paper);color:var(--color-ink);flex-direction:column;align-items:center;display:flex}.case-hero-title{letter-spacing:-.02em;max-width:1100px;font-size:max(36px,min(5vw,56px));font-weight:700;line-height:1.1}.case-hero-tag{margin-top:var(--gap-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-ink);opacity:.6;font-size:13px;font-weight:500}.case-hero-desc{margin-top:var(--gap-md);max-width:640px;font-size:16px;font-weight:500;line-height:1.6}.case-content{padding:var(--gap-xl)var(--grid-pad)0}.key-stats{border-top:1px solid var(--color-ink);border-bottom:1px solid var(--color-ink);margin-bottom:var(--gap-xl);grid-template-columns:repeat(5,1fr);gap:24px;padding:24px 0;display:grid}.key-stats-row{flex-direction:column;gap:6px;display:flex}.key-stats-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink);opacity:.6;font-size:11px;font-weight:500}.key-stats-value{color:var(--color-ink);font-size:14px;font-weight:500;line-height:1.35}@media (max-width:1023px){.key-stats{grid-template-columns:repeat(2,1fr);gap:16px}}@media (max-width:639px){.key-stats{grid-template-columns:1fr;gap:16px}}.interactive-diagram{flex-direction:column;display:flex}.interactive-diagram-svg svg{width:100%;max-width:800px;height:auto;margin:0 auto;display:block}.interactive-diagram-tooltip{border-top:1px solid var(--color-ink);min-height:80px;margin-top:20px;padding:16px 0 0}.tooltip-label{letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:600}.tooltip-detail{max-width:720px;margin-top:8px;font-size:14px;line-height:1.5}.tooltip-empty{opacity:.5;font-size:13px}.case-prose-wrap{max-width:720px;margin:0 auto}.case-hook{font-size:var(--text-body-lg);letter-spacing:-.015em;font-weight:500;line-height:1.45}.case-hook p{margin-bottom:var(--gap-xs)}.case-section{border-top:1px solid var(--color-ink);margin-top:var(--gap-xl);padding-top:var(--gap-md)}.case-section-label{font-size:var(--text-ui-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-mute);margin-bottom:var(--gap-sm);align-items:center;gap:8px;font-weight:600;display:flex}.case-section-label:before{content:"";background:var(--color-ink);flex:none;width:7px;height:7px}.case-prose{font-size:var(--text-body-md);line-height:var(--leading-body)}.case-prose p{margin-bottom:var(--gap-xs)}.case-prose p:last-child{margin-bottom:0}.case-diagram{margin:4px 0 24px;overflow-x:auto}.case-footer{border-top:1px solid var(--color-ink);margin:var(--gap-xl)auto 0;padding-top:var(--gap-md);grid-template-columns:1fr 1fr;gap:40px;max-width:720px;display:grid}.case-footer .label{font-size:var(--text-ui-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-mute);margin-bottom:10px;font-weight:600}.case-footer .stack-items{font-size:13px;line-height:1.7}.case-footer .links{flex-direction:column;gap:8px;font-size:13px;display:flex}.case-footer .links a{border-bottom:1px solid transparent;width:-moz-fit-content;width:fit-content;font-weight:600;transition:border-color .2s}.case-footer .links a:hover{border-bottom-color:var(--color-ink)}.case-nav{border-top:1px solid var(--color-ink);font-size:var(--text-ui-md);grid-template-columns:1fr 1fr;align-items:center;gap:24px;margin-top:64px;padding:32px 0 0;font-weight:600;display:grid}.case-nav .cn-prev{align-items:center;gap:8px;transition:opacity .2s;display:flex}.case-nav .cn-prev:before{content:"";background:var(--color-ink);flex:none;width:7px;height:7px}.case-nav .cn-next{text-align:right;justify-content:flex-end;align-items:center;gap:8px;transition:opacity .2s;display:flex}.case-nav .cn-next:after{content:"";background:var(--color-ink);flex:none;width:7px;height:7px}.case-nav a:hover{opacity:.55}.placeholder{min-height:100vh;padding:60px var(--grid-pad)80px;flex-direction:column;justify-content:center;display:flex}.placeholder h1{letter-spacing:var(--tracking-display);margin-bottom:24px;font-size:max(48px,min(9vw,140px));font-weight:900;line-height:.86}.placeholder p{max-width:560px;color:var(--color-mute);margin-bottom:32px;font-size:max(16px,min(1.6vw,20px));font-weight:500;line-height:1.4}.placeholder a.home{text-transform:uppercase;letter-spacing:var(--tracking-ui);border-bottom:1px solid var(--color-ink);width:-moz-fit-content;width:fit-content;padding-bottom:2px;font-size:13px;font-weight:600}.writing{padding:120px var(--grid-pad)100px}.writing-list{border-top:1px solid var(--color-ink);max-width:860px}.writing-item{border-bottom:1px solid rgba(10,10,10,.12);grid-template-columns:72px 1fr;gap:24px;padding:30px 0;display:grid}.writing-item .yr{color:var(--color-mute);padding-top:4px;font-size:12px;font-weight:600}.writing-item .ttl{letter-spacing:var(--tracking-tight);font-size:24px;font-weight:800;line-height:1.15;transition:opacity .2s}.writing-item a:hover .ttl{opacity:.55}.writing-item .sum{color:#2a2a2a;max-width:580px;margin-top:8px;font-size:14px;line-height:1.5}.writing-item .ext{text-transform:uppercase;letter-spacing:.08em;color:var(--color-mute);margin-top:10px;font-size:10px}.article{padding:96px var(--grid-pad)100px}.article h1{letter-spacing:var(--tracking-display);max-width:920px;margin-bottom:28px;font-size:max(32px,min(5vw,64px));font-weight:900;line-height:1.02}.article .updated{color:var(--color-mute);text-transform:uppercase;letter-spacing:.06em;margin-bottom:36px;font-size:12px}.article-prose{max-width:720px;font-size:17px;line-height:1.65}.article-prose p{margin-bottom:22px}.article-prose .lead{letter-spacing:-.015em;font-size:21px;font-weight:500;line-height:1.45}.article-prose h2{letter-spacing:var(--tracking-tight);margin:40px 0 16px;font-size:22px;font-weight:800}.article-prose a{border-bottom:1px solid var(--color-ink);transition:opacity .2s}.article-prose a:hover{opacity:.6}.article-prose .stack-line{margin-bottom:6px}.article-prose .stack-line strong{font-weight:600}@media (max-width:768px){.about{grid-template-columns:1fr;gap:40px}.info-bar{font-size:10px}.info-bar.top,.info-bar.bottom{grid-template-columns:1fr 1fr}.info-bar .center{display:none}.hero{padding:80px var(--grid-pad)60px}.case-footer{grid-template-columns:1fr;gap:28px}.case-nav{gap:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.card-inner{transform:none!important}.card-front,.card-back{-webkit-backface-visibility:visible;backface-visibility:visible;transition:opacity .2s!important}.card-back{opacity:0;pointer-events:none;transform:none}.card.flipped .card-front{opacity:0;pointer-events:none}.card.flipped .card-back{opacity:1;pointer-events:auto}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
