@import "https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@300;400;500&display=swap";
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.3p2_lha1f2xer.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.1qq4vpdcun5oj.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/53b9e256198e5412-s.390ncx5urfkfu.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.21jp631_3pja2.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.0wgildi0cnwt9.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/5ce348bf30bf5439-s.31988l_ccedte.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.2tuy5pz7dlieh.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/6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.1rgnod-3esatf.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.0r6juujl39pe6.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"}
*{box-sizing:border-box}img{max-width:100%;height:auto;display:block}.siteContainer{max-width:1320px;margin:0 auto;padding:0 20px}body{color:#2c2723;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:#f8f7f3;margin:0;font-family:Instrument Sans,sans-serif;font-size:15px;font-weight:400;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}.topNav{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f8f7f3a6;border-bottom:1px solid #2c27231a;width:100%;position:sticky;top:0}.topNavInner{justify-content:space-between;align-items:center;max-width:1320px;margin:0 auto;padding:16px 20px;display:flex}.brand{color:#25211e;letter-spacing:.05em;font-family:Bodoni Moda,serif;font-size:25px;font-style:italic;font-weight:400}.topNav nav{gap:32px;display:flex}.topNav nav a{letter-spacing:.06em;text-transform:uppercase;color:#5a5148;font-size:13px;font-weight:400;display:inline-block;position:relative}.topNav nav a:after{content:"";background:#2c2723;width:0;height:1px;transition:width .25s;position:absolute;bottom:-1px;left:0}.topNav nav a:hover{color:#2c2723}.topNav nav a:hover:after{width:100%}.homeIntro{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:60px;max-width:1320px;margin:0 auto;padding:117px 20px 114px;display:flex}.homeIntroText{flex:420px}.homeIntro p{letter-spacing:-.02em;color:#2c2723;margin:0 0 24px;font-family:Cormorant Garamond,serif;font-size:52px;font-style:italic;font-weight:300;line-height:1}.homeIntro h1{color:#6b5f58;max-width:640px;margin-top:40px;font-family:Instrument Sans,sans-serif;font-size:16px;font-weight:400;line-height:1.75}.typewriter{display:inline}.contactLinks{flex-wrap:wrap;gap:20px;margin-top:22px;display:flex}.contactLinks a{letter-spacing:.02em;color:#b08a63;text-underline-offset:3px;font-size:13px;text-decoration:underline;transition:color .2s}.contactLinks a:hover{color:#8a6a4c}.photoAlbumWrap{flex-direction:column;flex:none;align-items:center;display:flex;transform:translate(-90px,-15%)}.photoAlbumWrap .photoAlbumLabel{letter-spacing:.08em;text-transform:uppercase;color:#9c9188;margin:0 0 24px;font-size:15px}.photoAlbum{cursor:pointer;width:150px;height:185px;position:relative}.photoAlbumCard{background:0 0;border-radius:2px;transition:transform .42s cubic-bezier(.22,1,.36,1),opacity .42s;position:absolute;inset:0;overflow:hidden;box-shadow:0 12px 30px #2c272321,0 4px 10px #2c272314}.photoAlbumCard img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.typewriterCursor{color:#b08a63;margin-left:2px;font-weight:300;animation:1s step-end infinite blinkCursor;display:inline-block}@keyframes blinkCursor{0%,50%{opacity:1}50.01%,to{opacity:0}}.projectsHeader{max-width:1320px;margin:0 auto;padding:0 20px 20px}.projectsHeader h3{letter-spacing:.18em;text-transform:uppercase;color:#9c9188;border-bottom:1.5px solid #2c272347;margin:0;padding-bottom:16px;font-family:Instrument Sans,sans-serif;font-size:11px;font-weight:400}.projectGrid{grid-template-columns:repeat(3,1fr);gap:6px;max-width:1320px;margin:0 auto;padding:0 20px 80px;scroll-margin-top:80px;display:grid}.gridProject{aspect-ratio:4/3;background:#ede9e3;display:block;position:relative;overflow:hidden}.gridProject img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.projectOverlay{text-align:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;background:#0d0c0b61;flex-direction:column;justify-content:center;align-items:center;padding:24px;transition:opacity .85s cubic-bezier(.22,1,.36,1),-webkit-backdrop-filter .85s,backdrop-filter .85s;display:flex;position:absolute;inset:0}.gridProject:hover .projectOverlay{opacity:1}.gridProject img{transition:transform 1.4s cubic-bezier(.22,1,.36,1),filter 1.4s}.gridProject:hover img{filter:saturate(.88)brightness(.96);transform:scale(1.06)}.projectOverlay h2{color:#f6f2ea;opacity:0;margin:0;font-family:Cormorant Garamond,serif;font-size:27px;font-weight:300;line-height:1.15;transition:opacity .75s .18s,transform .75s cubic-bezier(.22,1,.36,1) .18s;transform:translateY(12px)}.projectOverlay h2:after{content:"";background:#f6f2ea80;width:0;height:1px;margin:11px auto 0;transition:width .9s cubic-bezier(.22,1,.36,1) .34s;display:block}.projectOverlay p{letter-spacing:.22em;text-transform:uppercase;color:#f6f2eac2;opacity:0;margin:11px 0 0;font-size:10.5px;transition:opacity .75s .42s,transform .75s cubic-bezier(.22,1,.36,1) .42s;transform:translateY(10px)}.gridProject:hover .projectOverlay h2,.gridProject:hover .projectOverlay p{opacity:1;transform:translateY(0)}.gridProject:hover .projectOverlay h2:after{width:46px}@media (prefers-reduced-motion:reduce){.gridProject img,.projectOverlay,.projectOverlay h2,.projectOverlay h2:after,.projectOverlay p{transition-duration:.01ms}}.bestWorksFrame{background:#362b22;border-top:1px solid #f0e6d81f;border-bottom:1px solid #f0e6d81f;width:100%;margin:0 0 80px;padding:56px 0;overflow:hidden}.bestWorksLabel{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;max-width:1320px;margin:0 auto 28px;padding:0 20px;display:flex}.bestWorksLabel h3{color:#f0e6d8;margin:0;font-family:Cormorant Garamond,serif;font-size:30px;font-style:italic;font-weight:300}.bestWorksHint{letter-spacing:.14em;text-transform:uppercase;color:#9c8a76;margin:0;font-size:11px}.filmstripViewport{cursor:grab;touch-action:pan-y;width:100%;overflow:hidden}.filmstripViewport:active{cursor:grabbing}.filmstripTrack{will-change:transform;gap:18px;width:max-content;padding:0 20px;display:flex}.filmstripSlide{border-radius:2px;flex:none;width:auto;height:420px;position:relative;overflow:hidden}.filmstripSlide img{object-fit:cover;pointer-events:none;-webkit-user-drag:none;width:auto;max-width:none;height:100%;display:block}.kenBurnsLoop{animation:7s ease-in-out infinite alternate kenBurns}@keyframes kenBurns{0%{transform:scale(1)translate(0)}to{transform:scale(1.22)translate(-2.5%,1.5%)}}.aboutMe{padding:0 20px 100px;scroll-margin-top:80px}.aboutTop{grid-template-columns:3fr 1.92fr;align-items:stretch;gap:40px;display:grid}.aboutLeft{border-right:1.5px solid #2c272347;flex-direction:column;padding-right:40px;display:flex}.aboutLeft h2{color:#2c2723;margin:0 0 17px;font-family:Cormorant Garamond,serif;font-size:39px;font-style:italic;font-weight:300}.aboutLeft p{color:#6b5f58;margin:0 0 15px;font-size:14px;line-height:1.62}.aboutLeft p+p{margin-top:auto}.aboutLeft p:last-of-type{margin-bottom:0}.aboutRight{flex-direction:column;gap:17px;display:flex}.aboutRight img{aspect-ratio:3/3.65;object-fit:cover;border-radius:2px;width:100%;max-width:170px;display:block;box-shadow:0 10px 26px #2c272329}.aboutLeft h3,.aboutRight h3{color:#2c2723;margin:0 0 7px;font-family:Cormorant Garamond,serif;font-size:18px;font-style:italic;font-weight:300}.aboutRight p{color:#6b5f58;margin:0;font-size:13px;line-height:1.55}.skills{flex-wrap:wrap;gap:5px;display:flex}.skills span{letter-spacing:.04em;color:#5a5148;border:1px solid #2c272340;border-radius:2px;padding:4px 8px;font-size:11px}@media (max-width:900px){.aboutTop{grid-template-columns:1fr;gap:40px}.aboutLeft{border-right:none;padding-right:0}.aboutLeft h2{font-size:34px}}.holePunchBlock{margin:20px 0 0}.holePunchSectionWrap{padding:0 20px 90px}.holePunchCaption{color:#2c2723;max-width:640px;margin:0 0 16px;font-family:Cormorant Garamond,serif;font-size:20px;font-style:italic;font-weight:300;line-height:1.5}.paperGrain{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:140px 140px}.holePunchPair{border:1px solid #2c27231f;width:100%;display:flex;position:relative;overflow:hidden}.holePunchSide{cursor:crosshair;width:50%;position:relative;overflow:hidden}.holePunchImg{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.holePunchScatter{cursor:default}.holePunchHole{pointer-events:none;border-radius:50%;transition:opacity .3s,transform .3s;position:absolute}.holePunchFragment{pointer-events:none;border-radius:50%;transition:opacity .3s,transform .3s;position:absolute;box-shadow:0 3px 8px #0000002e}.holePunchReset{z-index:5;letter-spacing:.03em;color:#5a5148;cursor:pointer;background:#f8f7f3eb;border:1px solid #2c272340;border-radius:999px;padding:6px 14px;font-size:11px;transition:color .2s,border-color .2s;position:absolute;bottom:12px;right:12px}.holePunchReset:hover{color:#2c2723;border-color:#2c2723}@media (max-width:900px){.holePunchImg{pointer-events:auto}.holePunchCaption{font-size:17px}}.digitalArtSection{padding:0 20px 90px}.digitalArtHeader{margin-bottom:24px}.digitalArtHeader h3{color:#2c2723;margin:0 0 6px;font-family:Cormorant Garamond,serif;font-size:32px;font-style:italic;font-weight:300}.digitalArtHint{letter-spacing:.06em;text-transform:uppercase;color:#9c9188;margin:0;font-size:12px}.digitalArtGrid{columns:5 170px;column-gap:6px}.artCard{break-inside:avoid;cursor:pointer;opacity:1;background:0 0;border:none;width:100%;margin-bottom:6px;padding:0;transition:opacity .2s;display:block}.artCard:hover{opacity:.85}.artCard img{width:100%;height:auto;display:block}.artLightbox{z-index:200;cursor:zoom-out;background:#1c1815eb;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0}.artLightboxImg{object-fit:contain;cursor:default;border-radius:2px;max-width:100%;max-height:100%;box-shadow:0 20px 60px #0006}.artLightboxClose{z-index:201;color:#f8f7f3;cursor:pointer;background:#f8f7f31a;border:1px solid #f8f7f34d;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:22px;line-height:1;transition:background .2s;display:flex;position:fixed;top:20px;right:24px}.artLightboxClose:hover{background:#f8f7f333}@media (max-width:900px){.digitalArtGrid{columns:3 100px;column-gap:4px}.artCard{margin-bottom:4px}.digitalArtSection{padding:0 20px 56px}.artLightbox{padding:20px}}.skillsBoard{padding:0 20px 10px}.skillsBoardHeader{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:20px;display:flex}.skillsBoardTitle{color:#2c2723;margin:0 0 4px;font-family:Cormorant Garamond,serif;font-size:30px;font-style:italic;font-weight:300}.skillsBoardHint{letter-spacing:.06em;text-transform:uppercase;color:#9c9188;margin:0;font-size:12px}.skillsBoardReset{letter-spacing:.04em;color:#5a5148;cursor:pointer;background:0 0;border:1px solid #2c272340;border-radius:999px;padding:7px 16px;font-size:12px;transition:color .2s,border-color .2s,background .2s}.skillsBoardReset:hover{color:#2c2723;background:#2c27230d;border-color:#2c2723}.skillsBoardCanvas{background-color:#e4ded2;background-image:radial-gradient(#705c4633 .6px,#0000 .7px),radial-gradient(#56463426 .5px,#0000 .6px),radial-gradient(#8c78601f 1px,#0000 1.1px),radial-gradient(60% 45% at 20% 25%,#9682681f,#0000 70%),radial-gradient(55% 50% at 78% 70%,#8470561a,#0000 70%),radial-gradient(92% 88%,#0000 55%,#5a422a29);background-position:0 0,3px 5px,8px 2px,0 0,0 0,0 0;background-size:7px 7px,11px 11px,17px 17px,100% 100%,100% 100%,100% 100%;border:10px solid #6b5340;border-radius:3px;min-height:520px;position:relative;overflow:hidden;box-shadow:0 18px 40px #2c272338,0 4px 10px #2c27231f,inset 0 0 0 1px #fffaf024,inset 0 2px 6px #46321e4d,inset 0 -2px 5px #46321e2e}.skillCard{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#fdfcfa;border:1px solid #2c27231a;border-radius:4px;flex-direction:column;align-items:center;gap:8px;width:108px;padding:16px 10px 12px;transition:box-shadow .2s;display:flex;position:absolute;box-shadow:0 6px 16px #2c27231f}.skillCard:active{cursor:grabbing;box-shadow:0 14px 28px #2c272338}.skillCard img{object-fit:contain;pointer-events:none;width:40px;height:40px}.skillCard span{letter-spacing:.03em;text-align:center;color:#5a5148;pointer-events:none;font-size:11px}.siteFooter{background:#362b22;margin-top:100px}.footerTop{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:40px;padding:56px 20px 40px;display:flex}.footerTagline{color:#f0e6d8;margin:0 0 14px;font-family:Cormorant Garamond,serif;font-size:22px;font-style:italic;font-weight:300}.footerEmail{letter-spacing:.04em;color:#c9b8a4;border-bottom:1px solid #f0e6d84d;padding-bottom:2px;font-size:13px;transition:color .2s,border-color .2s;display:inline-block}.footerEmail:hover{color:#f0e6d8;border-color:#f0e6d8}.footerColumns{gap:64px;display:flex}.footerColumn h4{letter-spacing:.16em;text-transform:uppercase;color:#9c8a76;margin:0 0 12px;font-size:11px;font-weight:400}.footerColumn a{color:#c9b8a4;margin-bottom:8px;font-size:13px;transition:color .2s;display:block}.footerColumn a:hover{color:#f0e6d8}.marqueeWrap{white-space:nowrap;border-top:1px solid #f0e6d81f;border-bottom:1px solid #f0e6d81f;width:100%;padding:18px 0;overflow:hidden}.marqueeTrack{will-change:transform;width:max-content;animation:42s linear infinite marqueeScroll;display:inline-flex}.marqueeWrap:hover .marqueeTrack{animation-play-state:paused}.marqueeGroup{letter-spacing:.02em;color:#f5efe6;flex-shrink:0;font-family:Bodoni Moda,serif;font-size:76px;font-style:italic;font-weight:400;line-height:1}@keyframes marqueeScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.footerBottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:24px 20px 40px;display:flex}.footerBottom p{color:#9c8a76;margin:0;font-size:12px}.footerLocation{align-items:center;gap:8px;display:flex}.footerDot{background:#b08a63;border-radius:50%;width:6px;height:6px;animation:2.4s ease-in-out infinite dotPulse;display:inline-block}@keyframes dotPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.projectDetailPage{grid-template-columns:32% 68%;align-items:stretch;gap:0;max-width:1320px;margin:0 auto;padding:20px 20px 40px;display:grid}.projectDetailText{flex-direction:column;align-self:start;padding-right:60px;display:flex}.projectTitleBar{text-align:center;border-bottom:1px solid #2c272324;max-width:1320px;margin:0 auto;padding:24px 20px 12px}.projectConcept{letter-spacing:.04em;color:#a2968b;margin:3px 0 0;font-family:Cormorant Garamond,serif;font-size:15px;font-style:italic;font-weight:300}.projectTitleBar h1{color:#2c2723;margin:0;font-family:Cormorant Garamond,serif;font-size:28px;font-weight:300;line-height:1.05}.projectImageSide{width:100%;min-width:0}.projectFacts{margin-top:-2px;margin-bottom:14px}.projectFacts p{color:#a89e94;margin:0;font-size:11px;line-height:1.4}.projectFacts strong{color:#a89e94;font-weight:400}.software{border-top:1px solid #2c27231a;flex-wrap:wrap;gap:5px;margin:6px 0 0;padding-top:12px;display:flex}.softwareChip{letter-spacing:.04em;color:#7a6f68;border:1px solid #2c272333;border-radius:2px;align-items:center;gap:6px;padding:4px 10px 4px 6px;font-size:11px;display:inline-flex}.softwareChipIcon{object-fit:contain;width:16px;height:16px;display:block}.projectDetailText p{color:#6b5f58;margin:0 0 12px;font-size:13px;line-height:1.6}.projectDetailText p strong{color:#2c2723;font-weight:500}@keyframes descRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.descPara{opacity:0;animation:.7s cubic-bezier(.22,1,.36,1) forwards descRise}@media (prefers-reduced-motion:reduce){.descPara{opacity:1;animation:none}}.projectDetailText>p:first-child{margin-top:0}.projectDetailText .projectFacts p{color:#a89e94;margin:0 0 4px;font-size:11px;line-height:1.45}.backHomeRow{max-width:1320px;margin:0 auto;padding:0 20px 64px}.backHomeButton{letter-spacing:.06em;text-transform:uppercase;color:#9c9188;align-items:center;gap:8px;font-size:12px;font-weight:400;transition:color .2s;display:inline-flex}.backHomeButton:hover{color:#2c2723}.backHomeButton span{font-size:16px;transition:transform .25s}.backHomeButton:hover span{transform:translate(-3px)}.projectCarousel{background:#ede9e3;width:100%;height:560px;position:relative;overflow:hidden}.projectCarouselTrack{cursor:grab;touch-action:pan-y;width:100%;height:100%;display:flex}.projectCarouselTrack:active{cursor:grabbing}.projectCarouselSlide{flex:0 0 100%;height:100%;position:relative;overflow:hidden}.projectCarouselSlide img{object-fit:contain;pointer-events:none;-webkit-user-drag:none;width:100%;height:100%;display:block;position:absolute;inset:0}.projectCarouselSlide .slideBackdrop{object-fit:cover;filter:blur(22px)saturate(1.05)brightness(.98);transform:scale(1.12)}.projectCarouselSlide .slideImage{z-index:1}.projectProgress{z-index:4;background:#2c272326;border-radius:2px;height:2px;position:absolute;bottom:14px;left:16px;right:16px;overflow:hidden}.projectProgressFill{background:#b08a63;width:0%;height:100%;animation-name:progressFill;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes progressFill{0%{width:0%}to{width:100%}}.projectCarouselArrow{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#2c2723;cursor:pointer;background:#f8f7f373;border:1px solid #2c272326;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;padding-bottom:2px;font-size:22px;font-weight:300;line-height:1;transition:background .2s,transform .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.projectCarouselArrow:hover{background:#f8f7f3d9}.projectCarouselArrow.left{left:14px}.projectCarouselArrow.right{right:14px}.projectCarouselArrow.left:hover{transform:translateY(-50%)translate(-2px)}.projectCarouselArrow.right:hover{transform:translateY(-50%)translate(2px)}.projectThumbs{cursor:grab;scrollbar-width:thin;-webkit-overflow-scrolling:touch;gap:6px;padding-top:10px;display:flex;overflow-x:auto}.projectThumbs:active{cursor:grabbing}.projectThumbs::-webkit-scrollbar{height:3px}.projectThumbs::-webkit-scrollbar-track{background:0 0}.projectThumbs::-webkit-scrollbar-thumb{background:#2c272333;border-radius:2px}.projectThumbs button{cursor:pointer;opacity:.42;background:0 0;border:none;flex-shrink:0;padding:0;transition:opacity .25s;position:relative}.projectThumbs button:hover{opacity:.78}.projectThumbs button.activeThumb{opacity:1}.projectThumbs img{object-fit:cover;width:auto;max-width:140px;height:70px;display:block}.thumbNumber{letter-spacing:.04em;color:#f4f1ea;pointer-events:none;background:#1a1817b8;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-family:Instrument Sans,sans-serif;font-size:10px;line-height:1;display:flex;position:absolute;bottom:0;left:0}.projectThumbs button.activeThumb .thumbNumber{background:#2c2723}.projectGalleryFrame+.siteFooter{margin-top:0}.projectGalleryFrame{background:radial-gradient(80% 65% at 50% 45%,#ffffff0b,#0000 70%),#0d0c0b;width:100%;padding:64px 0 96px}.clickGalleryHint{letter-spacing:.1em;text-transform:uppercase;color:#8f867c;margin:0 0 24px;font-size:11px}.clickGallery{cursor:pointer;background:0 0;width:100%;height:min(80vh,860px);position:relative;overflow:hidden}.clickGallery img{object-fit:contain;opacity:0;pointer-events:none;filter:drop-shadow(0 24px 60px #0009);width:100%;height:100%;transition:opacity .7s,transform 1.2s;position:absolute;inset:0;transform:scale(1.02)}.clickGallery img.isActive{opacity:1;transform:scale(1)}.notFound{padding:80px}@media (max-width:900px){.topNavInner{flex-direction:column;align-items:flex-start;gap:14px}.topNav nav{flex-wrap:wrap;gap:16px}.homeIntro{flex-direction:column;align-items:flex-start;gap:40px;padding:90px 20px 70px}.photoAlbumWrap{align-self:center}.homeIntro p{font-size:38px}.homeIntro h1{font-size:15px}.projectGrid{grid-template-columns:1fr 1fr;gap:4px}.bestWorksFrame{margin:0 0 70px;padding:40px 0 44px}.bestWorksLabel{margin-bottom:18px}.bestWorksLabel h3{font-size:24px}.filmstripSlide{height:220px}.filmstripTrack{gap:12px;padding:0 16px}.skillsBoard{padding:0 20px 60px}.skillsBoardCanvas{min-height:760px}.skillCard{width:88px;padding:12px 8px 10px}.skillCard img{width:32px;height:32px}.projectDetailPage{grid-template-columns:1fr;gap:36px}.projectDetailText{min-height:unset;padding-right:0;position:static}.projectCarousel{height:340px}.clickGallery{height:min(60vh,420px)}.projectGalleryFrame{padding:44px 0 56px}.footerTop{flex-direction:column;gap:28px;padding:44px 20px 32px}.footerColumns{gap:36px}.marqueeGroup{font-size:40px}.marqueeWrap{padding:12px 0}.footerBottom{flex-direction:column;align-items:flex-start;padding:20px 20px 32px}}.resumeMain{background:#0d0c0b;min-height:100vh}.resumeNav{background:#0d0c0be6;border-bottom:1px solid #f8f7f31a}.resumeNav .brand{color:#f4f1ea}.resumeNav nav a{color:#a99f93}.resumeNav nav a:hover{color:#f4f1ea}.resumeNav nav a:after{background:#f4f1ea}.resumeFrame{background:radial-gradient(70% 60% at 50% 45%,#ffffff0d,#0000 70%),#0d0c0b;height:calc(100vh - 61px);position:relative}.resumeScroller{justify-content:center;align-items:center;height:100%;padding:26px 20px;display:flex;overflow:auto}.resumePage{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;flex:none;width:auto;max-width:none;display:block;box-shadow:0 26px 70px #000000b3}.resumeZoomTools{z-index:50;flex-direction:column;gap:8px;display:flex;position:absolute;bottom:26px;right:26px}.resumeZoomTools button{color:#cdc5ba;cursor:pointer;background:#0d0c0bad;border:1px solid #f8f7f347;border-radius:999px;justify-content:center;align-items:center;width:42px;height:42px;transition:all .25s;display:inline-flex}.resumeZoomTools button:hover:not(:disabled){color:#1a1817;background:#f4f1ea;border-color:#f4f1ea}.resumeZoomTools button:disabled{opacity:.3;cursor:default}@media (max-width:640px){.resumeScroller{padding:14px 12px}.resumeZoomTools{bottom:16px;right:16px}}
