.identity-wrapper{cursor:default;display:inline-block}.identity-wrapper.is-animating .wave-char{animation:.4s forwards wave-animation;animation-delay:calc(var(--i) * 30ms)}.wave-char{transition:transform .4s cubic-bezier(.2,1,.3,1);display:inline-block;transform:translateY(0)}.wave-char-space{min-width:.3em}@keyframes wave-animation{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.wave-char{transition:none}.identity-wrapper.is-animating .wave-char{animation:none}}
.section-header .section-title-tag{opacity:0;transform:translateY(20px)}.section-header .section-line{opacity:0;transform-origin:0;transform:scaleX(0)}.section-header--visible .section-title-tag{animation:.7s cubic-bezier(.25,0,0,1) both section-reveal-up}.section-header--visible .section-line{animation:.9s cubic-bezier(.25,0,0,1) .18s both section-reveal-line}@keyframes section-reveal-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes section-reveal-line{0%{opacity:0;transform:scaleX(0)}to{opacity:.15;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.section-header--visible .section-title-tag,.section-header--visible .section-line{animation:.3s both section-reveal-fade}@keyframes section-reveal-fade{0%{opacity:0}to{opacity:1}}}.section{z-index:5;padding-top:100px;padding-bottom:100px;position:relative}.section-header{align-items:center;gap:32px;margin-bottom:80px;display:flex}.section-title-tag{text-transform:uppercase;letter-spacing:.05em;color:var(--accent-green);cursor:default;white-space:nowrap;padding-left:36px;font-size:max(42px,min(5vw,64px));font-weight:700;display:inline-block;position:relative}.section-title-tag:before{content:attr(data-index);opacity:.4;font-family:Inter,sans-serif;font-size:16px;font-family:var(--font-body);position:absolute;top:0;left:-10px}.section-line{background-color:#ebedec;background-color:var(--text-primary);opacity:.15;width:100%;height:1px}.section-content{flex-direction:column;gap:60px;display:flex}
.title-line{cursor:default;will-change:transform;transition:transform .6s cubic-bezier(.2,1,.3,1),opacity .3s;display:inline-block}.title-line:hover{z-index:2;transform:scale(1.08)rotate(-3deg)}.title-line.outline{color:#0000;-webkit-text-stroke-width:.008em;-webkit-text-stroke-color:#ebedec;-webkit-text-stroke-color:var(--text-primary);paint-order:stroke fill;text-rendering:geometricprecision;opacity:.8}.title-line.outline:hover{opacity:1;transform:scale(1.08)rotate(3deg)}@media (prefers-reduced-motion:reduce){.title-line{transition:none}}
.contact-link{color:var(--text-primary);border-bottom:1px solid #ebedec0d;border-bottom:1px solid var(--border-faint);justify-content:space-between;align-items:baseline;gap:16px;padding:16px 0;font-size:max(24px,min(2.8vw,48px));font-weight:200;transition:color .3s,border-color .3s,padding-left .3s;display:flex}.contact-link:hover{color:var(--accent-green);border-color:#729e84;border-color:var(--accent-green);padding-left:10px}.link-name{flex-shrink:0;font-weight:200}.link-id{color:inherit;opacity:.75;font-family:Inter,sans-serif;font-size:max(12px,min(1.2vw,20px));font-family:var(--font-body);cursor:pointer;text-align:right;white-space:nowrap;background:0 0;border:none;align-self:center;align-items:center;gap:8px;min-width:0;padding:0;transition:opacity .3s,color .3s;display:flex;position:relative}.link-id:after{content:"Click to copy";opacity:0;pointer-events:none;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;font-size:10px;transition:opacity .3s;position:absolute;bottom:calc(100% + 6px);right:0}.link-id:hover{opacity:1;color:var(--accent-green)}.link-id:hover:after{opacity:.6}.link-id:hover .copy-icon{opacity:1}.copy-icon{opacity:.5;flex-shrink:0;transition:opacity .3s,transform .3s}@media (prefers-reduced-motion:reduce){.contact-link,.link-id,.copy-icon{transition:none}}@media (max-width:640px){.contact-link{flex-direction:column;align-items:flex-start;gap:4px}.link-id{white-space:normal;text-overflow:initial;text-align:left;align-self:flex-start}.link-id:after{display:none}}
.contact-split .contact-name{opacity:0;transform:translateY(28px)}.contact-split .contact-list{opacity:0;transform:translateY(20px)}.contact-split--visible .contact-name{animation:.75s cubic-bezier(.25,0,0,1) both contact-reveal-up}.contact-split--visible .contact-list{animation:.7s cubic-bezier(.25,0,0,1) .2s both contact-reveal-up}@keyframes contact-reveal-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.contact-split--visible .contact-name,.contact-split--visible .contact-list{animation:.3s both contact-reveal-fade}@keyframes contact-reveal-fade{0%{opacity:0}to{opacity:1}}}.contact-split{grid-gap:max(32px, min(6vw, 80px));grid-template-columns:1fr 1.2fr;align-items:center;gap:max(32px,min(6vw,80px));display:grid}.contact-name{text-align:right;font-size:max(56px,min(9vw,200px));line-height:.85}.contact-list{flex-direction:column;display:flex}@media (max-width:640px){.contact-split{grid-template-columns:1fr;gap:24px}.contact-name{text-align:left;font-size:max(72px,min(18vw,140px))}}
.footer-bottom{border-top:1px solid #ebedec3d;border-top:1px solid var(--border-divider);text-transform:uppercase;letter-spacing:.05em;opacity:.75;justify-content:space-between;align-items:center;gap:24px;margin-top:28px;margin-bottom:max(36px,min(5vw,64px));padding-top:22px;font-size:13px;display:flex}@media (max-width:992px){.footer-bottom{flex-wrap:nowrap}}@media (max-width:420px){.footer-portfolio-label{display:none}}
.bg-waves{z-index:-1;z-index:var(--z-bg);border-bottom:1px solid #ebedec3d;border-bottom:1px solid var(--border-divider);width:100%;height:100%;position:absolute;top:0;left:0;overflow:visible}.bg-waves-canvas{width:100%;height:100%;display:block}
.bar-group{gap:10px;gap:var(--bar-gap);flex-direction:column;display:flex}.bar-label{text-transform:uppercase;letter-spacing:.2em;opacity:.75;font-size:12px;font-weight:600}.bar-value{font-size:17px;font-weight:500}@media (max-width:768px){.bar-label{letter-spacing:.15em;font-size:10px}.bar-value{font-size:13px}}@media (max-width:480px){.bar-label{letter-spacing:.12em;font-size:9px}.bar-value{font-size:11px}}
.navbar{border-bottom:1px solid #ebedec1a;border-bottom:1px solid var(--border-soft);z-index:10;z-index:var(--z-dropdown);justify-content:space-between;align-items:flex-start;padding-bottom:32px;display:flex;position:relative}.navbar .bar-group:last-child{text-align:right;align-items:flex-end}.nav-links{gap:32px;display:flex}.nav-links a{color:var(--text-primary);font-size:17px;font-weight:500}@media (max-width:768px){.navbar{flex-flow:row;align-items:flex-start;gap:16px;padding-bottom:16px}.navbar .bar-group{flex-shrink:1;min-width:0}.navbar .bar-value{text-overflow:ellipsis;overflow:hidden}.nav-links{flex-wrap:nowrap;gap:14px}.nav-links a{white-space:nowrap;font-size:13px}}@media (max-width:480px){.navbar{gap:10px;padding-bottom:12px}.nav-links{gap:10px}.nav-links a{font-size:11px}}
.hero-bottom-bar{border-top:1px solid #ebedec1a;border-top:1px solid var(--border-soft);flex-wrap:nowrap;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:24px;padding-top:max(16px,min(2.5vh,32px));display:flex}.hero-info-group,.hero-contact-group{min-width:0}.hero-info-group{gap:80px;display:flex}.hero-contact-group{text-align:right}.contact-links{justify-content:flex-end;gap:24px;display:flex}.contact-links a{color:var(--text-primary);align-items:center;gap:6px;font-size:15px;font-weight:500;display:flex}.location-time{opacity:0;pointer-events:none;align-items:center;transition:opacity .4s,transform .4s;display:inline-flex;transform:translate(-10px)}.location-time.location-time-visible{opacity:1;pointer-events:auto;transform:translate(0)}.location-sep{opacity:.3;margin:0 15px}@media (prefers-reduced-motion:reduce){.location-time{transition:none}}@media (max-width:768px){.hero-bottom-bar{flex-flow:row;align-items:flex-end;gap:16px;position:relative}.hero-bottom-bar .bar-value{white-space:nowrap}.hero-info-group{flex-wrap:nowrap;gap:16px}.contact-links{flex-wrap:nowrap;justify-content:flex-end;gap:12px}.contact-links a{white-space:nowrap;font-size:12px}}@media (max-width:480px){.hero-bottom-bar{gap:10px}.contact-links{gap:8px}.contact-links a{font-size:10px}}
body:not(.page-loaded) .hero .navbar{opacity:0;transform:translateY(-14px)}body:not(.page-loaded) .hero-title-wrapper,body:not(.page-loaded) .hero-role-primary,body:not(.page-loaded) .hero-cta-button,body:not(.page-loaded) .hero-bottom-bar{opacity:0;transform:translateY(28px)}.page-loaded .hero .navbar{animation:.6s cubic-bezier(.25,0,0,1) both hero-fade-down}.page-loaded .hero-title-wrapper{animation:.75s cubic-bezier(.25,0,0,1) 80ms both hero-slide-up}.page-loaded .hero-role-primary{animation:.7s cubic-bezier(.25,0,0,1) .28s both hero-slide-up-dim}.page-loaded .hero-cta-button{animation:.65s cubic-bezier(.25,0,0,1) .44s both hero-slide-up}.page-loaded .hero-bottom-bar{animation:.6s cubic-bezier(.25,0,0,1) .58s both hero-slide-up}@keyframes hero-slide-up{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes hero-slide-up-dim{0%{opacity:0;transform:translateY(28px)}to{opacity:.85;transform:none}}@keyframes hero-fade-down{0%{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.page-loaded .hero .navbar,.page-loaded .hero-title-wrapper,.page-loaded .hero-role-primary,.page-loaded .hero-cta-button,.page-loaded .hero-bottom-bar{animation:.3s both hero-fade-only}@keyframes hero-fade-only{0%{opacity:0}to{opacity:1}}}.hero{z-index:5;flex-direction:column;height:100dvh;min-height:600px;padding-top:max(16px,min(2.5vh,48px));padding-bottom:max(20px,min(3vh,64px));display:flex;position:relative;overflow:hidden}.hero:after{content:"";background:linear-gradient(#0000,#212121);background:linear-gradient(to bottom, transparent, var(--bg-color));pointer-events:none;z-index:0;height:180px;position:absolute;bottom:0;left:0;right:0}.hero .navbar{width:100%;padding-bottom:max(12px,min(2.5vh,32px))}.hero-content{z-index:1;flex:1;grid-template-rows:auto 1fr auto;width:100%;display:grid;position:relative}.hero-main-stack{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:max(20px,min(3.5vh,40px));width:100%;display:flex}.hero-title-wrapper{position:relative}.hero-title{letter-spacing:0;text-transform:uppercase;flex-direction:column;align-items:center;margin:0;font-size:max(64px,min(min(14vw,19vh),240px));font-weight:700;line-height:.85;display:flex}.hero-text-block{flex-direction:column;align-items:center;gap:max(24px,min(4.5vh,48px));max-width:900px;display:flex}.hero-role-primary{font-family:Inter,sans-serif;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.28em;color:var(--text-primary);opacity:.85;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.5em;font-size:max(16px,min(min(1.8vw,2.6vh),26px));font-weight:500;display:inline-flex}.role-amp{color:var(--text-primary);opacity:.75;letter-spacing:0;margin:0 .2em}.accent{color:var(--accent-green)}@media (min-width:1920px){.hero-title{font-size:max(240px,min(13vw,270px))}.hero-role-primary{font-size:max(20px,min(1.3vw,28px))}}@media (max-height:700px){.hero{min-height:520px}.hero-main-stack{gap:max(14px,min(2.5vh,28px))}}@media (max-width:768px){.hero{height:auto;min-height:100dvh;padding-top:32px}.hero-title{font-size:max(56px,min(17vw,140px))}.hero-role-primary{letter-spacing:.22em;gap:.35em;font-size:max(13px,min(3.5vw,18px))}.role-amp{margin:0 .1em}}@media (max-width:480px){.hero-title{font-size:max(48px,min(16vw,96px))}.hero-role-primary{letter-spacing:.18em;font-size:max(11px,min(3vw,14px))}}@media (max-height:500px) and (orientation:landscape){.hero{height:100dvh;min-height:360px;padding-top:8px;padding-bottom:12px}.hero .navbar{padding-bottom:8px}.hero-main-stack{grid-gap:max(8px, min(2vh, 16px)) max(24px, min(5vw, 64px));text-align:right;grid-template:"title subtitle""title cta";place-content:center;place-items:center end;gap:max(8px,min(2vh,16px)) max(24px,min(5vw,64px));height:100%;display:grid}.hero-text-block{display:contents}.hero-title-wrapper{grid-area:title;justify-self:end}.hero-title{text-align:right;align-items:flex-end;font-size:max(36px,min(8vw,72px));line-height:.85}.hero-role-primary{letter-spacing:.18em;grid-area:subtitle;justify-content:flex-end;place-self:end;margin:0;font-size:max(11px,min(2vw,14px))}}
.hero-cta-button{background-color:#729e84;background-color:var(--accent-green);border:1px solid #729e84;border:1px solid var(--accent-green);color:var(--bg-color);cursor:pointer;font-family:Inter,sans-serif;font-family:var(--font-body);text-transform:uppercase;letter-spacing:.25em;border-radius:100px;align-items:center;gap:1em;padding:max(12px,min(2vh,18px)) max(24px,min(4vw,42px));font-size:max(11px,min(min(1.2vw,1.7vh),14px));font-weight:700;transition:transform .4s cubic-bezier(.2,1,.3,1),box-shadow .4s cubic-bezier(.2,1,.3,1),background-color .4s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #729e842e}@supports (color:color-mix(in lch, red, blue)){.hero-cta-button{box-shadow:0 4px 16px color-mix(in srgb, var(--accent-green) 18%, transparent)}}.hero-cta-button:after{content:"";border:1.5px solid #729e84;border:1.5px solid var(--accent-green);opacity:0;pointer-events:none;border-radius:100px;position:absolute;inset:-2px}.hero-cta-button:hover{background-color:#85b197;background-color:var(--accent-green-hover);transform:translateY(-3px);box-shadow:0 14px 36px #729e8473}@supports (color:color-mix(in lch, red, blue)){.hero-cta-button:hover{box-shadow:0 14px 36px color-mix(in srgb, var(--accent-green) 45%, transparent)}}.hero-cta-button:hover:after{animation:1.4s cubic-bezier(.2,1,.3,1) infinite cta-pulse}.hero-cta-button:hover .cta-icon svg{animation:.9s cubic-bezier(.6,0,.4,1) infinite cta-arrow}.hero-cta-button:hover .cta-icon svg+svg{animation-delay:-.45s}@keyframes cta-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.22)}}@keyframes cta-arrow{0%{transform:translateY(-100%)}50%{transform:translateY(0)}to{transform:translateY(100%)}}.cta-icon{flex-shrink:0;width:1.15em;height:1.15em;display:inline-flex;position:relative;overflow:hidden}.cta-icon svg{width:100%;height:100%;transition:transform .4s cubic-bezier(.2,1,.3,1);position:absolute;inset:0}.cta-icon svg+svg{transform:translateY(-100%)}@media (prefers-reduced-motion:reduce){.hero-cta-button{transition:none}.hero-cta-button:hover:after,.hero-cta-button:hover .cta-icon svg{animation:none}}@media (min-width:1920px){.hero-cta-button{font-size:max(13px,min(.75vw,15px))}}@media (max-height:700px){.hero-cta-button{margin-top:max(12px,min(3vh,32px))}}@media (max-height:500px) and (orientation:landscape){.hero-cta-button{white-space:nowrap;grid-area:cta;place-self:start end;margin-top:0}}
@keyframes skeleton-shimmer{0%{background-position:-200%}to{background-position:200%}}.skeleton-row{grid-gap:40px;border-bottom:1px solid #ebedec3d;border-bottom:1px solid var(--border-divider);grid-template-columns:60px max(200px,min(22vw,300px)) minmax(0,1fr) 160px;align-items:center;gap:40px;min-height:180px;padding:28px 0;display:grid}.skeleton-block{background:linear-gradient(90deg,#ebedec0d 0%,#ebedec1a 50%,#ebedec0d 100%);background:linear-gradient(90deg, var(--border-faint) 0%, var(--border-soft) 50%, var(--border-faint) 100%);background-size:200% 100%;border-radius:4px;animation:1.6s ease-in-out infinite skeleton-shimmer}.skeleton-index{opacity:.5;width:24px;height:16px}.skeleton-thumb{aspect-ratio:16/9;border-radius:6px}.skeleton-main{grid-gap:12px;gap:12px;display:grid}.skeleton-title{width:60%;height:max(32px,min(5vw,48px))}.skeleton-desc{width:85%;height:14px}.skeleton-desc-short{width:55%;height:14px}.skeleton-meta{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.skeleton-tag{border-radius:100px;width:80px;height:34px}@media (prefers-reduced-motion:reduce){.skeleton-block{animation:none}}@media (max-width:992px){.skeleton-row{grid-template-columns:minmax(0,1fr);gap:16px}.skeleton-meta{justify-content:flex-start}}
