@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:300 700;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Space Grotesk Fallback;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_dd5b2f{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.__variable_dd5b2f{--font-space-grotesk:"Space Grotesk","Space Grotesk Fallback"}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ae822095a172cc5c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/3c70c5716f1730b3-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fc727f226c737876-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/77fb5eec12c66d49-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/281dae1e814de8c6-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/806de4d605d3ad01-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Space Mono Fallback;src:local("Arial");ascent-override:81.58%;descent-override:26.30%;line-gap-override:0.00%;size-adjust:137.28%}.__className_e8b655{font-family:Space Mono,Space Mono Fallback;font-style:normal}.__variable_e8b655{--font-space-mono:"Space Mono","Space Mono Fallback"}

/*! tailwindcss v4.1.12 | 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)))){:host,:root{--background:#f0efe6;--foreground:#20231f;--muted:#5e6157;--rule:#a2a597;--accent:#f55b2d;--grid:#d9dbcf;--line:#20231f;--inverse-background:#20231f;--inverse-foreground:#f0efe6;--accent-ink:#20231f;--accent-text:#b53310}}}@layer theme{:host,:root{--color-blue-400:oklch(70.7% .165 254.624);--color-black:#000;--spacing:.25rem;--default-font-family:var(--font-space-grotesk);--default-mono-font-family:var(--font-space-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{.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.hidden{display:none}.inline{display:inline}.h-5{height:calc(var(--spacing)*5)}.h-8{height:calc(var(--spacing)*8)}.w-5{width:calc(var(--spacing)*5)}.w-8{width:calc(var(--spacing)*8)}.fill-black{fill:var(--color-black)}.text-blue-400{color:var(--color-blue-400)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@property --background{syntax:"<color>";inherits:true;initial-value:#f0efe6}@property --foreground{syntax:"<color>";inherits:true;initial-value:#20231f}@property --muted{syntax:"<color>";inherits:true;initial-value:#5e6157}@property --rule{syntax:"<color>";inherits:true;initial-value:#a2a597}@property --accent{syntax:"<color>";inherits:true;initial-value:#f55b2d}@property --grid{syntax:"<color>";inherits:true;initial-value:#d9dbcf}@property --line{syntax:"<color>";inherits:true;initial-value:#20231f}@property --inverse-background{syntax:"<color>";inherits:true;initial-value:#20231f}@property --inverse-foreground{syntax:"<color>";inherits:true;initial-value:#f0efe6}@property --accent-ink{syntax:"<color>";inherits:true;initial-value:#20231f}@property --accent-text{syntax:"<color>";inherits:true;initial-value:#b53310}:root{--background:#f0efe6;--foreground:#20231f;--muted:#5e6157;--rule:#a2a597;--accent:#f55b2d;--grid:#d9dbcf;--line:#20231f;--inverse-background:#20231f;--inverse-foreground:#f0efe6;--accent-ink:#20231f;--accent-text:#b53310;color-scheme:light;transition:--background .8s,--foreground .8s,--muted .8s,--rule .8s,--accent .8s,--grid .8s,--line .8s,--inverse-background .8s,--inverse-foreground .8s,--accent-ink .8s,--accent-text .8s}:root[data-theme=dark]{--background:#191d18;--foreground:#eeeede;--muted:#b2b9a8;--rule:#62685b;--grid:#2d342a;--line:#737b6b;--inverse-background:#10130f;--accent-text:#ff895d;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{background:var(--background);color:var(--foreground);font-family:var(--font-space-grotesk),Arial,Helvetica,sans-serif;margin:0;font-size:16px;line-height:1.55}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-underline-offset:5px}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}svg{flex-shrink:0}.site-shell{border-inline:1px solid var(--line);max-width:1440px;margin:0 auto}.eyebrow{font:400 11px/1.5 var(--font-space-mono),monospace;text-transform:uppercase;letter-spacing:.055em}.accent{color:var(--accent)}.skip-link{background:var(--foreground);color:var(--background);z-index:10;padding:12px;position:absolute;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.top-bar{background:var(--inverse-background);color:var(--inverse-foreground);gap:16px;padding:8px clamp(20px,3vw,44px)}.site-nav,.top-bar{justify-content:space-between;align-items:center;display:flex}.site-nav{border-bottom:1px solid var(--line);gap:24px;padding:21px clamp(20px,3vw,44px)}.site-mark{letter-spacing:-1px;align-items:center;gap:12px;font-size:27px;font-weight:700;text-decoration:none;display:flex}.mark-grid{grid-template-rows:repeat(2,11px);grid-template-columns:repeat(2,11px);gap:4px;display:grid}.mark-grid i{background:var(--foreground)}.mark-grid i:last-child{background:0 0;font-size:20px;font-style:normal;font-weight:400;line-height:9px}.nav-links{flex-wrap:wrap;gap:clamp(16px,3vw,42px);display:flex}.nav-links a{border-bottom:2px solid #0000;padding:8px 0;text-decoration:none}.nav-links a:hover,.nav-links a[aria-current]{border-color:var(--accent)}.action-link{border:1px solid var(--line);font:500 12px/1.5 var(--font-space-mono),monospace;text-transform:uppercase;letter-spacing:.035em;justify-content:space-between;align-items:center;gap:16px;padding:17px 20px;text-decoration:none;display:flex}.action-link:hover{background:var(--foreground);color:var(--background)}.spec-strip{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.spec-strip div{font:400 12px/1.6 var(--font-space-mono),monospace;text-transform:uppercase;padding:19px clamp(20px,3vw,44px)}.spec-strip div+div{border-left:1px solid var(--rule)}.spec-strip dt{color:var(--muted);letter-spacing:.07em;margin-bottom:5px;font-size:10px}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:24px;padding:44px clamp(20px,3vw,44px) 26px;display:flex}.section-heading h2{letter-spacing:-.05em;margin-top:10px;font-size:clamp(32px,3.5vw,48px);line-height:1.1}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-card{border-bottom:1px solid var(--line);flex-direction:column;min-width:0;display:flex}.project-card:nth-child(2n){border-left:1px solid var(--line)}.project-visual{background-image:linear-gradient(var(--grid)1px,transparent 1px),linear-gradient(90deg,var(--grid)1px,transparent 1px);background-size:24px 24px;justify-content:center;align-items:center;height:clamp(195px,23vw,310px);margin:24px 24px 0;display:flex;position:relative}.visual-label{background:var(--background);padding:2px 5px;position:absolute;top:8px;left:8px}.visual-cross{font:24px monospace;position:absolute;bottom:2px;right:8px}.project-diagram{width:85%;max-width:440px;height:auto}.vector-flow{justify-content:center;align-items:center;gap:18px;width:78%;display:flex}.vector-flow>span{background:var(--background);border:1px solid var(--line);padding:20px}.vector-flow>span:last-child{background:var(--accent);color:var(--accent-ink)}.vector-flow>span svg{width:56px;height:56px}.flow-arrow{width:40px}.project-copy{flex-direction:column;flex:1;padding:28px clamp(20px,3vw,44px) 26px;display:flex}.project-copy h3{letter-spacing:-.045em;margin:12px 0 16px;font-size:clamp(26px,2.7vw,37px);line-height:1.12}.project-copy h3 a{text-decoration:none}.project-copy h3 a:hover{text-decoration:underline}.project-description{color:var(--muted);max-width:55ch}.tag-list{flex-wrap:wrap;gap:8px;margin:22px 0;padding:0;list-style:none;display:flex}.tag-list li{font:400 11px/1.5 var(--font-space-mono),monospace;border:1px solid var(--rule);padding:4px 8px}.project-link{border-top:1px solid var(--rule);justify-content:space-between;gap:16px;margin-top:auto;padding:15px 0 0;text-decoration:none;display:flex}.project-link:hover{text-decoration:underline}.index-link{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:23px clamp(20px,3vw,44px);text-decoration:none;display:flex}.index-link:hover{background:var(--foreground);color:var(--background)}.profile-strip{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.5fr;gap:48px;padding:44px clamp(20px,3vw,44px);display:grid}.profile-strip h2{letter-spacing:-.045em;margin-top:14px;font-size:clamp(28px,3vw,40px);line-height:1.1}.profile-strip p+p{margin-top:18px}.profile-strip>div:last-child{color:var(--muted)}.text-link{color:var(--foreground);align-items:center;gap:20px;margin-top:22px;display:inline-flex}.contact-banner{background:var(--inverse-background);color:var(--inverse-foreground);justify-content:space-between;align-items:center;gap:24px;padding:40px clamp(20px,3vw,44px);display:flex}.contact-banner h2{letter-spacing:-.05em;margin:12px 0 22px;font-size:clamp(30px,4vw,56px);line-height:1.1}.contact-arrow svg{width:64px;height:64px}.contact-arrow:hover{color:var(--accent)}.site-footer{flex-wrap:wrap;justify-content:space-between;gap:20px;padding:20px clamp(20px,3vw,44px);display:flex}.site-footer>div{flex-wrap:wrap;gap:24px;display:flex}.page-heading{border-bottom:1px solid var(--line);padding:42px clamp(20px,3vw,44px)}.page-heading h1{letter-spacing:-.06em;overflow-wrap:anywhere;margin:18px 0 0;font-size:clamp(46px,7vw,96px);font-weight:500;line-height:1.04}.page-heading .page-intro{max-width:650px;color:var(--muted);margin-top:22px;font-size:18px}.page-heading .back-link{align-items:center;gap:8px;display:inline-flex}@media (max-width:700px){.top-bar .portfolio-edition{display:none}.site-nav{flex-wrap:wrap;gap:12px;padding:16px 20px}.nav-links{gap:18px}.nav-number{display:none}.spec-strip{grid-template-columns:1fr}.spec-strip div{justify-content:space-between;gap:12px;padding:13px 24px;display:flex}.spec-strip div+div{border-left:0;border-top:1px solid var(--rule)}.spec-strip dt{margin:0}.section-heading{flex-wrap:wrap;align-items:start;gap:16px;padding-top:30px}.project-grid{grid-template-columns:1fr}.project-card:nth-child(2n){border-left:0}.project-visual{height:220px;margin:20px 20px 0}.profile-strip{grid-template-columns:1fr;gap:24px;padding-block:32px}.contact-arrow svg{width:40px;height:40px}.email-link{overflow-wrap:anywhere}.site-footer>div{gap:20px}}@media (max-width:380px){.nav-links{justify-content:space-between;gap:10px;width:100%}.vector-flow{gap:10px}.vector-flow>span{padding:15px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}}.about-layout{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.45fr;display:grid}.portrait{border-right:1px solid var(--line);flex-direction:column;margin:0;display:flex}.portrait img{object-fit:cover;object-position:center;filter:grayscale();width:100%;height:100%;min-height:350px;max-height:800px;padding:24px}.portrait figcaption{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px;padding:20px 24px;display:flex}.about-copy{padding:40px clamp(24px,4vw,56px)}.about-copy h2{letter-spacing:-.045em;margin:20px 0 28px;font-size:clamp(34px,3.5vw,52px);line-height:1.07}.about-copy>p:not(.eyebrow){color:var(--muted);margin-bottom:22px}.about-copy .action-link{margin-top:32px}.contact-row{border-bottom:1px solid var(--line);grid-template-columns:150px 36px 1fr 32px;align-items:center;gap:30px;padding:36px clamp(20px,3vw,44px);text-decoration:none;display:grid}.contact-row h2{letter-spacing:-.04em;overflow-wrap:anywhere;font-size:clamp(22px,3vw,40px)}.contact-row p{color:var(--muted);margin-top:6px}.contact-row:hover{background:var(--grid)}.contact-row:hover .contact-row-arrow{color:var(--accent-ink);background:var(--accent)}.experience-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding:24px clamp(20px,3vw,44px);display:flex}.experience-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 2.3fr;display:grid}.experience-dates{border-right:1px solid var(--line);padding:36px clamp(20px,3vw,44px)}.experience-dates>p{font-family:var(--font-space-mono),monospace;margin:24px 0 8px;font-size:14px}.experience-copy{padding:36px clamp(20px,3vw,44px)}.experience-copy h2{letter-spacing:-.04em;margin:16px 0 22px;font-size:clamp(27px,3vw,42px);line-height:1.13}.experience-copy>p:not(.eyebrow){color:var(--muted)}.experience-highlights{margin:24px 0;padding-left:20px;list-style-type:square}.experience-highlights li{margin-bottom:8px;padding-left:7px}.experience-highlights li::marker{color:var(--accent)}.project-gallery{grid-template-columns:1fr 1fr;display:grid}.gallery-image{border-bottom:1px solid var(--rule);padding:28px}.study-image{border:1px solid var(--rule);width:100%;height:auto}.gallery-caption{border-left:1px solid var(--rule);border-bottom:1px solid var(--rule);align-items:center;padding:32px;display:flex}.gallery-text{color:var(--muted);font-size:16px;line-height:1.7}@media (max-width:700px){.about-layout,.experience-row,.project-gallery{grid-template-columns:1fr}.portrait{border-right:0;border-bottom:1px solid var(--line)}.portrait img{height:420px;min-height:0}.about-copy{padding:30px 24px}.contact-row{grid-template-columns:28px minmax(0,1fr) 24px;gap:16px;padding-block:28px}.contact-row>.eyebrow{grid-column:1/-1}.experience-dates{border-right:0;padding-bottom:0}.experience-dates>p{margin-top:12px}.gallery-image{border-bottom:0;padding:20px}.gallery-caption{border-left:0;padding:4px 24px 28px}}.top-bar-actions{flex-shrink:0;align-items:center;gap:24px;display:flex}.theme-toggle{width:36px;height:36px;color:inherit;cursor:pointer;background:0 0;border:1px solid;justify-content:center;align-items:center;padding:0;transition:color .8s,background-color .8s,border-color .8s;display:inline-flex;position:relative}.theme-toggle:hover{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.theme-toggle svg{transition:opacity .8s,transform .8s;position:absolute}.theme-moon{opacity:1;transform:rotate(0)scale(1)}.theme-sun{opacity:0;transform:rotate(-90deg)scale(.65)}:root[data-theme=dark] .theme-moon{opacity:0;transform:rotate(90deg)scale(.65)}:root[data-theme=dark] .theme-sun{opacity:1;transform:rotate(0)scale(1)}@media (max-width:700px){.top-bar{gap:12px}.top-bar-actions{gap:0}}.micro-label{font:400 10px/1.5 var(--font-space-mono),monospace;letter-spacing:.08em;text-transform:uppercase;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 230px;column-gap:clamp(24px,6vw,88px);padding:30px clamp(20px,3vw,44px) 0;display:grid}.hero-intro{min-width:0;padding-bottom:26px}.hero-register{max-width:800px;color:var(--muted);justify-content:space-between;gap:16px;display:flex}.hero h1{letter-spacing:-.065em;margin:20px 0;font-size:clamp(60px,7vw,94px);font-weight:700;line-height:.89}.hero-bio{max-width:61ch;font:400 14px/1.8 var(--font-space-mono),monospace;color:var(--muted)}.hero-spec{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;margin-top:23px;display:flex}.portfolio-jump{color:var(--foreground);letter-spacing:.11em;text-decoration:none}.portfolio-jump:after{content:"↓";color:var(--accent-text);margin-left:7px;transition:transform .18s;display:inline-block}.portfolio-jump:hover{text-decoration:underline}.portfolio-jump:hover:after{transform:translateY(3px)}.hero-social{flex-wrap:wrap;gap:24px;margin-top:18px;display:flex}.hero-social a{color:var(--accent-text);padding-block:4px;text-decoration:none}.hero-social a:hover{text-decoration:underline}.hero-credentials{border-left:1px solid var(--rule);flex-direction:column;justify-content:space-between;align-items:center;gap:20px;padding:0 0 26px 28px;display:flex}.hero-location{color:var(--muted);align-self:flex-end}.hero-globe{width:116px;height:116px}.hero-education{font:400 11px/1.5 var(--font-space-mono),monospace;text-transform:uppercase;text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.hero-education strong{font:700 14px/1.5 var(--font-space-grotesk),sans-serif;letter-spacing:.04em}.hero-education .credential-focus{color:var(--accent-text)}.hero-city{color:var(--muted);padding-top:8px}.coursework-details{position:relative}.coursework-details summary{cursor:pointer;-webkit-text-decoration:underline dotted var(--rule);text-decoration:underline dotted var(--rule);text-underline-offset:4px;list-style:none}.coursework-details summary::-webkit-details-marker{display:none}.coursework-hint{color:var(--accent-text)}.coursework-details[open] .coursework-hint{display:inline-block;transform:rotate(45deg)}.coursework-panel{z-index:5;border:1px solid var(--line);background:var(--background);width:260px;color:var(--foreground);text-align:left;box-shadow:6px 6px 0 var(--grid);padding:14px 16px;display:none;position:absolute;top:calc(100% + 10px);right:50%;transform:translate(50%)}.coursework-details:focus-within .coursework-panel,.coursework-details:hover .coursework-panel,.coursework-details[open] .coursework-panel{display:block}.coursework-panel>span{color:var(--muted)}.coursework-panel ul{text-transform:none;gap:5px;margin:9px 0 0;padding-left:17px;display:grid}.coursework-panel li::marker{color:var(--accent-text)}.hero-work-link{border-top:1px solid var(--rule);grid-column:1/-1;justify-content:space-between;align-items:center;padding:12px 0;text-decoration:none;display:flex}.hero-work-link:hover span:first-child{text-decoration:underline}.hero-work-link span:last-child{color:var(--accent-text);font-size:18px}.count-badge{border:1px solid var(--line);min-width:30px;height:26px;color:var(--foreground);font:700 11px/1 var(--font-space-mono),monospace;font-variant-numeric:tabular-nums;letter-spacing:.02em;justify-content:center;padding:0 6px}.count-badge,.index-counter{align-items:center;display:inline-flex}.index-counter{gap:14px;text-decoration:none}.index-counter:hover{text-decoration:underline}.page-register{border-bottom:1px solid var(--rule);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;padding-bottom:18px;display:flex}.page-register .back-link{color:var(--foreground)}.page-register-meta{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.folio-count{align-items:center;gap:8px;display:inline-flex}.project-page-heading{padding-top:22px;padding-bottom:30px}.project-page-heading h1{letter-spacing:-.05em;max-width:24ch;font-size:clamp(36px,5vw,66px);font-weight:700;line-height:1.06}.card-register{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 20px;display:flex}.card-register>.micro-label{color:var(--muted)}.footer-register{align-items:center}.footer-barcode{width:82px;height:20px}.footer-serial{color:var(--muted);margin-top:5px;display:block}.basic-info,.tech-stack{border-bottom:1px solid var(--line);padding:28px clamp(20px,3vw,44px)}.basic-info h2{margin-bottom:18px}.overview-description{color:var(--muted);max-width:90ch;font-size:17px;line-height:1.8}.project-facts{border-top:1px solid var(--rule);flex-wrap:wrap;gap:18px 48px;margin-top:24px;padding-top:18px;display:flex}.project-facts dt{font:400 10px/1.5 var(--font-space-mono),monospace;text-transform:uppercase;color:var(--muted);letter-spacing:.08em;margin-bottom:6px}.project-facts dd{font:400 12px/1.65 var(--font-space-mono),monospace}.project-actions{flex-wrap:wrap;gap:16px 30px;margin-top:22px;display:flex}.project-actions .action-link{color:var(--accent-text);border:0;padding:4px 0;font-size:11px}.project-actions .action-link:hover{color:var(--accent-text);background:0 0;text-decoration:underline}.technical-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;display:flex}.technical-heading>.micro-label{color:var(--muted)}.technology-list{flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.technology-list li{border:1px solid var(--rule);font:400 13px/1.5 var(--font-space-mono),monospace;letter-spacing:-.035em;white-space:nowrap;overflow-wrap:normal;word-break:normal;align-items:baseline;gap:10px;max-width:100%;padding:9px 13px;display:flex}.technology-list li>span{color:var(--accent-text);flex-shrink:0}.highlights{border-bottom:1px solid var(--line);padding:28px clamp(20px,3vw,44px) 0}.highlights>.technical-heading{border-bottom:1px solid var(--rule);padding-bottom:22px}.highlights-list article{grid-template-columns:32px minmax(0,1fr);gap:20px;padding:24px 0;display:grid}.highlights-list article+article{border-top:1px solid var(--rule)}.highlight-number{color:var(--accent-text);padding-top:4px;font-weight:700}.highlights h3{letter-spacing:-.025em;margin-bottom:10px;font-size:22px;font-weight:500;line-height:1.25}.highlights article p{max-width:95ch;color:var(--muted);font-size:15px;line-height:1.75}.gallery-heading{border-bottom:1px solid var(--line);padding:28px clamp(20px,3vw,44px)}@media (max-width:700px){.hero{grid-template-columns:minmax(0,1fr);padding-top:24px}.hero h1{font-size:clamp(60px,13vw,86px)}.hero-bio{font-size:13px}.hero-credentials{border-left:0;border-top:1px solid var(--rule);grid-template-columns:auto minmax(0,1fr);justify-content:stretch;align-items:center;gap:0 20px;padding:20px 0;display:grid}.hero-globe{width:70px;height:70px}.hero-location{color:var(--muted);grid-area:2/2;place-self:start;margin-top:3px}.hero-globe{grid-area:1/1/3}.hero-education{text-align:left;align-items:flex-start}.hero-city{padding-top:2px}.coursework-panel{width:min(260px,100vw - 130px);left:0;right:auto;transform:none}.hero-spec,.page-register-meta{gap:12px}.page-register{margin-bottom:22px}.technology-list li{padding:8px 10px;font-size:12px}.highlights-list article{grid-template-columns:24px minmax(0,1fr);gap:12px}.highlights h3{font-size:20px}.footer-register{width:100%}}