.duo-portfolio{--brilio-shell:79.5rem;--brilio-section-space:clamp(8rem,13vw,13rem);--brilio-copy-width:38rem;--brilio-radius:.75rem;background:var(--canvas);font-family:var(--font-body)}.duo-portfolio:before{opacity:.1}.duo-portfolio h1,.duo-portfolio h2,.duo-portfolio h3,.duo-portfolio h4,.duo-portfolio p{font-family:var(--font-display)}.story-traveler__bubble,.story-traveler__bubble p{color:var(--accent-contrast)}.story-traveler__bubble-meta,.story-traveler__bubble strong{color:color-mix(in srgb,var(--accent-contrast)68%,var(--accent))}.story-traveler__toggle{cursor:pointer;pointer-events:auto;touch-action:manipulation;background:0 0;border:0;padding:0}.story-traveler__toggle:focus-visible{outline:2px solid var(--accent);outline-offset:.35rem;border-radius:999px}.story-traveler__compact-avatar{display:none}.story-traveler[data-tooltip-open=false] .story-traveler__bubble{opacity:0;visibility:hidden;transform:translateY(.75rem)scale(.96)}@media (prefers-reduced-motion:no-preference){.story-traveler__bubble{transition:opacity .22s var(--ease-out),transform .22s var(--ease-out),visibility .22s step-end}.story-traveler[data-tooltip-open=true] .story-traveler__bubble{transition:opacity .22s var(--ease-out),transform .22s var(--ease-out),visibility 0s step-start}}.duo-shell,.duo-portfolio .duo-shell{width:min(calc(100% - clamp(2rem,8vw,9rem)),var(--brilio-shell));margin-inline:auto}.duo-section{padding-block:var(--brilio-section-space)}.duo-header{height:5.25rem;padding-inline:max(clamp(1rem,4vw,4.5rem),calc((100vw - var(--brilio-shell))/2));background:color-mix(in srgb,var(--canvas)90%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:#0000}.duo-brand{font-family:var(--font-display);letter-spacing:-.045em;align-items:center;gap:.65rem;font-size:1.35rem;font-weight:650;display:inline-flex}.duo-brand__mark{border:1px solid color-mix(in srgb,var(--accent)62%,var(--line));background:color-mix(in srgb,var(--accent-soft)78%,var(--canvas));border-radius:50%;place-items:center;width:3rem;height:3rem;display:grid;position:relative;overflow:hidden}.duo-brand__mascot{width:175%;max-width:none;height:auto;transform:translate(-11%,7%)scale(1.06)}.duo-brand__wordmark{color:var(--ink)}.duo-brand:hover .duo-brand__mark{border-color:var(--accent);background:var(--accent-soft)}.duo-nav a{color:var(--ink);font-family:var(--font-display);padding:.5rem .7rem;font-size:1rem;font-weight:600}.duo-nav a:after{bottom:.2rem;left:.7rem;right:.7rem}.duo-header__actions{gap:.6rem}.duo-locale{position:relative}.duo-locale__trigger{border:1px solid var(--line);min-height:2.65rem;color:var(--ink);cursor:pointer;font-family:var(--font-mono);transition:border-color .22s var(--ease-out),background-color .22s var(--ease-out),color .22s var(--ease-out);border-radius:999px;align-items:center;gap:.35rem;padding:0 .65rem;font-size:.67rem;font-weight:700;list-style:none;display:inline-flex}.duo-locale__trigger::-webkit-details-marker{display:none}.duo-locale__trigger:hover,.duo-locale[open] .duo-locale__trigger{border-color:var(--accent);background:var(--accent-soft)}.duo-locale__trigger svg:last-child{transition:transform .22s var(--ease-out)}.duo-locale[open] .duo-locale__trigger svg:last-child{transform:rotate(180deg)}.duo-locale__menu{z-index:2;border:1px solid var(--line);border-radius:var(--brilio-radius);background:color-mix(in srgb,var(--canvas)96%,transparent);min-width:10.75rem;box-shadow:0 1rem 2.5rem color-mix(in srgb,var(--ink)14%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:.35rem;display:grid;position:absolute;top:calc(100% + .55rem);right:0}.duo-locale__menu a{border-radius:calc(var(--brilio-radius) - .2rem);min-height:2.45rem;color:var(--muted);font-family:var(--font-body);transition:background-color .18s var(--ease-out),color .18s var(--ease-out);grid-template-columns:2.35rem 1fr auto;align-items:center;gap:.55rem;padding:.35rem .5rem;font-size:.78rem;font-weight:600;display:grid}.duo-locale__menu a:hover,.duo-locale__menu a:focus-visible,.duo-locale__menu a[aria-current=page]{background:var(--accent-soft);color:var(--ink)}.duo-locale__code{color:var(--accent);font-family:var(--font-mono);font-size:.65rem;font-weight:700}.duo-button{min-height:4.75rem;transition:color .35s var(--ease-out),background-color .35s var(--ease-out),border-color .35s var(--ease-out);border-radius:999px;padding:1.4rem 3.4rem;font-size:1.05rem;font-weight:550}.duo-button--nav{min-height:2.65rem;padding:.7rem 1rem;font-size:.76rem}.duo-icon-button,.duo-menu{width:2.65rem;height:2.65rem}.duo-hero{min-height:calc(100dvh - 5.25rem);padding-block:clamp(3rem,7vw,6rem) clamp(7rem,12vw,11rem);position:relative;overflow:hidden}.duo-hero:before,.duo-hero:after{z-index:0;border:1px solid var(--line);content:"";pointer-events:none;border-radius:50%;position:absolute}.duo-hero:before{width:75rem;height:75rem;top:-44rem;left:19%}.duo-hero:after{width:25rem;height:25rem;top:14rem;right:15%}.duo-hero__grid{z-index:1;min-height:0;display:block;position:relative}.duo-hero__copy{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;column-gap:clamp(1rem,2vw,2rem);display:grid}.duo-hero__hello{color:var(--ink);letter-spacing:0;text-transform:none;grid-column:1/-1;margin:0;font-size:clamp(1rem,1.35vw,1.2rem);font-weight:450}.duo-hero h1{letter-spacing:-.065em;text-wrap:balance;grid-column:1/-1;max-width:none;margin:clamp(2rem,4vw,3.5rem) 0 0;font-size:clamp(4.5rem,7.1vw,7rem);font-weight:500;line-height:.98}.duo-hero h1 span{color:color-mix(in srgb,var(--accent)22%,var(--muted))}.duo-hero__description{max-width:var(--brilio-copy-width);color:var(--ink);grid-column:7/-1;margin:clamp(3rem,6vw,5rem) 0 0;font-size:clamp(1.15rem,1.65vw,1.4rem);font-weight:400;line-height:1.6}.duo-actions{grid-area:3/1/auto/span 5;align-self:start;margin-top:clamp(3rem,6vw,5rem)}.duo-button--green{background:var(--accent);color:var(--accent-contrast)}.duo-button--green:hover{background:var(--accent-hover);color:var(--accent-contrast);box-shadow:none}.duo-text-link,.duo-project__link{font-size:1rem;font-weight:600;position:relative}.duo-hero__meta{color:var(--muted);font-family:var(--font-mono);grid-column:7/-1;margin-top:2rem;font-size:.7rem}.duo-hero__art{display:none!important}.duo-section--cream,.duo-skills{background:var(--canvas)}.duo-section-heading,.duo-experience-heading,.duo-skills__heading{align-items:end;margin-bottom:clamp(4rem,8vw,7.5rem)}.duo-section-heading h2,.duo-skills h2{letter-spacing:-.055em;max-width:none;margin:0;font-size:clamp(2.7rem,4vw,3.5rem);font-weight:500;line-height:1.05}.duo-section-count{font-family:var(--font-display);font-size:1rem;font-weight:500}.duo-about{display:block}.duo-about__content{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(1rem,2vw,2rem);display:grid}.duo-about__content .scroll-fill-heading{grid-column:1/-1}.scroll-fill-heading{max-width:16ch;color:var(--ink);letter-spacing:-.07em;text-transform:none;margin:0;font-size:clamp(3.5rem,7vw,7rem);font-weight:500;line-height:.98}.scroll-fill-heading__word{white-space:nowrap;display:inline-block}.scroll-fill-heading__word>span{display:inline-block}.scroll-fill-heading__space{width:.24em;display:inline-block}.story-traveler__image{width:100%;height:100%}.duo-about__content>p{max-width:var(--brilio-copy-width);color:var(--muted);grid-column:7/-1;margin:clamp(3rem,7vw,6rem) 0 0;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.65}.duo-about__content>.duo-text-link{grid-column:7/-1;margin-top:2rem}.duo-stats{border-top:1px solid var(--line-strong);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:clamp(6rem,11vw,10rem);display:grid}.duo-stat{border-right:1px solid var(--line);border-bottom:0;align-content:space-between;min-height:12rem;padding:1.5rem clamp(1rem,2.5vw,2.5rem) 1.75rem 0;display:grid}.duo-stat:not(:first-child){padding-left:clamp(1rem,2.5vw,2.5rem)}.duo-stat:last-child{border-right:0}.duo-stat strong{color:var(--ink);font-family:var(--font-display);letter-spacing:-.07em;font-size:clamp(3.4rem,6vw,5.5rem);font-weight:500}.duo-stat span{color:var(--muted);text-align:left;font-size:.92rem;font-weight:500}.duo-work{padding-top:clamp(7rem,10vw,10rem)}.duo-projects{display:block}.duo-project,.duo-project:nth-child(2n){background:0 0;border:0;margin:0 0 clamp(7rem,11vw,11rem);display:grid}.duo-project:last-child{margin-bottom:0}.duo-project__image{border-radius:var(--brilio-radius);aspect-ratio:16/10;background:var(--surface);clip-path:inset(0);margin:0}.duo-project__image:after{border:1px solid var(--line);border-radius:inherit;content:"";pointer-events:none;position:absolute;inset:0}.duo-project__image img{object-fit:cover}.duo-project__body,.duo-project--yellow .duo-project__body{background:0 0;grid-template-columns:minmax(0,1.2fr) minmax(18rem,.8fr);gap:0 clamp(2rem,6vw,6rem);padding:1.75rem 0 0;display:grid}.duo-project__top{border-bottom:1px solid var(--line);color:var(--muted);letter-spacing:.04em;grid-column:1/-1;padding-bottom:1.25rem;font-size:.75rem}.duo-project h3{letter-spacing:-.065em;grid-column:1;margin:1.5rem 0 0;font-size:clamp(2.4rem,5vw,4.8rem);font-weight:500;line-height:.98}.duo-project p{color:var(--muted);grid-column:2;margin:1.5rem 0 0;font-size:1.05rem;line-height:1.6}.duo-project .duo-tags{grid-column:1}.duo-project__link{grid-column:2;align-self:end;margin-bottom:1.1rem}.duo-tags span{padding:.4rem .7rem;font-size:.68rem}.duo-section--blue{--experience-background:var(--ink);--experience-foreground:var(--canvas);--experience-muted:color-mix(in srgb,var(--experience-foreground)70%,transparent);--experience-subtle:color-mix(in srgb,var(--experience-foreground)16%,transparent);--experience-accent:color-mix(in srgb,var(--accent)44%,var(--experience-foreground));background:var(--experience-background);color:var(--experience-foreground)}.dark .duo-section--blue{--experience-background:var(--canvas);--experience-foreground:var(--ink);--experience-accent:color-mix(in srgb,var(--accent)68%,var(--experience-foreground));background:var(--experience-background);color:var(--experience-foreground)}.duo-experience-heading{grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);gap:clamp(2rem,7vw,7rem);padding-right:0;display:grid}.duo-experience-heading h2,.duo-section--blue .duo-experience-heading h2{letter-spacing:-.07em;max-width:12ch;color:var(--experience-foreground);margin:0;font-size:clamp(3.7rem,7vw,7rem);font-weight:500;line-height:.96}.duo-experience-heading p,.duo-section--blue .duo-experience-heading p{color:var(--experience-muted);align-self:end;font-size:1.1rem}.duo-timeline{max-width:none;margin-left:0}.duo-timeline__item{grid-template-columns:4rem minmax(0,1fr)}.duo-timeline__rail{color:var(--experience-accent)}.duo-timeline__rail i{background:var(--experience-subtle)}.duo-timeline__card{grid-template-columns:minmax(0,1fr) minmax(18rem,.65fr);gap:0 clamp(2rem,6vw,6rem);padding-bottom:clamp(4rem,7vw,7rem);display:grid}@media (min-width:1181px){.duo-timeline__card{grid-template-columns:minmax(0,1fr) minmax(15rem,.56fr);padding-right:clamp(14rem,18vw,21rem)}}.duo-timeline__period,.duo-timeline__card h3,.duo-timeline__card>strong{grid-column:1}.duo-timeline__period{color:var(--experience-accent);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.35rem .7rem;display:flex}.duo-timeline__period span+span:before{color:var(--experience-subtle);content:"/";margin-right:.7rem}.duo-timeline__card h3,.duo-section--blue .duo-timeline__card h3{letter-spacing:-.055em;color:var(--experience-foreground);margin-top:1.2rem;font-size:clamp(2.2rem,4vw,4.2rem);font-weight:500}.duo-timeline__card>strong,.duo-section--blue .duo-timeline__card>strong{color:var(--experience-foreground)}.duo-timeline__card p,.duo-section--blue .duo-timeline__card p{color:var(--experience-muted);grid-area:1/2/span 4;margin-top:0;font-size:1rem}.duo-timeline__card .duo-tags{grid-column:2}.duo-timeline__card .duo-tags span,.duo-section--blue .duo-timeline__card .duo-tags span{border-color:var(--experience-subtle);color:var(--experience-muted);background:0 0}.duo-tech-grid{background:0 0;border:0;gap:0}.duo-tech-group,.duo-tech-group--2,.duo-tech-group--3,.duo-tech-group--4{border-top:1px solid var(--line-strong);background:0 0;padding:1.75rem clamp(1rem,3vw,3rem) 3rem 0}.duo-tech-group:nth-child(2n){border-left:1px solid var(--line);padding-left:clamp(1rem,3vw,3rem);padding-right:0}.duo-tech-group__heading{margin-bottom:2rem}.duo-tech-group h3{text-transform:none;font-size:1.05rem;font-weight:550}.duo-tech-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.duo-tech-card{min-height:7rem}.duo-contact{padding-top:clamp(8rem,13vw,13rem)}.duo-contact__inner,.duo-portfolio .duo-contact__inner{grid-template-columns:minmax(12rem,18rem) minmax(0,1fr);gap:clamp(2rem,8vw,8rem);min-height:38rem;padding-right:0}.duo-contact h2{letter-spacing:-.075em;text-transform:none;max-width:12ch;margin:0 0 2rem;font-size:clamp(4rem,7.5vw,7.5rem);font-weight:500;line-height:.93}.duo-contact p{max-width:var(--brilio-copy-width);font-size:1.1rem}.duo-button--yellow{margin-top:.75rem}.duo-footer{padding-top:2rem;font-size:.78rem}@media (max-width:64rem){.duo-mobile-navigation{overscroll-behavior:contain;padding-bottom:max(2rem,env(safe-area-inset-bottom));overflow-y:auto}.duo-mobile-navigation__locale{border-top:1px solid var(--line);gap:.8rem;margin-top:2rem;padding-top:1.25rem;display:grid}.duo-mobile-navigation__locale-label{color:var(--muted);font-family:var(--font-mono);align-items:center;gap:.45rem;font-size:.68rem;font-weight:700;display:inline-flex}.duo-mobile-locale{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.duo-mobile-navigation .duo-mobile-locale a{border:1px solid var(--line);border-radius:var(--brilio-radius);min-width:0;min-height:3.4rem;color:var(--muted);font-family:var(--font-body);letter-spacing:0;opacity:1;grid-template-columns:1fr;gap:.2rem;padding:.6rem;font-size:.72rem;font-weight:600;line-height:1.2;display:grid;transform:none}.duo-mobile-navigation .duo-mobile-locale a span{color:var(--accent);padding:0;font-size:.62rem}.duo-mobile-navigation .duo-mobile-locale a[aria-current=page]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.duo-mobile-navigation a{font-weight:500}.duo-hero h1{font-size:clamp(4rem,9vw,6rem)}.duo-about__content>p,.duo-about__content>.duo-text-link,.duo-hero__description,.duo-hero__meta{grid-column:6/-1}.duo-actions{grid-column:1/span 5}.duo-project__body,.duo-timeline__card{grid-template-columns:minmax(0,1fr) minmax(16rem,.8fr)}}@media (max-width:800px){.duo-portfolio{--brilio-section-space:clamp(6rem,21vw,9rem)}.story-traveler{--story-stage-size:clamp(8.5rem,38vw,11rem);width:clamp(12rem,53vw,15rem);height:clamp(13rem,60vw,16rem)}.story-traveler__stage{box-shadow:none;filter:drop-shadow(0 .65rem .9rem #386f262e);background:0 0;border:0;border-radius:0;left:auto;right:0;overflow:visible}.story-traveler__pose{display:block}.story-traveler__compact-avatar{display:none}.story-traveler__bubble{width:min(11.75rem,48vw);top:0;left:auto;right:0}.story-traveler[data-active-beat=top] .story-traveler__bubble{display:block}.story-traveler__bubble:after{inset:auto 2.25rem -.45rem auto;transform:rotate(45deg)}.duo-shell,.duo-portfolio .duo-shell{width:min(calc(100% - 2rem),var(--brilio-shell))}.duo-header{height:4.5rem;padding-right:max(1rem,env(safe-area-inset-right));padding-left:max(1rem,env(safe-area-inset-left))}.duo-brand__mark{width:2.65rem;height:2.65rem}.duo-locale__trigger{min-height:2.4rem;padding-inline:.55rem}.duo-hero{min-height:auto;padding-block:3.5rem 7rem}.duo-hero:before{width:38rem;height:38rem;top:-22rem;left:5%}.duo-hero:after{display:none}.duo-hero__copy{grid-template-columns:1fr}.duo-hero__hello,.duo-hero h1,.duo-hero__description,.duo-actions,.duo-hero__meta{grid-area:auto/1}.duo-hero h1{margin-top:2rem;font-size:clamp(3.4rem,14.5vw,5rem);line-height:.95}.duo-hero__description,.duo-actions{margin-top:2.5rem}.duo-actions{flex-direction:column;align-items:flex-start;gap:1.25rem}.duo-button{min-height:3.75rem;padding:1rem 1.75rem}.duo-about__content{grid-template-columns:1fr}.duo-about__content .scroll-fill-heading,.duo-about__content>p,.duo-about__content>.duo-text-link{grid-column:1}.scroll-fill-heading{font-size:clamp(3rem,14vw,4.7rem)}.duo-stats{grid-template-columns:1fr;margin-top:5rem}.duo-stat,.duo-stat:not(:first-child){border-right:0;border-bottom:1px solid var(--line);min-height:9rem;padding:1.25rem 0}.duo-project,.duo-project:nth-child(2n){margin-bottom:clamp(4.5rem,16vw,6rem)}.duo-project__image{aspect-ratio:4/3}.duo-project__body,.duo-project--yellow .duo-project__body,.duo-timeline__card{grid-template-columns:1fr;padding-right:0}.duo-project__body,.duo-project--yellow .duo-project__body{min-width:0;padding-top:1.25rem}.duo-project__top{gap:1rem;padding-bottom:1rem}.duo-project__top span{overflow-wrap:anywhere;min-width:0}.duo-project h3{overflow-wrap:normal;text-wrap:balance;max-width:12ch;margin-top:1.25rem;font-size:clamp(2.25rem,12vw,3.5rem);line-height:.96}.duo-project p,.duo-project .duo-tags,.duo-project__link,.duo-timeline__card p,.duo-timeline__card .duo-tags{grid-area:auto/1}.duo-project p{max-width:34rem;margin-top:1rem;font-size:1rem;line-height:1.6}.duo-project .duo-tags{gap:.45rem;margin:1.25rem 0 0}.duo-project__link{border-top:1px solid var(--line);white-space:nowrap;justify-content:space-between;width:100%;min-height:3rem;margin-top:1.5rem;margin-bottom:0;padding-top:1rem}.duo-experience-heading{grid-template-columns:1fr;gap:1.25rem;margin-bottom:3rem}.duo-experience-heading h2{overflow-wrap:anywhere;max-width:100%;font-size:clamp(3rem,13vw,4.75rem);line-height:.94}.duo-experience-heading p,.duo-section--blue .duo-experience-heading p{max-width:31ch;font-size:1rem;line-height:1.55}.duo-timeline__item{grid-template-columns:.75rem minmax(0,1fr);gap:1rem}.duo-timeline__rail:before{border:2px solid var(--experience-background);background:var(--experience-accent);content:"";border-radius:50%;width:.5rem;height:.5rem;position:absolute;top:.22rem;left:50%;transform:translate(-50%)}.duo-timeline__rail i{height:calc(100% - .4rem);margin-top:.4rem}.duo-timeline__card{min-width:0;padding-bottom:clamp(4rem,17vw,5.5rem)}.duo-timeline__period{gap:.25rem .6rem;font-size:.67rem;line-height:1.45}.duo-timeline__period span+span:before{margin-right:.6rem}.duo-timeline__card h3,.duo-section--blue .duo-timeline__card h3{overflow-wrap:anywhere;margin-top:1rem;font-size:clamp(2.2rem,11vw,3.4rem);line-height:.98}.duo-timeline__card>strong,.duo-section--blue .duo-timeline__card>strong{margin-top:.5rem;font-size:.82rem;line-height:1.45}.duo-timeline__card p,.duo-section--blue .duo-timeline__card p{grid-area:auto/1;max-width:38rem;margin-top:1.35rem;font-size:.96rem;line-height:1.65}.duo-timeline__card .duo-tags{grid-area:auto/1;margin-top:1.15rem;margin-bottom:0}.duo-scroll-top{right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));left:auto}.duo-scroll-top,.duo-menu,.duo-icon-button,.duo-mobile-navigation .duo-mobile-locale a{touch-action:manipulation}.duo-tech-grid{grid-template-columns:1fr}.duo-tech-group,.duo-tech-group--2,.duo-tech-group--3,.duo-tech-group--4,.duo-tech-group:nth-child(2n){border-left:0;padding:1.5rem 0 3rem}.duo-contact__inner,.duo-portfolio .duo-contact__inner{grid-template-columns:1fr;gap:2rem;min-height:0}.duo-contact__mascot{width:min(12rem,44vw)}}@media (max-width:32rem){.duo-brand__wordmark{display:none}.duo-hero h1{font-size:clamp(3rem,14vw,4.1rem)}.duo-section-heading,.duo-experience-heading,.duo-skills__heading{margin-bottom:3.5rem}.duo-experience-heading{margin-bottom:2.75rem}.duo-experience-heading h2{font-size:clamp(2.7rem,12.5vw,3.75rem)}.duo-section-heading h2,.duo-skills h2{font-size:2.5rem}.duo-tech-list{grid-template-columns:repeat(3,minmax(0,1fr))}.duo-contact h2{font-size:clamp(3.3rem,15vw,4.5rem)}}@media (max-width:22rem){.duo-tech-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){[data-brilio-scroll-char]{color:var(--ink)!important}}
