@font-face{font-family:icomoon;font-style:normal;font-weight:400;src:url(/static/media/icomoon.f53fba8098384bb57298.eot);src:url(/static/media/icomoon.f53fba8098384bb57298.eot#iefix) format("embedded-opentype"),url(/static/media/icomoon.ba5dacb825a6f0dc1276.ttf) format("truetype"),url(/static/media/icomoon.a364de96ca8459f15b68.woff) format("woff"),url(/static/media/icomoon.d8bb08cd812ea9df189b.svg#icomoon) format("svg")}:root{--bg:#0b0d0e;--surface:#121617;--line:#dcf0ec14;--line-strong:#dcf0ec29;--line-hover:#dcf0ec3d;--glass:#ffffff05;--text:#e9eeed;--muted:#9aa3a1;--dim:#7a8381;--accent:#5fd4bf;--accent-hover:#86e2d1;--accent-ink:#04211d;--accent-soft:color-mix(in srgb,var(--accent) 12%,#0000);--danger:#f0a39b;--font-sans:"Geist",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-serif:"Instrument Serif",ui-serif,Georgia,serif;--font-mono:"Geist Mono",ui-monospace,"SFMono-Regular",Menlo,monospace;--ease-out:cubic-bezier(0.16,1,0.3,1);--z-top:90;--z-dialog:100}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0b0d0e url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.035'/%3E%3C/svg%3E");background:var(--bg) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)' opacity='.035'/%3E%3C/svg%3E");color:#9aa3a1;color:var(--muted);font-family:Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-sans);font-size:16px;font-weight:400;line-height:1.7;text-rendering:optimizeLegibility}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}.js .animate-box{opacity:1!important}}#page{counter-reset:section;overflow-x:hidden;position:relative}a{color:var(--accent);transition:color .2s ease}a:focus,a:hover{color:var(--accent-hover);outline:none;text-decoration:none}.btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,h3,h4,h5,h6{text-wrap:balance;color:var(--text);font-family:var(--font-sans);font-weight:500;letter-spacing:-.015em;margin:0 0 16px}p{text-wrap:pretty;margin:0 0 24px}::selection{background:var(--accent);color:var(--accent-ink)}#page>section{border-image:linear-gradient(90deg,#0000,color-mix(in srgb,var(--accent) 35%,#0000),#0000) 1;border-top:1px solid;padding:128px 0 144px;position:relative}#page>section:nth-of-type(2n){background:radial-gradient(60% 40% at 85% 0,color-mix(in srgb,var(--accent) 8%,#0000),#0000 70%),color-mix(in srgb,var(--accent) 3.5%,#0000)}@media (max-width:767px){#page>section{padding:80px 0 96px}}.fh5co-heading{margin-bottom:64px}.fh5co-heading:before{content:counter(section,decimal-leading-zero);counter-increment:section;display:block;font-size:16px;margin-bottom:20px}.fh5co-heading:before,.service-index{color:var(--accent);font-family:var(--font-mono);letter-spacing:.12em}.fh5co-heading h2{font-family:var(--font-serif);font-size:clamp(44px,6vw,72px);font-weight:400;letter-spacing:-.02em;line-height:1;margin:0}.fh5co-heading p{font-size:18px;line-height:1.6;margin:20px 0 0;max-width:56ch}.row-pb-md{padding-bottom:32px}#fh5co-header{isolation:isolate;overflow:hidden;position:relative}#fh5co-header:after,#fh5co-header:before{content:"";inset:0;position:absolute;z-index:-1}#fh5co-header:before{background:radial-gradient(55% 45% at 78% 18%,var(--accent-soft),#0000 70%),radial-gradient(40% 35% at 8% 92%,color-mix(in srgb,var(--accent) 5%,#0000),#0000 70%)}#fh5co-header:after{background-image:linear-gradient(var(--line) 1px,#0000 1px),linear-gradient(90deg,var(--line) 1px,#0000 1px);background-size:72px 72px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 70% 30%,#000 10%,#0000 75%);mask-image:radial-gradient(ellipse 70% 60% at 70% 30%,#000 10%,#0000 75%)}.hero{display:flex;flex-direction:column;justify-content:center;min-height:100vh;min-height:100svh;padding:120px 0 96px}.hero>*{animation:fadeInUp 1.1s var(--ease-out) both}.hero>:nth-child(2){animation-delay:.1s}.hero>:nth-child(3){animation-delay:.2s}.hero h1{-webkit-text-fill-color:#0000;background:linear-gradient(180deg,var(--text) 35%,color-mix(in srgb,var(--text) 50%,#0000));-webkit-background-clip:text;background-clip:text;font-family:var(--font-serif);font-size:clamp(72px,13vw,184px);font-weight:400;letter-spacing:-.035em;line-height:.92;margin:0;padding-bottom:.14em}.hero-title{font-size:clamp(18px,2vw,22px);line-height:1.5;margin:20px 0 40px;max-width:44ch}.social-links{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}.social-links a{align-items:center;background:var(--glass);border:1px solid var(--line-strong);border-radius:999px;color:var(--text);display:inline-flex;font-size:14px;font-weight:500;gap:10px;height:44px;padding:0 18px;transition:border-color .2s,background-color .2s,transform .2s var(--ease-out)}.social-links a:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.social-links a:active{transform:scale(.98)}.social-links .arrow,.social-links i{color:var(--dim);transition:color .2s,transform .2s var(--ease-out)}.social-links a:hover .arrow,.social-links a:hover i{color:var(--accent)}.social-links a:hover .arrow{transform:translate(2px,-2px)}.about-photo{aspect-ratio:4/5;background:var(--surface);border-radius:24px;margin:0 0 48px;overflow:hidden;position:relative}.about-photo:after{background:linear-gradient(180deg,#0000 60%,color-mix(in srgb,var(--bg) 40%,#0000));border-radius:inherit;box-shadow:inset 0 0 0 1px var(--line);content:"";inset:0;pointer-events:none;position:absolute}.about-photo img{filter:saturate(.85);height:100%;object-fit:cover;object-position:60% 55%;transition:transform 1.2s var(--ease-out),filter .6s;width:100%}.about-photo:hover img{filter:saturate(1);transform:scale(1.03)}@media (min-width:992px){.about-photo{margin:0 24px 0 0}}.about-greeting{font-family:var(--font-serif);font-size:36px;font-style:italic;font-weight:400;line-height:1.1;margin-bottom:24px}.about-bio{font-size:17px;line-height:1.75;margin-bottom:40px;max-width:62ch}.info{border-top:1px solid var(--line);list-style:none;margin:0 0 40px;max-width:62ch;padding:0}.info li{grid-gap:16px;align-items:baseline;border-bottom:1px solid var(--line);display:grid;gap:16px;grid-template-columns:140px 1fr;padding:16px 0}.contact-form label,.info .first-block,.resume-group{color:var(--dim);font-family:var(--font-mono);font-size:12px;font-weight:400;letter-spacing:.1em;text-transform:uppercase}.info .second-block{color:var(--text);overflow-wrap:anywhere}.info a.second-block:hover{color:var(--accent)}.resume-group{margin:0 0 8px}.resume-list{list-style:none;margin:0 0 96px;padding:0}.resume-list:last-child{margin-bottom:0}.resume-item{grid-gap:32px;border-top:1px solid var(--line);display:grid;gap:32px;grid-template-columns:minmax(0,3fr) minmax(0,9fr);padding:32px 0}.progress-wrap .value-right,.resume-period{font-feature-settings:"tnum";color:var(--muted);font-family:var(--font-mono);font-size:14px;font-variant-numeric:tabular-nums;font-weight:400}.resume-period{padding-top:6px}.resume-title{font-size:22px;margin:0 0 6px}.resume-org{color:var(--accent);font-size:15px;margin:0 0 16px}.resume-desc{margin:0;max-width:68ch}@media (max-width:767px){.resume-item{gap:12px;grid-template-columns:1fr;padding:32px 0}}.services-grid{grid-gap:1px;background:var(--line);border:1px solid var(--line);border-radius:24px;display:grid;gap:1px;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;margin:0;overflow:hidden;padding:0}.service{background:var(--bg);padding:48px 44px 52px;transition:background-color .4s var(--ease-out)}.service:hover{background:var(--surface)}.service-index{display:block;font-size:12px;margin-bottom:40px}.service h3{font-size:22px;margin-bottom:14px}.service p{font-size:15.5px;margin:0;max-width:52ch}@media (max-width:767px){.services-grid{grid-template-columns:1fr}.service{padding:36px 28px 40px}}.chart{height:160px;margin:0 auto 48px;position:relative;width:160px}.chart svg{inset:0;position:absolute}.chart-track{stroke:var(--line-strong)}.chart-value{stroke:var(--accent);transition:stroke-dashoffset 1.4s var(--ease-out) .2s}#fh5co-skills.animated-fast .chart-value{stroke-dashoffset:var(--offset)}.chart-label{align-items:center;display:flex;flex-direction:column;font-size:13px;inset:0;justify-content:center;line-height:1.35;padding:0 24px;position:absolute;text-align:center}.chart-label strong{font-feature-settings:"tnum";color:var(--text);font-family:var(--font-serif);font-size:40px;font-variant-numeric:tabular-nums;font-weight:400;line-height:1;margin-bottom:6px}.progress-wrap{margin-bottom:28px}.progress-wrap h3{align-items:baseline;display:flex;font-size:15px;gap:16px;justify-content:space-between;margin:0 0 12px}.progress{background:var(--line-strong);border-radius:0;box-shadow:none;height:2px;margin:0}.progress-bar{background:var(--accent);box-shadow:none;transform-origin:left}#fh5co-skills.animated-fast .progress-bar{animation:grow-x 1.4s var(--ease-out) .2s both}.projects-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:991px){.projects-grid{grid-template-columns:1fr}}.project-card{background:linear-gradient(180deg,var(--surface),var(--bg));border:1px solid var(--line);border-radius:24px;display:flex;flex-direction:column;padding:40px;position:relative;transition:border-color .3s,transform .4s var(--ease-out)}.project-card:hover{border-color:var(--line-strong);transform:translateY(-4px)}.project-card:focus-within{border-color:var(--accent)}.project-icon{align-items:center;background:var(--accent-soft);border-radius:14px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 20%,#0000);color:var(--accent);display:inline-flex;font-size:22px;height:48px;justify-content:center;margin-bottom:32px;width:48px}.project-card h3{font-size:26px;letter-spacing:-.02em;margin-bottom:14px}.project-card p{font-size:15.5px;margin-bottom:28px}.project-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 32px;padding:0}.project-tags li{border:1px solid var(--line-strong);border-radius:8px;font-family:var(--font-mono);font-size:12px;line-height:1.4;padding:5px 10px}.project-link{align-items:center;border-top:1px solid var(--line);color:var(--text);display:flex;font-weight:500;justify-content:space-between;margin-top:auto;padding-top:24px}.project-link:after{border-radius:inherit;content:"";inset:0;position:absolute}.project-link span{color:var(--accent);transition:transform .3s var(--ease-out)}.project-card:hover .project-link span{transform:translate(3px,-3px)}#fh5co-started{isolation:isolate;overflow:hidden;text-align:center}#fh5co-started:before{background:radial-gradient(50% 60% at 50% 100%,var(--accent-soft),#0000 70%);content:"";inset:0;position:absolute;z-index:-1}#fh5co-started h2{font-family:var(--font-serif);font-size:clamp(48px,7vw,96px);font-weight:400;letter-spacing:-.02em;line-height:1;margin:0}#fh5co-started p{font-size:18px;line-height:1.6;margin:28px auto 40px;max-width:60ch}.form-grid{grid-gap:24px 20px;display:grid;gap:24px 20px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:32px}.form-grid .form-group{margin:0}.form-group-full{grid-column:1/-1}@media (max-width:767px){.form-grid{grid-template-columns:1fr}}.contact-form label{color:var(--muted);display:block;margin-bottom:10px}.contact-form label span{color:var(--dim);letter-spacing:0;margin-left:8px;text-transform:none}.form-control{background:var(--glass);border:1px solid var(--line-strong);border-radius:12px;box-shadow:none;color:var(--text);font-size:16px;height:52px;padding:0 16px;transition:border-color .2s,box-shadow .2s,background-color .2s}textarea.form-control{height:auto;line-height:1.6;min-height:180px;padding:14px 16px;resize:vertical}.form-control:hover{border-color:var(--line-hover)}.form-control:focus{background:color-mix(in srgb,var(--accent) 3%,#0000);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}.form-control:-webkit-autofill{-webkit-text-fill-color:var(--text);box-shadow:0 0 0 1000px var(--surface) inset}.dialog-backdrop{align-items:center;animation:fade .3s var(--ease-out);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050708b3;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:var(--z-dialog)}.dialog{animation:fadeInUp .4s var(--ease-out);background:var(--surface);border:1px solid var(--line-strong);border-radius:24px;box-shadow:0 40px 80px -20px #0009,inset 0 1px 0 #ffffff0a;max-width:420px;padding:40px 36px 32px;text-align:center;width:100%}.dialog h4{font-family:var(--font-serif);font-size:32px;font-weight:400;margin-bottom:12px}.dialog.is-success h4{color:var(--accent)}.dialog.is-error h4{color:var(--danger)}.dialog p{margin-bottom:28px}#map{background:var(--surface);height:420px;position:relative}#map:after{background:linear-gradient(180deg,var(--bg),#0000 30%);content:"";inset:0;pointer-events:none;position:absolute;z-index:1}@media (max-width:767px){#map{height:280px}}#fh5co-footer{border-top:1px solid var(--line);color:var(--dim);font-family:var(--font-mono);font-size:12px;padding:40px 0}.footer-inner{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between}.footer-inner p{margin:0}.gototop{bottom:24px;opacity:0;position:fixed;right:24px;transform:translateY(8px);transition:opacity .3s,visibility .3s,transform .3s var(--ease-out);visibility:hidden;z-index:var(--z-top)}.gototop.active{opacity:1;transform:none;visibility:visible}.gototop a{align-items:center;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;color:var(--text);display:flex;height:44px;justify-content:center;transition:color .2s,border-color .2s;width:44px}.gototop a:hover{border-color:var(--accent);color:var(--accent)}.btn{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-family:var(--font-sans);font-size:15px;font-weight:500;gap:10px;justify-content:center;line-height:1;margin:0;padding:14px 26px;transition:background-color .2s,border-color .2s,transform .2s var(--ease-out)}.btn-lg{font-size:16px;padding:18px 32px}.btn:active{box-shadow:none;transform:translateY(1px) scale(.98)}.btn-primary,.btn-primary:focus,.btn-primary[disabled],.btn-primary[disabled]:focus,.btn-primary[disabled]:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:active,.btn-primary:active:focus,.btn-primary:active:hover,.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}.js .animate-box{opacity:0}.animated-fast{animation:fadeInUp .9s var(--ease-out) both}@keyframes fadeInUp{0%{opacity:0;transform:translate3d(0,28px,0)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}}@keyframes grow-x{0%{transform:scaleX(0)}}
/*# sourceMappingURL=main.003c481b.css.map*/