:root{--color-bg:#161826;--color-surface:#232532;--color-text:#e9e9ed;--color-body:color-mix(in srgb, var(--color-text) 80%, transparent);--color-accent:#9184d9;--color-accent-2:#a7a1db;--color-divider:#e9e9ed29;--color-neutral-100:#f3f5fe;--color-neutral-200:#e4e7f5;--color-neutral-300:#cfd3e5;--color-neutral-400:#b2b6ca;--color-neutral-500:#9397ab;--color-neutral-600:#75798c;--color-neutral-700:#595d6c;--color-neutral-800:#3f424d;--color-neutral-900:#292b31;--color-accent-100:#f5f4ff;--color-accent-200:#e7e5fe;--color-accent-300:#d2cefd;--color-accent-400:#b5abfc;--color-accent-500:#968ae0;--color-accent-600:#796cbf;--color-accent-700:#5d5294;--color-accent-800:#423a6a;--color-accent-900:#2b2741;--color-section:#262a60;--color-section-glow:#353b80;--color-section-ghost:#4c5397;--page-gradient:transparent;--font-heading:"Inter", system-ui, sans-serif;--font-heading-weight:500;--font-body:"Inter", system-ui, sans-serif;--space-1:2.8px;--space-2:5.6px;--space-3:8.4px;--space-4:11.2px;--space-6:16.8px;--space-8:22.4px;--radius-sm:4px;--radius-md:8px;--radius-lg:14px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:clip}html{background:radial-gradient(900px 600px at 88% 0%, color-mix(in srgb, var(--color-accent-500) 28%, transparent), transparent 70%), radial-gradient(700px 600px at 0% 50%, color-mix(in srgb, var(--color-accent-500) 20%, transparent), transparent 70%), radial-gradient(800px 700px at 98% 100%, color-mix(in srgb, var(--color-accent-500) 20%, transparent), transparent 70%), var(--color-bg);background-attachment:fixed}body{color:var(--color-text);font-family:var(--font-body);letter-spacing:.012em;background:0 0;font-size:15px;font-weight:300;line-height:1.55;position:relative}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:-.008em;margin:0;line-height:1.12}p{margin:0}img{max-width:100%;display:block}figure{margin:0}a{color:var(--color-accent-300);text-decoration:none}a:hover{color:var(--color-accent)}::selection{background:color-mix(in srgb, var(--color-accent) 32%, transparent)}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.lighten{mix-blend-mode:lighten;background-color:#0000}.hr{height:1px;margin:var(--space-4) 0;background:linear-gradient(to right, transparent, var(--color-divider) 48px, var(--color-divider) calc(100% - 48px), transparent);border:0}.btn{cursor:pointer;font-family:var(--font-heading);font-weight:var(--font-heading-weight);color:var(--color-text);padding:var(--space-2) calc(var(--space-3) * 1.2);border-radius:var(--radius-md);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-size:14px;line-height:1.2;text-decoration:none;display:inline-flex}.btn-primary{color:var(--color-accent);border-color:var(--color-accent)}.btn-primary:hover{background:color-mix(in srgb, var(--color-accent) 12%, transparent)}.btn-white{color:#fff}.btn-white:hover{color:var(--color-accent)}.btn-primary:active{background:color-mix(in srgb, var(--color-accent) 22%, transparent)}.btn-ghost{color:var(--color-accent);padding-inline:var(--space-1)}.btn-ghost:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.btn-ghost:active{background:color-mix(in srgb, var(--color-accent) 18%, transparent)}.tag{letter-spacing:.02em;border-radius:calc(var(--radius-md) * .75);align-items:center;padding:3px 10px;font-size:11px;display:inline-flex}.tag-outline{border:1px solid var(--color-accent);color:var(--color-accent)}.nav{align-items:center;gap:var(--space-8);padding:var(--space-3) clamp(20px, 5vw, 72px);display:flex}.nav-brand{font-family:var(--font-heading);font-weight:var(--font-heading-weight);margin-right:auto;font-size:18px;transition:text-shadow .3s}.nav-brand:hover{text-shadow:0 0 18px color-mix(in srgb, var(--color-accent) 70%, transparent), 0 0 6px color-mix(in srgb, var(--color-accent) 40%, transparent)}.nav a{color:inherit;font-size:14px;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--color-accent)}.seg{border:1px solid var(--color-divider);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.seg-opt{cursor:pointer;border:none;border-left:1px solid var(--color-divider);color:inherit;background:0 0;align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:13px;display:inline-flex}.seg-opt:first-child{border-left:none}.seg-opt.is-active{color:var(--color-accent);box-shadow:inset 0 0 0 1px var(--color-accent)}.seg-opt:not(.is-active):hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.placeholder-slot{text-align:center;background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--color-text) 6%, transparent), color-mix(in srgb, var(--color-text) 6%, transparent) 10px, transparent 10px, transparent 20px);border:1px dashed color-mix(in srgb, var(--color-text) 30%, transparent);width:100%;height:100%;color:color-mix(in srgb, var(--color-text) 55%, transparent);justify-content:center;align-items:center;padding:12px;font-size:13px;line-height:1.5;display:flex}.early-work-link{transition:color .25s}.early-work-link:hover{color:var(--color-accent)!important}.ew-grid{grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,28px);display:grid}@media (max-width:600px){.ew-grid{grid-template-columns:1fr}}@keyframes scroll-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes riseIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes heroSweep{0%{transform:translate(-120%)skew(-16deg)}to{transform:translate(320%)skew(-16deg)}}@keyframes heroFloatA{0%,to{transform:translateY(0)}50%{transform:translateY(-2.2%)}}@keyframes heroFloatB{0%,to{transform:translateY(0)}50%{transform:translateY(2%)}}@keyframes heroPulse{0%,to{opacity:0;transform:scale(.6)}50%{opacity:.55;transform:scale(1.5)}}@keyframes heroConfetti{0%{opacity:0;transform:translateY(-10%)rotate(0)}12%{opacity:1}to{opacity:0;transform:translateY(180%)rotate(320deg)}}[data-page]{opacity:0}.page-ready [data-page]{opacity:1}.page-revealed [data-page]{opacity:1;transition:opacity .45s}.nav-ready nav[data-page]{opacity:1}[data-hero]{opacity:0;transition:opacity .55s cubic-bezier(.22,1,.36,1),transform .55s cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--i,0) * .12s + .1s);transform:translateY(22px)}.page-ready [data-hero]{opacity:1;transition:none;transform:none}.page-revealed [data-hero]{opacity:1;transform:none}[data-rise]{opacity:0;transition:opacity .45s,transform .45s;transform:translateY(12px)}[data-rise].is-visible{opacity:1;transform:none}.hero-anim{pointer-events:none;border-radius:14px;position:absolute;inset:0;overflow:hidden}.hero-anim .sweep{filter:blur(4px);background:linear-gradient(90deg,#0000,#ffffff38,#0000);width:26%;height:140%;animation:7.5s ease-in-out infinite heroSweep;position:absolute;top:-20%;left:0}.hero-anim .confetti{border-radius:1px;width:.7%;height:1.4%;animation:3.8s linear infinite heroConfetti;position:absolute}.hero-anim .float-a{animation:5.5s ease-in-out infinite heroFloatA}.hero-anim .float-b{animation:6.5s ease-in-out infinite heroFloatB}@media (prefers-reduced-motion:reduce){[data-page],[data-rise]{opacity:1!important;transition:none!important;transform:none!important}.hero-anim *{animation:none!important}[data-page] *{animation-duration:.001ms!important;animation-delay:0s!important}@keyframes riseIn{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes pageIn{0%{opacity:1;transform:none}to{opacity:1;transform:none}}}.acc-item{border-top:1px solid var(--color-divider)}.acc-summary{cursor:pointer;font-family:var(--font-heading);letter-spacing:-.01em;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font-size:24px;font-weight:500;list-style:none;display:flex}.acc-summary::-webkit-details-marker{display:none}.acc-summary::marker{content:""}.acc-chev{color:var(--color-accent-300);border-radius:999px;transition:transform .3s,background .2s,box-shadow .2s,color .2s;display:inline-flex}.acc-item[open] .acc-chev{transform:rotate(180deg)}.acc-item[open] .acc-summary{color:var(--color-accent-200)}.acc-summary{color:var(--color-accent-400);transition:color .2s}.acc-summary:hover{color:#fff}.acc-summary:hover .acc-chev{color:#fff;background:#ffffff1a;box-shadow:0 0 0 8px #ffffff1a}.acc-summary:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.case-detail figure{max-width:100%}.prob-stats{grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px);display:grid}.deep-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,3vw,44px);display:grid}.deep-flow{columns:2;column-gap:clamp(24px,3vw,44px)}.zoom-overlay{opacity:0;background:color-mix(in srgb, var(--color-bg) 22%, transparent);justify-content:center;align-items:center;transition:opacity .18s;display:flex;position:absolute;inset:0}.zoom-fig:hover .zoom-overlay{opacity:1}.gal-arrow{opacity:0;transition:opacity .2s}.gal-nav-wrap:hover .gal-arrow{opacity:1}.gal-thumbs{scrollbar-width:none}.gal-thumbs::-webkit-scrollbar{display:none}.gal-thumb{background:var(--color-neutral-800);cursor:pointer;opacity:.62;border:2px solid #0000;padding:0;transition:opacity .2s,border-color .2s}.gal-thumb:hover,.gal-thumb.active{opacity:1;border-color:var(--color-accent-400)}.gal-mobile{display:none}.video-card{transition:border-color .2s,box-shadow .2s,transform .2s}.video-card:hover{box-shadow:0 0 52px 14px color-mix(in srgb, var(--color-accent-400) 32%, transparent), 0 16px 40px -4px color-mix(in srgb, var(--color-accent) 20%, transparent);border-color:#ffffff38;transform:translateY(-2px)}.video-thumb{transition:none}.video-thumb:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.vp-dim{pointer-events:none;background:#14162247;transition:opacity .25s;position:absolute;inset:0}.video-card:hover .vp-dim{opacity:0}.work-grid{grid-template-columns:repeat(12,1fr);gap:clamp(28px,3.2vw,56px);display:grid}.work-card figure{transition:border-color .35s,transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s}.work-card figure img{will-change:transform;transition:transform .6s cubic-bezier(.22,1,.36,1)}.work-card:hover figure{border-color:color-mix(in srgb, var(--color-accent) 40%, transparent);box-shadow:0 0 48px 8px color-mix(in srgb, var(--color-accent-400) 22%, transparent), 0 16px 40px -4px color-mix(in srgb, var(--color-accent) 18%, transparent);transform:translateY(-6px)}.work-card:hover figure img{transform:scale(1.04)}.card-meta{padding:0}.card-meta h3{transition:color .35s}.work-card:hover .card-meta h3{color:var(--color-accent)!important}.work-card:hover .past-arrow-wrap{background:var(--color-accent-700)}.work-card:hover .past-arrow{color:#fff!important}.work-card:hover .past-name{color:var(--color-accent)!important}.work-card:hover .past-card-figure{box-shadow:0 0 52px 14px color-mix(in srgb, var(--color-accent-400) 32%, transparent), 0 16px 40px -4px color-mix(in srgb, var(--color-accent) 20%, transparent)!important;border-color:#ffffff38!important}.past-bg-wrap{position:relative}.past-bg-wrap:before{content:"";background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.68' numOctaves='4' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='240' height='240' filter='url(%23n)' opacity='0.06'/></svg>"), radial-gradient(ellipse 65% 75% at 90% 60%, color-mix(in srgb, var(--color-accent-500) 28%, transparent), transparent 65%), color-mix(in srgb, var(--color-accent) 22%, var(--color-bg));pointer-events:none;z-index:0;background-size:240px 240px,100% 100%,100% 100%;width:100vw;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.past-bg-wrap>*{z-index:1;position:relative}.work-list-row{border-bottom:1px solid var(--color-divider)}.work-list-row:hover{background:color-mix(in srgb, var(--color-neutral-800) 40%, transparent)}.next-project-link:hover .next-project-title{color:var(--color-accent-400)}.next-project-title{transition:color .25s}.next-project-cta{color:var(--color-accent);transition:color .25s}.next-project-link:hover .next-project-cta{color:var(--color-text)}.cs-footer-card{transition:opacity .2s}.cs-footer-card figure{transition:border-color .2s,transform .2s,box-shadow .2s}.cs-footer-card:not(.cs-footer-card--disabled):hover figure{box-shadow:0 8px 28px color-mix(in srgb, var(--color-accent) 14%, transparent);transform:translateY(-4px);border-color:color-mix(in srgb, var(--color-accent) 40%, transparent)!important}.cs-footer-card .cs-footer-title{transition:color .2s}.cs-footer-card:not(.cs-footer-card--disabled):hover .cs-footer-title{color:var(--color-accent-400)}@media (max-width:900px){.work-grid{grid-template-columns:repeat(2,1fr)!important}.work-card{grid-column:span 1!important;margin-bottom:0!important}}@media (max-width:720px){.case-detail .cs-row,.case-detail .cs-principles{text-align:left;grid-template-columns:1fr!important;gap:10px!important}.case-detail .deep-cols{grid-template-columns:1fr!important;gap:16px!important}.case-detail .prob-group-cols{gap:40px!important}.case-detail .deep-flow{columns:1!important}.case-detail .text-flow-2col{column-count:1!important}.prob-stats{grid-template-columns:1fr!important;gap:16px!important}.about-grid{grid-template-columns:1fr!important}.about-photo-wrap{flex-direction:column!important;order:-1!important;align-items:center!important;display:flex!important}.about-photo-wrap .portrait-stage{width:105%!important;margin-left:0!important}.about-section{grid-template-columns:1fr!important}.about-photo-wrap{flex-direction:column!important;gap:16px!important;display:flex!important}.about-photo-2{width:100%!important;box-shadow:none!important;position:static!important;bottom:auto!important;left:auto!important}.about-2col{grid-template-columns:1fr!important;gap:40px!important}.about-2col>:first-child{position:static!important}.about-principle-icon{width:52px!important;height:52px!important}.about-principle-item{gap:14px!important}.work-list-row{grid-template-columns:minmax(120px,160px) 1fr!important}.work-list-row .work-list-meta{display:none!important}}@media (max-width:560px){.work-grid{grid-template-columns:1fr!important}.work-card{grid-column:span 1!important}}@media (max-width:767px){@keyframes riseIn{0%{opacity:1;transform:none}to{opacity:1;transform:none}}@keyframes pageIn{0%{opacity:1;transform:none}to{opacity:1;transform:none}}[style*=riseIn],[style*=pageIn]{opacity:1!important;animation-duration:.001ms!important;animation-delay:0s!important;transform:none!important}[data-rise]{opacity:1!important;transition:none!important;transform:none!important}}@media (max-width:640px){.gal-desktop{display:none!important}.gal-mobile{display:flex!important}}@media (max-width:768px){.dot-snap-desktop{display:none!important}}@media (max-width:860px){.pp-grid-3{grid-template-columns:repeat(2,1fr)!important}}@media (max-width:640px){.pp-cols{columns:1!important}.pp-grid-2,.pp-grid-3{grid-template-columns:1fr!important}.pp-grid-metrics{grid-template-columns:repeat(2,1fr)!important}.pp-lbx-prev{left:8px!important}.pp-lbx-next{right:8px!important}}.portrait-stage{--hold:.9s;--cycle:calc(var(--hold) * 4);aspect-ratio:639/610;isolation:isolate;background:0 0;width:639px;position:relative;overflow:hidden}.portrait-arch{background:#12131f;border-radius:50% 50% 0 0/41.02% 41.02% 0 0;width:51.49%;height:65.74%;position:absolute;top:10.16%;left:27.39%;overflow:hidden}.portrait-arch img{object-fit:cover;opacity:0;width:100%;height:100%;animation:portrait-cut var(--cycle) steps(1, end) infinite;position:absolute;inset:0}@keyframes portrait-cut{0%{opacity:1}25%{opacity:0}to{opacity:0}}.portrait-arch img:first-child{animation-delay:0s;transform:translate(3%)scale(1.068)}.portrait-arch img:nth-child(2){animation-delay:var(--hold);transform:translate(-3%,2.73%)scale(1.068)}.portrait-arch img:nth-child(3){animation-delay:calc(var(--hold) * 2);transform:translate(0%)scale(1.068)}.portrait-arch img:nth-child(4){animation-delay:calc(var(--hold) * 3);transform:translate(3%,.83%)scale(1.068)}.portrait-dome{pointer-events:none;position:absolute}.portrait-dome.purple{mix-blend-mode:lighten;background:#7a6fbd;border-radius:50% 50% 0 0/100% 100% 0 0;width:30.36%;height:15.9%;top:50.82%;left:62.91%}.portrait-dome.indigo{mix-blend-mode:color-dodge;background:#787cba;border-radius:0 0 50% 50%/0 0 100% 100%;width:32.86%;height:17.21%;top:66.07%;left:11.89%}.portrait-dome.teal{mix-blend-mode:color-dodge;background:#0bc0bf;border-radius:50% 50% 0 0/100% 100% 0 0;width:19.56%;height:10.16%;top:70.33%;left:68.39%}@media (prefers-reduced-motion:reduce){.portrait-arch img{opacity:0;animation:none}.portrait-arch img:nth-child(4){opacity:1}}.contact-banner-btn{transition:background .2s,color .2s,box-shadow .2s;box-shadow:0 0 24px 6px #dcb4ff59}.contact-banner-btn:hover{box-shadow:0 0 32px 10px #dcb4ff80;background:#ffffffe0!important}.btn-see-work{transition:background .2s,box-shadow .2s;box-shadow:0 0 24px 6px #dcb4ff59}.btn-see-work:hover{box-shadow:0 0 32px 10px #dcb4ff80;background:#ffffffe0!important}.footer-icon-link{color:var(--color-accent);border-radius:50%;padding:10px;transition:color .2s,background .2s;display:flex}.footer-icon-link:hover{color:var(--color-accent);background:#9184d92e}.logo-strip-wrap{position:relative}.logo-strip-wrap:before{content:"";pointer-events:none;z-index:0;background:#fff;border-top:1px solid #8b78d226;border-bottom:1px solid #8b78d226;width:100vw;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.logo-strip-inner{z-index:1;padding:34px 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.logo-strip-fade-l,.logo-strip-fade-r{pointer-events:none;z-index:2;width:160px;position:absolute;top:0;bottom:0}.logo-marquee-flex{flex-wrap:nowrap;width:max-content;animation:80s linear infinite logo-marquee;display:flex}.logo-marquee-img{-webkit-user-select:none;user-select:none;pointer-events:none;flex-shrink:0;width:auto;height:105px;display:block}@keyframes logo-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.logo-marquee-flex{animation:none}}
