@font-face{font-family:Cabinet;src:url(/fonts/cabinet-bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/satoshi-regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Satoshi;src:url(/fonts/satoshi-bold.woff2) format("woff2");font-weight:700;font-display:swap}:root{--ps-bg: #f7f4f1;--ps-ink: #211936;--ps-muted: #615a73;--ps-violet: #8c75f3;--ps-lavender: #e7deff;--ps-lime: #ddf5a1;--ps-radius: 16px;--ease-out: cubic-bezier(.23, 1, .32, 1);--motion-fast: .14s;--motion-ui: .18s}*{box-sizing:border-box}body{margin:0;background:var(--ps-bg);color:var(--ps-ink);font-family:Satoshi,Arial,sans-serif;line-height:1.5}html{scrollbar-width:thin;scrollbar-color:var(--ps-violet) var(--ps-bg)}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}h1,h2,p,figure{margin:0}img{display:block;max-width:100%}::selection{background:var(--ps-lime);color:var(--ps-ink)}:focus-visible{outline:3px solid #6850ca;outline-offset:5px}main:focus{outline:none}.arrow{width:24px;height:24px;flex:none}.playspace-preview{max-width:1440px;margin:auto;padding:0 60px;min-height:100svh;display:flex;flex-direction:column}.ps-skip{position:fixed;top:12px;left:12px;padding:10px 20px;background:var(--ps-ink);color:var(--ps-bg);z-index:100;opacity:0;transform:translateY(-200%)}.ps-skip:focus{opacity:1;transform:none}.ps-header{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:26px 0;position:relative;z-index:10}.ps-brand{display:flex;align-items:baseline;gap:12px}.ps-nav{display:flex;align-items:center;gap:35px;font-size:14px}.ps-nav>a{min-height:44px;display:inline-flex;align-items:center}.ps-menu-toggle{display:none}.ps-hero{display:grid;grid-template-columns:1.2fr 1fr;gap:35px;align-items:center;position:relative;flex:1;padding:40px 0 35px;min-height:670px}.ps-copy{position:relative;z-index:3;padding-bottom:20px}.ps-copy h1{font-family:Cabinet,Arial,sans-serif;font-weight:700;font-size:clamp(70px,7.8vw,96px);line-height:.96;letter-spacing:-.035em;text-wrap:balance}.ps-copy h1>span{color:#6850ca}.ps-role{margin-top:29px;font-size:clamp(22px,2.1vw,29px);line-height:1.35;letter-spacing:-.015em}.ps-role-accent{color:#6850ca;margin:0 3px;font-size:inherit}.ps-intro{font-size:17px;line-height:1.75;color:var(--ps-muted);max-width:460px;margin-top:25px;text-wrap:pretty}.ps-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:34px}.ps-primary{display:flex;align-items:center;justify-content:space-between;gap:25px;background:var(--ps-ink);color:var(--ps-bg);padding:15px 22px;border-radius:var(--ps-radius);font-size:14px;min-height:54px;font-weight:700;transition:transform .16s var(--ease-out),background-color .16s ease}.ps-primary .arrow{width:20px;height:20px}.ps-secondary{display:flex;align-items:center;gap:17px;min-height:54px;font-size:14px;text-underline-offset:6px;transition:transform .16s var(--ease-out)}.ps-portrait-scene{position:relative;width:100%;height:600px;align-self:center;isolation:isolate}.ps-portrait-back{position:absolute;inset:70px 3% 55px 9%;background:var(--ps-lavender);border-radius:48% 48% 38% 45%/36% 48% 52% 60%;rotate:-9deg;z-index:-2}.ps-portrait-outline{position:absolute;inset:62px -1% 63px 13%;border:1px solid #8c75f350;border-radius:50% 40% 38% 46%/42% 40% 52% 58%;rotate:8deg;z-index:-1}.ps-portrait-window{position:absolute;inset:30px 8% 65px 12%;overflow:clip;border-radius:47% 53% 39% 61%/36% 41% 59% 64%;background:#000}.ps-portrait-window img{height:calc(100% + 20px);width:calc(100% + 20px);max-width:none;margin:-10px;object-fit:cover;object-position:50% 38%;-webkit-user-select:none;user-select:none}.ps-portrait-scene figcaption{position:absolute;left:-5%;bottom:5px;display:flex;align-items:center;gap:14px;z-index:4}.ps-portrait-caption{font-size:14px;line-height:1.5;letter-spacing:.01em;color:var(--ps-muted)}.ps-portrait-caption strong{color:var(--ps-ink);font-weight:700;background:var(--ps-lime);padding:1px 5px;margin-left:-5px}.ps-caption-line{position:absolute;left:calc(100% + 14px);bottom:2px;width:140px;height:120px;color:#6850ca;pointer-events:none}.ps-work{padding:90px 0 80px;scroll-margin-top:32px}.ps-work:focus{outline:none}.ps-work-intro,.one-page .journey-intro{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:60px}.ps-work-intro{margin-bottom:70px}.ps-work-intro h2,.one-page .journey-intro h2{font-family:Cabinet,Arial,sans-serif;font-size:clamp(40px,4.2vw,60px);line-height:1.05;letter-spacing:-.03em}.ps-work-intro>p,.one-page .journey-intro>p{font-size:17px;line-height:1.75;color:var(--ps-muted);max-width:390px;width:100%;justify-self:end;text-align:right}.ps-feature{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:65px;align-items:center}.ps-feature-copy{grid-column:2;grid-row:1}.ps-feature-visual{grid-column:1;grid-row:1;min-width:0}.ps-feature h3{font-family:Cabinet,Arial,sans-serif;font-size:42px;line-height:1.1;letter-spacing:-.025em;margin:0}.ps-project-kind{color:var(--ps-muted);font-size:12px;margin-top:12px}.ps-project-summary{margin-top:22px;color:var(--ps-muted);font-size:16px;line-height:1.75}.ps-project-stack{font-size:12px;line-height:1.8;margin-top:24px}.ps-project-stage{display:block;padding:38px 24px;background:var(--ps-lavender);border-radius:var(--ps-radius)}.ps-project-stage img{width:100%;height:auto;aspect-ratio:1440 / 811;object-fit:contain;border-radius:var(--ps-radius);box-shadow:0 12px 24px #2119361a}.ps-screen-caption{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:var(--ps-muted);margin-top:18px;font-variant-numeric:tabular-nums}.ps-screen-choices{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}.ps-screen-choices button{min-height:44px;padding:9px 14px;font-size:12px;border-radius:var(--ps-radius)}.ps-screen-choices button[aria-pressed=true]{background:var(--ps-ink);color:var(--ps-bg)}.ps-feature--umbrella,.ps-feature--portfolio{grid-template-columns:minmax(0,1fr) minmax(0,1.8fr);margin-top:100px}.ps-feature--umbrella .ps-feature-copy,.ps-feature--portfolio .ps-feature-copy{grid-column:1}.ps-feature--umbrella .ps-feature-visual,.ps-feature--portfolio .ps-feature-visual{grid-column:2}.ps-feature--umbrella .ps-project-stage{background:var(--ps-lime);padding:50px 40px}@media(hover:hover)and (pointer:fine){.ps-screen-choices button[aria-pressed=false]:hover{background:var(--ps-lavender)}}@media(max-width:1100px){.ps-feature{gap:35px}.ps-project-stage{padding:28px 18px}.ps-feature h3{font-size:34px}.ps-feature--umbrella .ps-project-stage{padding:35px 25px}}@media(max-width:800px){.ps-feature,.ps-feature--umbrella,.ps-feature--portfolio{grid-template-columns:1fr;gap:30px}.ps-feature .ps-feature-copy{grid-column:1;grid-row:1;max-width:530px}.ps-feature .ps-feature-visual{grid-column:1;grid-row:2}.ps-project-summary{margin-top:15px}.ps-project-stack{margin-top:18px}}@media(max-width:700px){.ps-work{padding:55px 0}.ps-work-intro,.one-page .journey-intro{grid-template-columns:1fr;gap:24px}.ps-work-intro{margin-bottom:45px}.ps-work-intro h2,.one-page .journey-intro h2{font-size:40px}.ps-work-intro>p,.one-page .journey-intro>p,.ps-project-summary{font-size:15px}.ps-project-stage,.ps-feature--umbrella .ps-project-stage{padding:22px 12px}.ps-screen-choices{gap:2px;margin-top:12px}.ps-screen-choices button{padding:9px 11px}.ps-feature--umbrella{margin-top:65px}}.ps-primary:active{transform:scale(.97)}.ps-primary:focus-visible,.ps-secondary:focus-visible{transition:none}.ps-primary:focus-visible:active,.ps-secondary:focus-visible:active{transform:none}.ps-secondary:active{transform:scale(.98)}@media(hover:hover)and (pointer:fine){.ps-primary:hover{background:#3d2e60}.ps-secondary:hover{text-decoration:underline}.ps-nav>a:hover{text-decoration:underline;text-underline-offset:6px}}@media(max-width:1100px){.playspace-preview{padding:0 38px}.ps-hero{gap:20px;min-height:610px}.ps-copy h1{font-size:82px}.ps-role{font-size:23px}.ps-portrait-scene{height:540px}.ps-actions{gap:20px}.ps-intro{font-size:16px}.ps-secondary{font-size:13px}.ps-portrait-scene figcaption{left:0}.ps-caption-line{width:120px;height:105px}.ps-nav{gap:25px}}@media(max-width:800px){.playspace-preview{padding:0 26px}.ps-hero{grid-template-columns:1.15fr 1fr;min-height:560px;gap:10px;padding-top:35px}.ps-copy h1{font-size:72px}.ps-role{font-size:21px}.ps-portrait-scene{height:480px}.ps-portrait-scene figcaption{left:10px;gap:8px}.ps-portrait-caption{font-size:12px}.ps-caption-line{left:calc(100% + 8px);width:104px;height:96px}.ps-actions{gap:12px}.ps-primary{font-size:13px;padding:14px 17px}.ps-nav{gap:23px;font-size:13px}}@media(max-width:700px){.playspace-preview{padding:0 22px}.ps-header{padding:22px 0}.ps-menu-toggle{display:flex;align-items:center;gap:12px;font-size:12px;min-height:44px;padding:0}.ps-menu-toggle svg{width:21px;height:21px}.ps-nav{display:none}.ps-nav.is-open{display:flex;position:absolute;top:83px;right:0;left:0;flex-direction:column;align-items:stretch;gap:0;background:var(--ps-bg);padding:15px 20px;border-radius:var(--ps-radius);box-shadow:0 10px 30px #2119361a;transform-origin:top right}.ps-nav>*{padding:10px 0}.ps-hero{display:flex;flex-direction:column;align-items:stretch;padding:25px 0 20px;gap:0;min-height:0}.ps-copy{padding-bottom:0}.ps-copy h1{font-size:clamp(62px,16vw,86px);line-height:.98}.ps-role{margin-top:23px;font-size:21px;line-height:1.4}.ps-intro{font-size:15px;line-height:1.7;max-width:440px;margin-top:20px}.ps-actions{margin-top:26px;gap:22px}.ps-primary{min-height:52px;font-size:13px;padding:14px 18px;gap:20px}.ps-secondary{font-size:13px;min-height:52px;gap:12px}.ps-portrait-scene{height:430px;width:min(100%,410px);margin:25px auto 0}.ps-portrait-back{inset:55px 2% 42px 7%}.ps-portrait-outline{inset:48px -1% 50px 12%}.ps-portrait-window{inset:15px 8% 60px 12%}.ps-portrait-scene figcaption{left:0;bottom:0}.ps-portrait-caption{font-size:12px}.ps-caption-line{width:112px;height:104px}}@media(max-width:360px){.playspace-preview{padding:0 18px}.ps-copy h1{font-size:64px}.ps-role{font-size:19px}.ps-actions{gap:14px}.ps-primary{padding:13px 15px;gap:12px;font-size:12px}.ps-secondary{font-size:12px;gap:8px}.ps-portrait-scene{height:370px}}@media(prefers-reduced-motion:reduce){.ps-primary,.ps-secondary{transition:none}.ps-primary:active,.ps-secondary:active{transform:none}}html[data-motion=reduced] .ps-primary,html[data-motion=reduced] .ps-secondary{transition:none}html[data-motion=reduced] .ps-primary:active,html[data-motion=reduced] .ps-secondary:active{transform:none}.inner-app h2,.inner-app h3,.inner-app strong{font-family:Cabinet,Arial,sans-serif;font-weight:700}.inner-app h2{font-size:34px;letter-spacing:-.025em;line-height:1.15}.inner-app h3{margin:0;font-size:26px;line-height:1.25;letter-spacing:-.02em}.footer-socials{display:flex;gap:24px}.footer-socials a{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-underline-offset:5px}.section-space{padding:50px 0 90px}.profile-top{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center}.profile-heading{max-width:560px}.profile-lead{font-size:24px;line-height:1.55;letter-spacing:-.01em;margin-top:30px;max-width:470px}.profile-grid,.expertise{display:grid;grid-template-columns:minmax(200px,.7fr) minmax(0,1.5fr);gap:80px;margin-top:80px}.profile-facts{margin:0;font-size:14px}.profile-facts dt{font-weight:700}.profile-facts dd{margin:8px 0 30px;color:var(--ps-muted);max-width:270px}.profile-copy{max-width:680px;font-size:17px;line-height:1.8;color:var(--ps-muted)}.profile-copy>p+p{margin-top:24px}.expertise-list details{padding:20px 0;border-top:1px solid #21193620}.expertise-list details:last-child{border-bottom:1px solid #21193620}.inner-app summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;min-height:48px;font-size:20px;font-weight:700}.inner-app summary::-webkit-details-marker{display:none}.inner-app summary svg{width:22px;height:22px;flex:none;color:#6850ca}.inner-app details[open] summary svg{rotate:45deg}.expertise-list details>div{padding-top:12px;font-size:16px;line-height:1.8;color:var(--ps-muted);max-width:650px}.expertise-tools{font-size:13px;margin-top:18px;color:var(--ps-ink)}.journey-intro{display:grid;grid-template-columns:1.2fr 1fr;align-items:end;gap:70px;padding:20px 0 40px}.journey-intro>p{font-size:20px;line-height:1.6;color:var(--ps-muted);max-width:410px}.journey-content{max-width:1020px;margin:55px 0 0 auto}.timeline{margin:0;padding:0;list-style:none}.timeline>li{display:grid;grid-template-columns:170px minmax(0,1fr);gap:45px;padding:30px 0;border-top:1px solid #21193620}.timeline-date{font-size:13px;color:var(--ps-muted);font-variant-numeric:tabular-nums}.timeline>li:first-child .timeline-date{color:var(--ps-ink)}.timeline li>div>span{display:block;font-size:14px;margin-top:9px;color:#6850ca}.timeline p{font-size:16px;line-height:1.75;color:var(--ps-muted);margin-top:18px;max-width:630px}.education{background:var(--ps-lavender);padding:24px 32px;border-radius:var(--ps-radius);margin-top:35px}.education>summary{font-size:24px}.education .timeline{margin-top:24px}.lightbox{width:min(1300px,94vw);max-height:90dvh;padding:24px;color:var(--ps-ink);background:var(--ps-bg);border:0;border-radius:var(--ps-radius);box-shadow:0 18px 70px #21193626}.lightbox::backdrop{background:#211936b3}.lightbox-bar{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-bottom:18px;font-size:14px;font-weight:700}.lightbox-bar button{min-height:44px;padding:8px 16px;background:var(--ps-ink);color:var(--ps-bg);border-radius:var(--ps-radius);font-size:12px}.lightbox img{width:100%;max-height:65dvh;object-fit:contain;height:auto}.lightbox>p{font-size:12px;color:var(--ps-muted);margin-top:18px}@media(hover:hover)and (pointer:fine){.footer-socials a:hover{text-decoration:underline;text-underline-offset:6px}.inner-app summary:hover{color:#6850ca}}@media(max-width:1100px){.profile-top,.profile-grid,.expertise{column-gap:45px}}@media(max-width:800px){.profile-top{gap:35px}.profile-lead{font-size:20px}.journey-intro{grid-template-columns:1fr;gap:30px}.journey-intro>p{max-width:650px}}@media(max-width:700px){.section-space{padding:30px 0 55px}.inner-app h2{font-size:30px}.inner-app h3{font-size:23px}.profile-top,.profile-grid,.expertise{grid-template-columns:1fr;gap:35px}.profile-lead{font-size:21px;margin-top:25px}.profile-grid{margin-top:45px}.profile-facts{display:grid;grid-template-columns:1fr 1fr;gap:25px;font-size:12px}.profile-facts dd{margin-bottom:0}.profile-copy{font-size:16px}.expertise{margin-top:55px;gap:25px}.inner-app summary{font-size:18px}.journey-intro{padding:0;gap:25px}.journey-intro>p{font-size:18px}.journey-content{margin-top:50px}.timeline>li{grid-template-columns:1fr;gap:14px;padding:25px 0}.timeline p{font-size:15px}.education{padding:18px 20px}.lightbox{padding:16px}}.contact-page{padding:55px 0 70px}.contact-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:75px}.contact-lead{font-size:20px;color:var(--ps-muted);line-height:1.7;max-width:550px;margin-top:28px}.contact-topics{border:0;padding:0;margin:38px 0 0;min-width:0}.contact-topics legend{font-size:17px;font-weight:700;padding:0}.contact-topics>p{margin-top:8px;font-size:13px;color:var(--ps-muted);line-height:1.6}.contact-topics>div{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.contact-topics label{display:flex;align-items:center;gap:10px;min-height:48px;padding:12px 15px;border:1px solid #21193640;border-radius:var(--ps-radius);font-size:13px;cursor:pointer}.contact-topics label.is-selected{border-color:#6850ca;background:var(--ps-lavender)}.contact-topics input{margin:0;width:16px;height:16px;accent-color:#6850ca;flex:none}.contact-start{margin-top:40px;padding-top:30px;border-top:1px solid #21193620}.contact-copy .contact-start h3{font-size:28px}.contact-start>p{color:var(--ps-muted);font-size:16px;line-height:1.8;margin-top:18px;max-width:560px}.contact-email-panel{background:var(--ps-lavender);border-radius:var(--ps-radius);padding:35px;min-width:0}.contact-person{display:flex;align-items:center;gap:22px;margin-bottom:35px}.contact-person img{width:100px;height:120px;object-fit:cover;object-position:50% 38%;border-radius:47% 53% 39% 61%/36% 41% 59% 64%;flex:none}.contact-person p{font-weight:700;font-size:17px}.contact-person span{display:block;font-size:13px;line-height:1.6;color:var(--ps-muted);margin-top:8px}.contact-page .contact-email-panel>h3{font-size:30px}.contact-direct-email{display:inline-block;min-height:44px;max-width:100%;font-size:24px;padding:12px 0 6px;overflow-wrap:anywhere;text-underline-offset:6px}.contact-email-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px;margin-top:18px}.contact-copy-email{min-height:48px;font-size:13px;padding:0;text-decoration:underline;text-underline-offset:5px}.contact-copy-status{color:var(--ps-muted);font-size:13px;line-height:1.6;min-height:21px;margin-top:14px}.contact-networks{border-top:1px solid #21193620;margin-top:20px;padding-top:24px}.contact-page .contact-networks>h4{font-family:Cabinet,Arial,sans-serif;margin:0 0 14px;font-size:22px}.contact-networks a{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-height:48px;padding:12px 0;text-underline-offset:6px}.contact-page .contact-networks strong{font-family:Satoshi,Arial,sans-serif;font-size:15px}.contact-networks span{color:var(--ps-muted);font-size:12px;text-align:right}@media(hover:hover)and (pointer:fine){.contact-direct-email:hover,.contact-networks a:hover strong{text-decoration:underline}.contact-topics label:hover{border-color:#6850ca}}@media(max-width:1100px){.contact-layout{gap:40px}.contact-email-panel{padding:28px}.contact-direct-email{font-size:21px}.contact-networks a{flex-direction:column;gap:4px}.contact-networks span{text-align:left}}@media(max-width:800px){.contact-layout{grid-template-columns:1fr;gap:40px}.contact-copy,.contact-email-panel{max-width:650px;width:100%}.contact-networks a{flex-direction:row;align-items:baseline}}@media(max-width:700px){.contact-page{padding:30px 0 40px}.contact-lead{font-size:17px;margin-top:24px}.contact-topics{margin-top:30px}.contact-topics>div{gap:8px}.contact-start{margin-top:30px;padding-top:25px}.contact-start>p{font-size:15px}.contact-email-panel{padding:24px}.contact-person{gap:18px;margin-bottom:28px}.contact-person img{width:75px;height:95px}.contact-person p{font-size:15px}.contact-person span{font-size:12px}.contact-page .contact-email-panel>h3{font-size:26px}.contact-direct-email{font-size:20px}.contact-networks a{flex-direction:column;gap:4px}}.site-footer{margin:10px 0 28px;padding:55px 52px 24px;border-radius:var(--ps-radius);background:var(--ps-ink);color:var(--ps-bg)}.footer-invitation{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);align-items:center;gap:60px}.site-footer .footer-title{font-family:Cabinet,Arial,sans-serif;font-size:clamp(48px,5.3vw,72px);font-weight:700;line-height:1.06;letter-spacing:-.025em;margin:0}.footer-title>span{color:var(--ps-lavender)}.footer-conversation>p{font-size:16px;line-height:1.7;color:var(--ps-lavender);margin:0 0 24px}.site-footer .footer-cta-link{background:var(--ps-lime);color:var(--ps-ink);display:inline-flex;min-height:54px;min-width:190px;justify-content:space-between;padding:14px 22px}.site-footer .footer-cta-link .arrow{width:22px;height:22px}.footer-email{display:block;width:fit-content;max-width:100%;min-height:44px;padding:14px 0 5px;font-size:14px;overflow-wrap:anywhere;text-underline-offset:5px}.footer-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:32px;margin-top:55px;padding-top:22px;border-top:1px solid #f7f4f130}.footer-signature{font-size:12px;line-height:1.6}.footer-signature>span{display:block;color:var(--ps-lavender);margin-top:4px}.site-footer .footer-socials{gap:22px;font-size:12px}.site-footer .footer-socials .arrow{width:16px;height:16px}.site-footer :focus-visible{outline-color:var(--ps-lime)}@media(hover:hover)and (pointer:fine){.site-footer .footer-cta-link:hover{background:var(--ps-lavender)}.footer-email:hover{text-decoration:underline}}@media(max-width:1100px){.site-footer{padding:45px 35px 22px}.footer-invitation{gap:35px}.footer-bottom{gap:24px}}@media(max-width:800px){.site-footer{padding:38px 30px 20px}.footer-invitation{grid-template-columns:1fr;gap:30px}.footer-conversation>p{margin-bottom:18px}.footer-bottom{grid-template-columns:1fr;row-gap:10px;margin-top:35px}.site-footer .footer-socials{grid-column:1;grid-row:2}}@media(max-width:700px){.site-footer{padding:32px 24px 18px;margin-bottom:22px}.site-footer .footer-title{font-size:clamp(36px,10.7vw,44px)}.footer-conversation>p{font-size:15px}.site-footer .footer-socials{gap:18px}.footer-bottom{gap:10px 18px}.footer-signature{font-size:11px}}@media(max-width:360px){.site-footer{padding-inline:20px}.footer-bottom{grid-template-columns:1fr}}.ps-header--side{z-index:50;--menu-edge: max(24px, calc((100vw - 1320px)/2) )}.ps-header--side .ps-brand{height:44px;align-items:center}.ps-brand-logo{display:block;width:190px;height:auto}.ps-header--side .ps-menu-toggle{position:fixed;top:22px;right:var(--menu-edge);display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:48px;min-width:110px;padding:12px 18px;border-radius:var(--ps-radius);background:var(--ps-ink);color:var(--ps-bg);font-size:13px}.ps-header--side .ps-menu-toggle svg{width:20px;height:20px}.ps-header--side .ps-nav{display:none}.ps-header--side .ps-nav.is-open{position:fixed;top:82px;right:var(--menu-edge);left:auto;display:flex;flex-direction:column;align-items:stretch;gap:0;width:min(280px,calc(100vw - 36px));max-height:calc(100dvh - 104px);overflow-y:auto;padding:16px 24px;border-radius:var(--ps-radius);background:var(--ps-lavender);color:var(--ps-ink);box-shadow:0 12px 32px #21193626}.ps-header--side .ps-nav>a{padding:14px 0;min-height:52px;font-family:Cabinet,Arial,sans-serif;font-size:26px;line-height:1.2;font-weight:700;letter-spacing:-.02em}.ps-header--side .ps-nav a[aria-current=location]{text-decoration:underline;text-decoration-color:#6850ca;text-decoration-thickness:2px;text-underline-offset:7px}@media(hover:hover)and (pointer:fine){.ps-header--side .ps-menu-toggle:hover{background:#6850ca}.ps-header--side .ps-nav a:hover{color:#6850ca}}@media(max-width:700px){.ps-brand-logo{width:170px}.ps-header--side{--menu-edge: 22px}.ps-header--side .ps-menu-toggle{top:16px;min-height:44px}.ps-header--side .ps-nav.is-open{top:72px;max-height:calc(100dvh - 94px)}}@media(max-width:360px){.ps-brand-logo{width:150px}.ps-header--side{--menu-edge: 18px}}:root{--ease-in-out: cubic-bezier(.77, 0, .175, 1)}.ps-portrait-flourishes{position:absolute;inset:0;z-index:3;pointer-events:none}.ps-flourish{position:absolute;display:block;overflow:visible;stroke:var(--ps-violet);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round}.ps-flourish--ring{width:clamp(42px,12%,64px);left:7%;top:21%}.ps-flourish--spark{width:clamp(34px,10%,52px);right:10%;top:5%;fill:var(--ps-lime);stroke:var(--ps-ink);stroke-width:1.5}.ps-flourish--curl{width:clamp(84px,24%,128px);right:1%;bottom:17%}.ps-flourish--dash{width:clamp(48px,14%,74px);left:11%;bottom:26%;stroke:var(--ps-lime);stroke-width:6}@media(prefers-reduced-motion:no-preference){html:not([data-motion=reduced]) .ps-flourish{animation-play-state:paused;animation-iteration-count:infinite;animation-timing-function:var(--ease-in-out)}html:not([data-motion=reduced]) .ps-flourish--ring{animation-name:portrait-ring-drift;animation-duration:7s}html:not([data-motion=reduced]) .ps-flourish--spark{animation-name:portrait-spark-turn;animation-duration:11s;animation-timing-function:linear}html:not([data-motion=reduced]) .ps-flourish--curl{animation-name:portrait-curl-sway;animation-duration:5.5s}html:not([data-motion=reduced]) .ps-flourish--dash{animation-name:portrait-dash-drift;animation-duration:6.5s}html:not([data-motion=reduced]) .ps-portrait-flourishes[data-running=true] .ps-flourish{animation-play-state:running}}@keyframes portrait-ring-drift{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-3px,-9px) rotate(-12deg)}}@keyframes portrait-spark-turn{to{transform:rotate(360deg)}}@keyframes portrait-curl-sway{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-5px,6px) rotate(8deg)}}@keyframes portrait-dash-drift{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(3px,-7px) rotate(-8deg)}}.site-cursor{position:fixed;top:0;left:0;z-index:1000;pointer-events:none;visibility:hidden}.site-cursor[data-visible=true]{visibility:visible}.site-cursor-mark{position:absolute;width:40px;height:40px;transform:translate(-50%,-50%)}.site-cursor-ring{position:absolute;inset:0;border:1.5px solid var(--ps-violet);border-radius:56% 44% 48% 52%/48% 54% 46% 52%;background:transparent;transform:scale(.6)}.site-cursor-orbit{position:absolute;inset:-18px;opacity:0;transform:scale(.4)}.site-cursor-orbit-shape{position:absolute;inset:0;width:100%;height:100%;fill:var(--ps-lime);stroke:var(--ps-ink);stroke-width:1.25}.site-cursor-dot{position:absolute;inset:16px;border:1px solid var(--ps-ink);border-radius:50%;background:var(--ps-violet);outline:1px solid var(--ps-bg)}.site-cursor-label{position:absolute;inset:0;display:grid;place-items:center;color:var(--ps-ink);font-size:13px;font-weight:700;opacity:0}.site-cursor[data-kind=link] .site-cursor-ring{transform:scale(1)}.site-cursor[data-kind=link] .site-cursor-dot{background:var(--ps-lime)}.site-cursor[data-kind=image] .site-cursor-ring{opacity:0;transform:scale(1.3)}.site-cursor[data-kind=image] .site-cursor-orbit{opacity:1;transform:scale(1)}.site-cursor[data-kind=image] .site-cursor-dot{opacity:0}.site-cursor[data-kind=image] .site-cursor-label{opacity:1}.site-cursor[data-pressed=true] .site-cursor-ring{transform:scale(.85)}.site-cursor[data-kind=image][data-pressed=true] .site-cursor-orbit{transform:scale(.94)}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){html:not([data-motion=reduced]) :is(.site-cursor-ring,.site-cursor-orbit){transition:transform var(--motion-ui) var(--ease-out),opacity var(--motion-fast) var(--ease-out)}html:not([data-motion=reduced]) :is(.site-cursor-dot,.site-cursor-label){transition:opacity var(--motion-fast) var(--ease-out)}html:not([data-motion=reduced]) .site-cursor-orbit-shape{animation:cursor-orbit-turn 7s linear infinite paused}html:not([data-motion=reduced]):not(:has(dialog[open])) .site-cursor[data-kind=image][data-visible=true] .site-cursor-orbit-shape{animation-play-state:running}html[data-cursor=active]:not([data-motion=reduced]):not(:has(dialog[open])),html[data-cursor=active]:not([data-motion=reduced]):not(:has(dialog[open])) body,html[data-cursor=active]:not([data-motion=reduced]):not(:has(dialog[open])) :where(a,button,summary,label,[role=button]){cursor:none}}@keyframes cursor-orbit-turn{to{transform:rotate(360deg)}}html:has(dialog[open]) .site-cursor,html[data-motion=reduced] .site-cursor{visibility:hidden}@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.site-cursor{display:none}}.one-page>main{flex:1}.one-page [tabindex="-1"]:focus{outline:none}.one-page .one-page-heading{font-family:Cabinet,Arial,sans-serif;font-size:clamp(40px,4.2vw,60px);line-height:1.08;letter-spacing:-.03em}.one-page-section{border-top:1px solid #21193620;scroll-margin-top:30px}.one-page .section-space{padding:70px 0}.one-page-section--profile{border-top:0;padding:24px 0 40px}.one-page .profile{--ps-muted: #514568;padding:0;border-radius:var(--ps-radius);background:var(--ps-lavender);color:var(--ps-ink);scroll-margin-top:88px}.one-page .profile-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:end;gap:60px;padding:60px 52px 0}.one-page .profile-heading{max-width:none}.one-page .profile-heading h2{font-size:clamp(44px,5vw,72px);line-height:1.14}.profile-highlight{display:inline;padding:0 .12em;border-radius:var(--ps-radius);background:var(--ps-lime);box-decoration-break:clone;-webkit-box-decoration-break:clone}.one-page .profile-lead{max-width:480px;margin:0 0 6px;font-size:22px;line-height:1.6}.one-page .profile-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:60px;margin:48px 0 0;padding:0 52px 52px}.one-page .profile-facts{display:block}.one-page .profile-facts>div+div{margin-top:32px}.one-page .profile-facts dt{font-family:Cabinet,Arial,sans-serif;font-size:24px;line-height:1.25}.one-page .profile-facts dd{max-width:none;margin:10px 0 0;font-size:14px}.one-page .profile-facts .profile-technologies{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.profile-technologies>span{padding:8px 12px;border-radius:var(--ps-radius);background:var(--ps-bg);color:var(--ps-ink);font-size:13px;font-weight:700}.one-page .profile-copy strong{color:var(--ps-ink)}.one-page .expertise{grid-template-columns:minmax(0,.7fr) minmax(0,1.5fr);align-items:start;gap:60px;margin:0;padding:44px 52px;border-radius:0 0 var(--ps-radius) var(--ps-radius);background:var(--ps-ink);color:var(--ps-bg)}.one-page .expertise>h3{margin:10px 0 0;color:var(--ps-lime);font-size:42px;line-height:1.05;letter-spacing:-.025em}.one-page .expertise-list details{padding:18px 0;border-color:#e7deff40}.one-page .expertise-list details:first-child{border-top:0;padding-top:0}.one-page .expertise-list summary{font-family:Cabinet,Arial,sans-serif;font-size:26px;line-height:1.25}.one-page .expertise-list summary svg,.one-page .expertise-list details[open] summary{color:var(--ps-lime)}.one-page .expertise-list details>div{color:var(--ps-lavender)}.one-page .expertise-tools{color:var(--ps-bg)}.one-page .expertise :focus-visible{outline-color:var(--ps-lime)}.one-page .journey-intro{padding-top:0}.one-page .journey-content{margin-top:35px;padding-left:104px}.one-page .journey-content>h3{margin-bottom:25px}.one-page .timeline--experience>li{--path-stop: 40px;--path-x: 60;position:relative;border-top:0}.timeline--experience>li:nth-child(2){--path-x: 12}.timeline--experience>li:nth-child(3){--path-x: 64}.timeline--experience>li:nth-child(4){--path-x: 28}.experience-path{position:absolute;top:var(--path-stop);left:-104px;width:80px;height:100%;overflow:visible;color:#6850ca;pointer-events:none}.timeline--experience>li:after{content:"";position:absolute;top:var(--path-stop);left:calc(-104px + var(--path-x) * 1px);width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:#6850ca;outline:4px solid var(--ps-bg);pointer-events:none}.timeline--experience>li:first-child:after{width:14px;height:14px;border:1.5px solid #6850ca;background:var(--ps-lime)}.one-page .timeline h4{font-family:Cabinet,Arial,sans-serif;font-size:26px;font-weight:700;line-height:1.25;letter-spacing:-.02em;margin:0}.one-page .ps-feature+.ps-feature{margin-top:80px}.one-page .ps-project-stage{width:100%}.ps-feature--botanical .ps-project-stage{background:var(--ps-lavender)}.ps-feature--portfolio .ps-project-stage{background:var(--ps-lime)}.ps-case-details{margin-top:24px}.ps-case-details summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 0;min-height:48px;border-top:1px solid #21193630;font-size:14px;font-weight:700;cursor:pointer;list-style:none}.ps-case-details summary::-webkit-details-marker{display:none}.ps-case-details summary svg{width:20px;height:20px;flex:none;color:#6850ca}.ps-case-details[open] summary svg{rotate:45deg}.ps-case-details>div{padding-top:15px;font-size:15px;line-height:1.75;color:var(--ps-muted)}.ps-case-details>div>div{margin-top:24px}.ps-case-details h4{font-family:Cabinet,Arial,sans-serif;color:var(--ps-ink);font-size:21px;line-height:1.25;font-weight:700;margin:0 0 12px}.one-page .contact-heading{font-size:clamp(44px,4.8vw,64px)}@media(hover:hover)and (pointer:fine){.ps-case-details summary:hover{color:#6850ca}.one-page .expertise-list summary:hover{color:var(--ps-lime)}}@media(max-width:1100px){.one-page .profile-top{padding:48px 35px 0;gap:40px}.one-page .profile-grid{padding:0 35px 44px;gap:40px}.one-page .expertise{padding:36px 35px;gap:40px}}@media(max-width:800px){.one-page .profile-top,.one-page .profile-grid{grid-template-columns:1fr;gap:28px}.one-page .profile-lead{max-width:600px;font-size:21px}.one-page .profile-facts{display:grid;grid-template-columns:1fr 1fr;gap:28px}.one-page .profile-facts>div+div{margin-top:0}.one-page .expertise{grid-template-columns:1fr;gap:28px}.one-page .expertise>h3 br{display:none}}@media(max-width:700px){.one-page .section-space{padding:50px 0}.one-page-section--profile{padding:20px 0 25px}.one-page .profile{padding:0}.one-page .profile-top{padding:36px 24px 0}.one-page .profile-grid{padding:0 24px 36px;margin-top:36px}.one-page .profile-heading h2{font-size:clamp(36px,7vw,48px)}.one-page .profile-facts dt{font-size:22px}.one-page .expertise{padding:30px 24px;margin-top:0;gap:20px}.one-page .expertise>h3{margin:0;font-size:32px}.one-page .expertise-list summary{font-size:22px}.one-page .one-page-heading{font-size:36px}.one-page .timeline h4{font-size:23px}.one-page .journey-content{padding-left:52px}.one-page .timeline--experience>li{--path-stop: 35px}.experience-path{left:-52px;width:40px}.timeline--experience>li:after{left:calc(-52px + var(--path-x) * .5px)}.one-page .ps-feature+.ps-feature{margin-top:55px}.one-page .contact-heading{font-size:40px}}@media(max-width:480px){.one-page .profile-facts{grid-template-columns:1fr;gap:22px}}.ps-project-media{display:block}@media(prefers-reduced-motion:no-preference){html:not([data-motion=reduced]) .one-page :is(.ps-menu-toggle,.ps-screen-choices button,.contact-copy-email,.lightbox-bar button){transition:transform var(--motion-fast) var(--ease-out)}html:not([data-motion=reduced]) .one-page :is(.ps-menu-toggle,.ps-screen-choices button,.contact-copy-email,.lightbox-bar button):focus-visible{transition:none}html:not([data-motion=reduced]) .one-page :is(.ps-menu-toggle,.ps-screen-choices button,.contact-copy-email,.lightbox-bar button):active:not(:disabled):not(:focus-visible){transform:scale(.97)}}@media(hover:hover)and (pointer:fine)and (prefers-reduced-motion:no-preference){html:not([data-motion=reduced]) .one-page :is(.ps-primary,.ps-menu-toggle){isolation:isolate;overflow:hidden;transition:transform var(--motion-fast) var(--ease-out)}html:not([data-motion=reduced]) .one-page .ps-primary{position:relative}html:not([data-motion=reduced]) .one-page :is(.ps-primary,.ps-menu-toggle):before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:#6850ca;transform:scaleX(0);transform-origin:left center;transition:transform var(--motion-ui) var(--ease-out);pointer-events:none}html:not([data-motion=reduced]) .site-footer .footer-cta-link:before{background:var(--ps-lavender)}html:not([data-motion=reduced]) .site-footer .footer-cta-link:hover:not(:focus-visible){background:var(--ps-lime)}html:not([data-motion=reduced]) .one-page :is(.ps-primary:not(.footer-cta-link),.ps-menu-toggle):hover:not(:focus-visible){background:var(--ps-ink)}html:not([data-motion=reduced]) .one-page :is(.ps-primary,.ps-menu-toggle):hover:not(:focus-visible):before{transform:scaleX(1)}html:not([data-motion=reduced]) .one-page .contact-networks a:hover:not(:focus-visible) strong{text-decoration:none}html:not([data-motion=reduced]) .one-page :is(.ps-secondary,.ps-nav a,.footer-socials a,.footer-email,.contact-direct-email,.contact-networks a){position:relative}html:not([data-motion=reduced]) .one-page :is(.ps-secondary,.ps-nav a,.footer-socials a,.footer-email,.contact-direct-email,.contact-networks a):after{content:"";position:absolute;bottom:7px;left:0;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left center;transition:transform var(--motion-ui) var(--ease-out);pointer-events:none}html:not([data-motion=reduced]) .one-page :is(.ps-nav a,.contact-networks a):after{width:36px}html:not([data-motion=reduced]) .one-page :is(.ps-secondary,.ps-nav a,.footer-socials a,.footer-email,.contact-direct-email,.contact-networks a):hover:not(:focus-visible){text-decoration:none}html:not([data-motion=reduced]) .one-page :is(.ps-secondary,.ps-nav a,.footer-socials a,.footer-email,.contact-direct-email,.contact-networks a):hover:not(:focus-visible):after{transform:scaleX(1)}html:not([data-motion=reduced]) .one-page :is(.ps-primary,.footer-socials a) .arrow{transition:transform var(--motion-fast) var(--ease-out)}html:not([data-motion=reduced]) .one-page :is(.ps-primary,.footer-socials a):hover:not(:focus-visible) .arrow{transform:translate(2px,-2px)}html:not([data-motion=reduced]) .one-page .ps-nav>a{transition:transform var(--motion-fast) var(--ease-out)}html:not([data-motion=reduced]) .one-page .ps-nav>a:hover:not(:focus-visible){transform:translate(3px)}html:not([data-motion=reduced]) .one-page .contact-topics label{transition:transform var(--motion-fast) var(--ease-out)}html:not([data-motion=reduced]) .one-page .contact-topics label:hover:not(:focus-within){transform:translateY(-2px)}html:not([data-motion=reduced]) .one-page .ps-screen-choices button:hover:not(:focus-visible){transform:translateY(-2px)}html:not([data-motion=reduced]) .one-page :is(.contact-copy-email,.lightbox-bar button):hover:not(:focus-visible){transform:translateY(-1px)}html:not([data-motion=reduced]) .one-page .ps-project-stage{overflow:hidden}html:not([data-motion=reduced]) .one-page .ps-project-media{transition:transform var(--motion-ui) var(--ease-out)}html:not([data-motion=reduced]) .one-page .ps-project-stage:hover:not(:focus-visible) .ps-project-media{transform:scale(1.015)}html:not([data-motion=reduced]) .one-page .ps-project-stage:active:not(:focus-visible) .ps-project-media{transform:scale(.995)}html:not([data-motion=reduced]) .one-page summary>svg{transition:transform var(--motion-fast) var(--ease-out)}html:not([data-motion=reduced]) .one-page summary:hover:not(:focus-visible)>svg{transform:scale(1.15)}html:not([data-motion=reduced]) .one-page :focus-visible,html:not([data-motion=reduced]) .one-page :focus-visible:before,html:not([data-motion=reduced]) .one-page :focus-visible:after,html:not([data-motion=reduced]) .one-page :focus-visible .arrow,html:not([data-motion=reduced]) .one-page :focus-visible>svg,html:not([data-motion=reduced]) .one-page :focus-visible .ps-project-media{transition:none}}
