@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.614a1c00.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.d8bad3ab.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.262b87c4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.380d09ea.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_bed06b21-module__swPsvG__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_bed06b21-module__swPsvG__variable{--font-instrument-serif:"Instrument Serif","Instrument Serif Fallback"}
@layer theme{:root,:host{--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-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}.grow{flex-grow:1}.italic{font-style:italic}}:root{--color-bg:#f5f3ef;--color-bg-card:#fff;--color-text-primary:#1a1a1a;--color-text-secondary:#666;--color-text-muted:#999;--color-nav-bg:#2c2c2c;--color-nav-text:#fff;--color-nav-text-muted:#fff9;--font-heading:var(--font-instrument-serif),Georgia,serif;--font-body:var(--font-geist-sans),system-ui,-apple-system,sans-serif;--container-max:1440px;--container-padding:24px;--radius-card:16px;--radius-nav:100px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}a{color:inherit;text-decoration:none}.portfolio{background:var(--color-bg);min-height:100vh}.header{z-index:100;padding:24px var(--container-padding);justify-content:space-between;align-items:flex-start;transition:transform .4s,opacity .4s;display:flex;position:fixed;top:0;left:0;right:0}.header-hidden{opacity:0;pointer-events:none;transform:translateY(-100%)}.header-left{flex-direction:column;gap:2px;display:flex}.header-name{font-family:var(--font-body);color:var(--color-text-primary);font-size:15px;font-weight:500}.header-title,.header-year{color:var(--color-text-secondary);font-size:13px}.header-right{align-items:center;gap:16px;display:flex}.social-link{color:var(--color-text-primary);justify-content:center;align-items:center;font-size:14px;font-weight:500;transition:color .2s,opacity .2s;display:flex}@media (hover:hover) and (pointer:fine){.social-link:hover{color:var(--color-text-secondary)}}.social-link:active{opacity:.7}.social-link svg{width:20px;height:20px}.hero{min-height:90dvh;padding:120px var(--container-padding)80px;max-width:var(--container-max);flex-direction:column;justify-content:center;align-items:center;margin:0 auto;display:flex;position:relative}.hero-content{width:100%;max-width:900px}.hero-title{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--color-text-primary);font-size:clamp(32px,6vw,56px);font-style:normal;font-weight:400;line-height:1.15}.hero-title strong{font-weight:600}.floating-nav{z-index:100;background:var(--color-nav-bg);border-radius:var(--radius-nav);gap:24px;padding:14px 32px;display:none;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}.nav-link{color:var(--color-nav-text-muted);white-space:nowrap;font-size:14px;transition:color .2s}.nav-link.active{color:var(--color-nav-text)}@media (hover:hover) and (pointer:fine){.nav-link:hover{color:var(--color-nav-text)}}.work{padding:0 var(--container-padding)160px;max-width:var(--container-max);margin:0 auto}.projects-grid{grid-template-columns:1fr;gap:24px;display:grid}.project-card{cursor:pointer;text-decoration:none;display:block;position:relative}.card-image-container{aspect-ratio:4/3;border-radius:var(--radius-card);background:#e8e6e1;width:100%;position:relative;overflow:hidden}.card-image{object-fit:cover;transition:transform .4s}.card-placeholder{background:linear-gradient(135deg,#e0ddd6 0%,#d4d1ca 100%);width:100%;height:100%}@media (hover:hover) and (pointer:fine){.project-card:hover .card-image{transform:scale(1.02)}}.card-content{border-radius:0 0 var(--radius-card)var(--radius-card);opacity:0;pointer-events:none;background:linear-gradient(#0000 0%,#00000080 100%);padding:24px;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}@media (hover:hover) and (pointer:fine){.project-card:hover .card-content{opacity:1}}@media (hover:none){.card-content{opacity:1}}.card-meta{align-items:center;gap:8px;margin-bottom:4px;display:flex}.card-year,.card-category{color:#fffc;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.card-divider{color:#ffffff80;font-size:12px}.card-title{font-family:var(--font-heading);color:#fff;margin-bottom:4px;font-size:24px;font-weight:400}.card-subtitle{color:#fffc;font-size:14px;line-height:1.4;display:none}.footer{padding:80px var(--container-padding)32px;background:#0f0f0f;border-top:none}.footer-content{max-width:var(--container-max);flex-direction:column;gap:48px;margin:0 auto;display:flex}.footer-main{flex-direction:column;gap:24px;display:flex}.footer-title{font-family:var(--font-heading);color:#fff;font-size:clamp(28px,4vw,40px);font-weight:400;line-height:1.2}.footer-description{color:#999;font-size:16px}.footer-cta{color:#0f0f0f;background:#fff;border-radius:100px;justify-content:center;align-items:center;width:fit-content;padding:14px 28px;font-size:14px;font-weight:500;transition:background .2s,transform .15s;display:inline-flex}@media (hover:hover) and (pointer:fine){.footer-cta:hover{background:#e0e0e0}}.footer-cta:active{background:#ccc;transform:scale(.96)}.footer-links{gap:64px;display:flex}.footer-column{flex-direction:column;gap:12px;display:flex}.footer-column-title{color:#666;text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:500}.footer-list{flex-direction:column;gap:8px;list-style:none;display:flex}.footer-link{color:#999;font-size:14px;transition:color .2s}@media (hover:hover) and (pointer:fine){.footer-link:hover{color:#fff}}.footer-link:active{opacity:.7}.footer-bottom{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin-top:48px;padding-top:32px;display:flex}.footer-copyright,.footer-credits{color:#666;font-size:13px}@media (max-width:480px){.header{padding:16px}.floating-nav{gap:16px;padding:12px 20px;bottom:20px}.nav-link{font-size:13px}.hero{padding:100px 16px 120px}.work{padding:0 16px 120px}.footer-links{gap:40px}}@media (min-width:640px){:root{--container-padding:32px}.projects-grid{grid-template-columns:repeat(2,1fr);gap:24px}.footer-content{flex-direction:row;justify-content:space-between;align-items:flex-start}.footer-main{max-width:400px}}@media (min-width:1024px){:root{--container-padding:48px}.projects-grid{gap:32px}.card-title{font-size:28px}}@media (min-width:1280px){:root{--container-padding:64px}}a:focus-visible,button:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:4px;border-radius:4px}
