:root{--color-bg: #060506;--color-text: #f0f2f2;--color-text-muted: #bababa;--color-text-dim: #6a6a6a;--font-primary: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--unit: 6.94444vw;--body-width: 84vw;--max-body-width: 1380px;--ease-smooth: cubic-bezier(.4, .8, .74, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}::selection{background:#1e1e1e}html{-webkit-text-size-adjust:100%;font-size:62.5%}body{font-family:var(--font-primary);font-size:.97222vw;font-weight:300;line-height:1.5;letter-spacing:.01em;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}img{max-width:100%;height:auto;display:block}button{font:inherit;background:none;border:none;cursor:pointer;color:inherit}.upper{text-transform:uppercase}.loading{position:fixed;inset:0;z-index:9999;background:var(--color-bg);display:flex;align-items:center;justify-content:center;transition:opacity .8s var(--ease-smooth),visibility .8s}.loading.loaded{opacity:0;visibility:hidden;pointer-events:none}.loading-body{text-align:center}.loading-progress{display:flex;flex-direction:column;gap:.5em}.loading-percent{font-size:3vw;font-weight:200}.loading-text{font-size:.9vw;text-transform:uppercase;letter-spacing:.2em;color:var(--color-text-muted)}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;pointer-events:none}.parts{position:fixed;height:var(--unit);display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;pointer-events:auto}.parts[data-x="0"]{left:0}.parts[data-x="0.2"]{left:var(--unit)}.parts[data-x="0.5"]{left:50%;transform:translate(-50%)}.parts[data-x="1"]{right:0}.parts[data-y="0"]{top:0}.parts[data-y="0.5"]{top:50%;transform:translateY(-50%)}.parts[data-y="1"]{bottom:0}.site-logo{width:var(--unit);height:var(--unit);display:flex;align-items:center;justify-content:center}.header-profile-img{width:2.5vw;height:2.5vw;min-width:32px;min-height:32px;border-radius:50%;object-fit:cover;transition:transform .6s var(--ease-smooth)}.site-logo:hover .header-profile-img{transform:scale(1.1)}.site-name{padding:0 2.77778vw}.site-name-link{display:flex;gap:.5em;font-size:.9vw;font-weight:400;text-transform:uppercase;letter-spacing:.05em}.name-copy{font-weight:300;color:var(--color-text-muted)}.site-nav{padding:0 2.77778vw;display:flex;gap:1.5vw;align-items:center}.nav-link{font-size:.9vw;font-weight:400;text-transform:uppercase;letter-spacing:.05em;overflow:hidden;position:relative;height:1.2em}.hover-text{display:block}.hover-t{display:block;transition:transform .4s var(--ease-smooth)}.hover-t:last-child{position:absolute;top:0;left:0;transform:translateY(100%)}.hover-text:hover .hover-t:first-child{transform:translateY(-100%)}.hover-text:hover .hover-t:last-child{transform:translateY(0)}.ui-scroll-indicator{font-size:.8vw;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.progress-indicator{font-size:.8vw;font-weight:400;writing-mode:vertical-rl;transform:rotate(180deg) translateY(-50%);gap:.3em}.progress-current,.progress-total{display:inline-block;width:1em;text-align:center}.progress-divider{color:var(--color-text-dim)}.site-content{width:100%;min-height:100vh}.page-header{position:relative;width:100%;height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.js-wh{min-height:100vh}.hero-marquee{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1;overflow:hidden;pointer-events:none}.hero-marquee-track{display:flex;align-items:center;white-space:nowrap;grid-gap:2vw;will-change:transform;animation:marqueeScroll 30s linear infinite}.marquee-item{font-size:clamp(80px,12vw,200px);font-weight:600;letter-spacing:-.02em;line-height:1;color:#ffffff14;text-transform:uppercase}.marquee-sep{font-size:clamp(60px,8vw,150px);font-weight:300;color:#ffffff14}@keyframes marqueeScroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes glitchR{0%,88%,to{transform:translate(0)}90%{transform:translate(8px,-3px)}92%{transform:translate(-4px,2px)}94%{transform:translate(6px,-4px)}96%{transform:translate(-2px,1px)}98%{transform:translate(5px,-2px)}}@keyframes glitchB{0%,88%,to{transform:translate(0)}90%{transform:translate(-8px,3px)}92%{transform:translate(4px,-2px)}94%{transform:translate(-6px,4px)}96%{transform:translate(2px,-1px)}98%{transform:translate(-5px,2px)}}.curved-loop-jacket{min-height:100vh;display:flex;align-items:center;justify-content:center;width:100%;position:absolute;top:0;left:0;z-index:1}.curved-loop-svg{width:100%;aspect-ratio:1440 / 300;overflow:visible;display:block;font-family:var(--font-primary);font-size:6rem;fill:#fff;user-select:none;-moz-user-select:none;-webkit-user-select:none;font-weight:700;text-transform:uppercase;line-height:1;pointer-events:auto;cursor:grab}.curved-loop-svg.grabbing{cursor:grabbing}@keyframes bgReveal{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.page-lead{position:absolute;bottom:10.41667vw;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:flex-end;padding:0 var(--unit);opacity:0;animation:fadeUp 1s var(--ease-smooth) 1s forwards}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.lead-left,.lead-right{display:flex;flex-direction:column;gap:.5em}.lead-right{text-align:right;align-items:flex-end}.lead-label{font-size:.75vw;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--color-text-dim)}.lead-value{font-size:.9vw;font-weight:300;color:var(--color-text)}.ui-scroll-down{position:absolute;bottom:0;left:0;width:var(--unit);height:var(--unit);display:flex;align-items:center;justify-content:center;z-index:15;cursor:pointer;opacity:0;animation:fadeIn 1s var(--ease-smooth) 1.5s forwards}.scroll-arrow-svg{width:1.25vw;height:1.25vw;min-width:16px;min-height:16px;color:var(--color-text);animation:scrollBounce 2s ease-in-out infinite}@keyframes fadeIn{to{opacity:1}}@keyframes scrollBounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}.page-body{width:100%}.body{width:var(--body-width);max-width:var(--max-body-width, 1380px);margin:0 auto}.spr{display:block;position:relative}.spr[data-n="0"]{height:0}.spr[data-n="1"]{height:clamp(14px,1.6vw,24px)}.spr[data-n="2"]{height:clamp(24px,2.8vw,42px)}.spr[data-n="3"]{height:clamp(34px,3.8vw,58px)}.spr[data-n="4"]{height:clamp(45px,4.8vw,75px)}.spr[data-n="5"]{height:clamp(55px,6vw,90px)}.section{width:100%;position:relative;border-bottom:1px solid rgba(255,255,255,.05);padding-bottom:clamp(30px,3.8vw,60px)}.section-title{display:inline-block;font-size:1.05vw;font-weight:400;text-transform:uppercase;letter-spacing:.1em;line-height:1.4;position:relative}.section-title .n{position:absolute;left:0;top:0;transform:scale(.8);transform-origin:left top;color:var(--color-text-dim)}.section-title .h{display:block;padding-left:1.5em}.title-text{font-size:1.05vw;font-weight:400}.cols{display:flex;flex-wrap:wrap;justify-content:space-between}.cols-text .col{width:50%}.cols-text .col:first-child{width:33.333%}.cols-text .col:last-child{width:66.666%}[data-col="2"]{margin:0 -2.31481vw}[data-col="2"] .col{width:50%;padding:0 2.31481vw}[data-col="3"]{margin:0 -2.31481vw}[data-col="3"] .col{width:33.333%;padding:0 2.31481vw}.mce{line-height:1.6}.section-description{color:var(--color-text-muted);font-size:1.05vw;line-height:1.7}.inf .col{display:flex;flex-direction:column;gap:.5em}.inf-label{font-size:.8vw;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--color-text-dim)}.inf-value{font-size:.95vw;font-weight:300;color:var(--color-text)}.skill-col{margin-bottom:3vw}.skill-category-title{font-size:.9vw;font-weight:400;text-transform:uppercase;letter-spacing:.1em;margin-bottom:1.5em;color:var(--color-text)}.skill-tags{display:flex;flex-wrap:wrap;gap:.8em}.skill-tag{font-size:.85vw;font-weight:300;padding:.6em 1.2em;border:1px solid rgba(240,242,242,.15);border-radius:2em;color:var(--color-text-muted);transition:all .3s var(--ease-smooth)}.skill-tag:hover{border-color:var(--color-text);color:var(--color-text)}.timeline{display:flex;flex-direction:column;gap:4vw}.timeline-item{padding-left:2em;border-left:1px solid rgba(240,242,242,.1)}.timeline-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5em}.timeline-role{font-size:1.1vw;font-weight:400;color:var(--color-text)}.timeline-date{font-size:.8vw;font-weight:300;color:var(--color-text-dim)}.timeline-company{font-size:.9vw;color:var(--color-text-muted);margin-bottom:1em}.timeline-description{font-size:.9vw;font-weight:300;color:var(--color-text-dim);line-height:1.6}.img-wrap{border-radius:1.73611vw;overflow:hidden}.img{width:100%;height:auto;display:block;transition:transform .8s var(--ease-smooth)}.img-wrap:hover .img{transform:scale(1.03)}.projects-list{display:flex;flex-direction:column;gap:4vw}.project-item{padding:2vw 0;border-bottom:1px solid rgba(240,242,242,.08)}.project-item:last-child{border-bottom:none}.project-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1em}.project-name{font-size:1.2vw;font-weight:400;color:var(--color-text)}.project-year{font-size:.8vw;font-weight:300;color:var(--color-text-dim)}.project-description{font-size:.9vw;font-weight:300;color:var(--color-text-muted);line-height:1.6;margin-bottom:1.5em;max-width:80%}.project-tech{display:flex;gap:1em}.project-tech span{font-size:.75vw;font-weight:300;padding:.4em 1em;background:#f0f2f20d;border-radius:1em;color:var(--color-text-dim)}.project-links{display:flex;gap:1.5em;margin-bottom:1em;flex-wrap:wrap}.project-link{font-size:.8vw;font-weight:400;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text);border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:2px;transition:all .3s var(--ease-smooth)}.project-link:hover{border-color:var(--color-text);opacity:.8}.contact-content{width:100%}.contact-tagline{font-size:1.3vw;font-weight:300;color:var(--color-text-muted);line-height:1.6}.contact-links{display:flex;flex-direction:column;gap:1.5em}.contact-link{display:flex;justify-content:space-between;align-items:center;padding:1em 0;border-bottom:1px solid rgba(240,242,242,.08);transition:all .3s var(--ease-smooth)}.contact-link:hover{padding-left:1em;border-color:#f0f2f233}.link-label{font-size:.8vw;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-dim)}.link-value{font-size:.95vw;font-weight:300;color:var(--color-text)}.download-btn{display:inline-flex;align-items:center;gap:1em;padding:1em 2em;border:1px solid rgba(240,242,242,.2);border-radius:3em;transition:all .4s var(--ease-smooth)}.download-btn:hover{background:#f0f2f20d;border-color:var(--color-text)}.btn-icon{display:flex;align-items:center;justify-content:center}.download-svg{width:1.2em;height:1.2em}.btn-text{font-size:.85vw;font-weight:400;text-transform:uppercase;letter-spacing:.1em}.page-footer{height:20.83333vw;display:flex;align-items:center;justify-content:center}.footer-content{text-align:center;display:flex;flex-direction:column;gap:.5em}.footer-copy{font-size:.85vw;font-weight:400;color:var(--color-text)}.footer-text{font-size:.8vw;font-weight:300;color:var(--color-text-dim)}.clip{overflow:hidden}.flip .t{transform:translateY(101%);opacity:0;transition:transform .8s var(--ease-smooth),opacity .8s var(--ease-smooth)}@media(max-width:1024px){:root{--unit: 10vw;--body-width: 85vw}body{font-size:1.4vw}.site-name-link,.nav-link{font-size:1.3vw}.hero-bg-text{font-size:18vw}.hero-image-mask{width:40vw;height:50vh}.spr[data-n="1"]{height:clamp(16px,2vw,28px)}.spr[data-n="2"]{height:clamp(25px,3.5vw,45px)}.spr[data-n="3"]{height:clamp(35px,4.8vw,60px)}.spr[data-n="4"]{height:clamp(45px,6vw,75px)}}@media(max-width:768px){:root{--unit: 80px;--body-width: calc(100vw - 48px) }body{font-size:15px}.site-name{display:none}.site-name-link,.nav-link{font-size:14px}.parts[data-x="0.2"]{left:var(--unit)}.hero-bg-text{font-size:20vw;-webkit-text-stroke-width:.5px}.hero-image-mask{width:60vw;height:50vh}.page-lead{bottom:100px;padding:0 24px;flex-direction:column;align-items:flex-start;gap:2em}.lead-right{text-align:left;align-items:flex-start}.lead-label,.lead-value{font-size:12px}.cols-text .col,.cols-text .col:first-child,.cols-text .col:last-child,[data-col="2"] .col,[data-col="3"] .col{width:100%;padding:0;margin-bottom:3em}[data-col="2"],[data-col="3"]{margin:0}.section-title,.title-text,.section-description,.skill-category-title,.skill-tag,.timeline-role,.timeline-date,.timeline-company,.timeline-description,.project-name,.project-year,.project-description{font-size:14px}.project-tech span{font-size:12px}.inf-label,.inf-value{font-size:13px}.contact-tagline{font-size:16px}.link-label,.link-value,.btn-text{font-size:13px}.spr[data-n="1"]{height:18px}.spr[data-n="2"]{height:30px}.spr[data-n="3"]{height:45px}.spr[data-n="4"]{height:60px}.spr[data-n="5"]{height:75px}.progress-indicator,.ui-scroll-indicator{display:none}.page-footer{height:150px}.footer-copy,.footer-text{font-size:13px}}@media(max-width:480px){.hero-image-mask{width:70vw;height:45vh}.hero-bg-text{font-size:25vw}}.js-scroll,.js-scroll[data-visible="1"]{visibility:visible}.clip,.clip .o,.clip .w{overflow:hidden}.clip span{display:inline-block}.flip .t{display:block;transform:translateY(101%);opacity:0;transition:transform .8s var(--ease-smooth),opacity .8s var(--ease-smooth)}.flip[data-shown="1"] .t{transform:translateY(0);opacity:1}.svg-arrow-curve,.svg-arrow-thin{opacity:0;transition:opacity .8s var(--ease-smooth)}.svg-arrow-curve .path,.svg-arrow-thin .path{fill:none;stroke:var(--color-text);stroke-width:1.5px;transition:stroke-dashoffset .8s var(--ease-smooth)}[data-shown="1"] .svg-arrow-curve,[data-shown="1"] .svg-arrow-thin{opacity:1}.ui-cursor{will-change:transform;width:3.47222vw;height:3.47222vw;min-width:40px;min-height:40px;position:fixed;z-index:9998;border-radius:50%;margin-top:-1.73611vw;margin-left:-1.73611vw;pointer-events:none;display:flex;justify-content:center;align-items:center;mix-blend-mode:difference}.ui-cursor-body{width:100%;height:100%;border-radius:50%;border:1px solid var(--color-text);transform:scale(1);opacity:0;transition:transform .4s var(--ease-smooth),opacity .4s var(--ease-smooth)}[data-cursor=a] .ui-cursor-body{transform:scale(1.5);opacity:.5}[data-cursor=none] .ui-cursor-body{transform:scale(.5);opacity:0}.is-any .ui-cursor{display:none}@media(hover:none){.ui-cursor{display:none}}.site-header .parts{transition:transform .6s var(--ease-smooth)}[data-scroll-dir="1"] .site-logo,[data-scroll-dir="1"] .site-name,[data-scroll-dir="1"] .site-nav{transform:translateY(-100%)}[data-scroll-dir="-1"] .site-logo,[data-scroll-dir="-1"] .site-name,[data-scroll-dir="-1"] .site-nav{transform:translateY(0)}.is-ready .site-logo,.is-ready .site-name,.is-ready .site-nav,.is-ready .progress-indicator,.is-ready .ui-scroll-indicator{opacity:1}.site-logo,.site-name,.site-nav,.progress-indicator,.ui-scroll-indicator{opacity:0;transition:opacity 1.2s var(--ease-smooth),transform .6s var(--ease-smooth)}.is-ready .flip .t{transform:translateY(0);opacity:1}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.marquee{width:7em;margin:.3em 0 0;display:block;overflow:hidden}.marquee,.marquee *,.marquee-body{height:1em;line-height:1em}.marquee-body{font-size:0;white-space:nowrap;animation:marquee 6s linear infinite}.marquee-body span{font-size:.9vw;padding:0 1em 0 0}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-33.333%)}}.underline{display:inline-block;position:relative;overflow:hidden;vertical-align:top}.underline:before{content:"";display:block;height:1px;width:100%;position:absolute;bottom:0;left:0;background:var(--color-text);transition:transform .3s var(--ease-smooth);transform:scaleX(0);transform-origin:right}a:hover .underline:before{transform:scaleX(1);transform-origin:left}.section:nth-child(1){transition-delay:0s}.section:nth-child(2){transition-delay:.1s}.section:nth-child(3){transition-delay:.2s}.section:nth-child(4){transition-delay:.3s}.section:nth-child(5){transition-delay:.4s}.skill-col:nth-child(1){transition-delay:0s}.skill-col:nth-child(2){transition-delay:.15s}.timeline-item:nth-child(1){transition-delay:0s}.timeline-item:nth-child(2){transition-delay:.15s}.timeline-item:nth-child(3){transition-delay:.3s}.project-item:nth-child(1){transition-delay:0s}.project-item:nth-child(2){transition-delay:.1s}.project-item:nth-child(3){transition-delay:.2s}.contact-link:nth-child(1){transition-delay:0s}.contact-link:nth-child(2){transition-delay:.1s}.contact-link:nth-child(3){transition-delay:.2s}.img-wrap{transition:transform .8s var(--ease-smooth),opacity 1s var(--ease-smooth)}[data-col="3"] .col:nth-child(1) .img-wrap{transition-delay:0s}[data-col="3"] .col:nth-child(2) .img-wrap{transition-delay:.1s}[data-col="3"] .col:nth-child(3) .img-wrap{transition-delay:.2s}[data-col="2"] .col:nth-child(1) .img-wrap{transition-delay:0s}[data-col="2"] .col:nth-child(2) .img-wrap{transition-delay:.15s}.timeline-actions{margin-top:1em}.view-cert-btn{display:inline-block;font-size:.8vw;font-weight:300;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.1em;padding-bottom:.2rem;border-bottom:1px solid rgba(240,242,242,.2);transition:all .3s var(--ease-smooth)}.view-cert-btn:hover{color:var(--color-text);border-color:var(--color-text);transform:translate(5px)}@media(max-width:768px){.view-cert-btn{font-size:12px}.branding{font-size:10px!important;letter-spacing:1px!important;top:15px!important;left:15px!important;max-width:80%}.branding .dot{width:6px!important;height:6px!important;margin-right:10px!important}.page-lead{padding:0 5%;bottom:10vh}.lead-label{font-size:10px}.lead-value{font-size:14px}.project-links{gap:1em}.project-link{font-size:12px}}.status-pill{display:inline-flex;align-items:center;gap:.6em;padding:.4em 1em;border-radius:9999px;background:#22c55e14;border:1px solid rgba(34,197,94,.25);font-size:.85vw;color:#4ade80;letter-spacing:.08em;text-transform:uppercase;margin-top:1.5em;width:fit-content}.pulse-dot{width:7px;height:7px;border-radius:50%;background-color:#22c55e;box-shadow:0 0 #22c55eb3;animation:pulse-ring 2s infinite cubic-bezier(.4,0,.6,1)}@keyframes pulse-ring{0%{transform:scale(.95);box-shadow:0 0 #22c55eb3}70%{transform:scale(1);box-shadow:0 0 0 8px #22c55e00}to{transform:scale(.95);box-shadow:0 0 #22c55e00}}.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2vw;margin-top:2vw}.service-card{position:relative;background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:2.2vw;transition:all .4s var(--ease-smooth);display:flex;flex-direction:column;justify-content:space-between}.service-card:hover{background:#ffffff0a;border-color:#ffffff38;transform:translateY(-4px)}.service-num{font-size:.9vw;color:var(--color-text-dim);font-family:monospace;margin-bottom:1vw}.service-title{font-size:1.4vw;font-weight:400;margin-bottom:.8vw;color:var(--color-text);letter-spacing:-.01em}.service-desc{font-size:.95vw;color:var(--color-text-muted);line-height:1.6;margin-bottom:1.5vw;flex-grow:1}.service-deliverables{list-style:none;display:flex;flex-wrap:wrap;gap:.6em;margin-top:1vw}.service-deliverables li{font-size:.75vw;letter-spacing:.05em;text-transform:uppercase;color:#d1d5db;background:#ffffff0d;padding:.35em .8em;border-radius:3px;border:1px solid rgba(255,255,255,.05)}.contact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,3.5vw,48px);margin-top:clamp(16px,2vw,32px);align-items:start;width:100%}.form-wrapper{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:clamp(20px,2.5vw,36px);width:100%;box-sizing:border-box}.contact-form{display:flex;flex-direction:column;gap:clamp(14px,1.4vw,22px);width:100%}.form-group{display:flex;flex-direction:column;gap:clamp(6px,.6vw,10px);width:100%}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.4vw,20px);width:100%}.form-label{font-size:clamp(11px,.8vw,13px);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-dim);font-weight:500}.form-input,.form-select,.form-textarea{width:100%;background:#ffffff08;border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:clamp(10px,.9vw,14px) clamp(12px,1.1vw,18px);color:var(--color-text);font-family:inherit;font-size:clamp(13px,.95vw,15px);transition:all .3s var(--ease-smooth);outline:none;box-sizing:border-box}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#fff6;background:#ffffff0f;box-shadow:0 0 15px #ffffff0a}.form-select{cursor:pointer}.form-select option{background:#111;color:#fff}.form-textarea{resize:vertical;min-height:120px}.form-submit-btn{display:inline-flex;align-items:center;justify-content:center;gap:1em;background:#f0f2f2;color:#060506;padding:clamp(12px,1vw,16px) clamp(22px,2vw,34px);font-size:clamp(12px,.85vw,14px);font-weight:500;letter-spacing:.06em;text-transform:uppercase;border-radius:4px;transition:all .3s var(--ease-smooth);border:none;cursor:pointer;margin-top:.5vw;align-self:flex-start}.form-submit-btn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 8px 24px #ffffff1a}.form-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.form-status{padding:1vw;border-radius:4px;font-size:clamp(12px,.9vw,14px);display:none;margin-top:1vw}.form-status.success{display:block;background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#4ade80}.form-status.error{display:block;background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171}.btn-spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.2);border-top-color:#000;border-radius:50%;animation:spin .8s linear infinite;display:none}.form-submit-btn.loading .btn-spinner{display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.contact-channels{display:flex;flex-direction:column;gap:clamp(12px,1.2vw,18px);width:100%}.channel-card{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:clamp(14px,1.4vw,20px) clamp(16px,1.8vw,24px);display:flex;align-items:center;justify-content:space-between;transition:all .3s var(--ease-smooth)}.channel-card:hover{background:#ffffff0d;border-color:#fff3;transform:translate(4px)}.channel-info{display:flex;flex-direction:column;gap:4px}.channel-title{font-size:clamp(11px,.75vw,12px);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dim);font-weight:500}.channel-val{font-size:clamp(13px,.95vw,15px);color:var(--color-text);word-break:break-all}.blogs-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1vw;margin-bottom:2vw;padding-bottom:1.5vw;border-bottom:1px solid rgba(255,255,255,.08)}.blog-filters{display:flex;gap:.8vw;flex-wrap:wrap}.filter-btn{background:#ffffff08;border:1px solid rgba(255,255,255,.1);color:var(--color-text-muted);padding:.4vw 1vw;font-size:.8vw;letter-spacing:.05em;text-transform:uppercase;border-radius:9999px;transition:all .3s var(--ease-smooth)}.filter-btn:hover,.filter-btn.active{background:#f0f2f2;color:#060506;border-color:#f0f2f2}.daily-feed-badge{display:inline-flex;align-items:center;gap:.5em;font-size:.75vw;color:var(--color-text-dim);letter-spacing:.05em;text-transform:uppercase}.daily-feed-dot{width:6px;height:6px;border-radius:50%;background:#38bdf8}.blogs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2vw}.blog-card{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:2vw;display:flex;flex-direction:column;justify-content:space-between;transition:all .4s var(--ease-smooth);cursor:pointer}.blog-card:hover{background:#ffffff0a;border-color:#fff3;transform:translateY(-4px)}.blog-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:1vw;font-size:.75vw;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.05em}.blog-badge{background:#38bdf81a;color:#38bdf8;padding:.2em .6em;border-radius:3px;font-size:.7vw}.blog-title{font-size:1.25vw;font-weight:400;line-height:1.4;color:var(--color-text);margin-bottom:.8vw}.blog-card:hover .blog-title{color:#fff}.blog-snippet{font-size:.9vw;color:var(--color-text-muted);line-height:1.6;margin-bottom:1.5vw;flex-grow:1}.blog-tags{display:flex;flex-wrap:wrap;gap:.4em;margin-bottom:1.2vw}.blog-tag{font-size:.7vw;color:var(--color-text-dim);background:#ffffff08;padding:.2em .6em;border-radius:2px}.blog-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(255,255,255,.06);padding-top:1vw;font-size:.8vw;color:var(--color-text)}.blog-read-link{display:inline-flex;align-items:center;gap:.4em;transition:transform .2s var(--ease-smooth)}.blog-card:hover .blog-read-link{transform:translate(4px)}.article-modal{position:fixed;inset:0;background:#060506d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s var(--ease-smooth);padding:2vw}.article-modal.active{opacity:1;visibility:visible}.article-modal-content{background:#0d0c0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;max-width:800px;width:100%;max-height:85vh;overflow-y:auto;padding:3vw;position:relative;box-shadow:0 20px 50px #000c}.modal-close-btn{position:absolute;top:1.5vw;right:1.5vw;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff0f;color:var(--color-text);font-size:18px;cursor:pointer;transition:all .2s}.modal-close-btn:hover{background:#ffffff26}.modal-meta{display:flex;gap:1em;font-size:12px;color:var(--color-text-dim);text-transform:uppercase;margin-bottom:1vw}.modal-title{font-size:28px;font-weight:500;margin-bottom:1.5vw;line-height:1.3}.modal-body{font-size:16px;line-height:1.8;color:#d1d5db}.modal-body p{margin-bottom:1.2em}.modal-body h4{font-size:20px;color:#fff;margin:1.5em 0 .8em}.faq-list{display:flex;flex-direction:column;gap:1vw;margin-top:2vw}.faq-item{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:4px;overflow:hidden;transition:all .3s var(--ease-smooth)}.faq-item:hover{border-color:#ffffff26}.faq-trigger{width:100%;padding:1.4vw 1.8vw;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.faq-question{font-size:1.15vw;font-weight:400;color:var(--color-text)}.faq-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;color:var(--color-text-dim);transition:transform .3s var(--ease-smooth)}.faq-item.open .faq-icon{transform:rotate(45deg);color:var(--color-text)}.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s var(--ease-smooth),padding .4s var(--ease-smooth);padding:0 1.8vw;font-size:.95vw;color:var(--color-text-muted);line-height:1.7}.faq-item.open .faq-answer{max-height:300px;padding:0 1.8vw 1.6vw}@media(max-width:900px){.status-pill{font-size:12px}.services-grid{grid-template-columns:1fr;gap:15px}.service-card{padding:20px}.service-num{font-size:12px}.service-title{font-size:18px}.service-desc{font-size:14px}.service-deliverables li{font-size:11px}.contact-grid{grid-template-columns:1fr;gap:30px}.form-wrapper{padding:20px}.form-row{grid-template-columns:1fr;gap:15px}.form-label{font-size:11px}.form-input,.form-select,.form-textarea,.form-submit-btn{font-size:14px;padding:12px}.channel-card{padding:15px}.channel-title{font-size:11px}.channel-val{font-size:14px}.blogs-grid{grid-template-columns:1fr;gap:20px}.blog-card{padding:20px}.blog-title{font-size:18px}.blog-snippet{font-size:14px}.blog-footer{font-size:12px}.faq-question{font-size:15px}.faq-answer{font-size:13px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.compare-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2vw;margin-top:2vw}.compare-links a{display:block;padding:1.4vw 1.6vw;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:var(--color-text);text-decoration:none;transition:border-color .3s}.compare-links a:hover{border-color:#4ade8080}.compare-links span{display:block;color:var(--color-text-dim);font-size:.85em;margin-top:.4em}@media(max-width:768px){.compare-links a{padding:16px;font-size:15px}}:root{--paper: #f7f6f2;--ink: #1d1d1b;--muted: #595950;--line: #c9c9c1;--red: #d9431c;--gutter: clamp(22px, 5vw, 84px);--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--ease: cubic-bezier(.2,.75,.2,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:var(--ink);background:var(--paper);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button,summary{cursor:pointer}button{background:none;border:0}:focus-visible{outline:2px solid var(--red);outline-offset:4px}::selection{background:#ffb79c}img{max-width:100%;display:block}h1,h2,h3,h4,p,figure{margin:0}.wrap,.mast{max-width:1640px;margin-inline:auto;padding-inline:var(--gutter)}.small,.eyebrow,.tech,.rotate-hint,.figure-top{font-family:var(--mono)}.small,.eyebrow{font-size:10px;letter-spacing:.105em;text-transform:uppercase;font-weight:600}.skip{position:fixed;top:-80px;background:var(--ink);color:#fff;padding:12px;z-index:8}.skip:focus{top:6px}.mast{height:82px;display:flex;align-items:center;justify-content:space-between;position:relative}.mast:after{content:"";position:absolute;inset:auto var(--gutter) 0;border-bottom:1px solid var(--line)}.identity{display:inline-flex;align-items:center;font-weight:750;letter-spacing:-.065em;font-size:26px}.identity svg{width:33px;height:33px;fill:var(--red);margin-right:9px;transition:transform .6s var(--ease)}.identity:hover svg{transform:rotate(90deg)}.identity span,h1 span,h2 span,footer strong span{color:var(--red)}.mast nav{display:flex;gap:clamp(18px,2.5vw,40px)}.mast nav a,.talk{font-size:14px;font-weight:550}.mast nav a:hover,.text-link:hover,footer a:hover,.guide-links a:hover{color:var(--red)}.talk{border:1px solid var(--ink);border-radius:40px;padding:10px 17px}.talk b{margin-left:13px}.talk:hover,.action:hover{background:var(--red);border-color:var(--red);color:#fff}.cover{display:grid;grid-template-columns:1.02fr 1fr;align-items:center;column-gap:3%;padding-block:clamp(36px,4vw,66px) clamp(42px,4vw,72px)}.eyebrow{display:flex;align-items:center;gap:10px}.eyebrow i{background:var(--red);width:19px;height:3px}.eyebrow span{color:#87877d}h1{margin:30px 0 26px;font-size:clamp(76px,7.9vw,134px);letter-spacing:-.088em;line-height:.88;font-weight:700}.intro p,.bio,.notes-layout>div>p,.practice-title p,.contact-intro{color:#4d4e47;font-size:clamp(16px,1.3vw,20px);line-height:1.48;letter-spacing:-.022em}.intro p{max-width:370px}.action{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;margin-top:30px;padding:14px 18px;border-radius:32px;color:var(--paper);background:var(--ink);font-size:14px;font-weight:600;transition:background .2s}.action span{font-size:18px;line-height:1}.specimen{position:relative;width:100%;background:#efeee8;overflow:hidden;isolation:isolate}.specimen:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,#a5a59922 1px,transparent 1px),linear-gradient(to bottom,#a5a59922 1px,transparent 1px);background-size:12.5% 16.6667%}.figure-top,.specimen figcaption{position:absolute;left:20px;right:20px;display:flex;justify-content:space-between;align-items:center;z-index:1;pointer-events:none}.figure-top{top:17px}.figure-top span:last-child,.rotate-hint{color:#54564d}.specimen figcaption{bottom:16px}.rotate-hint{display:flex;align-items:center;gap:5px;font-size:10px}.rotate-hint span{font-size:18px}.object-stage{position:relative;height:clamp(360px,34.5vw,560px);cursor:grab;touch-action:pan-y;mix-blend-mode:multiply}.object-stage:active{cursor:grabbing}.sculpture,.object-stage canvas{position:absolute;width:90%;height:90%;top:5%;left:5%;object-fit:contain}.sculpture{mix-blend-mode:multiply;-webkit-mask-image:linear-gradient(to right,transparent,black 7%,black 93%,transparent),linear-gradient(to bottom,transparent,black 8%,black 92%,transparent);mask-image:linear-gradient(to right,transparent,black 7%,black 93%,transparent),linear-gradient(to bottom,transparent,black 8%,black 92%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.object-stage canvas{opacity:0}.object-stage.live canvas{opacity:1}.object-stage.live .sculpture{opacity:0}.section-bar{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--ink);padding-top:13px;margin-bottom:clamp(24px,2.3vw,36px)}.section-bar>:first-child{display:flex;align-items:center;gap:9px}.section-bar>:first-child:before{content:"";width:7px;height:7px;background:var(--red)}.section-bar>:last-child{color:var(--muted)}h2{font-size:clamp(49px,5.2vw,88px);letter-spacing:-.077em;line-height:.96}.work-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:25px}.filters{display:flex;gap:3px}.filters button{font-size:13px;border-radius:22px;padding:8px 13px;color:var(--muted)}.filters button[aria-pressed=true]{background:var(--ink);color:#fff}.filters button:hover:not([aria-pressed=true]){background:#e8e7e0}.filters sup{font:9px var(--mono)}.work-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:38px 24px;align-items:start}summary{list-style:none}summary::-webkit-details-marker{display:none}.project-image{position:relative;overflow:hidden;background:#dedbd2;aspect-ratio:1.66}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .65s var(--ease)}.work-mark{position:absolute;bottom:5%;left:5%;color:#fff;font-size:clamp(26px,4vw,68px);letter-spacing:-.075em;font-weight:700;line-height:1;text-shadow:0 1px 8px #19191945}.work-card summary:hover img{transform:scale(1.045)}.project-caption{display:flex;justify-content:space-between;align-items:center;padding-top:14px;gap:8px}.project-caption .small{font-size:10px;color:var(--muted)}.project-caption h3{margin-top:4px;font-size:clamp(25px,2.3vw,38px);letter-spacing:-.055em}.open-icon{border:1px solid var(--line);border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font:24px var(--mono);transition:rotate .25s}details[open]>summary .open-icon{rotate:45deg}.project-detail,.service-body,.questions details p{padding-top:12px;color:var(--muted);line-height:1.6;max-width:62ch}.project-detail a,.text-link,.guide-links a{text-decoration:underline;text-underline-offset:4px}.project-detail a{margin-right:14px;font-weight:600}.tech{font-size:12px;margin-block:12px}.chapter{margin-top:clamp(72px,8vw,140px)}.practice,.notes-layout,.profile-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:8%}.practice-title p,.notes-layout>div>p{max-width:32ch;margin-top:22px}.service-index details,.questions details{border-bottom:1px solid var(--line)}.service-index summary,.questions summary{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-block:17px}.service-index h3{flex:1;font-size:clamp(20px,1.9vw,32px);letter-spacing:-.05em;line-height:1.1}.service-index summary .small{color:#a83316}.service-index b,.questions b{font:20px var(--mono);transition:rotate .3s}details[open]>summary b{rotate:45deg}.service-body,.questions details p{padding:0 18px 18px 30px}.guide-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px 28px;margin-top:35px;font-size:14px}.guide-links strong{margin-right:auto}.profile-grid{grid-template-columns:.85fr 1.1fr;align-items:center;gap:10%}.profile-grid img{width:100%;height:clamp(280px,29vw,450px);object-fit:cover;object-position:center 30%;filter:grayscale(1)}.profile-grid figcaption{margin-top:10px}.bio{max-width:38ch;margin:24px 0}.text-link{font-size:15px;font-weight:600;display:inline-block}.record-title{font-size:clamp(28px,3vw,48px);letter-spacing:-.055em;margin-top:56px}.record-nav{display:none;flex-wrap:wrap;gap:8px;margin:18px 0}.enhanced .record-nav{display:flex}.record-nav a{padding:8px 14px;border:1px solid var(--line);border-radius:24px;font-size:14px}.record-nav a[aria-current]{color:#fff;background:var(--ink);border-color:var(--ink)}.record{padding-top:16px}.record h4{font-size:22px;margin-bottom:12px}.enhanced .record h4{position:absolute;clip-path:inset(50%)}.record-line{padding:15px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.8fr;gap:20px;line-height:1.5}.record-line p{color:var(--muted)}.certificate-rail{display:flex;overflow-x:auto;gap:20px;scroll-snap-type:x proximity;padding-bottom:12px}.certificate-rail a{width:min(260px,75vw);flex:none;scroll-snap-align:start}.certificate-rail img{aspect-ratio:1.5;object-fit:contain;background:#fff;margin-bottom:10px;width:100%}.notes-layout .text-link{margin-top:22px}.questions summary{font-size:17px;font-weight:600}.questions details p{padding-left:0}.contact-intro{margin:18px 0 34px}.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:9%}.contact-form,.form-group,.contact-channels,.channel-info{display:grid;gap:8px}.contact-form{gap:18px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-label,.channel-title{font:11px var(--mono);text-transform:uppercase;letter-spacing:.06em}.form-input,.form-select,.form-textarea{width:100%;padding:12px;border:1px solid #acada3;border-radius:0;background:#fbfaf7}.form-textarea{min-height:100px;resize:vertical}.form-submit-btn{background:var(--ink);color:#fff;padding:14px 18px;border-radius:22px;justify-self:start}.form-submit-btn:hover{background:var(--red)}.form-submit-btn:disabled{opacity:.6}.form-status:empty{display:none}.contact-channels{align-content:start}.channel-card,.download-btn{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.channel-card:hover,.download-btn:hover{color:var(--red)}.channel-val{overflow-wrap:anywhere;font-size:16px}.download-btn{justify-content:start;gap:10px}.download-svg{width:24px}footer.wrap{margin-top:80px;padding-block:26px;display:flex;align-items:baseline;gap:12px;border-top:1px solid var(--line)}footer strong{font-size:26px;letter-spacing:-.07em}footer a{margin-left:auto}@media(prefers-reduced-motion:no-preference){.intro>*{animation:arrive .8s var(--ease) backwards}.intro h1{animation-delay:.07s}.intro p{animation-delay:.14s}.intro .action{animation-delay:.2s}.revealing{animation:arrive .72s var(--ease) both}@keyframes arrive{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}}@media(max-width:850px){.mast{height:70px}.cover{column-gap:14px}h1{font-size:clamp(54px,7.9vw,80px)}.object-stage{height:330px}.practice,.notes-layout{gap:5%}}@media(max-width:650px){.mast{height:auto;min-height:92px;flex-wrap:wrap;gap:8px;padding-block:13px}.identity{font-size:23px}.identity svg{width:27px;height:27px}.talk{padding:7px 12px}.mast nav{order:3;width:100%;justify-content:space-between}.mast nav a,.talk{font-size:13px}.cover{grid-template-columns:1fr;gap:27px;padding-block:32px}h1{font-size:clamp(62px,14.8vw,96px);margin:20px 0 15px}.intro p{max-width:36ch}.action{margin-top:19px;padding:12px 16px}.object-stage{height:clamp(240px,68vw,350px)}.work-head{align-items:start;flex-direction:column;gap:16px}.filters button{padding:7px 12px}.work-grid,.practice,.profile-grid,.notes-layout,.contact-grid{grid-template-columns:1fr;gap:28px}.work-mark{font-size:38px}.section-bar{margin-bottom:22px}.small,.eyebrow{font-size:9px}.guide-links{display:grid;gap:12px}.profile-grid figure{max-width:420px}.record-line{grid-template-columns:1fr;gap:6px}.form-row{grid-template-columns:1fr}.project-image{aspect-ratio:1.48}.contact-intro{margin-bottom:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:after,*:before{transition-duration:0s!important;animation-duration:0s!important}}@media(min-width:851px){.practice-title,.notes-layout>div:first-child{position:sticky;top:34px;align-self:start}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.profile-grid img{animation:portrait-in linear both;animation-timeline:view();animation-range:entry 0% entry 90%}@keyframes portrait-in{0%{clip-path:inset(0 18% 0 0)}to{clip-path:inset(0)}}}}@media(prefers-reduced-motion:no-preference){.object-stage:not(.live) .sculpture{animation:hover-study 6s ease-in-out infinite}@keyframes hover-study{50%{translate:0 -1.6%}}}.journal{--color-bg: var(--paper);--color-text: var(--ink);--color-text-muted: var(--muted);--color-text-dim: #53564f;font-size:16px;line-height:1.5;font-weight:400}.journal .mast{font-family:Arial,Helvetica,sans-serif}.journal .site-content{padding-top:clamp(32px,5vw,80px)!important}.journal .body{width:auto;max-width:1640px;margin:auto;padding:0 var(--gutter)}.journal .page-body,.journal .page-footer{background:var(--paper)}.journal .blogs-header h1{font-size:clamp(50px,7.2vw,106px)!important;font-weight:700!important;line-height:.98!important;letter-spacing:-.075em!important;margin:12px 0 18px!important}.journal .daily-feed-badge,.journal .blog-meta,.journal .blog-badge{font:11px var(--mono)}.journal .daily-feed-dot{background:var(--red)}.journal .today-spotlight-card{background:#ebeae2!important;border:0!important;border-left:4px solid var(--red)!important;box-shadow:none!important;border-radius:0!important}.journal .today-spotlight-card h2{color:var(--ink)!important;font-weight:650!important;letter-spacing:-.045em!important}.journal .today-spotlight-card>div:first-child>span:first-child,.journal .blog-badge{color:#903315!important;background:#f5d4c7!important;border:0!important}.journal .blog-card,.journal .blog-card:hover{border:0;border-top:1px solid var(--line);background:transparent;border-radius:0;padding:22px 0}.journal .blog-title{font-size:clamp(21px,2vw,32px);line-height:1.12;font-weight:650;letter-spacing:-.05em}.journal .blog-card:hover .blog-title,.journal .blog-read-link:hover{color:var(--red)}.journal .blog-snippet{font-size:15px}.journal .blog-tags,.journal .blog-footer{font-size:13px}.journal .blog-tag{font-size:12px;background:#e9e8e0}.journal .filter-btn{color:var(--ink);border:1px solid var(--line);font-size:12px;padding:7px 13px}.journal .filter-btn.active{color:#fff;background:var(--ink)}.journal .form-submit-btn{background:var(--ink);color:#fff;border-radius:24px}.journal .article-modal-content{background:var(--paper);box-shadow:none;padding:clamp(22px,4vw,52px)}.journal .modal-body,.journal .modal-body h4,.journal .footer-copy{color:var(--ink)}.journal .modal-close-btn{background:#e2e2da}.journal .blog-read-link{font:inherit;color:var(--ink);text-decoration:underline}.journal .article-modal{background:#25251f88}@media(max-width:650px){.journal .blogs-grid{grid-template-columns:1fr}.journal .blog-meta{margin-bottom:10px}.journal .blog-snippet{margin-top:10px}}
