@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--backdrop-x:92%;--backdrop-y:-16%}}}@layer theme{:root,:host{--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-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,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:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}}:root{--font-geist-sans:"Inter", "SF Pro Display", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-geist-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--bg:#f6f4ee;--bg-deep:#eeebe2;--surface:#ffffff94;--surface-solid:#fbfaf7;--text:#171814;--muted:#67685f;--faint:#98998e;--line:#17181421;--line-strong:#17181438;--accent:#b8d80b;--accent-ink:#263000;--shadow:0 24px 70px #29271d1a;--header:#f6f4eec7;--selection:#d9ed68;--glow-blue:#426aef52;--glow-violet:#7e4cda30;--glow-lilac:#b8a2eb3d;--ticker-bg:#4b43c8;--ticker-text:#fbfaff;--ticker-accent:#e1ef91;--content-max:1160px;--header-max:1040px;--page-gutter:48px;--header-gutter:64px;--type-display:clamp(36px, 3.5vw, 50px);--type-heading:clamp(22px, 2.1vw, 30px);--type-body:18px;--type-small:13px}html[data-theme=dark]{--bg:#11120f;--bg-deep:#181914;--surface:#1c1d19b3;--surface-solid:#1c1d19;--text:#f2f0e8;--muted:#b1b2a9;--faint:#77786f;--line:#f2f0e821;--line-strong:#f2f0e838;--accent:#c7e52c;--accent-ink:#1c2300;--shadow:0 24px 80px #00000047;--header:#11120fc7;--selection:#506016;--glow-blue:#3453be45;--glow-violet:#6c41b133;--glow-lilac:#7d69b526;--ticker-bg:#9690f6;--ticker-text:#11121b;--ticker-accent:#dce77a}*{box-sizing:border-box}@property --backdrop-x{syntax:"<percentage>";inherits:false;initial-value:92%}@property --backdrop-y{syntax:"<percentage>";inherits:false;initial-value:-16%}html{scroll-behavior:smooth;background-color:var(--bg);background-image:linear-gradient(to right, var(--line) 1px, transparent 1px), linear-gradient(to bottom, var(--line) 1px, transparent 1px);overflow-x:hidden}@supports (color:color-mix(in lab, red, red)){html{background-image:linear-gradient(to right, color-mix(in srgb, var(--line) 18%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--line) 18%, transparent) 1px, transparent 1px)}}html{background-size:64px 64px}body{isolation:isolate;background:radial-gradient(500px 500px at var(--backdrop-x) var(--backdrop-y), var(--glow-blue), transparent 76%);margin:0;padding-top:78px;position:relative}@supports (color:color-mix(in lab, red, red)){body{background:radial-gradient(500px 500px at var(--backdrop-x) var(--backdrop-y), color-mix(in srgb, var(--glow-blue) 92%, transparent), transparent 76%)}}body{color:var(--text);font-family:var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;font-size:var(--type-body);background-color:#0000;background-attachment:fixed;line-height:1.6;transition:background-color .24s,color .24s;animation:9s ease-in-out infinite alternate backdrop-drift;overflow-x:hidden}html[data-theme=dark] body{background-image:radial-gradient(500px 500px at var(--backdrop-x) var(--backdrop-y), #4c68ff47, transparent 76%)}html[data-shader=active] body,html[data-shader=active][data-theme=dark] body{background-image:none;animation:none}::selection{background:var(--selection);color:var(--text)}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}:focus-visible{outline:2px solid var(--text);outline-offset:4px;border-radius:4px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:fixed;overflow:hidden}.skip-link:focus{clip-path:none;background:var(--text);width:auto;height:auto;color:var(--bg);margin:0;padding:10px 16px;top:12px;left:12px;overflow:visible}.shell{width:calc(100% - var(--page-gutter));max-width:var(--content-max);margin-inline:auto}section[id]{scroll-margin-top:98px}.page-glow{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.page-glow span{filter:blur(28px);opacity:.56;border-radius:50%;position:absolute}.page-glow span:first-child,.page-glow span:nth-child(2),.page-glow span:nth-child(3){display:none}.shader-backdrop{z-index:-2;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .6s;position:fixed;inset:0}.shader-backdrop[data-active=true]{opacity:.78}html[data-theme=light] .shader-backdrop[data-active=true]{opacity:.94}@keyframes backdrop-drift{0%{--backdrop-x:94%;--backdrop-y:-18%}55%{--backdrop-x:84%;--backdrop-y:-8%}to{--backdrop-x:89%;--backdrop-y:-2%}}.site-header{z-index:50;pointer-events:none;height:60px;position:fixed;top:14px;left:0;right:0}.header-inner{width:calc(100% - var(--header-gutter));max-width:var(--header-max);border:1px solid var(--line);background:var(--header);border-radius:12px;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;height:60px;margin-inline:auto;padding:7px;display:grid}@supports (color:color-mix(in lab, red, red)){.header-inner{background:color-mix(in srgb, var(--header) 92%, transparent)}}.header-inner{-webkit-backdrop-filter:blur(20px)saturate(145%);pointer-events:auto;box-shadow:0 12px 34px #1f201914,inset 0 1px #ffffff85}html[data-theme=dark] .header-inner{border-top-color:#00000038;box-shadow:0 12px 34px #0000004d}.header-identity{align-items:center;gap:10px;min-width:0;display:inline-flex}.header-profile{border:1px solid var(--line);background:var(--bg-deep);border-radius:8px;flex:0 0 44px;width:44px;height:44px;display:block;overflow:hidden}.header-profile img{object-fit:cover;object-position:center 28%;filter:saturate(.82)contrast(1.04);width:100%;height:100%;transition:transform .22s,filter .22s;display:block}.header-identity:hover .header-profile img{filter:saturate()contrast(1.02);transform:scale(1.06)}.header-name{font-size:var(--type-small);letter-spacing:-.02em;font-weight:640}.site-nav{color:var(--muted);font-size:var(--type-small);justify-self:end;align-items:center;gap:27px;font-weight:590;display:flex}.site-nav a{align-items:center;min-height:44px;padding-block:8px;display:inline-flex;position:relative}.site-nav a:after{content:"";background:currentColor;height:1px;transition:right .18s;position:absolute;bottom:3px;left:0;right:100%}.site-nav a:hover:after{right:0}.theme-toggle{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:8px;place-self:center end;place-items:center;padding:0;line-height:1;transition:transform .18s,border-color .18s;display:grid;position:relative}.theme-toggle:hover{border-color:var(--line-strong);transform:rotate(8deg)}.theme-icon{place-items:center;font-size:19px;line-height:1;transition:opacity .18s,transform .18s;display:grid;position:absolute;inset:0}.theme-icon-moon{opacity:0;transform:rotate(-35deg)scale(.6)}.theme-icon-system{opacity:0}html[data-theme=dark] .theme-icon-sun{opacity:0;transform:rotate(35deg)scale(.6)}html[data-theme=dark] .theme-icon-moon{opacity:1;transform:rotate(0)scale(1)}html[data-theme-mode=system] .theme-icon-sun,html[data-theme-mode=system] .theme-icon-moon{opacity:0;transform:scale(.6)}html[data-theme-mode=system] .theme-icon-system{opacity:1;transform:scale(1)}.hero{grid-template-columns:1.2fr .8fr;align-items:center;gap:56px;min-height:calc(100svh - 220px);padding-block:66px 52px;display:grid}.eyebrow{color:var(--muted);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:10px;font-weight:540;display:flex}.status-dot{background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 4px var(--accent);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.status-dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent)}}.eyebrow-divider{background:var(--line-strong);width:22px;height:1px}.hero h1{font-size:var(--type-display);letter-spacing:-.045em;margin:21px 0;font-weight:630;line-height:1.06}.hero h1 span{color:var(--muted);font-weight:390}.hero-lede{max-width:650px;color:var(--muted);font-size:var(--type-body);letter-spacing:-.02em;margin:0;line-height:1.6}.hero-actions{flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:30px;display:flex}.button{min-height:44px;font-size:var(--type-small);border-radius:100px;justify-content:center;align-items:center;gap:16px;padding:0 18px;font-weight:620;display:inline-flex}.button-primary{background:var(--text);color:var(--bg);transition:transform .18s,box-shadow .18s}.button-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px #00000029}.text-link{border-bottom:1px solid var(--line-strong);font-size:var(--type-small);align-items:center;gap:7px;font-weight:580;display:inline-flex}.text-link svg{width:16px;transition:transform .18s}.text-link:hover svg{transform:translate(2px,-2px)}.portrait-wrap{aspect-ratio:.9;width:min(100%,220px);margin-left:auto;position:relative}.portrait-halo{border:1px solid var(--line);border-radius:50%;position:absolute;inset:-13%}.portrait-halo:before,.portrait-halo:after{content:"";border:1px solid var(--line);border-radius:50%;position:absolute}.portrait-halo:before{inset:11%}.portrait-halo:after{border:4px solid var(--accent);background:var(--bg);width:8px;height:8px;padding:0;top:11%;left:12%}.portrait-card{border:1px solid var(--line);background:var(--bg-deep);box-shadow:var(--shadow);border-radius:46% 46% 42% 42%/38% 38% 50% 50%;position:absolute;inset:6% 7%;overflow:hidden;transform:rotate(1.5deg)}.portrait-card:after{content:"";mix-blend-mode:soft-light;pointer-events:none;background:linear-gradient(140deg,#0000 52%,#b8d80b24);position:absolute;inset:0}.portrait-card img{object-fit:cover;object-position:center;filter:saturate(.84)contrast(1.03);width:100%;height:100%;display:block}.portrait-note{border:1px solid var(--line);background:var(--surface-solid);border-radius:100px;align-items:center;gap:6px;padding:6px 10px;display:flex;position:absolute}@supports (color:color-mix(in lab, red, red)){.portrait-note{background:color-mix(in srgb, var(--surface-solid) 86%, transparent)}}.portrait-note{color:var(--muted);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.03em;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 9px 30px #19191417}.portrait-note span{color:var(--text);font-size:var(--type-small);font-weight:700}.portrait-note-top{top:12%;right:-30%}.portrait-note-bottom{bottom:8%;left:-12%}.portrait-note .tiny-mark{color:var(--accent)}.portrait-path{width:120px;color:var(--muted);position:absolute;bottom:16%;right:-15%}.ticker-section{width:100%;padding:8px 0 0;overflow:hidden}.ticker-band{border-block:1px solid var(--ticker-text);width:101.5%;margin-left:-.75%;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.ticker-band{border-block:1px solid color-mix(in srgb, var(--ticker-text) 25%, transparent)}}.ticker-band{background:var(--ticker-bg);color:var(--ticker-text);transform:rotate(-.35deg)translateZ(0)}.ticker-track{backface-visibility:hidden;will-change:transform;width:max-content;animation:72s linear infinite ticker-scroll;display:flex;transform:translate(0)}.ticker-band:hover .ticker-track{animation-play-state:paused}.ticker-run{flex:none;align-items:center;padding-right:32px;display:flex}.ticker-run span{font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;-webkit-font-smoothing:antialiased;align-items:center;gap:27px;padding:14px 27px 13px 0;font-weight:650;line-height:1;display:inline-flex}.ticker-run span:after{content:"✦";color:var(--ticker-text)}@supports (color:color-mix(in lab, red, red)){.ticker-run span:after{color:color-mix(in srgb, var(--ticker-text) 46%, transparent)}}.ticker-run span:after{font-size:8px}.ticker-run span:nth-child(4n+2){color:var(--ticker-accent)}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.work-section,.about-section,.history-section{padding-block:40px}.work-section{padding-top:104px}.section-heading{grid-template-columns:1fr 1fr;align-items:center;gap:40px;margin-bottom:28px;display:grid}.section-heading>div{align-items:baseline;gap:22px;display:flex}.section-index{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.08em}.section-heading h2,.case-grid h2{font-size:var(--type-heading);letter-spacing:-.035em;margin:0;font-weight:570;line-height:1.12}.section-heading>p{max-width:500px;color:var(--muted);font-size:var(--type-body);margin:0;line-height:1.6}.projects-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.project-card{border:1px solid var(--line);background:var(--surface);border-radius:17px;transition:transform .26s cubic-bezier(.2,.75,.25,1),border-color .2s,box-shadow .26s;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff6}.project-card:hover{border-color:var(--line-strong);transform:translateY(-4px);box-shadow:0 18px 45px #29271d17}.project-card:focus-visible{outline-offset:5px}.project-visual{background:var(--visual-bg);isolation:isolate;height:164px;position:relative;overflow:hidden}.project-visual img{object-fit:contain;object-position:center;width:100%;height:100%;padding:5px;transition:transform .42s cubic-bezier(.2,.8,.2,1);display:block}.project-card:hover .project-visual img,.compact-project-card:hover .project-visual img{transform:scale(1.025)}.project-visual-placeholder{color:var(--visual-ink);background:radial-gradient(circle at 80% 15%,#ffffff6b,#0000 34%);flex-direction:column;justify-content:flex-end;padding:24px;display:flex;position:absolute;inset:0}.project-visual-placeholder>span{font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.08em;text-transform:uppercase;opacity:.62}.project-visual-placeholder>strong{z-index:1;font-size:var(--type-display);letter-spacing:-.055em;margin-top:5px;font-weight:620;line-height:.95;position:relative}.project-visual-placeholder>i{border:1px solid var(--visual-ink);width:170px;height:170px;position:absolute;top:-50px;right:-25px}@supports (color:color-mix(in lab, red, red)){.project-visual-placeholder>i{border:1px solid color-mix(in srgb, var(--visual-ink) 22%, transparent)}}.project-visual-placeholder>i{border-radius:50%}.project-visual-placeholder>i:after{content:"";border:1px solid var(--visual-ink);position:absolute;inset:24%}@supports (color:color-mix(in lab, red, red)){.project-visual-placeholder>i:after{border:1px solid color-mix(in srgb, var(--visual-ink) 22%, transparent)}}.project-visual-placeholder>i:after{border-radius:50%}.project-card-content{padding:16px}.project-meta{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);text-transform:uppercase;letter-spacing:.07em;justify-content:space-between;gap:10px;display:flex}.project-card h3{font-size:var(--type-body);letter-spacing:-.035em;justify-content:space-between;align-items:center;margin:9px 0 5px;font-weight:650;line-height:1.2;display:flex}.project-card h3 svg{opacity:.45;width:22px;transition:transform .22s,opacity .22s}.project-card:hover h3 svg{opacity:1;transform:translate(3px,-3px)}.project-card-content>p{min-height:54px;color:var(--muted);font-size:var(--type-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 12px;line-height:1.5;display:-webkit-box;overflow:hidden}.tag-row{flex-wrap:wrap;gap:7px;display:flex}.tag-row span{border:1px solid var(--line);color:var(--muted);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);border-radius:100px;padding:5px 9px}.work-footer{justify-content:space-between;align-items:center;margin-top:24px;display:flex}.work-footer>span{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);text-transform:uppercase;letter-spacing:.08em}.button-outline{border:1px solid var(--line-strong);gap:10px}.button-outline svg{width:16px;transition:transform .18s}.button-outline:hover svg{transform:translate(2px,-2px)}.tone-lime{--visual-bg:#dce9aa;--visual-accent:#8fab18;--visual-ink:#26310d}.tone-blue{--visual-bg:#cbdcec;--visual-accent:#527ca7;--visual-ink:#142b41}.tone-coral{--visual-bg:#edc7b6;--visual-accent:#c86f52;--visual-ink:#492216}.tone-violet{--visual-bg:#d8d0e5;--visual-accent:#786c98;--visual-ink:#29223d}html[data-theme=dark] .tone-lime{--visual-bg:#3b4320;--visual-accent:#c7e52c;--visual-ink:#eaf0cf}html[data-theme=dark] .tone-blue{--visual-bg:#1d3245;--visual-accent:#8ebbe3;--visual-ink:#e1eef9}html[data-theme=dark] .tone-coral{--visual-bg:#4b2b23;--visual-accent:#eb9c80;--visual-ink:#fae7e0}html[data-theme=dark] .tone-violet{--visual-bg:#312b42;--visual-accent:#b6a8dd;--visual-ink:#eee9fa}.visual-chip{color:#fff;font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);text-transform:uppercase;letter-spacing:.08em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0e0f0c8c;border:1px solid #ffffff59;border-radius:100px;padding:6px 9px;position:absolute;top:14px;right:14px}.about-grid{grid-template-columns:1fr 1fr;gap:60px;display:grid}.about-statement p{font-size:var(--type-heading);letter-spacing:-.025em;margin:0;line-height:1.32}.about-statement em{color:var(--muted);font-style:normal}.about-detail>p{max-width:620px;color:var(--muted);font-size:var(--type-body);margin:0 0 20px;line-height:1.68}.skills-list{flex-wrap:wrap;gap:8px;margin-top:31px;display:flex}.skills-list span{border:1px solid var(--line);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);border-radius:8px;padding:9px 13px}.principles{border-block:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin-top:44px;display:grid}.principles>div{padding:34px 34px 38px 0}.principles>div+div{border-left:1px solid var(--line);padding-left:34px}.principles span{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small)}.principles h3{font-size:var(--type-body);letter-spacing:-.025em;margin:23px 0 7px}.principles p{color:var(--muted);font-size:var(--type-body);margin:0;line-height:1.6}.role-timeline{margin:0;padding:0;list-style:none;position:relative}.role-timeline:before{content:"";background:repeating-linear-gradient(to bottom, var(--line-strong) 0 5px, transparent 5px 10px);width:1px;position:absolute;top:5px;bottom:30px;left:150px}.role-item{grid-template-columns:128px 44px minmax(0,1fr);min-height:118px;display:grid}.role-period{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.06em;text-transform:uppercase;padding-top:4px}.role-node{justify-content:center;align-items:flex-start;display:flex;position:relative}.role-node span{z-index:1;background:var(--text);border-radius:50%;width:10px;height:10px;margin-top:0;position:relative}@supports (color:color-mix(in lab, red, red)){.role-node span{background:color-mix(in srgb, var(--text) 34%, var(--bg))}}.role-node span{box-shadow:0 0 0 5px var(--bg);transition:background-color .18s,transform .18s}.role-item:first-child .role-node span{background:var(--accent);box-shadow:0 0 0 5px var(--bg), 0 0 0 7px var(--accent)}@supports (color:color-mix(in lab, red, red)){.role-item:first-child .role-node span{box-shadow:0 0 0 5px var(--bg), 0 0 0 7px color-mix(in srgb, var(--accent) 18%, transparent)}}.role-item:hover .role-node span{background:var(--text);transform:scale(1.25)}.role-copy{padding:0 0 20px 24px}.role-item+.role-item .role-copy,.role-item+.role-item .role-period,.role-item+.role-item .role-node{padding-top:18px}.role-company{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.08em;text-transform:uppercase;margin:0 0 7px}.role-copy h3{font-size:var(--type-body);letter-spacing:-.025em;margin:0 0 9px;font-weight:650;line-height:1.2}.role-copy>p:not(.role-company){max-width:780px;color:var(--muted);font-size:var(--type-body);margin:0;line-height:1.62}.role-tags{flex-wrap:wrap;gap:7px;margin-top:14px;display:flex}.role-tags span{border:1px solid var(--line);color:var(--muted);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);border-radius:100px;padding:5px 9px}.contact-section{isolation:isolate;color:#f6f4ee;background-color:#171814;border-radius:18px;margin-top:8px;padding:16px 36px;position:relative;overflow:hidden}.contact-section:before{content:"";z-index:0;opacity:.5;pointer-events:none;background:radial-gradient(#7064ec7a,#0000 72%);border-radius:50%;width:340px;height:145px;position:absolute;bottom:-62px;left:calc(64% - 170px)}html[data-theme=light] .contact-section:before{opacity:1}.contact-section .section-index{display:none}.contact-section .eyebrow{z-index:1;color:#f6f4ee7a;letter-spacing:.06em;margin:0;font-weight:500;position:relative}.contact-section h2{z-index:1;color:#f6f4ee;font-size:var(--type-body);letter-spacing:0;margin:5px 0 12px;font-weight:620;line-height:1.4;position:relative}.contact-email{z-index:1;font-size:var(--type-body);letter-spacing:-.02em;border-bottom:1px solid #f6f4ee73;align-items:center;gap:10px;padding-bottom:3px;font-weight:520;display:inline-flex;position:relative}.contact-email svg{width:19px;transition:transform .18s}.contact-email:hover svg{transform:translate(3px,-3px)}.contact-orbit{border:1px solid var(--bg);width:220px;height:220px;position:absolute;top:-48px;right:-2px}@supports (color:color-mix(in lab, red, red)){.contact-orbit{border:1px solid color-mix(in srgb, var(--bg) 13%, transparent)}}.contact-orbit{border-radius:50%}.contact-orbit span{border:1px solid var(--bg);position:absolute}@supports (color:color-mix(in lab, red, red)){.contact-orbit span{border:1px solid color-mix(in srgb, var(--bg) 13%, transparent)}}.contact-orbit span{border-radius:50%}.contact-orbit span:first-child{inset:16%}.contact-orbit span:last-child{border:4px solid var(--accent);width:12px;height:12px;animation:2.8s ease-in-out infinite orbit-pulse;top:15%;left:14%}@keyframes orbit-pulse{50%{box-shadow:0 0 0 9px color-mix(in srgb, var(--accent) 14%, transparent)}}.site-footer{color:var(--muted);font-size:var(--type-small);justify-content:space-between;gap:30px;padding-block:30px 38px;display:flex}.site-footer p{margin:0}.footer-links{align-items:center;gap:25px;display:flex}.footer-links a{align-items:center;gap:6px;display:inline-flex}.footer-links svg{width:13px}.projects-page{padding-block:50px 70px}.projects-page>.back-link{margin-bottom:22px}.projects-page-header{grid-template-columns:1fr 1fr;align-items:end;gap:18px 60px;margin-bottom:32px;display:grid}.projects-page-header .eyebrow{grid-column:1/-1}.projects-page-header h1{font-size:var(--type-display);letter-spacing:-.04em;margin:0;font-weight:600;line-height:1.06}.projects-page-header p{max-width:500px;color:var(--muted);font-size:var(--type-body);margin:0;line-height:1.6}.all-projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.compact-project-card{border:1px solid var(--line);background:var(--surface);border-radius:15px;transition:transform .22s,border-color .22s,box-shadow .22s;overflow:hidden}.compact-project-card:hover{border-color:var(--line-strong);transform:translateY(-3px);box-shadow:0 14px 35px #29271d14}.compact-project-card .project-visual{height:180px}.compact-project-content{padding:19px}.compact-project-content h2{font-size:var(--type-body);letter-spacing:-.035em;justify-content:space-between;align-items:center;margin:11px 0 6px;font-weight:650;line-height:1.2;display:flex}.compact-project-content h2 svg{opacity:.45;width:17px;transition:transform .18s,opacity .18s}.compact-project-card:hover h2 svg{opacity:1;transform:translate(2px,-2px)}.compact-project-content>p{color:var(--muted);font-size:var(--type-body);margin:0 0 14px;line-height:1.55}.project-page{padding-top:30px;padding-bottom:48px}.back-link{border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--muted);font-size:var(--type-small);border-radius:100px;align-items:center;gap:7px;padding:0 14px;font-weight:590;transition:color .18s,border-color .18s,transform .18s;display:inline-flex}.back-link svg{width:17px;transition:transform .18s}.back-link:hover{color:var(--text);border-color:var(--line-strong);transform:translateY(-1px)}.back-link:hover svg{transform:translate(-3px)}.project-hero{grid-template-columns:1fr auto;align-items:end;gap:40px;padding:28px 0 24px;display:grid}.project-hero h1{font-size:var(--type-display);letter-spacing:-.035em;margin:13px 0 10px;font-weight:590;line-height:1.06}.project-hero-copy>p{max-width:680px;color:var(--muted);font-size:var(--type-body);margin:0;line-height:1.6}.project-client{flex-direction:column;gap:5px;min-width:190px;padding-bottom:4px;display:flex}.project-client span{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);text-transform:uppercase;letter-spacing:.08em}.project-client strong{font-size:var(--type-body);font-weight:560}.project-client a{width:fit-content;color:var(--muted);font-size:var(--type-small);border-bottom:1px solid var(--line-strong);align-items:center;gap:5px;margin-top:8px;display:inline-flex}.project-client a svg{width:13px}.project-visual-large{border-radius:20px;width:min(100%,1100px);height:380px;margin-inline:auto}.project-visual-large img{object-fit:contain;background:var(--visual-bg);padding:22px}.project-visual-large .project-visual-placeholder{padding:42px}.project-visual-large .project-visual-placeholder>strong{font-size:var(--type-display)}.project-carousel{border:1px solid var(--line);background:var(--visual-bg);border-radius:20px;width:min(100%,1100px);margin-inline:auto;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.project-carousel{background:color-mix(in srgb, var(--visual-bg) 72%, var(--surface-solid))}}.project-carousel{box-shadow:0 18px 55px #22211b14}.project-carousel:focus-visible{outline-offset:5px}.carousel-viewport{background:radial-gradient(circle at 50% 46%, #ffffff61, transparent 58%), var(--visual-bg);cursor:grab;touch-action:pan-y;height:clamp(300px,31vw,380px);overflow:hidden}.carousel-viewport:active{cursor:grabbing}.carousel-track{will-change:transform;height:100%;transition:transform .46s cubic-bezier(.22,.78,.24,1);display:flex}.carousel-slide{-webkit-user-select:none;user-select:none;flex:0 0 100%;place-items:center;min-width:0;height:100%;min-height:0;margin:0;padding:20px 32px;display:grid;overflow:hidden}.carousel-slide img{object-fit:contain;pointer-events:none;border-radius:7px;width:100%;min-width:0;height:100%;min-height:0;display:block}.carousel-bar{border-top:1px solid var(--line);background:var(--surface-solid);grid-template-columns:auto 1fr auto;align-items:center;gap:18px;min-height:58px;padding:10px 12px 10px 18px;display:grid}@supports (color:color-mix(in lab, red, red)){.carousel-bar{background:color-mix(in srgb, var(--surface-solid) 86%, transparent)}}.carousel-bar p{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.08em;margin:0}.carousel-bar p span{color:var(--text)}.carousel-dots{justify-self:center;align-items:center;gap:6px;display:flex}.carousel-dots button{background:var(--line-strong);cursor:pointer;border:0;border-radius:50%;width:7px;height:7px;padding:0;transition:width .18s,background-color .18s}.carousel-dots button[aria-current=true]{background:var(--text);border-radius:10px;width:20px}.carousel-controls{gap:6px;display:flex}.carousel-controls button{border:1px solid var(--line);width:38px;height:38px;color:var(--text);cursor:pointer;background:0 0;border-radius:8px;place-items:center;padding:0;transition:background-color .16s,border-color .16s;display:grid}.carousel-controls button:hover{border-color:var(--line-strong);background:var(--surface)}.carousel-controls button:disabled{opacity:.28;cursor:not-allowed}.case-grid{grid-template-columns:.8fr 1.5fr;gap:48px;padding-block:34px;display:grid}.case-grid>div:first-child{align-items:baseline;gap:22px;display:flex}.case-grid h2{font-size:var(--type-heading)}.case-copy p{max-width:740px;color:var(--muted);font-size:var(--type-body);margin:0 0 19px;line-height:1.62}.case-copy .case-lede{color:var(--text);font-size:var(--type-body);letter-spacing:-.02em;font-weight:540;line-height:1.55}.case-label{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);letter-spacing:.09em;text-transform:uppercase;margin:23px 0 8px;font-weight:600;display:block}.case-label:first-child{margin-top:0}.impact-summary{max-width:740px;margin-top:24px}.impact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;display:grid}.impact-item{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;justify-content:space-between;gap:16px;min-height:112px;padding:16px;display:flex}@supports (color:color-mix(in lab, red, red)){.impact-item{background:color-mix(in srgb, var(--surface) 76%, transparent)}}.impact-item dt{color:var(--muted);font-size:var(--type-small);line-height:1.45}.impact-item dd{color:var(--text);font-size:var(--type-heading);letter-spacing:-.035em;order:-1;margin:0;font-weight:620;line-height:1.05}.case-copy .impact-note{color:var(--faint);font-size:var(--type-small);margin:11px 0 0;line-height:1.5}.impact-source{border-bottom:1px solid var(--line-strong);color:var(--muted);font-size:var(--type-small);align-items:center;gap:5px;margin-top:9px;display:inline-flex}.impact-source svg{width:13px}.highlight-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.highlight-list li{border-top:1px solid var(--line);font-size:var(--type-body);grid-template-columns:25px 1fr;gap:8px;padding:16px 0;display:grid}.highlight-list li:last-child{border-bottom:1px solid var(--line)}.highlight-list li span{color:var(--accent)}.case-stack{border-top:1px solid var(--line);margin-top:24px;padding-top:16px}.case-stack>span{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;display:block}.next-project{border-top:1px solid var(--line);justify-content:space-between;align-items:end;padding:22px 0;display:flex}.next-project>span{color:var(--faint);font-family:var(--font-geist-mono), monospace;font-size:var(--type-small);text-transform:uppercase;letter-spacing:.08em}.next-project strong{font-size:var(--type-heading);letter-spacing:-.035em;align-items:center;gap:15px;font-weight:520;display:flex}.next-project svg{width:38px;transition:transform .18s}.next-project:hover svg{transform:translate(5px,-5px)}@media (max-width:900px){:root{--page-gutter:64px;--header-gutter:64px}.hero{grid-template-columns:1fr .72fr;gap:45px}.portrait-note-top{right:-18%}.portrait-note-bottom{left:-4%}.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card .project-visual{height:160px}.contact-section{padding-inline:42px}.all-projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){:root{--page-gutter:32px;--header-gutter:24px;--type-display:clamp(32px, 8.7vw, 38px);--type-heading:clamp(22px, 6.2vw, 26px);--type-body:17px;--type-small:12px}body{padding-top:72px}.site-header{height:58px;top:10px}.header-inner{gap:12px;height:58px;padding:6px}.header-profile{flex-basis:44px;width:44px;height:44px}.site-nav{gap:18px}.site-nav a:nth-child(2){display:none}.hero{grid-template-columns:1fr;gap:44px;min-height:auto;padding:40px 0 68px}.hero-actions{flex-direction:column;align-items:flex-start;gap:22px}.portrait-wrap{width:min(64vw,230px);margin-inline:auto}.portrait-note-top{right:-10%}.ticker-section{padding:0}.ticker-band{width:103%;margin-left:-1.5%}.ticker-run span{gap:20px;padding:12px 20px 11px 0}.work-section,.about-section,.history-section{padding-block:36px}.work-section{padding-top:64px}.section-heading,.about-grid{grid-template-columns:1fr;gap:24px}.section-heading{margin-bottom:26px}.projects-grid{grid-template-columns:1fr}.project-card{grid-template-columns:38% minmax(0,1fr);display:grid}.project-card .project-visual{height:100%;min-height:148px}.project-card-content{min-width:0;padding:14px 15px}.project-card .tag-row{display:none}.project-card-content>p{margin-bottom:0}.principles{grid-template-columns:1fr;margin-top:44px}.principles>div,.principles>div+div{border-left:0;border-bottom:1px solid var(--line);padding:26px 0 30px}.principles>div:last-child{border-bottom:0}.principles h3{margin-top:18px}.role-timeline:before{top:5px;bottom:30px;left:5px}.role-item{grid-template-columns:28px minmax(0,1fr);min-height:0}.role-period{grid-area:1/2;padding:0 0 7px 14px}.role-node{grid-area:1/1/3;justify-content:flex-start;padding-top:0}.role-copy{grid-area:2/2;padding:0 0 26px 14px}.role-item+.role-item .role-period,.role-item+.role-item .role-node{padding-top:24px}.role-item+.role-item .role-copy{padding-top:0}.contact-section{border-radius:17px;width:calc(100% - 20px);padding:16px 20px}.contact-orbit{width:210px;height:210px;top:-40px;right:-118px}.site-footer{flex-direction:column}.footer-links{flex-wrap:wrap;gap:15px 22px}.projects-page{padding-block:36px 54px}.projects-page-header{grid-template-columns:1fr;gap:14px;margin-bottom:30px}.projects-page-header .eyebrow{grid-column:auto}.all-projects-grid{grid-template-columns:1fr}.compact-project-card{grid-template-columns:42% 1fr;height:192px;display:grid}.compact-project-card .project-visual{height:100%;min-height:0}.compact-project-content>p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.compact-project-card .tag-row{display:none}.project-page{padding-top:22px;padding-bottom:40px}.project-hero{grid-template-columns:1fr;align-items:start;gap:20px;padding:26px 0 22px}.impact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-visual-large{border-radius:17px;height:240px}.project-visual-large .project-visual-placeholder{padding:25px}.project-carousel{border-radius:17px}.carousel-viewport{height:240px}.carousel-slide{padding:14px 16px}.carousel-bar{grid-template-columns:auto 1fr auto;gap:10px;padding-left:14px}.carousel-dots{gap:4px;max-width:150px;overflow:hidden}.carousel-dots button{flex:none;width:6px;height:6px}.carousel-dots button[aria-current=true]{width:16px}.case-grid{grid-template-columns:1fr;gap:18px;padding-block:28px}.next-project{flex-direction:column;align-items:flex-start;gap:20px}}@media (max-width:390px){.site-nav{gap:13px}}@media (max-width:360px){.site-nav a:nth-child(3){display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker-track{animation:none;transform:none}.ticker-run:nth-child(2){display:none}*,:before,:after{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}
