@import "https://fonts.googleapis.com/css2?family=Geist+Mono:wght@400;500&family=Manrope:wght@400;500;600&display=swap";
:root{--ink:#101214;--paper:#eef0ef;--line:#1113152b;--light-line:#eef0ef45;--font-body:"Manrope", sans-serif;--font-display:"Manrope", sans-serif;--font-utility:"Geist Mono", monospace;--accent:#ff6744;--focus:var(--accent);--section-glass-light:#eef0ef80;--section-glass-dark:#0b0d0f;--section-glass-blur:none}.home-intro{z-index:9800;color:var(--ink);pointer-events:auto;will-change:transform;background:#f4f5f2;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.home-intro__folds{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.home-intro__fold-panel{clip-path:polygon(6.5% 0,100% 0,100% 100%,2.5% 100%);filter:drop-shadow(-1px 0 #ffffff8a)drop-shadow(-18px 0 32px #0b0d0f1f);visibility:hidden;backface-visibility:hidden;will-change:transform;background:linear-gradient(106deg,#f1f2ef 0%,#d8dad6 46%,#bfc3c0 100%);display:block;position:absolute;inset:-1px -5vw -1px -9vw}.home-intro__fold-panel:nth-child(2){clip-path:polygon(5% 0,100% 0,100% 100%,1.5% 100%);filter:drop-shadow(-1px 0 #f4f6f447)drop-shadow(-22px 0 42px #080a0a38);background:linear-gradient(106deg,#777d7a 0%,#484d4b 52%,#252928 100%)}.home-intro__fold-panel:nth-child(3){clip-path:polygon(3.5% 0,100% 0,100% 100%,0 100%);filter:drop-shadow(-1px 0 #ffffff24)drop-shadow(-24px 0 48px #03040466);background:#0b0d0f}.home-intro__logo{z-index:2;color:#0b0d0f;will-change:transform, opacity;place-items:center;display:grid;position:relative}.home-intro__mark{width:clamp(8.5rem,18vw,15rem);overflow:visible}.home-intro__mark path{fill:none;stroke:currentColor;stroke-width:7px;stroke-linecap:square;stroke-linejoin:miter;opacity:1}.home-intro__name{z-index:5;color:var(--paper);font-family:var(--font-display);letter-spacing:-.055em;white-space:nowrap;word-spacing:.12em;opacity:1;pointer-events:none;will-change:transform, opacity;place-items:center;margin:0;font-size:clamp(2.1rem,7vw,7.4rem);font-weight:500;line-height:.9;display:grid;position:absolute;inset:1px 5vw 1px 9vw}.home-intro__exit-stairs{z-index:4;pointer-events:none;align-items:stretch;display:flex;position:absolute;inset:0 -2px;overflow:hidden}.home-intro__exit-stair{transform-origin:50% 0;visibility:hidden;backface-visibility:hidden;will-change:transform;background:#0b0d0f;flex:20%;height:100%;margin-right:-1px;transform:scaleY(0)}.home-intro__exit-stair:last-child{margin-right:0}@media (prefers-reduced-motion:reduce){.home-intro{display:none}}html.design-static *,html.design-static :before,html.design-static :after{animation:none!important}html.design-static .glass-hero{background:0 0;min-height:100svh}html.design-static .hero-stage{opacity:1;will-change:opacity;min-height:100svh;position:sticky;top:0}html.design-static .reveal:not(.motion-group){opacity:1!important;transition:none!important;transform:none!important}.scene-logo{width:48px;color:var(--ink);transition:color var(--motion-duration) var(--motion-ease);will-change:color;align-items:center;text-decoration:none;display:inline-flex}.md-mark{width:100%;height:auto;overflow:visible}.md-mark path{fill:none;stroke:currentColor;stroke-width:8px;stroke-linecap:square;stroke-linejoin:miter}.floating-availability{z-index:30;min-height:48px;color:var(--ink);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);font:500 .58rem var(--font-utility);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:transform var(--motion-duration) var(--motion-ease), box-shadow var(--motion-duration) var(--motion-ease), background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);background:#f3f5f1d9;border:1px solid #11131542;border-radius:999px;align-items:center;gap:.7rem;padding:.7rem .8rem .7rem 1rem;text-decoration:none;display:flex;position:fixed;bottom:1.4rem;right:1.4rem;box-shadow:0 12px 36px #1012142b}.floating-availability:hover,.floating-availability:focus-visible{border-color:var(--accent);background:var(--accent);color:#fff;transform:translateY(-3px);box-shadow:0 16px 42px #10121438}.floating-availability i{background:#35d878;border-radius:50%;width:7px;height:7px;animation:1.7s ease-in-out infinite availability-pulse;box-shadow:0 0 13px #35d878}@keyframes availability-pulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 8px #35d878b8}50%{opacity:.38;transform:scale(.72);box-shadow:0 0 18px #35d878}}.floating-availability b{background:var(--ink);width:28px;height:28px;color:var(--paper);transition:transform var(--motion-duration) var(--motion-ease), background-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);border-radius:50%;place-items:center;margin-left:.3rem;font-size:.72rem;display:grid}.floating-availability:hover b,.floating-availability:focus-visible b{color:var(--accent);background:#fff}.floating-availability[aria-expanded=true] b{transform:rotate(90deg)}.contact-chat{z-index:40;width:min(390px,100vw - 2rem);color:var(--ink);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);opacity:1;visibility:hidden;transform-origin:100% 100%;pointer-events:none;transition:transform var(--motion-duration) var(--motion-ease), visibility var(--motion-duration) var(--motion-ease);background:#f4f6f2ed;border:1px solid #11131538;border-radius:18px;position:fixed;bottom:5.5rem;right:1.4rem;overflow:hidden;transform:translateY(14px)scale(.97);box-shadow:0 28px 80px #10121438}.contact-chat.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:none}.chat-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem .9rem .9rem 1rem;display:flex}.chat-person{align-items:center;gap:.85rem;min-width:0;display:flex}.chat-avatar{background:var(--ink);width:42px;height:42px;color:var(--paper);border-radius:50%;flex:0 0 42px;place-items:center;padding:9px;display:grid}.chat-person>div{gap:.22rem;display:grid}.chat-person strong{font:600 .85rem var(--font-body)}.chat-person>div>span{font:400 .48rem var(--font-utility);letter-spacing:.04em;text-transform:uppercase;opacity:.65;align-items:center;gap:.35rem;display:flex}.chat-person>div>span i{background:#ff6744;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px #ff6744}.chat-close{border:1px solid var(--line);width:32px;height:32px;color:inherit;cursor:pointer;transition:background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease);background:0 0;border-radius:50%;flex:0 0 32px;place-items:center;padding:0;font-size:1.25rem;line-height:1;display:grid}.chat-close:hover,.chat-close:focus-visible{border-color:var(--accent);background:var(--accent);color:#fff;transform:rotate(8deg)}.chat-body{background:linear-gradient(145deg,#ffffff5e,#0000 58%);padding:1rem}.chat-message{border:1px solid var(--line);background:#ffffffb8;border-radius:4px 14px 14px;width:82%;margin:0;padding:.85rem .95rem;font-size:.85rem;line-height:1.48}.chat-presets{grid-template-columns:1fr 1fr;gap:.55rem;margin-top:1rem;display:grid}.chat-presets button{border:1px solid var(--ink);min-height:42px;color:inherit;font:500 .54rem var(--font-utility);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);background:0 0;border-radius:999px;justify-content:space-between;align-items:center;gap:.6rem;padding:.65rem .85rem;display:flex}.chat-presets button:hover,.chat-presets button:focus-visible,.chat-presets button.is-selected{border-color:var(--accent);background:var(--accent);color:#fff}.chat-presets button span{font-size:.72rem}.chat-form{padding:0 1rem 1rem}.chat-form>label{font:500 .5rem var(--font-utility);letter-spacing:.09em;text-transform:uppercase;margin-bottom:.5rem;display:block}.chat-composer{border:1px solid var(--ink);background:#fff;border-radius:13px;grid-template-columns:1fr auto;align-items:end;gap:.5rem;padding:.45rem;display:grid}.chat-composer textarea{resize:none;width:100%;min-height:48px;max-height:126px;color:inherit;font:400 .85rem/1.45 var(--font-body);background:0 0;border:0;outline:0;padding:.55rem .35rem}.chat-composer textarea::placeholder{color:#10121478}.chat-composer button{background:var(--ink);width:42px;height:42px;color:var(--paper);cursor:pointer;transition:transform var(--motion-duration) var(--motion-ease), background-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);border:0;border-radius:50%;place-items:center;padding:0;font-size:1rem;display:grid}.chat-composer button:hover,.chat-composer button:focus-visible{background:var(--accent);color:#fff;transform:rotate(-8deg)scale(1.04)}.chat-form>p{font:400 .48rem/1.4 var(--font-utility);opacity:.58;margin:.5rem 0 0}.about-link:hover{color:var(--accent)}.glass-hero{z-index:1;min-height:100svh;color:var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;position:relative}.digital-landscape{z-index:0;isolation:isolate;pointer-events:none;background:radial-gradient(circle at 50% 39%,#fff 0 12%,#f3f7f6c9 35%,#0000 65%),linear-gradient(145deg,#f6f8f7,#d8e1e2);width:100%;height:100svh;margin:0;position:fixed;inset:0;overflow:hidden}body:has(.digital-landscape) #smooth-wrapper{z-index:1;isolation:isolate;position:relative}.digital-landscape:before{content:"";z-index:2;pointer-events:none;background:linear-gradient(90deg,#f7f9f724 0%,#0000 17% 83%,#f7f9f724 100%),radial-gradient(at 50% 48%,#ffffff5c 0 13%,#0000 46%);position:absolute;inset:0}.digital-landscape:after{content:"";z-index:3;pointer-events:none;background:linear-gradient(#f9fbfa59 0%,#0000 22% 72%,#dfe7e86b 100%);position:absolute;inset:0}.digital-landscape canvas{filter:saturate(.82)contrast(.98);width:100%;height:100%}.digital-landscape[data-scene-mode=services]:before{background:linear-gradient(90deg,#f7f9f712 0%,#0000 17% 83%,#f7f9f712 100%),radial-gradient(at 50% 48%,#ffffff1f 0 13%,#0000 46%)}.digital-landscape[data-scene-mode=services]:after{background:linear-gradient(#f9fbfa1f 0%,#0000 22% 72%,#dfe7e82b 100%)}.digital-landscape[data-scene-mode=services] canvas{filter:none}.digital-landscape--pending{opacity:1;visibility:visible;background:#fff}.digital-landscape--pending:before,.digital-landscape--pending:after,.digital-landscape--pending canvas,.digital-landscape--fallback canvas{opacity:0}.hero-stage{z-index:1;min-height:100svh;opacity:var(--hero-content-opacity,1);will-change:opacity;flex-direction:column;justify-content:center;padding:9rem clamp(1rem,3vw,3.5rem) 7rem;display:flex;position:sticky;top:0}.glass-hero h1{color:#111719;letter-spacing:-.064em;text-align:center;text-wrap:balance;text-shadow:0 1px #fff9,0 16px 48px #eaf0ef73;width:min(100%,1520px);margin:0 auto;font-size:clamp(3.8rem,6.9vw,8.2rem);font-weight:500;line-height:.9}.hero-title-mask{margin-bottom:-.08em;padding-bottom:.08em;display:block;overflow:hidden}.hero-title-line{will-change:transform, opacity;display:block}.glass-hero h1 i{letter-spacing:-.058em;width:fit-content;max-width:calc(100% - 9rem);margin:.18em auto 0;font-size:.74em;font-weight:400;line-height:.96;display:block;transform:translate(clamp(1.5rem,4vw,4.5rem))}.hero-foot{width:min(100%,780px);margin:3rem auto 0}.hero-foot p{color:#172023;text-align:center;letter-spacing:-.025em;text-shadow:0 1px 18px #ffffffc7;margin:0;font-size:clamp(1.08rem,1.45vw,1.48rem);line-height:1.48}@media (max-width:760px){.digital-landscape:before{background:linear-gradient(90deg,#f7f9f726 0%,#0000 8% 92%,#f7f9f726 100%),radial-gradient(at 50% 46%,#ffffff73 0 18%,#0000 62%)}.hero-stage{padding-inline:1rem}}@media (prefers-reduced-motion:reduce){.digital-landscape canvas{filter:saturate(.76)contrast(.98)}}.portfolio-work{z-index:1;background:var(--section-glass-dark);min-height:120svh;color:var(--paper);-webkit-backdrop-filter:var(--section-glass-blur);backdrop-filter:var(--section-glass-blur);padding:clamp(7rem,12vw,12rem) clamp(1rem,3vw,3.5rem);position:relative}.work-intro{grid-template-columns:.48fr 1fr .55fr;align-items:start;gap:3rem;margin-bottom:8rem;display:grid}.work-intro>span,.collaboration-copy>span{font:500 .61rem var(--font-utility);letter-spacing:.14em;text-transform:uppercase}.work-intro h2{letter-spacing:-.065em;margin:0;font-size:clamp(3.2rem,6vw,6.7rem);font-weight:400;line-height:1}.work-intro p{max-width:34ch;margin:0;font-size:.85rem;line-height:1.7}.project-list{border-top:1px solid var(--light-line)}.project{border-bottom:1px solid var(--light-line);min-height:290px;color:inherit;transition:background-color var(--motion-duration) var(--motion-ease), box-shadow var(--motion-duration) var(--motion-ease);grid-template-columns:.38fr .9fr 1fr .7fr;align-items:center;gap:clamp(1rem,3vw,3rem);padding:1.5rem 0;text-decoration:none;display:grid;position:relative;box-shadow:inset 0 0 0 1px #0000}.project:before{content:"";z-index:2;background:var(--accent);opacity:0;transform-origin:50%;pointer-events:none;width:3px;transition:opacity var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease);position:absolute;top:12%;bottom:12%;left:0;transform:scaleY(.35)}.js .project.reveal{transition:opacity var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease), background-color var(--motion-duration) var(--motion-ease), box-shadow var(--motion-duration) var(--motion-ease)}.project:hover,.project:focus-visible{background-color:#ffffff12;box-shadow:inset 0 0 0 1px #ffffff14}.project:is(:hover,:focus-visible):before{opacity:1;transform:scaleY(1)}.project:focus-visible{outline:2px solid var(--paper);outline-offset:.45rem}.project>*{transition:transform var(--motion-duration) var(--motion-ease)}.project:is(:hover,:focus-visible)>.project-meta{transform:translate(.2rem)}.project:is(:hover,:focus-visible)>.project-preview{transform:translate(.35rem)scale(.995)}.project:is(:hover,:focus-visible)>.project-title{transform:translate(.45rem)}.project:is(:hover,:focus-visible)>p{transform:translate(.3rem)}.project-meta{font:500 .56rem var(--font-utility);text-transform:uppercase;flex-direction:column;justify-content:space-between;align-self:stretch;display:flex}.project-meta b{opacity:.55;align-items:center;gap:.45rem;font-weight:400;display:flex}.project-preview{perspective:700px;background:#dfe4e4;height:220px;position:relative;overflow:hidden}.project-preview:after{content:"";opacity:1;pointer-events:none;transition:opacity var(--motion-duration) var(--motion-ease);background:linear-gradient(135deg,#ffffff4d,#0000 48%,#00000024);position:absolute;inset:0}.project-preview picture{display:contents}.project-preview img{object-fit:cover;object-position:top center;filter:saturate(.88)contrast(.96);width:100%;height:100%;transition:transform var(--motion-duration) var(--motion-ease), filter var(--motion-duration) var(--motion-ease);display:block;transform:scale(1.015)}.project:is(:hover,:focus-visible) .project-preview img{filter:saturate()contrast();transform:scale(1.045)}.project:is(:hover,:focus-visible) .project-preview:after{opacity:.72}html.design-static .project{transition:background-color var(--motion-duration) var(--motion-ease), box-shadow var(--motion-duration) var(--motion-ease)!important}html.design-static .project.motion-group--atomic{transition:transform 2.05s cubic-bezier(.22, .55, .23, 1) var(--motion-group-delay), -webkit-mask-size 2.05s cubic-bezier(.22, .55, .23, 1) var(--motion-group-delay), mask-size 2.05s cubic-bezier(.22, .55, .23, 1) var(--motion-group-delay)!important}html.design-static .project>*{transition:transform var(--motion-duration) var(--motion-ease)!important}html.design-static .project-preview img{transition:transform var(--motion-duration) var(--motion-ease), filter var(--motion-duration) var(--motion-ease)!important}html.design-static .project-preview:after{transition:opacity var(--motion-duration) var(--motion-ease)!important}.project-title small{font:500 .55rem var(--font-utility);text-transform:uppercase;opacity:.62}.project-title h3{letter-spacing:-.055em;text-wrap:balance;transition:color var(--motion-duration) var(--motion-ease);margin:.7rem 0 0;font-size:clamp(1.85rem,3vw,3.35rem);font-weight:400;line-height:.94}.project:is(:hover,:focus-visible) .project-title h3{color:var(--accent)}.project>p{max-width:31ch;font-size:.85rem;line-height:1.7}.projects-more{justify-content:flex-end;align-items:center;gap:clamp(1.5rem,4vw,4rem);padding-top:2.5rem;display:flex}.projects-more a{border:1px solid var(--light-line);min-height:52px;color:inherit;font:500 .62rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;transition:background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease), box-shadow var(--motion-duration) var(--motion-ease);border-radius:999px;align-items:center;gap:1.3rem;padding:0 1.4rem;text-decoration:none;display:inline-flex}.projects-more a:hover{background:var(--paper);color:var(--ink)}.service-experience,.about-me,.development-process{padding:clamp(7rem,11vw,11rem) clamp(1rem,3vw,3.5rem)}.service-experience{z-index:1;-webkit-backdrop-filter:var(--section-glass-blur);backdrop-filter:var(--section-glass-blur);background:#eef0ef5e;position:relative}.section-lead{grid-template-columns:.42fr 1.15fr .55fr;align-items:start;gap:clamp(2rem,5vw,5rem);margin-bottom:clamp(5rem,9vw,9rem);display:grid}.section-lead>span,.process-heading>span{font:500 .61rem var(--font-utility);letter-spacing:.14em;text-transform:uppercase}.section-lead h2,.process-heading h2{letter-spacing:-.068em;margin:0;font-size:clamp(3.2rem,6.4vw,7rem);font-weight:500;line-height:1}.section-lead h2 i{font-weight:400}.section-lead>p,.process-heading>p{max-width:38ch;margin:0;font-size:.85rem;line-height:1.7}.service-bento{grid-template-rows:minmax(340px,auto) minmax(325px,auto) minmax(180px,auto);grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(.75rem,1.4vw,1.25rem);display:grid}.service-panel{--service-border:var(--service-accent,var(--accent));min-width:0;color:inherit;will-change:transform, box-shadow;transition:border-color var(--motion-duration) var(--motion-ease), box-shadow var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease);background:#ffffffe0;border:1px solid #0000;border-radius:clamp(1.25rem,2vw,2rem);flex-direction:column;justify-content:space-between;gap:clamp(1.25rem,2vw,2.25rem);padding:clamp(1.35rem,2.3vw,2.25rem);text-decoration:none;display:flex;position:relative;overflow:hidden;transform:translateY(0);box-shadow:0 18px 46px #1721270a,0 3px 12px #17212708}.service-panel:hover,.service-panel:focus-visible{border-color:var(--service-border);transform:translateY(-6px);box-shadow:0 46px 110px #11182026,0 16px 36px #11182016,inset 0 1px #ffffffa3}html.design-static .service-panel{transition:border-color var(--motion-duration) var(--motion-ease), box-shadow var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease)!important}html.design-static .service-panel.motion-group--atomic{transition:transform 2.05s cubic-bezier(.22, .55, .23, 1) var(--motion-group-delay), -webkit-mask-size 2.05s cubic-bezier(.22, .55, .23, 1) var(--motion-group-delay), mask-size 2.05s cubic-bezier(.22, .55, .23, 1) var(--motion-group-delay)!important}.service-panel:focus-visible{outline:2px solid var(--service-border);outline-offset:4px}.service-panel-web{--service-accent:#347584;--service-border:#74a8b2;background:radial-gradient(circle at 86% 18%,#d9e9ecc4 0,#0000 34%),#ffffffb8;grid-area:1/1/auto/7}.service-panel-ux{--service-accent:#c75f48;--service-border:#da806b;background:radial-gradient(circle at 90% 10%,#ffe1d9bd 0,#0000 34%),#ffffffb5;grid-area:1/7/auto/13}.service-panel-mobile{--service-accent:#536f9f;--service-border:#758bb4;background:radial-gradient(circle at 88% 16%,#d9e2f0bd 0,#0000 34%),#ffffffb5;grid-area:2/1/auto/5}.service-panel-performance{--service-accent:#6e7841;--service-border:#90995c;background:radial-gradient(circle at 88% 14%,#e5e8dcbd 0,#0000 36%),#ffffffb5;grid-area:2/5/auto/9}.service-panel-care{--service-accent:#315f50;--service-border:#548878;background:radial-gradient(circle at 88% 16%,#c9ddd6bd 0,#0000 38%),linear-gradient(145deg,#f8faf9ba 0%,#e4eeebbd 100%);grid-area:2/9/auto/13;box-shadow:inset 0 1px #ffffffdb,0 24px 70px #17312812}.service-panel-care:before{content:"";aspect-ratio:1;pointer-events:none;border:1px solid #23473a24;border-radius:50%;width:190px;position:absolute;top:74px;right:-54px;box-shadow:0 0 0 28px #23473a0a,0 0 0 58px #23473a07}.service-panel-care .service-panel-mark{color:#173b30;opacity:.045}.service-panel-care h3 i{color:#315f50}.service-care-status{background:#25a765;border-radius:50%;width:6px;height:6px;margin-right:.55rem;animation:2.4s ease-in-out infinite service-care-signal;display:inline-block;box-shadow:0 0 0 5px #25a76519}@keyframes service-care-signal{0%,to{box-shadow:0 0 0 4px #25a76514}50%{box-shadow:0 0 0 8px #25a7652b}}.service-panel-other{--service-accent:var(--accent);--service-border:var(--accent);color:#f4f6f5;background:#151719;grid-area:3/1/auto/13;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1.6fr) minmax(220px,.6fr);align-items:end;column-gap:clamp(2rem,7vw,8rem);min-height:180px;display:grid}.service-panel-other header{grid-column:1/-1;align-self:start}.service-panel-other .service-panel-copy{grid-template-columns:minmax(230px,.75fr) minmax(260px,1fr);align-items:end;gap:clamp(2rem,5vw,6rem);display:grid}.service-panel-other .service-panel-copy h3{margin-bottom:0}.service-panel header{z-index:1;font:500 .52rem var(--font-utility);letter-spacing:.07em;text-transform:uppercase;justify-content:space-between;gap:1rem;display:flex;position:relative}.service-panel header b{opacity:.5;transition:opacity var(--motion-duration) var(--motion-ease);font-weight:400}.service-panel:hover header b,.service-panel:focus-visible header b{opacity:1}.service-panel-mark{font:500 clamp(7rem, 14vw, 15rem)/.8 var(--font-body);letter-spacing:-.09em;opacity:.035;pointer-events:none;position:absolute;top:.08em;right:-.06em}.service-panel-copy{z-index:1;position:relative}.service-panel h3{letter-spacing:-.062em;margin:0 0 .9rem;font-size:clamp(2.25rem,3.4vw,3.9rem);font-weight:500;line-height:1}.service-panel:not(.service-panel-web) h3{font-size:clamp(2.2rem,3.4vw,3.9rem)}.service-panel-performance h3,.service-panel-care h3,.service-panel-mobile h3{font-size:clamp(2rem,2.45vw,2.85rem)}.service-panel-other h3{font-size:clamp(2.4rem,3.25vw,3.75rem)}.service-panel h3 i{color:var(--service-accent,var(--accent));font-weight:400}.service-panel p{opacity:.72;max-width:47ch;margin:0;font-size:.85rem;line-height:1.7}.service-panel ul,.care-card ul{margin:1.35rem 0 0;padding:0;list-style:none}.service-panel li,.care-card li{font:500 .54rem var(--font-utility);letter-spacing:.04em;text-transform:uppercase;opacity:.72;border-top:1px solid;padding:.65rem 0}.service-panel-cta{z-index:2;border:1px solid var(--service-accent,var(--accent));min-height:44px;color:var(--service-accent,var(--accent));font:500 .52rem var(--font-utility);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap;background:#ffffff70;border-radius:999px;align-self:flex-end;align-items:center;gap:.75rem;padding:.42rem .42rem .42rem .9rem;display:inline-flex;position:relative}.service-panel-cta b{background:var(--service-accent,var(--accent));color:#fff;width:30px;height:30px;font:400 .95rem/1 var(--font-body);border-radius:50%;place-items:center;display:grid}.service-panel:hover .service-panel-cta,.service-panel:focus-visible .service-panel-cta{border-color:var(--service-accent,var(--accent));background:var(--service-accent,var(--accent));color:#fff}.service-panel:hover .service-panel-cta b,.service-panel:focus-visible .service-panel-cta b{color:var(--service-accent,var(--accent));background:#fff;transform:translate(2px,-2px)}html.design-static .service-panel-cta{transition:background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease)!important}html.design-static .service-panel-cta b{transition:background-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease)!important}.service-panel-other .service-panel-cta{background:#ffffff0a;grid-area:2/2;place-self:end}.experience-statement{grid-template-columns:.42fr 1.15fr .55fr;align-items:end;gap:clamp(2rem,5vw,5rem);margin-top:clamp(5rem,9vw,9rem);display:grid}.experience-statement>span{font:500 .58rem/1.5 var(--font-utility);letter-spacing:.08em;text-transform:uppercase}.experience-statement>p{letter-spacing:-.05em;max-width:30ch;margin:0;font-size:clamp(1.75rem,2.9vw,4rem);line-height:1.02}.experience-statement>div{font:500 .56rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;gap:.4rem;display:grid}.experience-statement>div b{border-bottom:1px solid var(--line);padding:.55rem 0;font-weight:500}.about-me{background:var(--section-glass-dark);color:var(--paper);-webkit-backdrop-filter:var(--section-glass-blur);backdrop-filter:var(--section-glass-blur);padding-block:clamp(6rem,8vw,8rem)}.about-meta{border-bottom:1px solid var(--light-line);grid-template-columns:1fr auto;align-items:start;gap:2rem;padding-bottom:1.25rem;display:grid}.about-meta span,.about-meta small{font:500 .58rem/1.5 var(--font-utility);letter-spacing:.1em;text-transform:uppercase}.about-meta small{text-align:right;opacity:.62}.about-layout{grid-template-columns:minmax(260px,.68fr) minmax(480px,1.32fr);align-items:start;gap:clamp(2.5rem,5vw,6rem);margin-top:clamp(3rem,5vw,5rem);display:grid}.about-portrait{isolation:isolate;border:1px solid var(--light-line);width:100%;max-width:460px;height:100svh;min-height:620px;max-height:1000px;color:var(--paper);background:#eef0ef08;justify-self:end;display:block;position:relative;overflow:hidden}.about-portrait img{object-fit:cover;object-position:center 24%;filter:saturate(.86)contrast(1.03);width:100%;height:100%}.about-copy h2{letter-spacing:-.075em;margin:0;font-size:clamp(3.2rem,5.6vw,6.2rem);font-weight:500;line-height:1}.about-copy h2 i{margin-left:15%;font-weight:400;display:inline-block}.about-intro{letter-spacing:-.03em;max-width:50ch;margin:clamp(2rem,4vw,4rem) 0 0;font-size:clamp(1.1rem,1.8vw,1.65rem);line-height:1.35}.about-columns{grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,4rem);margin-top:2.5rem;display:grid}.about-columns p{margin:0;font-size:.85rem;line-height:1.7}.about-facts{border-top:1px solid var(--light-line);margin-top:clamp(3rem,5vw,5rem)}.about-facts>div{border-bottom:1px solid var(--light-line);font:500 .55rem/1.5 var(--font-utility);letter-spacing:.05em;text-transform:uppercase;grid-template-columns:.42fr 1fr;gap:1.5rem;padding:.8rem 0;display:grid}.about-facts span{opacity:.52}.about-facts b{font-weight:500}.about-link{width:fit-content;font:500 .58rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;transition:color var(--motion-duration) var(--motion-ease);border-bottom:1px solid;align-items:center;gap:1rem;padding-bottom:.4rem;text-decoration:none;display:inline-flex}.about-link span{transition:transform var(--motion-duration) var(--motion-ease);font-size:.85rem}.about-link:hover span{transform:translate(4px,4px)}.about-actions{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:2rem;display:flex}.cv-download{border-bottom:1px dashed var(--light-line);width:fit-content;color:inherit;font:500 .58rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;transition:opacity var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease);align-items:center;gap:.85rem;padding-bottom:.4rem;text-decoration:none;display:inline-flex}.cv-download:before{content:"PDF";border:1px solid var(--light-line);letter-spacing:.05em;opacity:.65;padding:.12rem .25rem;font-size:.45rem}.cv-download span{transition:transform var(--motion-duration) var(--motion-ease);font-size:.9rem}.cv-download:hover{border-color:var(--accent);color:var(--accent);opacity:1}.cv-download:hover span{transform:translate(4px,4px)}.about-social{border-bottom:1px solid var(--light-line);color:inherit;font:500 .58rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;opacity:.72;transition:opacity var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease);align-items:center;gap:.65rem;padding-bottom:.4rem;text-decoration:none;display:inline-flex}.about-social span{transition:transform var(--motion-duration) var(--motion-ease);font-size:.85rem}.social-icon{fill:currentColor;flex:none;width:.9rem;height:.9rem}.about-social:hover{border-color:var(--accent);color:var(--accent);opacity:1}.about-social:hover span{transform:translate(4px,4px)}.development-process{z-index:1;-webkit-backdrop-filter:var(--section-glass-blur);backdrop-filter:var(--section-glass-blur);background:#eef0ef2e;position:relative}.process-heading{grid-template-columns:.42fr 1.15fr .55fr;align-items:start;gap:clamp(2rem,5vw,5rem);margin-bottom:clamp(5rem,8vw,8rem);display:grid}.process-list{border-top:1px solid var(--ink);counter-reset:process;margin:0;padding:0;list-style:none}.process-list li{border-bottom:1px solid var(--line);min-height:clamp(180px,26svh,230px);transition:background-color var(--motion-duration) var(--motion-ease);grid-template-columns:.42fr 1.15fr .55fr;align-items:center;gap:clamp(2rem,5vw,5rem);padding:1.5rem 0;display:grid;position:relative;overflow:hidden}.process-list li:before{content:"";z-index:0;opacity:0;transition:opacity var(--motion-duration) var(--motion-ease);background:linear-gradient(90deg,#ff674414,#0000 72%);position:absolute;inset:0}.process-list li:after{content:"";z-index:1;background:var(--accent);transform-origin:50%;width:2px;transition:transform var(--motion-duration) var(--motion-ease);position:absolute;top:20%;bottom:20%;left:0;transform:scaleY(0)}.process-list li>*{z-index:2;position:relative}.process-list li>span{font:500 clamp(2.5rem, 5vw, 5.8rem)/1 var(--font-utility);letter-spacing:-.08em;opacity:.22;transition:color var(--motion-duration) var(--motion-ease), opacity var(--motion-duration) var(--motion-ease), transform var(--motion-duration) var(--motion-ease)}.process-list li.is-active:before{opacity:1}.process-list li.is-active:after{transform:scaleY(1)}.process-list li.is-active>span{color:var(--accent);opacity:1;transform:translate(.5rem)}.process-list h3{letter-spacing:-.05em;transition:transform var(--motion-duration) var(--motion-ease);margin:0 0 .55rem;font-size:clamp(1.8rem,3vw,3.4rem);font-weight:500;line-height:1}.process-list li.is-active h3{transform:translate(.35rem)}.process-list p{max-width:47ch;margin:0;font-size:.85rem;line-height:1.6}.process-list small{font:500 .54rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;opacity:.6;justify-self:end}.care-plans{background:var(--section-glass-dark);color:var(--paper);-webkit-backdrop-filter:var(--section-glass-blur);backdrop-filter:var(--section-glass-blur)}.care-heading{grid-template-columns:.42fr 1.15fr .55fr;align-items:start;gap:clamp(2rem,5vw,5rem);margin-bottom:clamp(5rem,8vw,8rem);display:grid}.care-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.care-card{border:1px solid var(--light-line);min-width:0;min-height:570px;transition:transform var(--motion-duration) var(--motion-ease), background-color var(--motion-duration) var(--motion-ease);background:#ffffff05;flex-direction:column;padding:clamp(1.4rem,2.6vw,2.3rem);display:flex}.care-card:hover{background:#ffffff0b;transform:translateY(-8px)}.care-card-featured{background:#ff67440d;border-color:#ff6744}.care-card header{font:500 .52rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:1rem;display:flex}.care-card header small{color:#ff876b;font:inherit}.care-card h3{letter-spacing:-.06em;margin:clamp(3rem,6vw,6rem) 0 1rem;font-size:clamp(2.25rem,4vw,4.5rem);font-weight:400;line-height:.9}.care-card>p{opacity:.72;max-width:38ch;min-height:4.7em;font-size:.85rem;line-height:1.65}.care-card li{border-color:var(--light-line)}.care-card footer{gap:1rem;margin-top:auto;padding-top:2rem;display:grid}.care-card footer strong{font:500 .54rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;opacity:.62}.care-card footer button{border:1px solid var(--paper);min-height:48px;color:inherit;font:500 .56rem var(--font-utility);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);background:0 0;justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.care-card footer button:hover,.care-card footer button:focus-visible{border-color:var(--accent);background:var(--accent);color:#fff}.care-card-featured footer button{border-color:var(--accent);background:var(--accent);color:var(--ink)}.care-card-featured footer button:hover,.care-card-featured footer button:focus-visible{color:#fff}.care-card footer button span{transition:transform var(--motion-duration) var(--motion-ease);display:inline-block}.care-card footer button:hover span,.care-card footer button:focus-visible span{transform:translate(3px,-3px)}.care-note{max-width:78ch;font:400 .56rem/1.6 var(--font-utility);letter-spacing:.04em;opacity:.56;margin:2rem 0 0 auto}.seo-faq{background:var(--section-glass-dark);color:var(--paper);padding:clamp(7rem,11vw,11rem) clamp(1rem,3vw,3.5rem)}.faq-grid{border-top:1px solid var(--light-line);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:clamp(1.5rem,4vw,4rem);display:grid}.faq-item{border-bottom:1px solid var(--light-line);transition:border-color var(--motion-duration) var(--motion-ease);align-self:start}.faq-item:nth-child(odd){padding-right:clamp(.5rem,1.5vw,1.5rem)}.faq-item:nth-child(2n){border-left:1px solid var(--light-line);padding-left:clamp(.5rem,1.5vw,1.5rem)}.faq-item summary{cursor:pointer;min-height:clamp(82px,7vw,104px);transition:background-color var(--motion-duration) var(--motion-ease);grid-template-columns:34px minmax(0,1fr) 42px;align-items:center;gap:clamp(.7rem,1.4vw,1.25rem);list-style:none;display:grid}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary>span{font:500 .55rem var(--font-utility);letter-spacing:.08em;opacity:.5;transition:color var(--motion-duration) var(--motion-ease), opacity var(--motion-duration) var(--motion-ease)}.faq-item h3{font:400 clamp(1.2rem, 1.7vw, 1.9rem)/1.08 var(--font-body);letter-spacing:-.045em;transition:color var(--motion-duration) var(--motion-ease);margin:0}.faq-toggle{aspect-ratio:1;border:1px solid var(--light-line);width:38px;font:400 1.2rem/1 var(--font-body);transition:transform var(--motion-duration) var(--motion-ease), background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);border-radius:50%;justify-self:end;place-items:center;font-style:normal;display:grid}html.design-static .faq-toggle{transition:transform var(--motion-duration) var(--motion-ease), background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease)!important}.faq-item summary:hover .faq-toggle,.faq-item summary:focus-visible .faq-toggle{border-color:var(--accent)}.faq-item[open] .faq-toggle{border-color:var(--accent);background:var(--accent);color:var(--ink);transform:rotate(45deg)}.faq-item[open]{border-bottom-color:var(--accent)}.faq-item[open] summary{background:#ff67440a}.faq-item[open] summary>span,.faq-item[open] h3{color:var(--accent);opacity:1}.faq-answer{grid-template-columns:34px minmax(0,1fr) 42px;gap:clamp(.7rem,1.4vw,1.25rem);padding:0 0 clamp(1.5rem,2.5vw,2.25rem);display:grid}.faq-item p{opacity:.72;grid-column:2;margin:0;font-size:.82rem;line-height:1.7}.faq-item p a{color:inherit;text-underline-offset:.2em}@media (max-width:900px){.faq-grid{grid-template-columns:1fr;column-gap:0}.faq-item:nth-child(odd),.faq-item:nth-child(2n){border-left:0;padding-left:0;padding-right:0}.faq-item summary,.faq-answer{grid-template-columns:36px minmax(0,1fr) 42px;gap:.8rem}.faq-item summary{min-height:88px}.faq-item h3{font-size:clamp(1.25rem,6vw,1.75rem)}.faq-toggle{width:40px}.faq-answer{padding-bottom:2rem}}.collaboration{-webkit-backdrop-filter:none;backdrop-filter:none;background:#eef0ef40;grid-template-columns:.95fr 1.05fr;align-items:center;gap:8vw;min-height:110svh;padding:clamp(7rem,11vw,11rem) clamp(1rem,3vw,3.5rem);display:grid}.collaboration-copy h2{letter-spacing:-.068em;max-width:11ch;margin:1.4rem 0;font-size:clamp(3.3rem,6.2vw,7rem);font-weight:500;line-height:1}.collaboration-copy>p{max-width:42ch;font-size:.8rem;line-height:1.7}.contact-paths{gap:.8rem;display:grid}.contact-path{border:1px solid var(--line);min-width:0;color:inherit;padding:clamp(1.3rem,2.6vw,2.2rem);text-decoration:none}.contact-path header{font:500 .57rem var(--font-utility);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:1rem;display:flex}.contact-path header b{opacity:.55;font-weight:400}.contact-path-message{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff5c;gap:1.5rem;display:grid}.contact-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;display:grid}.contact-form-grid label{min-width:0}.contact-form-grid label>span{font:500 .56rem var(--font-utility);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;display:block}.contact-field-wide{grid-column:1/-1}.contact-method-hint{font:400 .53rem/1.5 var(--font-utility);letter-spacing:.03em;opacity:.58;grid-column:1/-1;margin:-.3rem 0 0}.contact-form-grid input,.contact-form-grid select,.contact-form-grid textarea{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);font:400 .82rem/1.5 var(--font-body);background:#fff5;border-radius:0;padding:.8rem}.contact-form-grid textarea{resize:vertical;min-height:112px}.contact-form-grid input::placeholder,.contact-form-grid textarea::placeholder{color:#10121478}.contact-form-grid textarea:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.contact-form-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.contact-path-action{border:1px solid var(--ink);background:var(--ink);width:100%;min-height:50px;color:var(--paper);font:500 .58rem var(--font-utility);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background-color var(--motion-duration) var(--motion-ease), border-color var(--motion-duration) var(--motion-ease), color var(--motion-duration) var(--motion-ease);justify-content:space-between;align-items:center;gap:1rem;padding:1rem;text-decoration:none;display:flex}.contact-path-action.ghost{color:var(--ink);background:0 0}.contact-path-action span{transition:transform var(--motion-duration) var(--motion-ease);display:inline-block}.contact-path-action:hover,.contact-path-action:focus-visible,.contact-path-action.ghost:hover,.contact-path-action.ghost:focus-visible{border-color:var(--accent);background:var(--accent);color:#fff}.contact-path-action:hover span,.contact-path-action:focus-visible span{transform:translate(3px,-3px)}@media (max-width:900px){.glass-hero h1{text-align:left;font-size:clamp(3.25rem,10vw,5.6rem);transform:none}.glass-hero h1 i{width:auto;max-width:18ch;margin-left:7vw;margin-right:0;font-size:.8em;transform:none}.work-intro{grid-template-columns:1fr 1.5fr}.work-intro p{grid-column:2}.project{grid-template-columns:.25fr .85fr 1fr}.project>p{grid-column:2/-1;margin-left:0}.collaboration{grid-template-columns:1fr}.section-lead,.process-heading,.experience-statement{grid-template-columns:1fr 1.6fr}.section-lead>p,.process-heading>p,.experience-statement>div{grid-column:2}.service-bento{grid-template-rows:auto;grid-template-columns:1fr}.service-panel{grid-area:auto}.service-panel-other{min-height:300px;display:flex}.service-panel-other .service-panel-copy{display:block}.about-layout{grid-template-columns:1fr}.about-portrait{justify-self:center;width:min(68%,320px)}}@media (max-width:620px){.glass-hero{min-height:100svh}.hero-stage{padding:7rem 1rem 6rem}.glass-hero h1{letter-spacing:-.06em;font-size:clamp(2.8rem,12.5vw,3.05rem);line-height:.9}.glass-hero h1 i{max-width:12ch;margin-top:.2em;margin-left:5vw;font-size:.82em;line-height:.98}.hero-foot{margin-top:2rem}.hero-foot p{font-size:1rem;line-height:1.5}.floating-availability{bottom:.8rem;right:.8rem}.contact-chat{width:calc(100vw - 1.6rem);max-height:calc(100svh - 6rem);bottom:5rem;right:.8rem;overflow-y:auto}.chat-presets{grid-template-columns:1fr}.portfolio-work{padding-top:6rem}.work-intro{grid-template-columns:1fr;gap:1.5rem;margin-bottom:5rem}.work-intro p{grid-column:1}.project{grid-template-columns:1fr;gap:1.2rem;padding-block:2rem}.project-meta{flex-direction:row}.project-preview{height:240px}.project>p{grid-column:1}.projects-more{flex-direction:column;align-items:stretch}.projects-more a{justify-content:space-between}.service-experience,.about-me,.development-process{padding-block:6rem}.section-lead,.process-heading,.experience-statement{grid-template-columns:1fr;gap:1.5rem}.section-lead>p,.process-heading>p,.experience-statement>div{grid-column:1}.section-lead h2,.process-heading h2{font-size:3.45rem}.service-panel{min-height:320px;padding:1.5rem}.service-panel h3,.service-panel:not(.service-panel-web) h3{font-size:2.8rem}.service-panel-mark{font-size:8rem}.experience-statement>p{font-size:2.1rem}.about-meta{grid-template-columns:1fr}.about-meta small{text-align:left}.about-layout{gap:3rem}.about-portrait{width:100%;max-width:none;height:100svh;min-height:620px;max-height:900px}.about-copy h2{font-size:3.7rem}.about-copy h2 i{margin-left:8%}.about-columns{grid-template-columns:1fr}.about-facts>div{grid-template-columns:1fr;gap:.3rem}.process-list li{grid-template-columns:64px 1fr;gap:1rem;min-height:clamp(160px,22svh,190px)}.process-list li>span{font-size:2.6rem}.process-list small{grid-column:2;justify-self:start}.collaboration{padding-block:6rem}.collaboration-copy h2{font-size:3.55rem}.contact-form-grid,.contact-form-actions{grid-template-columns:1fr}.contact-field-wide{grid-column:1}.contact-path{padding:1.2rem}}@media (prefers-reduced-motion:reduce){html.design-static .faq-toggle{transition:none!important}.scene-logo{transition:none}.glass-hero{min-height:100svh}.hero-stage{opacity:1;position:relative}html.design-static .project,html.design-static .project:before,html.design-static .project>*,html.design-static .project-preview img,html.design-static .project-preview:after,html.design-static .project-title h3{transition:none!important}.project:is(:hover,:focus-visible)>.project-meta,.project:is(:hover,:focus-visible)>.project-preview,.project:is(:hover,:focus-visible)>.project-title,.project:is(:hover,:focus-visible)>p{transform:none}.project:is(:hover,:focus-visible) .project-preview img{transform:scale(1.015)}.project:is(:hover,:focus-visible) .project-preview:after{opacity:1}.service-panel{transition:none}.service-panel:hover,.service-panel:focus-visible{transform:none}.floating-availability i{animation:none}.process-list li,.process-list li:before,.process-list li:after,.process-list li>span,.process-list h3{transition:none}}
