/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--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{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.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}.relative{position:relative}.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}}.grid{display:grid}.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,)}.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))}}:root{--font-geist:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--font-geist-mono:"SFMono-Regular","SF Mono",Menlo,Monaco,Consolas,monospace;--page:#fff;--ink:#0b0b0d;--muted:#68686d;--line:#0a0a0c1f;--soft-line:#0a0a0c11;--grid-mark:#0a0a0c1f;--surface:#fff;--surface-raised:#ffffffe0;--shadow:0 18px 44px #0f0f1221,0 3px 10px #0f0f120f;--blue:#2589ef;--green:#30ad73;--amber:#ffad22;--teal:#75d6c2;--dark-page:#f5f5f3;--dark-card:#fff;--dark-ink:#111113;--dark-muted:#68686d;--dark-line:#0a0a0c1f;--gallery-hover:#fafaf9;--gallery-hover-line:#0a0a0c3d;--gallery-strong-line:#0a0a0c75;--nav-bg:#fffc;--nav-ink:#161619;--radius:14px;--motion:.18s;--spatial-angle:7deg}html[data-theme=dark]{--page:#0a0a0b;--ink:#f2f2f2;--muted:#9b9ba0;--line:#ffffff24;--soft-line:#ffffff12;--grid-mark:#ffffff2b;--surface:#121214;--surface-raised:#141416db;--shadow:0 18px 48px #00000073,0 3px 12px #00000052;--nav-bg:#161618d1;--nav-ink:#f4f4f4;--dark-page:#09090a;--dark-card:#111113;--dark-ink:#f4f4f4;--dark-muted:#919197;--dark-line:#ffffff1c;--gallery-hover:#151517;--gallery-hover-line:#ffffff3d;--gallery-strong-line:#ffffff8c}html[data-disable-transitions=true] *,html[data-disable-transitions=true] :after,html[data-disable-transitions=true] :before{transition:none!important}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--page);color:var(--ink);font-family:var(--font-geist),Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color var(--motion) ease,color var(--motion) ease;margin:0;font-weight:400}a,body,button{-webkit-tap-highlight-color:transparent}a,button{font:inherit}a,button{color:inherit}a{text-decoration:none}img{-webkit-user-select:none;user-select:none}::selection{color:inherit;background:#2589ef3d}:focus-visible{box-shadow:0 0 0 2px var(--page),0 0 0 4px var(--blue);outline:none}.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}.about-lists li span,.case-study-index,.case-study-meta,.case-study-tags,.home-handle,.home-tech,.identity-card dd,.identity-card dt,.map-meta,.mono-label,.project-card-copy dl,.timeline-row time{font-family:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}.floating-nav{z-index:80;left:50%;bottom:max(24px,env(safe-area-inset-bottom));border:1px solid var(--line);background:var(--nav-bg);color:var(--nav-ink);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(1.25);border-radius:999px;align-items:center;gap:4px;padding:8px;display:flex;position:fixed;transform:translate(-50%)}.nav-action{color:currentColor;cursor:pointer;-webkit-user-select:none;user-select:none;width:42px;height:42px;transition:background-color var(--motion) ease,color var(--motion) ease,transform .12s ease;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.nav-action:active{transform:scale(.96)}.nav-action[data-active]{background:var(--ink);color:var(--page)}.nav-divider{background:var(--line);width:1px;height:22px;margin:0 3px}.theme-icons{place-items:center;display:grid}.theme-icons>svg{grid-area:1/1}.theme-icon-dark,html[data-theme=dark] .theme-icon-light{display:none}html[data-theme=dark] .theme-icon-dark{display:block}.nav-dot{background:currentColor;border-radius:50%;width:4px;height:4px;margin-left:-2px;bottom:-5px}.nav-dot,.nav-tooltip{position:absolute;left:50%}.nav-tooltip{color:#fff;opacity:0;pointer-events:none;white-space:nowrap;background:#0c0c0d;border-radius:7px;padding:6px 9px;font-size:11px;line-height:1;transition:opacity .14s,transform .14s;bottom:calc(100% + 10px);transform:translate(-50%,4px)}.mobile-more,.mobile-nav{display:none}.lofi-trigger{display:flex}.lofi-panel{z-index:82;left:50%;bottom:calc(max(24px, env(safe-area-inset-bottom)) + 66px);width:min(360px,100vw - 32px);box-shadow:var(--shadow);opacity:0;visibility:hidden;pointer-events:none;background:#090909;border:0;border-radius:15px;padding:0;transition:opacity .16s,transform .16s,visibility .16s;position:fixed;transform:translate(-50%,8px)scale(.98)}.lofi-panel[data-open]{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)scale(1)}.lofi-panel iframe{filter:invert()hue-rotate(180deg);background:#090909;border:0;border-radius:15px;width:100%;height:64px;display:block}html:not([data-theme=dark]) .lofi-panel{background:#f6f6f6}html[data-theme=dark] .lofi-panel iframe{filter:none}@media (hover:hover){.nav-action:hover{background:#7f7f7f21;transform:translateY(-1px)}.nav-action[data-active]:hover{background:var(--ink)}.nav-action:focus-visible .nav-tooltip,.nav-action:hover .nav-tooltip{opacity:1;transform:translate(-50%)}}.project-map{--grid-unit:32px;background-color:var(--page);touch-action:none;overscroll-behavior:none;height:100svh;min-height:650px;position:relative;overflow:hidden}.map-grid{z-index:0;pointer-events:none;display:block;position:absolute;inset:0}.map-grid path{fill:none;stroke:var(--grid-mark);stroke-width:.8px;vector-effect:non-scaling-stroke}.map-world{z-index:1;transform-origin:50%;transition:transform .1s linear;position:absolute;inset:0;transform:translate(0)scale(1)}.spatial-stage{width:1440px;height:900px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-meta{z-index:12;letter-spacing:.015em;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:11px;position:absolute}.map-time{left:30px}.map-mode,.map-time{color:var(--ink);top:28px}.map-mode{right:30px}.map-mode span{margin-left:16px}.map-location{bottom:30px;left:30px}.map-updated{bottom:30px;right:30px}.trail-layer{pointer-events:none}.cursor-tile{--tile-color:#2589ef;fill:var(--tile-color);opacity:0}.cursor-tile.tile-live{animation:tile-life var(--tile-life,1.1s) ease-out forwards}@keyframes tile-life{0%{opacity:0}12%{opacity:.62}64%{opacity:.3}to{opacity:0}}.wordmark-wrap{z-index:2;width:1120px;transform:translate(-50%,-50%) rotate(var(--spatial-angle));pointer-events:none;position:absolute;top:45%;left:50%}.block-wordmark{font-family:Arial Black,var(--font-geist),sans-serif;letter-spacing:-.105em;font-size:13.5rem;font-weight:900;line-height:.72;transform:scaleX(.96)}.block-wordmark,.home-copy{color:var(--ink);text-align:center;margin:0}.home-copy{z-index:4;left:50%;bottom:calc(max(24px, env(safe-area-inset-bottom)) + 76px);width:min(760px,100vw - 32px);position:absolute;transform:translate(-50%)}.home-copy p,.mobile-intro p{margin:0}.home-handle{letter-spacing:-.02em;font-size:14px}.home-role{letter-spacing:-.04em;font-size:clamp(20px,1.7vw,30px);font-weight:560;line-height:1.1;margin-top:14px!important}.home-tech{margin-top:12px!important}.home-tagline,.home-tech{color:var(--muted);font-size:13px}.home-tagline{margin-top:14px!important}.map-node{--drag-x:0px;--drag-y:0px;z-index:4;pointer-events:auto;cursor:grab;touch-action:none;transform:translate3d(var(--drag-x),var(--drag-y),0);display:block;position:absolute}.map-node[data-dragging]{z-index:10;cursor:grabbing}.map-node[data-settling]{transition:transform .16s cubic-bezier(.2,.8,.2,1)}.artifact-plane{z-index:3;transform:rotate(var(--spatial-angle));transform-origin:0 0;pointer-events:none;position:absolute;inset:0}.map-node-surface{border:1px solid var(--line);background:var(--surface);width:100%;height:100%;color:var(--ink);box-shadow:var(--shadow);filter:grayscale()saturate(0);border-radius:2px;transition:filter .38s,transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s;position:relative;overflow:hidden;transform:translateY(0)}.node-projects{left:calc(var(--grid-unit) * 5);width:calc(var(--grid-unit) * 8);height:calc(var(--grid-unit) * 6);top:0}.node-lab{left:calc(var(--grid-unit) * 20);top:calc(var(--grid-unit) * -1)}.node-lab,.node-timeline{width:calc(var(--grid-unit) * 7);height:calc(var(--grid-unit) * 5)}.node-timeline{left:calc(var(--grid-unit) * 33);top:calc(var(--grid-unit) * -2)}.node-contact{left:calc(var(--grid-unit) * 5);top:calc(var(--grid-unit) * 18);width:calc(var(--grid-unit) * 8)}.node-about,.node-contact{height:calc(var(--grid-unit) * 5)}.node-about{left:calc(var(--grid-unit) * 31);top:calc(var(--grid-unit) * 16);width:calc(var(--grid-unit) * 7)}.map-hover-label{z-index:18;opacity:0;pointer-events:none;width:1px;height:1px;transition:opacity .12s;position:absolute;top:0;left:0}.map-hover-label[data-visible]{opacity:1}.map-hover-label span{color:var(--ink);font-family:var(--font-geist-mono),monospace;white-space:nowrap;font-size:10px;position:absolute;bottom:76px;left:7px}.map-hover-label i{background:var(--ink);width:1px;height:66px;position:absolute;bottom:5px;left:0}@supports (color:color-mix(in lab,red,red)){.map-hover-label i{background:color-mix(in srgb,var(--ink) 70%,transparent)}}.map-hover-label:after{content:"";background:var(--ink);width:7px;height:7px;position:absolute;top:-3px;left:-3px;transform:rotate(45deg)}@media (hover:hover){.map-node:hover{z-index:8}.map-node:focus-visible .map-node-surface,.map-node:hover .map-node-surface{filter:grayscale(0)saturate();transform:translateY(-6px);box-shadow:0 24px 36px #19191c38,0 7px 14px #19191c1a}.map-node[data-dragging] .map-node-surface{filter:grayscale(0)saturate();transform:translateY(-6px);box-shadow:0 25px 40px #19191c3d,0 8px 16px #19191c1f}}.projects-artifact{background:var(--surface);grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:100%;height:100%;padding:6px;display:grid}.projects-artifact span{background:var(--surface);min-width:0;min-height:0;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.projects-artifact span{background:color-mix(in srgb,var(--surface) 88%,var(--ink))}}.projects-artifact img{object-fit:cover}.lab-artifact{background:var(--surface);width:100%;height:100%;position:relative;overflow:hidden}.lab-artifact img{object-fit:cover}.lab-artifact span{color:#fff;font-family:var(--font-geist-mono);letter-spacing:.08em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08080aad;border:1px solid #ffffff3d;border-radius:999px;padding:4px 6px;font-size:7px;position:absolute;bottom:8px;right:9px}.timeline-artifact{align-content:center;gap:10px;display:grid;position:absolute;inset:16px}.timeline-artifact span{grid-template-columns:7px 1fr auto;align-items:center;gap:7px;display:grid}.timeline-artifact i{border:1px solid var(--blue);background:var(--surface);border-radius:50%;width:7px;height:7px}.timeline-artifact b{background:var(--ink);height:1px;display:block}.timeline-artifact em{color:#2589ef;font-family:var(--font-geist-mono);font-size:7px;font-style:normal}.contact-artifact,.profile-artifact{font-family:var(--font-geist-mono),monospace;flex-direction:column;justify-content:center;display:flex;position:absolute;inset:16px;overflow:hidden}.profile-artifact b{background:var(--ink);width:32px;height:32px;color:var(--page);border-radius:50%;place-items:center;margin-bottom:9px;font-size:10px;display:grid}.profile-artifact span{letter-spacing:.03em;font-size:10px}.profile-artifact small{color:#a5a5aa;margin-top:5px;font-size:8px}.artifact-accent{gap:3px;margin-top:12px;display:flex}.artifact-accent i{background:var(--blue);width:24px;height:4px}.artifact-accent i:nth-child(2){background:var(--green)}.artifact-accent i:nth-child(3){background:var(--amber)}.contact-artifact span{color:#6fd6a5;margin-bottom:7px;font-size:11px}.contact-artifact small{color:var(--muted);margin-bottom:8px;font-size:7px}.contact-artifact i{background:var(--ink);width:72%;height:1px;margin:3px 0}@supports (color:color-mix(in lab,red,red)){.contact-artifact i{background:color-mix(in srgb,var(--ink) 48%,transparent)}}.contact-artifact b{color:#6fd6a5;margin-top:8px;font-size:8px;font-weight:400}.mobile-home{display:none}.dark-page{background:var(--dark-page);min-height:100svh;color:var(--dark-ink);padding:34px 34px 120px}.page-header{margin-bottom:24px}.page-header h1{letter-spacing:-.055em;margin:0;font-size:clamp(28px,3vw,42px);line-height:1}.page-header p{color:var(--dark-muted);margin:9px 0 0;font-size:14px}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(335px,42vh);gap:12px;display:grid}.project-card{border-radius:var(--radius);background:var(--dark-card);border:1px solid var(--dark-line);min-width:0;box-shadow:0 8px 22px var(--dark-ink);overflow:hidden}@supports (color:color-mix(in lab,red,red)){.project-card{box-shadow:0 8px 22px color-mix(in srgb,var(--dark-ink) 7%,transparent)}}.project-card-link{flex-direction:column;height:100%;min-height:335px;display:flex}.project-card-media{background:var(--dark-card);flex:1;min-height:230px;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.project-card-media{background:color-mix(in srgb,var(--dark-card) 90%,var(--dark-ink))}}.project-card-media img{object-fit:cover;transition:transform .32s cubic-bezier(.2,.8,.2,1),filter .2s}.project-card-action{border:1px solid var(--line);background:var(--surface-raised);color:var(--ink);opacity:0;transition:opacity var(--motion) ease,transform var(--motion) ease;border-radius:7px;align-items:center;gap:5px;padding:7px 10px;font-size:11px;display:flex;position:absolute;bottom:14px;right:14px;transform:translateY(4px)}.project-card-copy{justify-content:space-between;gap:20px;min-height:94px;padding:15px 16px;display:flex}.project-card-copy h2{letter-spacing:-.025em;margin:0;font-size:15px;line-height:1.2}.project-card-copy p{max-width:520px;color:var(--dark-muted);margin:7px 0 0;font-size:11px;line-height:1.45}.project-card-copy dl{color:var(--dark-muted);flex:none;align-items:flex-start;gap:14px;margin:0;font-size:10px;display:flex}@media (hover:hover){.project-card{transition:transform var(--motion) ease,border-color var(--motion) ease,background var(--motion) ease}.project-card:hover{border-color:var(--gallery-hover-line);background:var(--gallery-hover);transform:translateY(-4px)}.project-card:hover img{filter:brightness(1.07);transform:scale(1.022)}.project-card:hover .project-card-action{opacity:1;transform:translateY(0)}}.lab-grid{grid-template-columns:1.05fr 1.05fr .95fr;grid-auto-rows:minmax(230px,37vh);gap:6px;display:grid}.lab-tile{cursor:pointer;text-align:left;background:#141416;border:0;min-height:230px;padding:0;position:relative;overflow:hidden}.lab-tile img{object-fit:cover;transition:transform .26s cubic-bezier(.2,.8,.2,1),filter .2s}.lab-tile-caption{color:#fff;opacity:0;transition:opacity var(--motion) ease,transform var(--motion) ease;background:linear-gradient(#0000,#000000c7);align-items:center;gap:7px;padding:30px 14px 13px;font-size:11px;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(4px)}.lab-tile-caption b{font-weight:560}.lab-tile-caption i{color:#777;font-style:normal}.lab-tile-caption span{color:#b7b7bb}.lab-tile-caption svg{margin-left:auto}@media (hover:hover){.lab-tile:hover img{filter:brightness(1.05);transform:scale(1.015)}.lab-tile:hover .lab-tile-caption{opacity:1;transform:translateY(0)}}.rits-labs{border-top:1px solid var(--dark-line);margin-top:clamp(90px,13vw,180px);padding-top:30px}.rits-labs-header{grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);align-items:end;gap:70px;margin:0 2px 34px;display:grid}.rits-labs-header p{color:var(--dark-muted);margin:0;font-size:13px;line-height:1.65}.rits-labs-header>div>p{font-family:var(--font-geist-mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;font-size:10px}.rits-labs-header h2{color:var(--dark-ink);letter-spacing:-.06em;margin:0;font-size:clamp(36px,5vw,72px);line-height:.95}.rits-labs-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.rits-lab-card{border:1px solid var(--dark-line);background:var(--dark-page);min-width:0;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.rits-lab-card{background:color-mix(in srgb,var(--dark-page) 92%,var(--dark-ink))}}.rits-lab-card{color:var(--dark-ink)}.rits-lab-media{aspect-ratio:16/10;background:#101012;position:relative;overflow:hidden}.rits-lab-media img{object-fit:cover;transition:transform .2s,filter .2s}.rits-lab-media[data-fit=contain] img{object-fit:contain}.rits-lab-media>span{color:#fff;font-family:var(--font-geist-mono);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a0cb8;border-radius:999px;padding:5px 7px;font-size:8px;position:absolute;top:10px;left:10px}.rits-lab-copy{grid-template-columns:minmax(0,1fr) auto;gap:9px 18px;min-height:170px;padding:17px;display:grid}.rits-lab-copy>div>p{color:var(--dark-muted);font-family:var(--font-geist-mono);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;font-size:8px}.rits-lab-copy h3{letter-spacing:-.035em;max-width:24ch;margin:0;font-size:17px;line-height:1.15}.rits-lab-copy>p{max-width:39ch;color:var(--dark-muted);grid-column:1/-1;align-self:end;margin:0;font-size:11px;line-height:1.55}@media (hover:hover){.rits-lab-card:hover .rits-lab-media img{filter:brightness(1.06);transform:scale(1.018)}.rits-lab-card:hover{border-color:var(--dark-ink)}@supports (color:color-mix(in lab,red,red)){.rits-lab-card:hover{border-color:color-mix(in srgb,var(--dark-ink) 28%,transparent)}}}.lab-modal-backdrop{z-index:120;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#000000d1;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.lab-modal{color:#fff;background:#111113;border:1px solid #ffffff29;border-radius:16px;width:min(1100px,94vw);max-height:91svh;overflow:auto;box-shadow:0 32px 80px #000000a6}.modal-close{z-index:3;color:#fff;cursor:pointer;background:#0a0a0bb8;border:1px solid #ffffff2e;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute;top:42px;right:42px}.lab-modal-image{aspect-ratio:16/9;background:#09090a;border-radius:15px 15px 0 0;position:relative;overflow:hidden}.lab-modal-image img{object-fit:contain}.lab-modal-copy{justify-content:space-between;gap:40px;padding:24px;display:flex}.lab-modal-copy h2{letter-spacing:-.04em;margin:0;font-size:24px}.lab-modal-copy p{color:#a8a8ad;max-width:590px;margin:8px 0 0;font-size:14px;line-height:1.55}.lab-modal-copy dl{grid-template-columns:repeat(3,auto);gap:24px;margin:0;display:grid}.lab-modal-copy dt{font-family:var(--font-geist-mono);color:#777;text-transform:uppercase;font-size:9px}.lab-modal-copy dd{margin:5px 0 0;font-size:11px}.timeline-page{place-items:center;display:grid}.timeline-shell{width:min(820px,88vw);margin:-3vh auto 0}.timeline-header{margin-bottom:42px}.timeline-header h1{font-family:var(--font-geist-mono);margin:0;font-size:20px;font-weight:500}.timeline-header p{color:var(--dark-muted);font-family:var(--font-geist-mono);margin:9px 0 0;font-size:12px}.timeline-list{gap:4px;display:grid}.timeline-row{min-height:65px;transition:color var(--motion) ease,transform var(--motion) ease;border-radius:4px;grid-template-columns:auto auto minmax(60px,1fr) auto;align-items:center;gap:10px;padding:9px 0;display:grid;position:relative}.timeline-arrow{opacity:0;transition:opacity var(--motion) ease,transform var(--motion) ease;position:absolute;right:calc(100% + 18px);transform:translate(-5px)}.timeline-title{white-space:nowrap;letter-spacing:-.02em;font-size:14px;font-weight:560}.timeline-description{color:var(--dark-muted);white-space:nowrap;font-size:12px}.timeline-leader{background:var(--dark-line);transform-origin:0;height:1px;transition:background var(--motion) ease,transform var(--motion) ease}.timeline-row time{color:var(--dark-muted);font-size:12px}@media (hover:hover){.timeline-row:hover{color:var(--dark-ink);transform:translate(4px)}.timeline-row:hover .timeline-arrow{opacity:1;transform:translate(0)}.timeline-row:hover .timeline-leader{background:var(--gallery-strong-line);transform:scaleX(1.04)}}.case-study,.editorial-page{background-color:var(--page);min-height:100svh;color:var(--ink);background-image:radial-gradient(circle at 89% 8%,var(--soft-line) 0 1px,transparent 1.3px);background-size:32px 32px;padding:72px max(7vw,38px) 140px}.about-grid{grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);align-items:center;gap:clamp(50px,8vw,130px);max-width:1320px;margin:0 auto;display:grid}.block-page-title{font-family:Arial Black,var(--font-geist),sans-serif;letter-spacing:-.08em;margin:0 0 26px;font-size:clamp(74px,10vw,148px);font-weight:900;line-height:.78}.about-lead{letter-spacing:-.045em;max-width:820px;margin:0;font-size:clamp(25px,3vw,45px);font-weight:520;line-height:1.12}.about-support{max-width:740px;color:var(--muted);margin:24px 0 0;font-size:16px;line-height:1.5}.identity-card{border:1px solid var(--line);background:var(--surface-raised);min-width:0;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:32px;overflow:hidden;transform:rotate(4deg)}.identity-mark{background:var(--ink);width:48px;height:48px;color:var(--page);font-family:var(--font-geist-mono);place-items:center;margin-bottom:24px;font-size:12px;display:grid}.identity-card dl{margin:0}.identity-card dl>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding:10px 0;display:flex}.identity-card dt{color:var(--muted);font-size:10px}.identity-card dd{text-align:right;margin:0;font-size:11px}.identity-tiles{grid-template-columns:repeat(14,minmax(0,1fr));gap:3px;width:100%;min-width:0;margin-top:30px;display:grid;overflow:hidden}.identity-tiles i{aspect-ratio:1;background:var(--blue);min-width:0;display:block}.identity-tiles i:nth-child(n+5):nth-child(-n+10){background:var(--green)}.identity-tiles i:nth-child(n+11){background:var(--amber)}.about-lists{border-top:1px solid var(--line);grid-template-columns:1fr 1fr 1.25fr;max-width:1320px;margin:68px auto 0;display:grid}.about-lists section{padding:30px 44px 0 0}.about-lists section+section{border-left:1px solid var(--line);padding-left:44px}.about-lists h2{letter-spacing:-.03em;margin:0 0 16px;font-size:18px}.about-lists ol{margin:0;padding:0;list-style:none}.about-lists li{gap:20px;margin:11px 0;font-size:14px;display:flex}.about-lists li span{width:23px;color:var(--muted);font-size:11px}.about-lists p{color:var(--muted);line-height:1.6}.contact-page{align-content:center;gap:68px;display:grid}.contact-header{max-width:980px}.contact-header p{max-width:760px;color:var(--muted);letter-spacing:-.035em;margin:0;font-size:clamp(20px,2.4vw,34px);line-height:1.3}.contact-list{border-top:1px solid var(--line);max-width:1040px}.contact-row{border-bottom:1px solid var(--line);min-height:105px;transition:transform var(--motion) ease,color var(--motion) ease;grid-template-columns:40px 1fr auto;align-items:center;gap:18px;display:grid}.contact-row div span{font-family:var(--font-geist-mono);color:var(--muted);text-transform:uppercase;margin-bottom:4px;font-size:10px;display:block}.contact-row strong{font-size:18px;font-weight:550}.contact-row p{color:var(--muted);margin:6px 0 0;font-size:12px}.contact-unavailable{font-family:var(--font-geist-mono);color:var(--muted);text-transform:uppercase;font-size:10px}.contact-row-static{scroll-margin-top:80px}@media (hover:hover){a.contact-row:hover{color:var(--blue);transform:translate(5px)}}.case-study{padding-top:30px}.back-link{font-family:var(--font-geist-mono);color:var(--muted);align-items:center;gap:8px;margin-bottom:38px;font-size:12px;display:inline-flex}.case-study-header{max-width:1180px;margin:0 auto 28px}.case-study-header h1{letter-spacing:-.065em;margin:0;font-size:clamp(48px,6vw,88px);line-height:.95}.case-study-meta{margin:18px 0 0;font-size:12px}.case-study-summary{letter-spacing:-.02em;max-width:700px;margin:18px 0 0;font-size:18px;line-height:1.45}.case-study-tags{color:var(--muted);margin:16px 0 0;font-size:11px}.case-study-hero{aspect-ratio:16/7.8;border:1px solid var(--line);background:var(--surface);border-radius:8px;max-width:1180px;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 16px 34px #00000024}.case-study-hero img{object-fit:cover}.case-study-hero[data-fit=contain] img{object-fit:contain}.case-study-body{grid-template-columns:210px minmax(0,690px);align-items:start;gap:56px;max-width:940px;margin:42px auto 0;display:grid}.case-study-index{border-right:1px solid var(--line);flex-direction:column;gap:12px;padding-right:26px;font-size:10px;display:flex;position:sticky;top:28px}.case-study-index>p{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px}.case-study-index>a{color:var(--muted)}.case-study-repository{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.case-study-repository span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;display:block}.case-study-repository a{text-underline-offset:3px;align-items:center;gap:5px;margin-top:10px;text-decoration:underline;display:inline-flex}.case-study-repository p{color:var(--muted);margin:9px 0 0;line-height:1.45}.case-study-content section{border-bottom:1px solid var(--line);margin-bottom:28px;padding:0 0 28px;scroll-margin-top:32px}.case-study-content h2{letter-spacing:-.04em;margin:0 0 11px;font-size:22px}.case-study-content li,.case-study-content p{color:var(--muted);font-size:15px;line-height:1.65}.case-study-content p{margin:0}.case-study-content ul{margin:0;padding-left:19px}.not-found{text-align:center;place-content:center;display:grid}.not-found h1{letter-spacing:-.05em;margin:8px 0 22px;font-size:clamp(36px,5vw,62px)}.not-found p{color:var(--muted)}.not-found a{text-underline-offset:4px;text-decoration:underline}@media (max-width:1100px) and (min-width:800px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(330px,44vh)}.lab-grid{grid-template-columns:repeat(2,1fr)}.rits-labs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeline-description{white-space:normal}.about-grid{grid-template-columns:minmax(0,1fr);gap:52px}.identity-card{justify-self:center;width:min(620px,92%);transform:rotate(2deg)}.about-lists{grid-template-columns:1fr 1fr}.about-lists section:last-child{border-left:0;border-top:1px solid var(--line);grid-column:1/-1;padding-left:0}}@media (max-width:799px){.desktop-nav,.project-map{display:none}.mobile-home{background:var(--page);min-height:100svh;display:block}.mobile-spatial-hero{background-color:var(--page);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg stroke='%230b0b0d' stroke-opacity='.12' stroke-width='.8' stroke-linecap='round'%3E%3Cpath d='M16 11v10M11 16h10'/%3E%3C/g%3E%3C/svg%3E");background-position:0 0;background-repeat:repeat;background-size:32px 32px;height:100svh;min-height:720px;position:relative;overflow:hidden}.mobile-map-grid{display:none}.mobile-map-grid path{fill:none;stroke:var(--grid-mark);stroke-width:.8px;vector-effect:non-scaling-stroke;transform:none!important}.mobile-artifact-plane{z-index:3;transform-origin:50%;pointer-events:none;position:absolute;inset:0;transform:none}.mobile-route{pointer-events:auto;display:block;position:absolute}.mobile-route-surface{border:1px solid var(--line);background:var(--surface);width:100%;height:100%;color:var(--ink);box-shadow:var(--shadow);filter:grayscale()saturate(0);border-radius:2px;transition:filter .38s,transform .16s,box-shadow .16s;position:relative;overflow:hidden}.mobile-route>span{background:var(--ink);color:var(--page);font-family:var(--font-geist-mono);white-space:nowrap;border-radius:4px;padding:3px 6px;font-size:7px;position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%)}.mobile-route:active .mobile-route-surface,.mobile-route:focus-visible .mobile-route-surface{filter:grayscale(0)saturate();transform:translateY(-4px);box-shadow:0 18px 27px #19191c38}.mobile-route-projects{left:8%}.mobile-route-projects,.mobile-route-timeline{width:clamp(140px,34vw,190px);height:clamp(92px,22vw,122px);top:8.5%;transform:none}.mobile-route-timeline{right:8%}.mobile-route-lab{width:clamp(160px,38vw,215px);height:clamp(98px,23vw,132px);top:24.5%;left:50%;transform:translate(-50%)}.mobile-route-contact{left:9%}.mobile-route-about,.mobile-route-contact{width:clamp(132px,32vw,176px);height:clamp(82px,20vw,112px);top:56.5%;transform:none}.mobile-route-about{right:9%}.mobile-route .projects-artifact{gap:2px;padding:3px}.mobile-route .lab-artifact span{padding:3px 4px;font-size:5px;bottom:4px;right:5px}.mobile-route .timeline-artifact{gap:5px;inset:10px}.mobile-route .timeline-artifact span{grid-template-columns:5px 1fr auto;gap:4px}.mobile-route .timeline-artifact i{width:5px;height:5px}.mobile-route .timeline-artifact em{font-size:5px}.mobile-route .contact-artifact,.mobile-route .profile-artifact{inset:10px}.mobile-route .profile-artifact b{width:23px;height:23px;margin-bottom:5px;font-size:7px}.mobile-route .profile-artifact span{font-size:7px}.mobile-route .contact-artifact small,.mobile-route .profile-artifact small{font-size:5px}.mobile-route .artifact-accent{margin-top:7px}.mobile-route .artifact-accent i{width:16px;height:3px}.mobile-route .contact-artifact span{margin-bottom:4px;font-size:8px}.mobile-route .contact-artifact i{margin:2px 0}.mobile-route .contact-artifact b{margin-top:4px;font-size:6px}.mobile-wordmark{z-index:2;width:100%;font-family:Arial Black,var(--font-geist),sans-serif;letter-spacing:-.105em;color:var(--ink);text-align:center;margin:0;font-size:clamp(82px,25vw,124px);font-weight:900;line-height:.75;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%)}.mobile-intro{z-index:4;top:auto;left:10%;right:10%;bottom:calc(max(10px, env(safe-area-inset-bottom)) + 92px);padding:0;position:absolute}.home-handle{font-size:clamp(10px,2.8vw,13px)}.home-role{font-size:clamp(20px,5.8vw,30px);line-height:1.05}.home-tech{font-size:clamp(10px,3vw,13px);line-height:1.45}.home-tagline{display:none}.mobile-nav{width:calc(100% - 20px);bottom:max(10px,env(safe-area-inset-bottom));padding:7px 4px calc(7px + env(safe-area-inset-bottom));justify-content:space-around;display:flex}.mobile-nav .nav-action{border-radius:14px;grid-template-rows:24px 12px;gap:3px;width:16.2%;min-width:48px;height:53px}.mobile-nav .nav-action>span:not(.nav-dot){font-size:8px}.mobile-nav .nav-dot{bottom:-1px}.mobile-nav .nav-action[data-active]{color:var(--nav-ink);background:#7f7f7f1f}.mobile-more{z-index:79;left:16px;right:16px;bottom:calc(88px + env(safe-area-inset-bottom));border:1px solid var(--line);background:var(--surface-raised);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:16px;gap:2px;padding:10px;display:grid;position:fixed}.mobile-more-head{justify-content:space-between;align-items:center;padding:4px 8px 8px;font-weight:550;display:flex}.mobile-more-head button{background:0 0;border:0;border-radius:50%;place-items:center;width:38px;height:38px;display:grid}.mobile-more>a,.mobile-more>button{text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:26px 1fr auto;align-items:center;gap:8px;min-height:45px;padding:0 10px;font-size:13px;display:grid}.lofi-panel{bottom:calc(82px + env(safe-area-inset-bottom));width:calc(100vw - 24px)}.dark-page{padding:24px 12px 112px}.page-header{margin:0 8px 20px}.projects-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:10px}.project-card-link{min-height:420px}.project-card-media{min-height:290px}.project-card-copy{min-height:112px}.project-card-copy p{font-size:10px}.project-card-copy dl{gap:5px;display:grid}.lab-grid{grid-template-columns:1fr;grid-auto-rows:56vw}.lab-tile-caption{opacity:1;transform:none}.lab-modal-backdrop{padding:10px}.modal-close{top:20px;right:20px}.lab-modal-image{aspect-ratio:4/3}.lab-modal-copy{padding:18px;display:grid}.lab-modal-copy dl{grid-template-columns:1fr 1fr}.rits-labs{margin-top:90px}.rits-labs-header{grid-template-columns:1fr;gap:20px;margin-bottom:24px}.rits-labs-header>p{max-width:520px}.rits-labs-grid{grid-template-columns:1fr;gap:8px}.rits-lab-copy{min-height:145px}.timeline-page{padding-top:90px;display:block}.timeline-shell{width:100%;margin:0}.timeline-header{margin:0 7px 32px}.timeline-row{border-bottom:1px solid var(--dark-line);grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;min-height:86px;padding:13px 8px}.timeline-title{white-space:normal}.timeline-description{white-space:normal;grid-column:1;font-size:10px}.timeline-leader{display:none}.timeline-row time{grid-area:1/2}.timeline-arrow{display:none}.case-study,.editorial-page{padding:48px 20px 120px}.about-grid{grid-template-columns:1fr;gap:38px}.block-page-title{font-size:76px}.about-lead{font-size:25px}.about-support{font-size:15px}.identity-card{transform:rotate(2deg)}.about-lists{grid-template-columns:1fr;margin-top:50px}.about-lists section,.about-lists section+section{border-left:0;border-bottom:1px solid var(--line);padding:26px 0}.contact-page{align-content:start;gap:50px}.contact-header p{font-size:22px}.contact-row{grid-template-columns:34px 1fr;min-height:120px}.contact-row>svg:last-child,.contact-unavailable{grid-column:2}.contact-row strong{font-size:15px}.case-study{padding-top:22px}.case-study-header h1{font-size:48px}.case-study-summary{font-size:16px}.case-study-hero{aspect-ratio:4/3;border-radius:6px}.case-study-hero figcaption{font-size:8px;line-height:1.4;right:10px}.case-study-body{grid-template-columns:1fr;gap:24px}.case-study-index{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:repeat(2,1fr);padding:0 0 22px;display:grid;position:static}.case-study-index>p,.case-study-repository{grid-column:1/-1}.case-study-repository{margin-top:10px}html[data-theme=dark] .mobile-spatial-hero{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cg stroke='%23ffffff' stroke-opacity='.17' stroke-width='.8' stroke-linecap='round'%3E%3Cpath d='M16 11v10M11 16h10'/%3E%3C/g%3E%3C/svg%3E")}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!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-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}