:root{color-scheme:light;--ink:#272a28;--soft:#646b66;--accent:#617664;--link-color:#425b46;--surface:#fff;--clarity:0}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:70px}body{background:var(--surface);color:var(--ink);margin:0;font-family:Helvetica Neue,Arial,Hiragino Kaku Gothic ProN,sans-serif;font-weight:400}body:before{content:"";z-index:-2;background:#fff;position:fixed;inset:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,label{-webkit-tap-highlight-color:transparent}#field{z-index:-1;pointer-events:none;position:fixed;inset:0}#field canvas{width:100%;height:100%;display:block}header{z-index:3;justify-content:space-between;align-items:center;padding:30px 5%;display:flex;position:relative}header img{width:120px;height:auto}nav{letter-spacing:.13em;gap:42px;font-size:10px;display:flex}.field-link{cursor:pointer;background:0 0;border:none;padding:8px 0;text-decoration:none;transition:color 1.25s cubic-bezier(.22,.61,.36,1) .1s;display:inline-block;position:relative}.field-link:before,.field-link:after{content:"";pointer-events:none;height:1px;position:absolute;bottom:3px;left:0;right:0}.field-link:before{opacity:.5;background:repeating-linear-gradient(90deg,currentColor 0 1px,#0000 1px 4px);transition:opacity 1.4s cubic-bezier(.22,.61,.36,1)}.field-link:after{opacity:.75;transform-origin:0;background:currentColor;transition:transform 1.4s cubic-bezier(.22,.61,.36,1),opacity 1.4s;transform:scaleX(0)}.field-link:hover,.field-link:focus-visible{color:var(--link-color)}.field-link:hover:before,.field-link:focus-visible:before,.field-link[aria-pressed=true]:before{opacity:0}.field-link:hover:after,.field-link:focus-visible:after,.field-link[aria-pressed=true]:after{opacity:.85;transform:scaleX(1)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.hero{min-height:calc(100svh - 100px);padding:9vh 9% 100px;position:relative}.eyebrow{letter-spacing:.14em;margin:0 0 26px;font-size:10px;font-weight:700}.eyebrow:before{content:"—";color:#89968c;margin-right:10px}h1,h2{letter-spacing:-.027em;margin:0;font-weight:400;line-height:1.25}h1{font-size:clamp(34px,3.65vw,53px)}h2{font-size:clamp(30px,3.15vw,46px)}.statement{color:var(--soft);margin:30px 0;font-size:20px;font-weight:400;line-height:1.5}.service-link{margin-top:8px;font-size:13px}.service-link span{padding-left:18px}.clear-type{width:fit-content;position:relative}.work{min-height:84svh;padding:90px 7%;position:relative}.section-top{letter-spacing:.1em;justify-content:space-between;align-items:center;margin-bottom:45px;font-size:10px;display:flex}.section-top .eyebrow{margin:0}.work-copy p{color:var(--soft);margin:25px 0;font-size:15px;line-height:1.7}.work-copy .field-link{font-size:12px}.project-image{margin:0}.project-image img{width:100%;height:auto;display:block}.project-image figcaption{letter-spacing:.1em;color:var(--soft);margin-top:18px;font-size:9px}#source-note{max-width:360px;font-size:11px}.approach{grid-template-columns:1.1fr 1fr;align-items:center;gap:12%;min-height:88svh;padding:120px 9%;display:grid}#runtime{color:var(--soft);margin-top:20px;font-size:10px}#error{z-index:9;background:#fff;max-width:80%;padding:16px 20px;font-size:12px;position:fixed;bottom:20px;left:5%;box-shadow:0 0 0 1px #d9deda}@media (width<=800px){header{padding:26px 6%}header img{width:100px}nav{gap:17px;font-size:9px}nav a:nth-child(2){display:none}.hero{min-height:94svh;padding:10vh 7% 240px}h1{font-size:clamp(26px,6.7vw,39px)}h2{font-size:clamp(28px,6vw,38px)}.statement{font-size:17px}.work{min-height:0;padding:80px 7%}.work-copy p{font-size:14px}.approach{grid-template-columns:1fr;gap:45px;min-height:0;padding:100px 7%}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.motion-paused *{transition:none!important}.project-image img{will-change:opacity}.work{min-height:0;padding:100px 7% 110px}.project-heading{grid-template-columns:1.2fr 1fr;align-items:end;gap:14%;margin-bottom:55px;display:grid}.project-heading h2{font-size:clamp(30px,3.65vw,52px)}.project-description{color:var(--soft);max-width:360px;font-size:14px;line-height:1.7}.project-description p{margin:0 0 22px}.project-description a{font-size:11px}.work-copy .eyebrow{color:var(--soft);margin-bottom:18px;font-size:9px}.project-image img{aspect-ratio:1920/1024;object-fit:cover}.project-image figcaption{margin-top:20px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.approach{border-top:1px solid #e5e7e4;min-height:78svh;margin:0 7%;padding:130px 2%}@media (width<=800px){.work{padding:75px 7% 85px}.project-heading{grid-template-columns:1fr;gap:27px;margin-bottom:40px}.project-description{max-width:340px;font-size:13px}.project-heading h2{font-size:clamp(28px,7.7vw,40px)}.project-image figcaption{font-size:8px}.approach{min-height:0;padding:90px 0}}.project-heading{min-height:150px}.project-description{min-height:128px}@media (width<=800px){.project-description{min-height:150px}.project-heading{gap:20px;margin-bottom:24px}.project-heading h2{min-height:90px}}.project-description a{min-height:44px;padding:12px 0}@media (width<=800px){nav a{min-height:44px;padding:14px 0}}.reconstruction{min-height:180svh;position:relative}.reconstruction .project-image{position:sticky;top:18svh}.approach{min-height:0;padding-bottom:65px}.build-with{padding:50px 9% 115px}.motion-paused .reconstruction{min-height:0}.motion-paused .reconstruction .project-image{position:static}@media (width<=800px){.reconstruction{min-height:160svh}.reconstruction .project-image{top:25svh}.build-with{padding:35px 7% 85px}}@media (prefers-reduced-motion:reduce){.reconstruction{min-height:0}.reconstruction .project-image{position:static}}.carousel-controls{align-items:center;gap:26px;margin:0 0 20px;display:flex}.carousel-controls button{min-width:44px;min-height:44px;font-size:23px}.carousel-controls #autoplay{margin-left:auto;font-size:10px}.project-heading{transition:opacity .65s cubic-bezier(.22,.61,.36,1)}.project-heading.is-changing{opacity:0;transition-duration:.26s}.carousel-controls button:disabled{opacity:.45;cursor:default}.project-image figcaption{max-width:80%;line-height:1.5}.motion-paused .project-heading{transition:none}.work{padding-top:65px}.project-scene{grid-template-columns:.75fr 1.4fr;align-content:center;gap:25px 6%;min-height:76svh;display:grid;position:sticky;top:8svh}.project-scene .section-top{grid-column:1/-1;margin:0 0 15px}.project-scene .project-heading{grid-area:2/1;min-height:0;margin:0;display:block}.project-scene .project-heading h2{min-height:96px;font-size:clamp(26px,2.7vw,39px);line-height:1.22}.project-scene .project-description p{margin-bottom:14px}.project-scene .project-image{grid-area:2/2/4;align-self:center;position:relative;top:auto}.project-scene .carousel-controls{grid-area:3/1;align-self:end;margin:0}.motion-paused .project-scene{min-height:0;position:static}@media (width<=800px){.work{padding-top:40px}.project-scene{flex-direction:column;gap:14px;min-height:0;display:flex;top:6svh}.project-scene .section-top{margin:0 0 4px}.project-scene .project-heading{display:block}.project-scene .project-heading h2{min-height:60px;font-size:24px}.project-scene .work-copy .eyebrow{margin-bottom:10px}.project-scene .project-description{min-height:100px;margin-top:12px;font-size:12px;line-height:1.55}.project-scene .project-description p{margin-bottom:3px}.project-scene .project-description a{min-height:36px;padding:9px 0}.project-scene .carousel-controls{order:3;width:100%;margin:0}.project-scene .project-image{order:2;align-self:auto;width:100%;position:relative;top:auto}.project-scene .project-image figcaption{margin-top:10px;font-size:8px}}@media (width<=800px) and (height<=700px){.project-scene{gap:8px;top:15px}.project-scene .section-top{display:none}.project-scene .project-heading h2{min-height:48px;font-size:20px}.project-scene .project-description{min-height:85px;font-size:11px}}@media (prefers-reduced-motion:reduce){.project-scene{min-height:0;position:static}}@media (width>=801px){.project-scene .project-description{font-size:14px;line-height:1.65}}.project-image{touch-action:pan-y}.project-description p{max-width:36ch}@media (width<=800px){.project-description p{max-width:none}}@media (width>=801px){.project-scene .project-heading h2{min-height:144px}}.capabilities{border-top:1px solid #e2e5e1;grid-template-columns:1fr 1.2fr;gap:12%;margin:0 7%;padding:115px 2%;display:grid}.capabilities h2{font-size:clamp(30px,3.1vw,44px)}.approach{padding-top:95px}.project-scene .project-description{min-height:115px}.project-heading h2{font-feature-settings:"kern"}.project-scene .project-description a{font-size:11px}@media (width<=800px){.capabilities{grid-template-columns:1fr;gap:35px;padding:75px 0}.capabilities h2{font-size:32px}.approach{padding-top:75px}.project-scene .project-description{min-height:90px}.project-scene .project-heading h2{min-height:60px}nav a:nth-child(2),nav a:nth-child(3){display:none}}.project-scene .project-description .project-type{letter-spacing:.11em;color:var(--soft);margin:0 0 14px;font-size:9px}@media (width<=800px){.project-scene .project-description .project-type{margin-bottom:8px;font-size:8px}.project-scene .project-description{min-height:108px}}@media (width<=800px) and (height<=700px){.project-scene .project-description{min-height:96px}.project-scene .project-heading h2{min-height:48px}}.approach{gap:0 12%}@media (width<=800px){.approach{row-gap:35px}}.project-image figcaption{transition:opacity .65s cubic-bezier(.22,.61,.36,1)}.project-image figcaption.is-changing{opacity:0;transition-duration:.26s}.motion-paused .project-image figcaption{transition:none}.hero{min-height:calc(100svh - 100px);padding-top:6svh}.hero-copy{max-width:100%}.hero h1{letter-spacing:-.065em;max-width:9ch;margin:40px 0 35px;font-size:clamp(72px,10.7vw,158px);font-weight:400;line-height:.94}.hero-introduction{grid-template-columns:1fr 1fr;gap:8%;max-width:680px;margin-left:12%;display:grid}.hero-introduction .statement{color:var(--soft);font-size:13px}@media (width<=800px){.hero{padding-top:7svh;padding-bottom:115px}.hero h1{margin:40px 0;font-size:clamp(64px,15.5vw,115px);line-height:1}.hero-introduction{max-width:300px;margin-left:0;display:block}.hero-introduction>p{font-size:14px}.hero-introduction .statement{margin-top:20px;font-size:12px}.hero .service-link{margin-top:22px;margin-left:0}.hero .eyebrow{letter-spacing:.08em;font-size:8px}}.hero-copy{width:100%}.hero-introduction{max-width:690px}@media (width<=800px){.hero-introduction{max-width:300px}}@media (width>=801px) and (width<=1150px){.hero h1{font-size:10vw}}@media (width<=800px){.hero{min-height:calc(100svh - 80px);padding-bottom:150px}.hero h1{max-width:none}}.capabilities{padding-top:95px;padding-bottom:95px;display:block}.approach-title h2{font-size:clamp(36px,4.2vw,57px);line-height:1.15}.build-with{grid-template-columns:repeat(4,1fr);gap:30px;padding-top:65px;display:grid}.build-heading{grid-column:1/-1}.build-heading .eyebrow{margin-bottom:0}@media (width<=800px){.hero{padding-bottom:150px}.capabilities{padding:65px 0}.approach-title h2{font-size:36px}.build-with{grid-template-columns:1fr 1fr;gap:32px 25px;padding-top:45px}}.project-scene{grid-template-columns:.8fr 1.35fr;column-gap:5%}.project-scene .project-heading h2{letter-spacing:-.04em;overflow-wrap:anywhere;text-wrap:balance;min-height:2.15em;font-size:clamp(28px,3.3vw,52px);font-weight:400;line-height:1.06}.project-scene .project-intent{color:var(--ink);margin:22px 0 0;font-size:16px;line-height:1.45}.project-scene .project-description{min-height:100px;margin-top:27px;font-size:13px}.project-scene .project-description .project-type{display:none}.project-scene .carousel-controls{align-self:start}.capabilities{border-top:0;padding-top:115px}@media (width<=800px){.project-scene{column-gap:0}.project-scene .project-heading h2{min-height:2.1em;font-size:26px}.project-scene .project-intent{margin-top:10px;font-size:12px}.project-scene .project-description{min-height:75px;margin-top:12px;font-size:12px}.capabilities{padding-top:75px}}@media (width<=800px) and (height<=700px){.project-scene .project-heading h2{min-height:2.05em;font-size:21px}.project-scene .project-intent{margin-top:6px;font-size:11px;line-height:1.3}.project-scene .project-description{min-height:65px;margin-top:8px;font-size:11px}.project-scene{gap:7px}}.hero h1{letter-spacing:-.035em}@media (width<=800px){.hero h1{letter-spacing:-.04em}}@media (width>=801px){.capabilities{grid-template-columns:.8fr 1.35fr;gap:5%;padding:110px 7%;display:grid}.approach{align-items:start}.capabilities{margin:0;padding-left:7%;padding-right:7%}.approach-title h2{letter-spacing:-.03em;font-weight:400}}.hero h1{max-width:10ch}@media (width<=800px){.hero h1{max-width:none}}.build-with{padding:65px 7% 100px;display:block}.build-heading{margin-bottom:45px}@media (width<=800px){.build-with{padding:45px 7% 75px}}.hero{padding-bottom:100px}@media (width<=800px){.hero{padding-bottom:115px}}.capabilities{padding-top:120px;padding-bottom:120px}.approach{background:#f2f4f1f5;border-top:0;grid-template-columns:1.3fr 1fr;column-gap:8%;margin:0;padding:85px 7% 100px}.approach-title h2{letter-spacing:-.035em;font-size:clamp(30px,3.4vw,48px);font-weight:700;line-height:1.6}.build-heading{grid-template-columns:.8fr 1.35fr;align-items:start;column-gap:5%;margin-bottom:65px;display:grid}.build-heading .eyebrow{grid-column:1/-1;margin-bottom:35px}@media (width<=800px){.capabilities{padding:75px 7%}.approach{grid-template-columns:1fr;row-gap:25px;padding:70px 7%}.approach-title h2{font-size:30px}.build-with{padding:70px 7%}.build-heading{grid-template-columns:1fr;gap:20px;margin-bottom:45px}.build-heading .eyebrow{margin-bottom:5px}}.capabilities{border-top:0}.build-with{grid-template-columns:repeat(6,minmax(0,1fr));gap:0;padding:65px 7% 80px;display:grid}.build-heading{grid-column:1/-1;margin:0 0 30px;display:block}.build-heading .eyebrow{margin:0}@media (width<=800px){.build-with{grid-template-columns:repeat(3,minmax(0,1fr));padding:50px 7% 60px}.build-heading{margin-bottom:20px}}@media (width<=360px){.build-with{grid-template-columns:repeat(2,minmax(0,1fr))}}.reconstruction{min-height:270svh}.project-scene{grid-template-columns:.65fr 1.5fr;column-gap:5%;min-height:76svh;top:7svh}.project-scene .project-heading h2{letter-spacing:-.025em;text-wrap:initial;min-height:2.3em;font-size:clamp(25px,2.65vw,42px);line-height:1.12}.project-scene .project-intent{letter-spacing:-.025em;margin-top:30px;font-size:clamp(20px,2vw,29px);line-height:1.65}.project-scene .project-description{min-height:105px;margin-top:22px;font-size:12px;line-height:1.95}.project-scene .project-image figcaption{letter-spacing:.07em;margin-top:16px;font-size:8px}@media (width<=800px){.reconstruction{min-height:270svh}.project-scene{min-height:0;top:5svh}.project-scene .project-heading h2{min-height:2.1em;font-size:25px}.project-scene .project-intent{margin-top:12px;font-size:17px;line-height:1.55}.project-scene .project-description{min-height:65px;margin-top:10px;font-size:11px;line-height:1.7}}@media (width<=800px) and (height<=700px){.project-scene .project-heading h2{font-size:21px}.project-scene .project-intent{margin-top:8px;font-size:15px}.project-scene .project-description{min-height:55px}.project-scene{gap:7px}}@media (prefers-reduced-motion:reduce){.reconstruction{min-height:0}}#load-label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.hero{padding-top:4svh}.hero h1{letter-spacing:-.045em;margin-top:34px;margin-bottom:38px;font-size:clamp(76px,10.8vw,158px);line-height:.98}.hero-introduction{max-width:700px;margin-left:8%}.hero .service-link{margin-left:8%}@media (width<=800px){.hero{padding-top:5svh}.hero h1{letter-spacing:-.045em;margin:32px 0;font-size:clamp(58px,15.2vw,115px);line-height:1.02}.hero-introduction,.hero .service-link{margin-left:0}}.hero-line{margin-bottom:-.09em;padding-bottom:.09em;display:block;overflow:clip}.hero-line>span{transform-origin:0 100%;display:block}.hero h1{line-height:1.02}html[data-intro=opening] .hero-line>span{animation:1.65s cubic-bezier(.16,1,.3,1) both focus-line}html[data-intro=opening] .hero-line:nth-child(2)>span{animation-duration:1.95s;animation-delay:.2s}html[data-intro=opening] .hero-introduction,html[data-intro=opening] .hero .service-link{animation:1.6s .4s both focus-copy}@keyframes focus-line{0%{filter:blur(5px);opacity:.35;transform:translateY(105%)rotate(2deg)}to{filter:blur();opacity:1;transform:translateY(0)rotate(0)}}@keyframes focus-copy{0%{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero .eyebrow{letter-spacing:.1em}@media (width<=800px){.hero h1{line-height:1.04}}@media (prefers-reduced-motion:reduce){.hero-line>span,.hero-introduction,.hero .service-link{filter:none!important;opacity:1!important;animation:none!important;transform:none!important}}.motion-paused .hero-line>span,.motion-paused .hero-introduction,.motion-paused .hero .service-link{filter:none!important;opacity:1!important;animation:none!important;transform:none!important}header{align-items:center;padding:28px 7%}header img{width:118px}nav{letter-spacing:.08em;gap:32px;font-size:10px}nav .field-link{padding:12px 0}nav .field-link:before{opacity:0}nav .field-link:after{height:1px;bottom:6px}.hero{min-height:calc(100svh - 87px);padding:5svh 7% 125px}.hero h1{letter-spacing:-.035em;margin:32px 0 38px;font-size:clamp(72px,10.2vw,150px);line-height:1.04}.hero-line{margin-bottom:-.12em;padding-bottom:.12em}.hero .eyebrow{letter-spacing:.08em;margin-bottom:0;font-size:9px;font-weight:400}.hero .eyebrow:before{content:none}.hero-introduction{grid-template-columns:1.25fr 1fr;align-items:start;gap:55px;max-width:690px;margin-left:7%}.hero-introduction .statement{color:#59615c;font-size:12px;line-height:1.85}.hero .service-link{min-height:44px;margin:25px 0 0 7%;font-size:11px;line-height:1.8}.hero .service-link span{padding-left:28px}@media (width<=800px){header{padding:24px 7%}header img{width:100px}nav{gap:22px;font-size:8px}.hero{min-height:calc(100svh - 75px);padding:5svh 7% 130px}.hero h1{letter-spacing:-.03em;margin:30px 0;font-size:clamp(56px,14.8vw,115px);line-height:1.07}.hero .eyebrow{letter-spacing:.065em;font-size:7px}.hero-introduction{max-width:310px;margin-left:0;display:block}.hero-introduction>p{font-size:13px;line-height:1.8}.hero-introduction .statement{margin-top:20px;font-size:11px;line-height:1.8}.hero .service-link{margin-top:18px;margin-left:0}}@media (height<=750px) and (width>=801px){.hero{padding-top:2svh}.hero h1{margin:22px 0 24px;font-size:min(9.3vw,115px)}.hero-introduction>p{font-size:13px}.hero .service-link{margin-top:15px}}@keyframes trace-ridge{0%{stroke-dashoffset:800px;opacity:.08}45%,65%{stroke-dashoffset:0;opacity:.3}to{stroke-dashoffset:-800px;opacity:.08}}@keyframes breathe-dot{0%,to{opacity:.16}45%,65%{opacity:.6}}@keyframes viewport-ridge{0%{stroke-dashoffset:1250px;opacity:.12}40%,65%{stroke-dashoffset:0;opacity:var(--depth,.4)}to{stroke-dashoffset:-1250px;opacity:.12}}.capabilities{padding:90px 7% 110px;display:block}.approach{grid-template-columns:1.5fr 1fr;gap:30px 50px;padding-top:70px;padding-bottom:85px}.approach-title h2{white-space:nowrap;font-size:clamp(27px,3vw,42px);font-weight:400;line-height:1.5}@media (width<=800px){.capabilities{padding:65px 7% 75px}.approach{grid-template-columns:1fr;gap:22px;padding:65px 7%}.approach-title h2{font-size:clamp(22px,6vw,32px)}}@media (width>=801px) and (width<=1100px){header nav{letter-spacing:.08em;gap:24px;font-size:9px}}.capabilities{margin:0}@media (width>=1000px){.project-scene{grid-template-columns:1fr;align-content:center;gap:20px;min-height:80svh;top:5svh}.project-scene .section-top{grid-area:1/1;margin-bottom:0}.project-scene .project-image{z-index:0;grid-area:2/1;align-self:start}.project-scene .project-heading{z-index:1;grid-area:2/1;align-self:center;width:42%;padding:24px 0 44px 4%;transition:color .9s;position:relative}.project-scene .project-heading h2{min-height:0;margin:0;font-size:clamp(26px,2.7vw,42px);line-height:1.15}.project-scene .work-copy .eyebrow{color:inherit;margin:0 0 20px;font-size:9px}.project-scene .project-intent{color:inherit;margin-top:20px;font-size:clamp(21px,2.2vw,32px);line-height:1.55}.project-scene .project-description{min-height:0;color:inherit;max-width:29em;margin:20px 0 0;font-size:12px;line-height:1.9}.project-scene .project-description p{margin:0 0 10px}.project-scene .carousel-controls{grid-area:3/1;justify-content:flex-start;align-self:center;gap:34px;margin:0}.work[data-photo-ready=true][data-image-tone=dark] .project-heading{color:#fff}.work[data-photo-ready=true][data-image-tone=dark] .project-heading .field-link:hover{color:#d9e4dc}.project-scene .project-image figcaption{margin-top:10px}}@media (width>=1000px) and (height<=850px){.project-scene{gap:12px;min-height:0;top:3svh}.project-scene .project-image{justify-self:center;width:min(100%,187.5svh - 440.625px)}.project-scene .project-heading{margin-left:max(0px,50% + -93.75svh + 220.313px);padding-top:15px;padding-bottom:30px}}@media (prefers-reduced-motion:reduce){.project-scene .project-heading{transition:none}}@media (width>=1000px){.project-scene .project-heading{width:48%;padding-left:11%;transition:none}.work[data-image-tone=light] .project-heading{padding-left:4%}.project-scene .project-heading .project-description{max-width:25em}.project-scene .project-heading .field-link{color:inherit;transition:none}}html[data-intro=loading] header,html[data-intro=loading] .hero-copy{opacity:0}html[data-intro=opening] header{animation:.85s both focus-copy}@media (prefers-reduced-motion:reduce){html[data-intro=opening] header{animation:none}}.hero-copy{width:auto;max-width:900px}.hero h1{letter-spacing:-.035em;white-space:nowrap;margin:36px 0 35px;font-size:clamp(45px,7.6vw,110px);font-weight:400;line-height:1.35}.hero-introduction{max-width:510px;margin:0;display:block}.hero-introduction>p{margin:0;font-size:15px;line-height:2}.hero-introduction .statement{max-width:300px;margin-top:26px;font-size:11px;line-height:1.8}.hero .service-link{margin:24px 0 0;font-size:11px}.capabilities{padding:95px 7% 90px}.build-with{padding-top:55px;padding-bottom:60px}@media (width<=800px){.hero h1{margin:30px 0;font-size:clamp(37px,10.5vw,74px);line-height:1.5}.hero-introduction>p{font-size:12px;line-height:2}.hero-introduction .statement{margin-top:25px;font-size:10px}.capabilities{padding:60px 7%}.build-with{padding:45px 7% 50px}}#contact>div.protect>p{width:fit-content;max-width:100%}.field-link{transition:color .18s}.field-link:before{transition:opacity .35s}.field-link:after{transition:transform .65s cubic-bezier(.22,.61,.36,1),opacity .35s}.practice-chapter{border:0;margin:0;padding:0;display:block}.practice-chapter .capabilities{background:#fff;border:0;grid-template-columns:1fr 1.7fr;gap:45px 8%;margin:0;padding:100px 7% 110px;display:grid}.practice-chapter .eyebrow,.build-heading .eyebrow{letter-spacing:.1em;margin:0;font-size:11px;font-weight:700;line-height:1.5}.practice-chapter .eyebrow:before,.build-heading .eyebrow:before{display:none}.practice-chapter .approach{background:#f0f2ef;border:0;min-height:0;margin:0;padding:80px 7% 65px;display:block}.practice-chapter .approach-title{grid-template-columns:1fr 1.7fr;align-items:start;gap:8%;margin:0;display:grid}.practice-chapter .approach-title h2{letter-spacing:-.035em;max-width:none;margin:0;font-size:clamp(28px,2.65vw,38px);font-weight:400;line-height:1.5}.build-with{background:#fff;border:0;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0;padding:50px 7% 65px;display:grid}.build-with .build-heading{grid-column:1/-1;margin:0 0 28px;display:block}#contact{border-top:1px solid #ccd3cb;min-height:0;padding:85px 7% 0;display:block;position:relative}@media (width<=1100px){.practice-chapter .capabilities{grid-template-columns:1fr 1.5fr;gap:45px 6%}.build-with{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=700px){.practice-chapter .capabilities{padding:55px 7% 65px;display:block}.practice-chapter .approach{padding:55px 7% 38px}.practice-chapter .approach-title{display:block}.practice-chapter .approach-title .eyebrow{margin-bottom:22px}.practice-chapter .approach-title h2{font-size:27px;line-height:1.5}.build-with{grid-template-columns:repeat(2,minmax(0,1fr));padding:40px 7% 50px}.build-with .build-heading{margin-bottom:18px}#contact{padding-top:55px}}@media (prefers-reduced-motion:reduce){.practice-chapter *{transition:none!important}}.motion-paused .practice-chapter *{transition:none!important}.carousel-controls{justify-content:flex-start;gap:30px}.practice-chapter .capabilities{padding:85px 7% 95px;display:block}.practice-chapter .approach{background:#fff;border-top:1px solid #d4d9d4;padding:75px 7% 70px;display:block}.practice-chapter .approach-title{grid-template-columns:1fr 1fr;gap:8%;display:grid}.practice-chapter .approach-title h2{font-size:clamp(28px,2.65vw,38px);line-height:1.5}.approach-intro{color:#555f57;margin:22px 0 55px 54%;font-size:16px;line-height:1.85}@media (width<=700px){.practice-chapter .capabilities{padding:55px 7% 65px}.practice-chapter .approach{padding:55px 7% 40px}.practice-chapter .approach-title{display:block}.practice-chapter .approach-title .eyebrow{margin-bottom:24px}.practice-chapter .approach-title h2{font-size:27px}.approach-intro{margin:20px 0 38px;font-size:14px}}.practice-chapter #services{background:#fff;grid-template-columns:24% minmax(0,1fr);gap:5%;padding:95px 7% 90px;display:grid}#services .service-anchor h2{letter-spacing:-.045em;margin:0;font-size:clamp(38px,4vw,58px);font-weight:400;line-height:1.14}#services .service-content{min-width:0}#services .service-introduction{letter-spacing:-.03em;color:#252825;margin:0 0 58px;font-size:clamp(24px,2.5vw,34px);line-height:1.25}#services .service-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8%;margin:0;display:grid}#services .service-grid>div{min-width:0}#services .service-grid dt{letter-spacing:-.04em;margin:0 0 24px;font-size:clamp(30px,3.2vw,46px);font-weight:400;line-height:1.15}#services .service-grid dd{color:#424742;letter-spacing:-.015em;margin:0;font-size:15px;line-height:1.45}#services .service-grid dd p{max-width:22ch;margin:0 0 18px}#services .service-grid dd p:last-child{margin-bottom:0}@media (width<=1100px){.practice-chapter #services{grid-template-columns:1fr;gap:32px;padding-top:65px;padding-bottom:65px}#services .service-anchor h2 br{display:none}#services .service-anchor h2{font-size:38px}#services .service-introduction{margin-bottom:40px;font-size:26px}#services .service-grid dt{font-size:36px}}@media (width<=600px){.practice-chapter #services{gap:28px;padding:55px 7% 60px}#services .service-anchor h2{font-size:36px}#services .service-introduction{margin-bottom:36px;font-size:24px}#services .service-grid{grid-template-columns:1fr;gap:32px}#services .service-grid dt{margin-bottom:12px;font-size:34px}#services .service-grid dd{font-size:15px}#services .service-grid dd p{max-width:29ch;margin-bottom:12px}}#services .service-shape{aspect-ratio:200/116;pointer-events:none;width:236px;max-width:100%;height:auto;margin:4px 0 18px;display:block;overflow:visible}#services .service-shape path,#services .service-shape line,#services .service-shape circle,#services .service-shape rect,#services .service-shape polygon{fill:none;stroke-linecap:round;stroke-linejoin:round}#services .service-shape .ql-guide{stroke:#272a282b;stroke-width:.75px;stroke-dasharray:1.6 2.8}#services .service-shape .ql-tick{stroke:#272a283d;stroke-width:.75px}#services .service-shape .ql-base{stroke:#272a2842;stroke-width:.82px}#services .service-shape .ql-glass{fill:#3f00ff0a;stroke:#3f00ff52;stroke-width:.85px}#services .service-shape .ql-optic{stroke:#252825;stroke-width:.95px}#services .service-shape .ql-ray{stroke:#3f00ff;stroke-width:.82px}#services .service-shape .ql-primary{stroke:#3f00ff;stroke-width:1.18px}#services .service-shape .ql-focus{stroke:#3f00ff;stroke-width:.85px;stroke-dasharray:1.8 2.2}#services .service-shape .ql-halo{fill:#3f00ff12;stroke:none}#services .service-shape .ql-dot{fill:#272a2857;stroke:none}#services .service-shape .ql-node{fill:#3f00ff;stroke:none}#services .service-shape .ql-node-hollow{fill:#fff;stroke:#3f00ff;stroke-width:1.05px}@media (width<=600px){#services .service-shape{width:176px;height:auto;margin-bottom:12px}}#approach.approach-cards{background:#fff;border-top:0;min-height:0;margin:0;padding:0;display:block;position:relative}.approach-sticky{flex-direction:column;justify-content:center;height:100svh;padding:0;display:flex;position:sticky;top:0;overflow:hidden}.approach-head{justify-content:space-between;align-items:flex-end;gap:40px;padding:0 7% 34px;display:flex}.approach-title h2{letter-spacing:-.035em;margin:0;font-size:clamp(30px,3.1vw,46px);font-weight:400;line-height:1.1}.process-lead{color:#555f57;margin:18px 0 0;font-size:14px;line-height:1.7}.approach-intro{color:#555f57;max-width:26em;margin:0 0 4px;font-size:13px;line-height:1.8}.process-meter{align-items:center;gap:22px;padding:26px 7% 0;display:flex}.process-line{background:#e2e5e1;flex:1;height:1px;position:relative;overflow:hidden}.process-line span{transform-origin:0;background:#111;transition:transform .18s ease-out;position:absolute;inset:0;transform:scaleX(.125)}.process-counter{letter-spacing:.08em;color:#6b746d;font-variant-numeric:tabular-nums;margin:0;font-size:11px}.process-nav{align-items:center;gap:8px;display:inline-flex}.process-nav button{min-width:34px;min-height:34px;font:inherit;cursor:pointer;background:0 0;border:1px solid #272a282e;border-radius:999px;justify-content:center;align-items:center;padding:0 6px;font-size:12px;line-height:1;transition:border-color .2s,background .2s,color .2s,opacity .2s;display:inline-flex}.process-nav button:before,.process-nav button:after{display:none}.process-nav button:hover:not(:disabled),.process-nav button:focus-visible:not(:disabled){background:#3f00ff0f;border-color:#3f00ff}.process-nav button:disabled{opacity:.28;cursor:default}.process-viewport{scrollbar-width:none;-webkit-overflow-scrolling:touch;overflow:auto hidden}.process-viewport:focus-visible{outline-offset:4px;outline:2px solid #3f00ff}.process-viewport::-webkit-scrollbar{display:none}.is-hijacked .process-viewport{margin-top:-36px;margin-bottom:-28px;padding-top:36px;padding-bottom:28px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0 4.2%,#000 6.8% 95%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0 4.2%,#000 6.8% 95%,#0000 100%)}.process-track{gap:28px;width:max-content;margin:0;padding:8px 7% 0;list-style:none;display:flex;position:relative}.process-card{--arc:0px;--tilt:0deg;--focus:1;width:min(380px,72vw);min-height:332px;transform:translate3d(0, var(--arc), 0) rotate(var(--tilt));transform-origin:50%;will-change:transform;cursor:pointer;background:#fff;border:1px solid #e2e5e1;flex-direction:column;flex:none;padding:28px 32px 32px;transition:border-color .25s,box-shadow .25s;display:flex}.process-card.is-active{cursor:default;border-color:#3f00ff70;box-shadow:0 14px 34px -18px #1111221a}.card-top{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.card-index{letter-spacing:.1em;color:#6b746d;font-variant-numeric:tabular-nums;font-size:11px;transition:color .25s}.process-card.is-active .card-index{color:#3f00ff;font-weight:700}.card-phase{letter-spacing:.12em;text-transform:uppercase;color:#8d968f;font-size:9px;transition:color .25s}.process-card.is-active .card-phase{color:#3f00ff}.card-diagram{aspect-ratio:240/80;pointer-events:none;width:100%;height:auto;margin:22px 0 18px;display:block;overflow:visible}.card-diagram .dg-guide,.card-diagram .dg-base,.card-diagram .dg-scan,.card-diagram .dg-primary,.card-diagram .dg-focus{fill:none;stroke-linecap:round;stroke-linejoin:round}.card-diagram .dg-guide{stroke:#272a282e;stroke-width:.8px;stroke-dasharray:1.6 2.8}.card-diagram .dg-base{stroke:#272a2847;stroke-width:.85px}.card-diagram .dg-scan{stroke:#3f00ff;stroke-width:.8px;stroke-dasharray:1.8 2.2;opacity:.55}.card-diagram .dg-dot{fill:#272a2857}.card-diagram .dg-primary{stroke:#252825;stroke-width:1.05px;opacity:calc(.68 + .32 * var(--focus,1))}.card-diagram .dg-trace-base{opacity:.24}.card-diagram .dg-focus{stroke:#3f00ff;stroke-width:.85px;stroke-dasharray:1.6 2;opacity:calc(.28 + .58 * var(--focus,1));transform-box:fill-box;transform-origin:50%}.card-diagram .dg-node{fill:#252825}.card-diagram .dg-node-hollow{fill:#fff;stroke:#252825;stroke-width:.95px}.motion-ready .process-card{--card-stagger:0s;opacity:0;transition:opacity .86s cubic-bezier(.16, 1, .3, 1) var(--card-stagger), translate .86s cubic-bezier(.16, 1, .3, 1) var(--card-stagger), scale .86s cubic-bezier(.16, 1, .3, 1) var(--card-stagger), border-color .25s ease, box-shadow .25s ease;translate:0 46px;scale:.94}.motion-ready .process-card.is-entered{opacity:1;translate:0;scale:1}.motion-ready .process-card .card-top{opacity:0;transition:opacity .68s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + 90ms), transform .68s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + 90ms);transform:translateY(14px)}.motion-ready .process-card.is-entered .card-top{opacity:1;transform:none}.motion-ready .process-card .card-diagram{opacity:0;clip-path:inset(-20% 100% -20% -10%);transform-origin:0;transition:opacity .76s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .14s), clip-path .92s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .14s), transform .84s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .14s);transform:scale(.88)translateY(12px)}.motion-ready .process-card.is-entered .card-diagram{opacity:1;clip-path:inset(-20% -10%);transform:none}.motion-ready .process-card .card-diagram .dg-node,.motion-ready .process-card .card-diagram .dg-node-hollow{opacity:0;transform-box:fill-box;transform-origin:50%;transition:opacity .44s ease calc(var(--card-stagger) + .36s), scale .6s cubic-bezier(.34, 1.56, .64, 1) calc(var(--card-stagger) + .36s);scale:0}.motion-ready .process-card.is-entered .card-diagram .dg-node,.motion-ready .process-card.is-entered .card-diagram .dg-node-hollow{opacity:1;scale:1}.motion-ready .process-card h3{opacity:0;filter:blur(3px);transition:opacity .76s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .2s), transform .76s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .2s), filter .76s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .2s);transform:translateY(22px)}.motion-ready .process-card.is-entered h3{opacity:1;filter:blur();transform:none}.motion-ready .process-card p{opacity:0;filter:blur(2px);transition:opacity .76s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .3s), transform .76s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .3s), filter .76s cubic-bezier(.16, 1, .3, 1) calc(var(--card-stagger) + .3s);transform:translateY(20px)}.motion-ready .process-card.is-entered p{opacity:1;filter:blur();transform:none}.motion-fast .process-card,.motion-fast .process-card .card-top,.motion-fast .process-card .card-diagram,.motion-fast .process-card .card-diagram .dg-node,.motion-fast .process-card .card-diagram .dg-node-hollow,.motion-fast .process-card h3,.motion-fast .process-card p{transition-duration:1ms!important;transition-delay:0s!important}.card-diagram *{animation-play-state:paused}#approach.is-inview .card-diagram *{animation-play-state:running}.card-diagram .dg-pulse{animation:3.8s ease-in-out infinite dg-pulse}.card-diagram .dg-m-left{animation:4.8s cubic-bezier(.45,0,.55,1) infinite dg-meet-left}.card-diagram .dg-m-right{animation:4.8s cubic-bezier(.45,0,.55,1) infinite dg-meet-right}.card-diagram .dg-m-lens{transform-box:fill-box;transform-origin:50%;animation:4.8s cubic-bezier(.45,0,.55,1) infinite dg-lens}.card-diagram .dg-scan{animation:5.2s cubic-bezier(.45,0,.55,1) infinite dg-scan-sweep}.card-diagram .dg-flow{stroke-dasharray:34 66;animation:3.6s linear infinite dg-dash-flow}.card-diagram[data-step=research] .dg-dot:nth-of-type(odd){animation:3.4s ease-in-out infinite dg-dot-fade}.card-diagram[data-step=research] .dg-dot:nth-of-type(2n){animation:3.4s ease-in-out 1.7s infinite dg-dot-fade}.card-diagram .dg-draw{stroke-dasharray:100;animation:5.4s cubic-bezier(.4,0,.2,1) infinite dg-spiral-draw}.card-diagram .dg-fe-ring{transform-box:fill-box;transform-origin:50%;animation:4.4s ease-in-out infinite dg-fe-focus}.card-diagram .dg-fe-btn{transform-box:fill-box;transform-origin:0;animation:4.4s ease-in-out infinite dg-fe-press}.card-diagram .dg-packet{stroke-dasharray:22 78;animation:3.2s linear infinite dg-dash-flow}.card-diagram .dg-packet-alt{animation-delay:-1.6s}.card-diagram .dg-wave-sweep{stroke-dasharray:42 58;animation:3.8s cubic-bezier(.36,0,.64,1) infinite dg-dash-flow}.card-diagram .dg-ray{stroke-dasharray:38 62;animation:3.4s cubic-bezier(.25,.46,.45,.94) infinite dg-dash-flow}.card-diagram .dg-wavefront{transform-box:fill-box;transform-origin:0;animation:3.8s ease-out infinite dg-wavefront}.card-diagram .dg-wf-2{animation-delay:-1.9s}.card-diagram .dg-climb{stroke-dasharray:32 68;animation:4.4s linear infinite dg-dash-flow}@keyframes dg-pulse{0%,to{opacity:.32;transform:scale(.92)}50%{opacity:.88;transform:scale(1.14)}}@keyframes dg-meet-left{0%,to{transform:translate(-3px)}50%{transform:translate(3.5px)}}@keyframes dg-meet-right{0%,to{transform:translate(3px)}50%{transform:translate(-3.5px)}}@keyframes dg-lens{0%,to{opacity:.62;transform:scaleX(.86)}50%{opacity:1;transform:scaleX(1.12)}}@keyframes dg-scan-sweep{0%,to{opacity:.3;transform:translate(4px)}50%{opacity:.75;transform:translate(100px)}}@keyframes dg-dash-flow{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes dg-dot-fade{0%,to{opacity:.25}50%{opacity:.85}}@keyframes dg-spiral-draw{0%{stroke-dashoffset:100px;opacity:.4}45%,75%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-100px;opacity:.4}}@keyframes dg-fe-focus{0%,to{opacity:.35;transform:scale(.97)}50%{opacity:.9;transform:scale(1.03)}}@keyframes dg-fe-press{0%,to{transform:scaleX(1)}50%{transform:scaleX(1.16)}}@keyframes dg-wavefront{0%{opacity:.75;transform:translate(0)scale(.85)}to{opacity:0;transform:translate(38px)scale(1.45)}}.process-card h3{letter-spacing:-.03em;margin:0;font-size:27px;font-weight:400;line-height:1.15}.process-card p{color:#555f57;margin:auto 0 0;padding-top:16px;font-size:13.5px;line-height:1.9}@media (width<=800px),(height<=640px){#approach.approach-cards{height:auto!important}.approach-sticky{height:auto;padding:64px 0 0;position:static;overflow:visible}.approach-head{flex-direction:column;align-items:flex-start;gap:18px;padding:0 7% 24px}.process-meter{padding:0 7% 22px}.process-viewport{scroll-snap-type:x mandatory;padding-bottom:24px;overflow-x:auto}.process-track{gap:18px;padding:0 7%}.process-card{scroll-snap-align:start;width:min(380px,78vw);min-height:288px;padding:24px 24px 26px;transform:none}.card-diagram{margin:16px 0 14px}.process-card h3{margin-top:0;font-size:24px}}@media (width>=801px) and (width<=1200px){.process-card{width:320px;min-height:288px;padding:24px}.process-card h3{font-size:24px}}@media (prefers-reduced-motion:reduce){#approach.approach-cards{height:auto!important}.approach-sticky{height:auto;padding:72px 0 0;position:static;overflow:visible}.process-viewport{overflow:visible}.process-track{flex-direction:column;gap:16px;width:auto;padding:0 7% 64px}.process-card{cursor:default;width:100%;min-height:0;transform:none}.process-nav{display:none}.card-diagram{max-width:280px;margin:16px 0 12px}.card-diagram *{animation:none!important}.card-diagram .dg-trace-base{opacity:.9}.card-diagram .dg-flow,.card-diagram .dg-packet,.card-diagram .dg-wave-sweep,.card-diagram .dg-ray,.card-diagram .dg-climb{display:none}.card-diagram .dg-draw{stroke-dasharray:none}.motion-ready .process-card,.motion-ready .process-card .card-top,.motion-ready .process-card .card-diagram,.motion-ready .process-card .card-diagram .dg-node,.motion-ready .process-card .card-diagram .dg-node-hollow,.motion-ready .process-card h3,.motion-ready .process-card p{opacity:1!important;clip-path:none!important;filter:none!important;transition:none!important;transform:none!important}.process-card h3{margin-top:0}}.process-digit{vertical-align:bottom;height:1.05em;line-height:1.05;display:inline-block;overflow:hidden}.process-digit #process-current{will-change:transform;display:block}#contact.site-footer{color:#fff;text-align:center;background-color:#111;background-image:linear-gradient(320deg,#111 0%,#161622 75%);padding:0;position:relative}#contact .lf-content{width:1050px;max-width:100%;margin:0 auto;padding:96px 0}#contact .lf-heading{color:#999;letter-spacing:2px;margin:0;font-size:12px;font-weight:400}#contact .lf-rotator{margin:40px 0 32px;display:grid}#contact .lf-lead{opacity:0;grid-area:1/1;margin:0;font-size:28px;font-weight:700;line-height:1.2;transition:opacity .45s,transform .45s;transform:translateY(.4em)}#contact .lf-lead.is-active{opacity:1;transform:none}#contact .lf-cta{margin:0 0 16px}#contact .lf-button{color:#fff;letter-spacing:.01em;background-color:#111;border:1px solid #fff;border-radius:100px;padding:14px 40px;font-size:14px;font-weight:700;line-height:1;text-decoration:none;display:inline-block;position:relative}#contact .lf-button:after{content:">";margin-left:10px}#contact .lf-button:hover,#contact .lf-button:focus-visible{color:#111;background:#fff}#contact .lf-support{color:#a0a0a0;letter-spacing:1px;margin:0 0 64px;font-size:12px;line-height:1.8}#contact .lf-deadend{text-align:left;justify-content:space-between;align-items:center;gap:24px;padding:32px;font-size:12px;display:flex;position:relative}#contact .lf-other{gap:32px;margin:0;padding:0;list-style:none;display:flex}#contact .lf-other a,#contact .lf-copy a,#contact .lf-copy span{color:#999;transition:color .25s}#contact .lf-other a,#contact .lf-copy a{letter-spacing:.08em}#contact .lf-other a:hover,#contact .lf-other a:focus-visible,#contact .lf-copy a:hover,#contact .lf-copy a:focus-visible{color:#fff}#contact .lf-copy{align-items:center;gap:18px;margin:0;display:flex}#contact .lf-copy span{letter-spacing:2px;font-size:15px}#contact .lf-top{color:#fff;text-align:center;transform-origin:50%;border:1px solid #333;border-radius:150%;width:48px;height:48px;padding-top:10px;font-size:22px;line-height:1;display:block;position:absolute;bottom:96px;right:32px;transform:rotate(-90deg)}#contact .lf-top:hover,#contact .lf-top:focus-visible{color:#111;background:#fff}#contact a:focus-visible,#contact button:focus-visible{outline-offset:4px;outline:2px solid #fff}@media (width<=800px){#contact .lf-content{padding:80px 6%}#contact .lf-rotator{margin:32px 0 24px}#contact .lf-lead{font-size:20px;line-height:1.6}#contact .lf-deadend{flex-direction:column;align-items:flex-start;gap:16px;padding:24px 6% 32px}#contact .lf-other{gap:22px}#contact .lf-top{bottom:120px;right:6%}}#contact .lf-heading,#contact .lf-support,#contact .lf-other a,#contact .lf-copy a,#contact .lf-copy span,#contact .lf-top{color:#fff}#contact .lf-button{color:#3f00ff;background:#fff;border-color:#fff}#contact .lf-button:hover,#contact .lf-button:focus-visible{color:#fff;background:0 0;border-color:#fff}#contact .lf-other a:hover,#contact .lf-other a:focus-visible,#contact .lf-copy a:hover,#contact .lf-copy a:focus-visible{color:#fff;opacity:.72}#contact .lf-top:hover,#contact .lf-top:focus-visible{color:#3f00ff;opacity:1;background:#fff}#contact .lf-top{border-color:#ffffff80}#contact .lf-wordmark{width:min(1050px,92%);margin:20px auto 22px}#contact .lf-wordmark img{filter:brightness(0)invert();opacity:.96;width:100%;height:auto;display:block}@media (width<=1100px){#contact .lf-wordmark{width:min(860px,88%);margin:24px auto 8px}}@media (width<=800px){#contact .lf-content{padding:88px 7% 84px}#contact .lf-deadend{flex-wrap:wrap;gap:14px 20px;padding:26px 7%}}#contact .lf-deadend{z-index:2;padding:0 32px 20px;position:absolute;bottom:0;left:0;right:0}@media (width<=800px){#contact .lf-deadend{padding:16px 7% 20px}#contact .lf-top{display:none}}#contact.site-footer{overflow:hidden}#contact .lf-copy{margin-left:auto}#contact .lf-other,#contact .lf-copy{background:#3f00ff;border-radius:999px;padding:7px 13px}@media (width>=1101px){#contact .lf-wordmark{width:min(900px,100vw - 560px)}#contact .lf-other,#contact .lf-copy{background:0 0;padding:0}}#contact.site-footer{background-color:#0000;background-image:none}#contact.site-footer:before{content:"";z-index:-2;pointer-events:none;background:#3f00ff;position:absolute;inset:0}#contact .lf-content,#contact .lf-wordmark,#contact .lf-deadend{position:relative}#contact .lf-content,#contact .lf-wordmark{z-index:1}#contact .lf-deadend{z-index:2}#contact .lf-top{z-index:3}@media (width>=1101px){#contact .lf-deadend{padding:0 32px 48px;position:absolute;bottom:0;left:0;right:0}}@media (width<=1100px){#contact .lf-deadend{padding-bottom:56px}}.hero h1{white-space:normal;max-width:16ch}@media (width<=800px){.hero h1{max-width:none}}.build-with{width:100%;padding:72px 0 96px;display:block}.build-with .build-heading{margin:0 0 40px;padding:0 7%}.tool-marquee{width:100%;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 6% 94%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 6% 94%,#0000 100%)}.tool-track{width:max-content;animation:44s linear infinite tool-scroll;display:flex}.tool-track.is-offscreen,.tool-marquee:hover .tool-track,.tool-marquee:focus-within .tool-track{animation-play-state:paused}.tool-set{align-items:center;gap:72px;margin:0;padding:0 72px 0 0;list-style:none;display:flex}.tool-set li{flex:none}.tool-set a{justify-content:center;align-items:center;gap:12px;min-height:64px;padding:10px 0;display:flex}.tool-set img{object-fit:contain;opacity:.9;width:auto;max-width:190px;height:40px;transition:opacity .3s}.tool-set a:hover img,.tool-set a:focus-visible img{opacity:1}.tool-set .symbol img{height:34px}.tool-set .symbol span{letter-spacing:-.02em;font-size:22px;font-weight:700}.tool-set img[src$=logo-wordpress\.svg]{height:34px}.tool-set img[src$=logo-shopify\.svg]{max-width:150px;height:40px}.tool-set img[src$=logo-microcms\.svg]{max-width:160px;height:34px}.tool-set img[src$=logo-nextjs\.svg]{max-width:150px;height:30px}.tool-set img[src$=logo-astro\.svg]{max-width:120px;height:40px}.tool-set img[src$=logo-cloudflare\.svg]{max-width:128px;height:46px}.tool-set img[src$=logo-openai\.svg]{max-width:140px;height:34px}.tool-set img[src$=logo-claude\.svg],.tool-set img[src$=logo-gemini\.svg]{max-width:150px;height:36px}@keyframes tool-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (width<=800px){.build-with{padding:48px 0 64px}.build-with .build-heading{margin-bottom:26px}.tool-set{gap:44px;padding-right:44px}.tool-set a{min-height:52px}.tool-set img{max-width:130px;height:30px}.tool-set .symbol img{height:26px}.tool-set .symbol span{font-size:18px}.tool-set img[src$=logo-wordpress\.svg]{height:28px}.tool-set img[src$=logo-shopify\.svg]{max-width:120px;height:30px}.tool-set img[src$=logo-microcms\.svg]{max-width:120px;height:28px}.tool-set img[src$=logo-nextjs\.svg]{max-width:110px;height:24px}.tool-set img[src$=logo-astro\.svg]{max-width:90px;height:30px}.tool-set img[src$=logo-cloudflare\.svg]{max-width:100px;height:36px}.tool-set img[src$=logo-openai\.svg]{max-width:110px;height:28px}.tool-set img[src$=logo-claude\.svg],.tool-set img[src$=logo-gemini\.svg]{max-width:120px;height:30px}}@media (prefers-reduced-motion:reduce){.tool-track{flex-wrap:wrap;justify-content:center;width:100%;animation:none}.tool-set[aria-hidden=true]{display:none}.tool-set{flex-wrap:wrap;justify-content:center;gap:32px 48px;padding:0 7%}}:root a:focus-visible,:root button:focus-visible{outline-color:#3f00ff}:root #contact a:focus-visible,:root #contact button:focus-visible{outline-color:#fff}:root .field-link{color:#3f00ff}:root .field-link:hover,:root .field-link:focus-visible{color:#3f00ff;opacity:.7}:root .process-line span{background:#3f00ff}:root .process-counter{color:#6b746d}:root #services,:root #approach,:root .build-with{background:0 0}:root{--motion-hold:80ms;--motion-enter:.92s;--motion-exit:.46s;--motion-stagger:95ms;--motion-ease:cubic-bezier(.16, 1, .3, 1)}@media (width<=800px){:root{--motion-hold:50ms;--motion-stagger:65ms}}.motion-ready [data-motion]{opacity:0;clip-path:inset(-20% -20% 108%);filter:blur(4px);transition:opacity var(--motion-enter) var(--motion-ease), clip-path var(--motion-enter) var(--motion-ease), transform var(--motion-enter) var(--motion-ease), filter var(--motion-enter) var(--motion-ease);transition-delay:calc(var(--motion-hold) + var(--stagger,0s));pointer-events:none;transform:translateY(38px)}.motion-ready [data-motion][data-view=in]{opacity:1;clip-path:inset(-20%);filter:blur();pointer-events:auto;transition-duration:var(--motion-enter);transition-delay:calc(var(--motion-hold) + var(--stagger,0s));transform:none}.motion-ready [data-motion][data-view=above]{opacity:0;clip-path:inset(108% -20% -20%);filter:blur(3px);transition-duration:var(--motion-exit);transition-delay:var(--stagger,0s);transform:translateY(-26px)}.motion-ready [data-motion][data-view=below]{opacity:0;clip-path:inset(-20% -20% 108%);filter:blur(4px);transition-duration:var(--motion-exit);transition-delay:0s;transform:translateY(38px)}.motion-ready .section-kicker[data-motion]:before,.motion-ready .build-heading h2[data-motion]:before,.motion-ready .lf-heading[data-motion]:before{transform-origin:0;transition:transform .82s var(--motion-ease);transition-delay:calc(var(--motion-hold) + var(--stagger,0s));transform:scaleX(0)}.motion-ready .section-kicker[data-motion][data-view=in]:before,.motion-ready .build-heading h2[data-motion][data-view=in]:before,.motion-ready .lf-heading[data-motion][data-view=in]:before{transform:scaleX(1)}.motion-ready #services .service-grid>div[data-motion] .service-shape{opacity:0;transition:opacity .84s var(--motion-ease), transform .84s var(--motion-ease);transform:translateY(24px)scale(.82)}.motion-ready #services .service-grid>div[data-motion] dt>span:last-child,.motion-ready #services .service-grid>div[data-motion] dd{opacity:0;transition:opacity .82s var(--motion-ease), transform .82s var(--motion-ease);transform:translateY(22px)}.motion-ready #services .service-grid>div[data-motion][data-view=in] .service-shape{opacity:1;transition-delay:calc(var(--motion-hold) + var(--stagger,0s) + 80ms);transform:none}.motion-ready #services .service-grid>div[data-motion][data-view=in] dt>span:last-child{opacity:1;transition-delay:calc(var(--motion-hold) + var(--stagger,0s) + .18s);transform:none}.motion-ready #services .service-grid>div[data-motion][data-view=in] dd{opacity:1;transition-delay:calc(var(--motion-hold) + var(--stagger,0s) + .27s);transform:none}.motion-fast [data-motion]{transition-duration:1ms!important;transition-delay:0s!important}@media (prefers-reduced-motion:reduce){.motion-ready [data-motion],.motion-ready [data-motion][data-view],.motion-ready #services .service-grid>div[data-motion] .service-shape,.motion-ready #services .service-grid>div[data-motion] dt>span:last-child,.motion-ready #services .service-grid>div[data-motion] dd{opacity:1!important;clip-path:none!important;filter:none!important;transition:none!important;transform:none!important}}.motion-ready [data-motion].protect,.motion-ready [data-motion].clear-type,.motion-ready [data-motion].protect[data-view],.motion-ready [data-motion].clear-type[data-view]{transform:none!important}.hero .eyebrow{align-items:center;gap:12px;display:flex}.hero .eyebrow:before{content:"";transform-origin:0;background:#3f00ff;flex:none;width:24px;height:1px;display:block}.hero-word{vertical-align:bottom;margin-bottom:-.1em;padding-bottom:.1em;display:inline-block;overflow:clip}.hero-word>span{transform-origin:0 100%;display:inline-block}html[data-intro=opening] header,html[data-intro=opening] .hero-line>span,html[data-intro=opening] .hero-introduction{animation:none}html[data-intro=opening] header .logo{animation:intro-drop-in .92s var(--motion-ease) 40ms both}html[data-intro=opening] header nav a{animation:intro-drop-in .88s var(--motion-ease) both}html[data-intro=opening] header nav a:first-child{animation-delay:.1s}html[data-intro=opening] header nav a:nth-child(2){animation-delay:.165s}html[data-intro=opening] header nav a:nth-child(3){animation-delay:.23s}html[data-intro=opening] header nav a:nth-child(4){animation-delay:.295s}html[data-intro=opening] .hero .eyebrow{animation:intro-eyebrow-in .96s var(--motion-ease) .12s both}html[data-intro=opening] .hero .eyebrow:before{animation:intro-line-draw .88s var(--motion-ease) .16s both}html[data-intro=opening] .hero-word>span{animation:intro-word-rise 1.24s var(--motion-ease) both}html[data-intro=opening] .hero-word:first-child>span{animation-delay:.15s}html[data-intro=opening] .hero-word:nth-child(2)>span{animation-delay:.27s}html[data-intro=opening] .hero-word:nth-child(3)>span{animation-delay:.39s}html[data-intro=opening] .hero-word:nth-child(4)>span{animation-delay:.51s}html[data-intro=opening] .hero-introduction>p:first-child{animation:intro-copy-rise 1.06s var(--motion-ease) .58s both}html[data-intro=opening] .hero-introduction .statement{animation:intro-copy-rise 1.06s var(--motion-ease) .72s both}html[data-intro=opening] .hero .service-link{animation:intro-cta-rise 1.04s var(--motion-ease) .84s both}html[data-intro=opening] .hero .service-link span{animation:.92s cubic-bezier(.22,1.35,.36,1) .98s both intro-cta-arrow}html[data-intro=opening] .hero-rail .rail-scroll{animation:intro-copy-rise .96s var(--motion-ease) .96s both}@keyframes intro-line-draw{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes intro-drop-in{0%{opacity:0;filter:blur(4px);transform:translateY(-16px)}to{opacity:1;filter:blur();transform:none}}@keyframes intro-eyebrow-in{0%{opacity:0;filter:blur(3px);transform:translate(-12px)}to{opacity:1;filter:blur();transform:none}}@keyframes intro-word-rise{0%{opacity:0;filter:blur(6px);transform:translateY(112%)rotate(2.4deg)}32%{opacity:1}to{opacity:1;filter:blur();transform:translate(0,0)rotate(0)}}@keyframes intro-copy-rise{0%{opacity:0;filter:blur(4px);transform:translateY(28px)}to{opacity:1;filter:blur();transform:none}}@keyframes intro-cta-rise{0%{opacity:0;filter:blur(3px);transform:translateY(22px)scale(.96)}to{opacity:1;filter:blur();transform:none}}@keyframes intro-cta-arrow{0%{opacity:0;transform:translate(-7px,-7px)scale(.55)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html[data-intro=opening] header .logo,html[data-intro=opening] header nav a,html[data-intro=opening] .hero .eyebrow,html[data-intro=opening] .hero .eyebrow:before,html[data-intro=opening] .hero-word>span,html[data-intro=opening] .hero-introduction>p:first-child,html[data-intro=opening] .hero-introduction .statement,html[data-intro=opening] .hero .service-link,html[data-intro=opening] .hero .service-link span,html[data-intro=opening] .hero-rail .rail-scroll{filter:none!important;opacity:1!important;transition:none!important;animation:none!important;transform:none!important}}.motion-paused .hero-word>span,.motion-paused .hero .eyebrow,.motion-paused .hero-introduction>p:first-child,.motion-paused .hero-introduction .statement,.motion-paused .hero .service-link,.motion-paused .hero .service-link span{filter:none!important;opacity:1!important;animation:none!important;transform:none!important}.section-kicker{letter-spacing:.14em;text-transform:uppercase;color:currentColor;align-items:center;gap:10px;margin:0 0 22px;font-size:10px;font-weight:700;line-height:1.4;display:flex}.section-kicker:before{content:"";opacity:.4;background:currentColor;flex:none;width:26px;height:1px}.kicker-index{font-variant-numeric:tabular-nums;letter-spacing:.06em;opacity:.45}.work-count{letter-spacing:.1em;text-transform:uppercase;font-variant-numeric:tabular-nums;align-items:baseline;gap:10px;font-size:10px;display:inline-flex}.work-count>span:first-child{opacity:.45}.build-heading .eyebrow{align-items:center;gap:10px;display:flex}.build-heading .eyebrow:before{content:"";opacity:.4;background:currentColor;flex:none;width:26px;height:1px;display:block}.lf-heading{align-items:center;gap:10px;display:inline-flex}.lf-heading:before{content:"";opacity:.4;background:currentColor;flex:none;width:26px;height:1px}.hero h1{letter-spacing:-.05em;line-height:1.04}#project-title{letter-spacing:-.045em;text-wrap:balance;font-size:clamp(34px,3.6vw,50px);line-height:1.03}.practice-chapter .approach-title h2,#approach .approach-title h2{letter-spacing:-.045em;text-wrap:balance;line-height:1.1}#services .service-anchor h2{text-wrap:balance}.process-card h3{letter-spacing:-.02em}.eyebrow,.section-kicker,.process-counter,.card-index,.card-phase,#project-number,.lf-heading{font-variant-numeric:tabular-nums}.process-lead,.approach-intro{text-wrap:pretty}#services .service-grid dd{line-height:1.6}#services .service-grid>div{border-top:1px solid #272a2829;padding-top:18px}.field-link span{transition:transform .45s cubic-bezier(.22,.61,.36,1);display:inline-block}.field-link:hover span,.field-link:focus-visible span{transform:translate(3px,3px)}.field-link[aria-pressed=true] span{transform:none}@media (width<=800px){.hero h1{letter-spacing:-.045em;line-height:1.06}#project-title{font-size:30px;line-height:1.06}.practice-chapter .approach-title h2,#approach .approach-title h2{line-height:1.14}}.section-top .section-kicker,.section-top .work-count{margin:0}.work-count>span:last-child{opacity:.75}#services>.section-kicker-wide{grid-column:1/-1;margin:0 0 26px}.approach-title>.section-kicker{grid-column:1/-1;margin:0 0 16px}.hero .eyebrow{letter-spacing:.12em;font-size:10px}.hero-introduction>p{font-size:16px;line-height:1.75}.hero-introduction .statement{margin-top:20px;font-size:13px;line-height:1.6}.hero .service-link{margin-top:20px;font-size:13px}@media (width<=800px){.hero .eyebrow{letter-spacing:.1em;font-size:9px}.hero-introduction>p{font-size:14px;line-height:1.7}.hero-introduction .statement{margin-top:20px;font-size:12px;line-height:1.6}.hero .service-link{margin-top:18px;font-size:12px}}.hero h1{text-transform:uppercase;letter-spacing:-.04em}@media (width>=801px){.hero{padding-top:clamp(48px,7vh,120px)}.hero-copy{max-width:1140px}.hero h1{letter-spacing:-.045em;max-width:none;font-size:clamp(80px,8.4vw,116px)}}#field:after{content:"";opacity:0;pointer-events:none;background-image:repeating-linear-gradient(90deg,#272a280d 0 1px,#0000 1px 6px);transition:opacity .7s;position:absolute;inset:0}html:not(.field-past-hero) #field:after{opacity:.6}#field canvas{opacity:0;transition:opacity .8s,filter .45s}html.field-ready #field canvas{opacity:1}@media (prefers-reduced-motion:reduce){#field canvas{transition:none}}@media (width>=801px){html:not(.field-past-hero) #field canvas{filter:none}}.skip-link{z-index:10000;color:#fff;letter-spacing:.02em;background:#111;border-radius:3px;padding:10px 16px;font-size:12px;transition:top .2s;position:fixed;top:-64px;left:16px}.skip-link:focus{top:12px}#toggle-autoplay{letter-spacing:.08em;text-transform:uppercase;margin-left:16px;font-size:11px}#toggle-autoplay[aria-pressed=true]{color:#3f00ff}.logo{align-items:flex-end;gap:2px;display:inline-flex;position:relative}.logo-mark{display:inline-block}.logo img{width:136px;height:auto}@media (width<=800px){.logo img{width:108px}}header nav a{line-height:12px}.hero-rail{display:none}:root .hero{min-height:calc(100svh - 76px)}:root .hero-rail{z-index:2;color:#3f00ff;will-change:opacity, transform;border-top:0;justify-content:flex-end;align-items:flex-end;padding:0;transition:opacity .28s,transform .28s;display:flex;position:absolute;bottom:36px;left:auto;right:32px}:root .rail-scroll{color:#3f00ff;cursor:pointer;justify-content:flex-end;align-items:stretch;gap:0;min-width:40px;min-height:54px;padding:0;text-decoration:none;display:inline-flex}:root .rail-plumb{flex:none;width:9px;height:54px;display:block;position:relative}:root .rail-plumb:before{content:"";background:#3f00ff6b;width:7px;height:1px;transition:background-color .26s;position:absolute;top:0;left:1px}:root .rail-plumb:after{content:"";background:#3f00ff;border-radius:50%;width:3.5px;height:3.5px;transition:transform .32s cubic-bezier(.16,1,.3,1),box-shadow .32s;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 0 3px #3f00ff24}:root .rail-pulse{background:#3f00ff33;width:1px;transition:background-color .26s;display:block;position:absolute;top:1px;bottom:4px;left:4px;overflow:hidden}:root .rail-pulse:before{content:"";will-change:transform, opacity;background:linear-gradient(#3f00ff00 0%,#3f00ff 55% 100%);width:100%;height:46%;animation:2.2s cubic-bezier(.65,0,.35,1) infinite rail-plumb-drop;position:absolute;top:0;left:0}@keyframes rail-plumb-drop{0%{opacity:0;transform:translateY(-115%)}18%{opacity:1}78%{opacity:1}to{opacity:0;transform:translateY(235%)}}:root .rail-scroll:hover .rail-plumb:before,:root .rail-scroll:focus-visible .rail-plumb:before{background:#3f00ff}:root .rail-scroll:hover .rail-pulse,:root .rail-scroll:focus-visible .rail-pulse{background:#3f00ff6b}:root .rail-scroll:hover .rail-plumb:after,:root .rail-scroll:focus-visible .rail-plumb:after{transform:translate(-50%)scale(1.35);box-shadow:0 0 0 5px #3f00ff38}:root .hero .service-link{letter-spacing:0;color:#3f00ff;background:0 0;border:1px solid #3f00ff66;border-radius:999px;align-items:center;gap:14px;min-height:44px;margin-top:22px;padding:0 8px 0 22px;font-size:13px;transition:background .3s,color .3s,border-color .3s;display:inline-flex}:root .hero .service-link:before,:root .hero .service-link:after{display:none}:root .hero .service-link span{color:#fff;background:#3f00ff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:11px;line-height:1;transition:background .3s,color .3s;display:inline-flex}:root .hero .service-link:hover,:root .hero .service-link:focus-visible{color:#fff;opacity:1;background:#3f00ff;border-color:#3f00ff}:root .hero .service-link:hover span,:root .hero .service-link:focus-visible span{color:#3f00ff;background:#fff;transform:none}:root .hero-introduction{max-width:640px}:root .hero-introduction .statement{letter-spacing:.01em;text-transform:none;color:#272a28ad;max-width:none;font-size:13px;line-height:1.75}:root .hero-introduction .statement:lang(ja){letter-spacing:.04em;text-transform:none;max-width:none;font-size:12.5px;line-height:1.85}@media (width>=801px){:root header nav{letter-spacing:.12em;font-size:11px}}@media (width<=800px){:root header nav a.field-link{align-items:center;min-height:44px;display:inline-flex}:root header nav a.field-link:nth-child(2),:root .hero-rail{display:none}}:root .project-scene{z-index:1;position:relative}:root .project-image{position:relative}:root .project-image:before,:root .project-image:after{content:"";aspect-ratio:1920/1024;z-index:1;pointer-events:none;transition:opacity .54s cubic-bezier(.16,1,.3,1);position:absolute;top:0;left:0;right:0}:root .project-image:before{opacity:1;background:linear-gradient(90deg,#ffffffe6 0%,#ffffff85 34%,#fff0 58%)}:root .project-image:after{opacity:0;background:linear-gradient(90deg,#000000b8 0%,#0006 38%,#0000 66%)}:root #work[data-photo-ready=true][data-image-tone=dark] .project-image:before{opacity:0}:root #work[data-photo-ready=true][data-image-tone=dark] .project-image:after{opacity:1}:root .project-scene>*{z-index:1;position:relative}:root .project-scene .section-top,:root .project-scene .project-heading,:root .project-scene .carousel-controls{z-index:2}:root .project-image figcaption{padding-top:12px}:root #contact .lf-button{min-height:48px}@media (prefers-reduced-motion:reduce){:root .rail-pulse:before{opacity:.65;height:100%;animation:none;transform:none}}.service-num{display:none}:root .service-num{letter-spacing:.14em;color:#3f00ff;font-variant-numeric:tabular-nums;margin-bottom:10px;font-size:10px;line-height:1;display:block}:root #field canvas,html:not(.field-past-hero):root #field canvas{filter:none}:root .hero .service-link:hover span,:root .hero .service-link:focus-visible span{transform:translate(2px)}:root #contact .lf-content{padding:112px 0 104px}:root #contact .lf-lead{letter-spacing:-.02em;font-size:clamp(28px,3.1vw,44px);line-height:1.22}:root #contact .lf-button{justify-content:center;align-items:center;min-height:52px;padding:0 30px;display:inline-flex}:root .project-image img{transition:opacity .35s}:root .tool-set img{filter:grayscale();opacity:.7;transition:filter .3s,opacity .3s}:root .tool-set a:hover img,:root .tool-set a:focus-visible img{filter:none;opacity:1}@media (width<=800px){:root .project-image:before,:root .project-image:after{display:none}}:root .reconstruction{min-height:100svh}:root .work{padding-bottom:64px}:root #services .service-introduction{letter-spacing:-.02em;font-size:clamp(19px,1.75vw,24px);line-height:1.5}:root #services .service-introduction:lang(ja){letter-spacing:-.01em;font-size:clamp(18px,1.65vw,22px);line-height:1.68}:root #services .service-grid>div{border-top:0}:root #services .service-grid dd p:first-child{letter-spacing:.04em;color:#687169;max-width:none;margin-bottom:10px;font-size:12px;line-height:1.5}:root #services .service-grid dd p:last-child{color:#272a28;max-width:28ch}:root #services .service-grid dd p:last-child:lang(ja){max-width:none;line-height:1.72}:root .project-image figcaption{letter-spacing:.12em;font-size:9.5px}:root.field-past-work #field canvas{opacity:.32}:root .process-card h3{color:#3f00ff}:root .card-diagram .dg-primary{stroke:#3f00ff}:root .card-diagram .dg-node{fill:#3f00ff}:root .card-diagram .dg-node-hollow{stroke:#3f00ff}:root #approach .approach-title h2{font-size:clamp(34px,3.1vw,46px)}:root .rail-scroll{color:inherit;text-decoration:none}:root .rail-scroll:focus-visible{outline-offset:4px;outline:2px solid #3f00ff}@media (width<=800px){:root #contact .lf-content{padding:80px 7% 76px}}:root .section-kicker{font-size:11px}:root .kicker-index,:root .eyebrow,:root .project-type{font-size:10.5px}:root .card-phase,:root .project-image figcaption{font-size:10px}:root .service-num,:root .work-count{font-size:10.5px}:root .process-card p,:root #contact .lf-support{font-size:13px}:root #contact .lf-other a,:root #contact .lf-copy a,:root #contact .lf-copy span{font-size:12.5px}@media (width<=800px){:root header nav{font-size:9.5px}:root .eyebrow{font-size:10px}:root #contact .lf-support{font-size:12.5px}}:root .section-kicker,:root .kicker-index,:root .eyebrow,:root .project-type,:root .card-phase,:root .card-index,:root .project-image figcaption,:root .service-num,:root .work-count,:root .hero-rail,:root #contact .lf-heading{font-size:11px}@media (width<=800px){:root header nav,:root .eyebrow{font-size:11px}}:root .project-scene .work-copy .eyebrow{font-size:11px}@media (width<=800px){:root header nav{gap:14px}:root header nav a.field-link{white-space:nowrap}:root header{padding-inline:5%}:root header .logo img{width:96px}}:root .service-shape{transform-origin:50%}:root #project-description{font-size:14px;line-height:1.65}@media (width<=380px){:root header .logo img{width:88px}:root header nav{gap:8px}}#services .service-engage{border-top:1px solid #272a2829;grid-template-columns:repeat(2,minmax(0,1fr));gap:8%;margin:56px 0 0;padding:32px 0 0;display:grid}#services .service-engage>div{min-width:0}#services .service-engage dt{letter-spacing:-.02em;color:#252825;flex-direction:column;gap:8px;margin:0 0 12px;font-size:18px;font-weight:700;line-height:1.3;display:flex}#services .service-engage .engage-kicker{letter-spacing:.14em;text-transform:uppercase;color:#3f00ff;font-size:11px;font-weight:700;line-height:1}#services .service-engage dd{color:#424742;max-width:38ch;margin:0;font-size:14px;line-height:1.65}.build-with .build-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 32px;display:flex}.build-with .build-lead{color:#555f57;margin:0;font-size:13px;line-height:1.6}#contact .lf-other{gap:22px}@media (width>=1101px){#contact .lf-wordmark{width:min(720px,100vw - 720px);margin:20px auto 22px}}@media (width<=1100px){#contact.site-footer{flex-direction:column;display:flex}#contact .lf-content{order:1}#contact .lf-wordmark{order:3;width:min(820px,88%);margin:28px auto 12px}#contact .lf-deadend{order:4;padding:16px 7% 28px;position:static}#contact .lf-other,#contact .lf-copy{background:0 0;padding:0}}@media (width<=700px){#services .service-engage{grid-template-columns:1fr;gap:28px;margin-top:40px;padding-top:26px}#services .service-engage dt{font-size:17px}.build-with .build-lead{font-size:12.5px}}@media (width>=1000px){:root .project-scene .project-heading,:root #work[data-image-tone=light] .project-scene .project-heading{padding-left:6%;transition:color .48s cubic-bezier(.16,1,.3,1)}}:root .project-heading.is-changing,:root .project-image figcaption.is-changing{opacity:1}:root #project-number{display:inline-block}:root .project-scene .project-description .project-type{letter-spacing:.12em;color:inherit;opacity:.72;margin:0 0 8px;font-weight:700;display:block}:root #work[data-switch-dir=next]{--switch-dir:1}:root #work[data-switch-dir=prev]{--switch-dir:-1}:root .project-frame{aspect-ratio:1920/1024;background:#141615;width:100%;transition:opacity .35s;position:relative;overflow:hidden}:root .project-photo-prev{z-index:1;opacity:0;pointer-events:none;will-change:transform, filter, opacity;background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;inset:0}:root .project-frame img{z-index:2;object-fit:cover;opacity:1;filter:saturate()contrast()brightness();will-change:opacity, transform, filter;width:100%;height:100%;display:block;position:absolute;inset:0;transform:translate(0,0)scale(1)}:root .project-image:before,:root .project-image:after{z-index:3}:root #work[data-switch-phase=prep] .project-photo-prev{opacity:1;filter:brightness()saturate();transform:translate(0,0)scale(1);transition:none!important}:root #work[data-switch-dir=next][data-switch-phase=prep] .project-frame img{filter:saturate(.22)contrast(1.06)brightness(1.03);transform:translate(3.2%)scale(1.068);opacity:0!important;transition:none!important}:root #work[data-switch-dir=prev][data-switch-phase=prep] .project-frame img{filter:saturate(.22)contrast(1.06)brightness(1.03);transform:translate(-3.2%)scale(1.068);opacity:0!important;transition:none!important}:root #work[data-switch-phase=active] .project-photo-prev{opacity:1;transform:translate3d(calc(var(--switch-dir,1) * -3.2%), 0, 0) scale(1.055);filter:brightness(.82)saturate(.68);transition:transform .92s cubic-bezier(.22,1,.36,1),filter .82s cubic-bezier(.22,1,.36,1)}:root #work[data-switch-phase=active] .project-frame img{filter:saturate()contrast()brightness();transition:opacity .62s cubic-bezier(.22,1,.36,1),transform .98s cubic-bezier(.16,1,.3,1),filter .92s cubic-bezier(.16,1,.3,1);transform:translate(0,0)scale(1);opacity:1!important}:root #work[data-copy-phase=out] #project-number,:root #work[data-copy-phase=out] #project-name,:root #work[data-copy-phase=out] #project-title,:root #work[data-copy-phase=out] #project-intent,:root #work[data-copy-phase=out] #project-type,:root #work[data-copy-phase=out] p#project-description,:root #work[data-copy-phase=out] #project-link,:root #work[data-copy-phase=out] #project-caption{opacity:0!important;clip-path:inset(-20%)!important;transform:translate3d(calc(var(--switch-dir,1) * -14px), 0, 0)!important;filter:none!important;transition:opacity .15s cubic-bezier(.4,0,.2,1),transform .16s cubic-bezier(.4,0,.2,1)!important}:root #work[data-copy-phase=in] #project-number,:root #work[data-copy-phase=in] #project-name,:root #work[data-copy-phase=in] #project-title,:root #work[data-copy-phase=in] #project-intent,:root #work[data-copy-phase=in] #project-type,:root #work[data-copy-phase=in] p#project-description,:root #work[data-copy-phase=in] #project-link,:root #work[data-copy-phase=in] #project-caption{opacity:0!important;clip-path:inset(-20%)!important;transform:translate3d(calc(var(--switch-dir,1) * 16px), 0, 0)!important;filter:none!important;transition:none!important}:root #work[data-copy-phase=settled] #project-number,:root #work[data-copy-phase=settled] #project-name,:root #work[data-copy-phase=settled] #project-title,:root #work[data-copy-phase=settled] #project-intent,:root #work[data-copy-phase=settled] #project-type,:root #work[data-copy-phase=settled] p#project-description,:root #work[data-copy-phase=settled] #project-link,:root #work[data-copy-phase=settled] #project-caption{opacity:1!important;clip-path:inset(-20%)!important;filter:none!important;transition:opacity .52s cubic-bezier(.16,1,.3,1),transform .56s cubic-bezier(.16,1,.3,1)!important;transform:translate(0,0)!important}:root #work[data-copy-phase=settled] #project-number,:root #work[data-copy-phase=settled] #project-name{transition-delay:0s!important}:root #work[data-copy-phase=settled] #project-title,:root #work[data-copy-phase=settled] #project-intent{transition-delay:50ms!important}:root #work[data-copy-phase=settled] #project-type,:root #work[data-copy-phase=settled] p#project-description{transition-delay:.1s!important}:root #work[data-copy-phase=settled] #project-link,:root #work[data-copy-phase=settled] #project-caption{transition-delay:.15s!important}:root #work .carousel-controls{align-items:center;gap:10px;display:inline-flex}:root #work #previous-project,:root #work #next-project{color:#272a28;background:#ffffffdb;border:1px solid #272a2833;border-radius:999px;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font-size:16px;line-height:1;transition:background .26s cubic-bezier(.16,1,.3,1),border-color .26s cubic-bezier(.16,1,.3,1),color .26s cubic-bezier(.16,1,.3,1),transform .26s cubic-bezier(.16,1,.3,1),box-shadow .26s cubic-bezier(.16,1,.3,1);display:inline-flex}:root #work #previous-project:before,:root #work #previous-project:after,:root #work #next-project:before,:root #work #next-project:after{display:none}:root #work #previous-project:hover,:root #work #previous-project:focus-visible{color:#fff;opacity:1;background:#3f00ff;border-color:#3f00ff;transform:translate(-2.5px)}:root #work #next-project:hover,:root #work #next-project:focus-visible{color:#fff;opacity:1;background:#3f00ff;border-color:#3f00ff;transform:translate(2.5px)}:root #work #previous-project:active,:root #work #previous-project.is-triggered{color:#fff;opacity:1;background:#3f00ff;border-color:#3f00ff;transform:translate(-5px)scale(.94)}:root #work #next-project:active,:root #work #next-project.is-triggered{color:#fff;opacity:1;background:#3f00ff;border-color:#3f00ff;transform:translate(5px)scale(.94)}:root #work #toggle-autoplay{margin-left:10px}:root{--site-blue:#3f00ff;--site-ink:#272a28;--site-ink-soft:#424742;--site-muted:#687169;--site-rule:#272a2824}@media (width>=801px){.menu-toggle,.mobile-menu{display:none!important}}#project-caption .caption-type{white-space:nowrap}@media (width<=999px),(width>=1000px) and (width<=1200px) and (height<=640px){:root .hero{padding-bottom:84px}:root .work{padding:56px 7% 64px}:root .work .reconstruction{padding:0;min-height:0!important}:root .work .project-scene{flex-direction:column;gap:20px;display:flex;position:relative;top:auto;min-height:0!important}:root .work .project-scene .section-top{width:100%;margin-bottom:0;padding-bottom:12px}:root .work .project-scene .project-heading{width:100%;color:var(--site-ink);margin-left:0;padding:0;display:block}:root .work .project-scene .project-heading h2{white-space:normal;margin:0;font-size:clamp(26px,6.8vw,38px);line-height:1.1;min-height:0!important}:root .work .project-scene .project-intent{margin-top:12px;font-size:clamp(16.5px,4.2vw,22px);line-height:1.45}:root .work .project-scene .project-description{text-wrap:balance;max-width:34ch;margin-top:14px;min-height:0!important}:root .work .project-scene .project-image{order:2;width:100%}:root .work .project-scene .carousel-controls{order:3;width:100%}:root .work #project-link{align-items:center;min-height:44px;margin-top:4px;display:inline-flex}}@media (width>=801px) and (width<=999px),(width>=1000px) and (width<=1200px) and (height<=640px){:root .work .project-scene .project-heading{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:end;gap:32px;display:grid}:root .work .project-scene .project-description{margin-top:0}}@media (width<=800px){:root header{z-index:60;backdrop-filter:blur(12px);background:#fbfbf9db;border-bottom:0;justify-content:space-between;align-items:center;padding:10px 7%;transition:background-color .28s;display:flex;position:fixed;top:0;left:0;right:0}:root header[data-scrolled=true]{background:#fbfbf9}html[data-menu-open=true]:root header{background:#3f00ff}:root header>nav{display:none!important}:root header .logo{z-index:62;align-items:center;min-height:44px;display:inline-flex;position:relative}:root header .logo img{transition:filter .26s}html[data-menu-open=true]:root header .logo img{filter:brightness(0)invert()}:root .menu-toggle{z-index:62;color:#272a28;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:10px;min-height:44px;padding:0 2px 0 12px;font-family:inherit;font-size:11px;font-weight:700;display:inline-flex;position:relative}:root .menu-toggle-label{color:#3f00ff;transition:color .24s}html[data-menu-open=true]:root .menu-toggle,html[data-menu-open=true]:root .menu-toggle-label{color:#fff}:root .menu-toggle-bars{width:22px;height:10px;display:inline-block;position:relative}:root .menu-toggle-bars i{transform-origin:50%;background:#272a28;height:1.5px;transition:top .32s cubic-bezier(.16,1,.3,1),transform .32s cubic-bezier(.16,1,.3,1),background-color .24s;position:absolute;left:0;right:0}:root .menu-toggle-bars i:first-child{top:1px}:root .menu-toggle-bars i:last-child{top:8px}html[data-menu-open=true] .menu-toggle-bars i:first-child{background:#fff;top:4.5px;transform:rotate(45deg)}html[data-menu-open=true] .menu-toggle-bars i:last-child{background:#fff;top:4.5px;transform:rotate(-45deg)}:root .mobile-menu{z-index:61;color:#fff;opacity:0;visibility:hidden;pointer-events:none;background-color:#3f00ff;background-image:repeating-linear-gradient(90deg,#ffffff0b 0 1px,#0000 1px 6px);flex-direction:column;justify-content:space-between;width:100%;height:100dvh;padding:82px 7% 28px;transition:opacity .34s cubic-bezier(.16,1,.3,1),transform .34s cubic-bezier(.16,1,.3,1),visibility 0s .34s;display:flex;position:fixed;inset:0;overflow-y:auto;transform:translateY(-10px)}html[data-menu-open=true] .mobile-menu{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s;transform:translate(0,0)}:root .mobile-menu-nav{flex-direction:column;justify-content:flex-start;align-items:stretch;gap:0;width:100%;display:flex}:root .mobile-menu-list{width:100%;margin:0;padding:0;list-style:none}:root .mobile-menu-list li{opacity:0;width:100%;transition:opacity .42s cubic-bezier(.16,1,.3,1),transform .42s cubic-bezier(.16,1,.3,1);transform:translateY(12px)}html[data-menu-open=true] .mobile-menu-list li{opacity:1;transform:translate(0,0)}html[data-menu-open=true] .mobile-menu-list li:first-child{transition-delay:40ms}html[data-menu-open=true] .mobile-menu-list li:nth-child(2){transition-delay:80ms}html[data-menu-open=true] .mobile-menu-list li:nth-child(3){transition-delay:.12s}html[data-menu-open=true] .mobile-menu-list li:nth-child(4){transition-delay:.16s}html[data-menu-open=true] .mobile-menu-list li:nth-child(5){transition-delay:.2s}:root .mobile-menu-list a{letter-spacing:normal;color:#fff;flex-direction:column;gap:8px;width:100%;padding:13px 0 15px;text-decoration:none;display:flex}:root .mm-spec{align-items:center;gap:10px;width:100%;display:flex}:root .mm-index{letter-spacing:.14em;color:#ffffffa3;font-variant-numeric:tabular-nums;font-size:10px;font-weight:700;transition:color .22s}:root .mm-rule{background:#fff3;flex:auto;height:1px;transition:background-color .24s;position:relative}:root .mm-rule:before{content:"";opacity:0;background:#fff;border-radius:50%;width:4px;height:4px;transition:opacity .24s,transform .24s cubic-bezier(.16,1,.3,1);position:absolute;top:-1.5px;left:0;transform:scale(.5)}:root .mm-sub{letter-spacing:.14em;text-transform:uppercase;color:#ffffffa3;white-space:nowrap;font-size:9.5px;font-weight:500;transition:color .22s}:root .mm-main{justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}:root .mm-title{letter-spacing:-.04em;color:#ffffffd1;white-space:nowrap;font-size:clamp(25px,7.2vw,31px);font-weight:400;line-height:1.04;transition:color .22s,transform .28s cubic-bezier(.16,1,.3,1)}:root .mm-dot{color:#ffffff73;transition:color .22s}:root .mm-arrow{color:#fff;border:1px solid #ffffff42;border-radius:50%;flex:none;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;transition:background-color .24s,border-color .24s,color .24s,transform .28s cubic-bezier(.16,1,.3,1);display:inline-flex}:root .mobile-menu-list a[aria-current=true] .mm-index,:root .mobile-menu-list a:hover .mm-index,:root .mobile-menu-list a:focus-visible .mm-index{color:#fff}:root .mobile-menu-list a[aria-current=true] .mm-rule,:root .mobile-menu-list a:hover .mm-rule,:root .mobile-menu-list a:focus-visible .mm-rule{background:#ffffff94}:root .mobile-menu-list a[aria-current=true] .mm-rule:before,:root .mobile-menu-list a:hover .mm-rule:before,:root .mobile-menu-list a:focus-visible .mm-rule:before{opacity:1;transform:scale(1)}:root .mobile-menu-list a[aria-current=true] .mm-title{color:#fff}:root .mobile-menu-list a:hover .mm-title,:root .mobile-menu-list a:focus-visible .mm-title{color:#fff;transform:translate(3px)}:root .mobile-menu-list a[aria-current=true] .mm-dot,:root .mobile-menu-list a:hover .mm-dot,:root .mobile-menu-list a:focus-visible .mm-dot,:root .mobile-menu-list a[aria-current=true] .mm-sub,:root .mobile-menu-list a:hover .mm-sub,:root .mobile-menu-list a:focus-visible .mm-sub{color:#fff}:root .mobile-menu-list a[aria-current=true] .mm-arrow,:root .mobile-menu-list a:hover .mm-arrow,:root .mobile-menu-list a:focus-visible .mm-arrow{color:#3f00ff;background:#fff;border-color:#fff;transform:translate(1px,1px)}:root .mobile-menu-foot{padding-top:20px}:root .mm-cta{color:#3f00ff;letter-spacing:.01em;background:#fff;border-radius:999px;justify-content:space-between;align-items:center;width:100%;min-height:52px;padding:0 10px 0 24px;font-size:14px;font-weight:700;text-decoration:none;display:flex}:root .mm-cta i{color:#fff;background:#3f00ff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;font-style:normal;display:inline-flex}:root .mm-meta{letter-spacing:.1em;text-transform:uppercase;color:#ffffff9e;justify-content:space-between;align-items:center;margin:16px 2px 0;font-size:10px;display:flex}:root .hero{flex-direction:column;justify-content:space-between;min-height:100svh;padding:96px 7% 26px;display:flex}:root .hero .eyebrow{letter-spacing:.1em;grid-template-columns:20px 1fr;align-items:start;gap:10px;margin:0 0 20px;font-size:10px;line-height:1.5;display:grid}:root .hero .eyebrow:before{width:20px;margin-top:.7em}:root .hero .eyebrow-body,:root .hero .eyebrow-lead{display:block}:root .hero .eyebrow-sep{display:none}:root .hero .eyebrow-loc{color:#424742;margin-top:2px;display:block}:root .hero h1{letter-spacing:-.04em;white-space:normal;margin:0 0 22px;font-size:clamp(34px,10vw,52px);line-height:1.06}:root .hero-introduction{max-width:100%!important}:root .hero-introduction>p:first-child{font-size:clamp(13px,3.8vw,15px);line-height:1.68;max-width:none!important}:root .hero-introduction .statement{letter-spacing:.01em;margin-top:16px;font-size:clamp(11.5px,3.2vw,12.5px);line-height:1.72;max-width:none!important}:root .hero-introduction .statement:lang(ja){letter-spacing:.02em;line-height:1.78}:root .hero-introduction .statement br{display:none}:root .hero .service-link{min-height:44px;margin-top:22px}:root .hero-rail{justify-content:flex-end;align-items:flex-end;width:100%;margin-top:20px;padding:0;position:relative;bottom:auto;left:auto;right:auto;display:flex!important}:root .rail-scroll{gap:0;min-height:48px}:root .rail-plumb{height:48px}:root .work{padding:48px 7% 52px}:root .work .reconstruction{padding:0}:root .work .project-frame{aspect-ratio:16/10}:root .work .project-image figcaption{margin-top:10px;padding-top:10px;font-size:10.5px;line-height:1.5}:root #services{gap:12px;padding:56px 7% 64px}:root #services>.section-kicker-wide{margin:0 0 8px}:root #services .service-anchor h2{margin:0;font-size:clamp(34px,9.2vw,42px)}:root #services .service-introduction{max-width:none;margin:0 0 26px;font-size:clamp(16px,4.4vw,19px);line-height:1.65}:root #services .service-introduction br{display:none}:root #services .service-grid{flex-direction:column;gap:0;display:flex}:root #services .service-grid>div{border-top:1px solid #272a2824;padding:20px 0 24px}:root #services .service-grid dt{grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:end;gap:6px 16px;margin:0 0 12px;font-size:clamp(28px,7.8vw,34px);line-height:1.05;display:grid}:root #services .service-grid dt .service-num{grid-area:1/1;align-self:start;margin:0}:root #services .service-grid dt>span:not(.service-num){grid-area:2/1;align-self:end}:root #services .service-shape{grid-area:1/2/3;place-self:center end;width:148px;height:86px;margin:0}:root #services .service-grid dd{width:100%;margin:0}:root #services .service-grid dd p{letter-spacing:-.015em;text-wrap:balance;margin:0 0 6px;font-size:clamp(13.5px,3.82vw,14.5px);line-height:1.62;max-width:none!important}:root #services .service-grid dd p:last-child{color:#272a28;margin-bottom:0;font-weight:500}:root #services .service-engage{grid-template-columns:1fr;gap:24px;margin-top:6px;padding-top:24px}:root #services .service-engage dd{letter-spacing:-.01em;text-wrap:pretty;font-size:clamp(13.5px,3.82vw,14.5px);line-height:1.65;max-width:none!important}:root #approach .approach-sticky{padding:52px 0 0}:root #approach .approach-head{gap:12px;padding:0 7% 20px}:root #approach .process-lead{text-wrap:balance;max-width:32ch;margin-top:8px;font-size:14px;line-height:1.65}:root #approach .approach-intro{letter-spacing:.06em;text-transform:uppercase;color:#687169;margin:0;font-size:11px;line-height:1.6}:root #approach .approach-intro br{display:none}:root #approach .process-viewport{padding-bottom:18px;scroll-padding-left:7%;scroll-padding-right:7%}:root #approach .process-track{gap:14px;padding:0 7%}:root #approach .process-card{width:min(318px,82vw);min-height:264px;padding:22px 20px 24px}:root #approach .process-card p{text-wrap:balance;max-width:none;padding-top:12px;font-size:13px;line-height:1.68}:root #approach .process-meter{gap:14px;padding:4px 7% 24px}:root #approach .process-nav{gap:8px}:root #approach .process-nav button{width:44px;min-width:44px;height:44px;min-height:44px;font-size:15px}:root .build-with{padding:44px 0 56px}:root .build-with .build-heading .build-lead{text-wrap:balance;max-width:32ch;font-size:13.5px;line-height:1.65}:root .tool-marquee{-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 14% 86%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 14% 86%,#0000 100%)}:root #contact .lf-content{padding:64px 7% 44px}:root #contact .lf-rotator{min-height:2.7em}:root #contact .lf-lead{text-wrap:balance;max-width:none;margin-inline:auto;font-size:clamp(21px,5.8vw,26px);line-height:1.28}:root #contact .lf-lead br{display:none}:root #contact .lf-support{text-wrap:balance;max-width:30ch;margin-inline:auto;font-size:12.5px;line-height:1.68}:root #contact .lf-wordmark{width:86%;margin:24px auto 8px}:root #contact .lf-deadend{flex-direction:column;align-items:flex-start;gap:4px;padding:12px 7% 28px;display:flex}:root #contact .lf-other,:root #contact .lf-copy{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:2px 18px;width:100%;display:flex;margin:0!important}:root #contact .lf-other li,:root #contact .lf-copy a,:root #contact .lf-copy span{align-items:center;min-height:36px;display:inline-flex}}:root .lang-switch{letter-spacing:.12em;border-left:1px solid #272a282e;align-items:center;gap:8px;margin-left:-14px;padding-left:20px;font-size:11px;line-height:1;display:flex}:root .lang-option{color:#272a2873;padding:8px 0;transition:color .2s}:root .lang-option:hover,:root .lang-option:focus-visible{color:#3f00ff}:root .lang-option.is-current{color:#3f00ff;font-weight:700}:root .lang-sep{color:#272a2840}:root #project-name[lang=ja],:root #project-type[lang=ja],:root #project-caption [lang=ja]{letter-spacing:.06em}:root #project-intent[lang=ja]{letter-spacing:-.01em;line-height:1.45}:root #project-description[lang=ja]{letter-spacing:.01em;word-break:auto-phrase;line-break:strict;text-wrap:balance;max-width:none;line-height:1.8}@media (width<=800px){:root .lang-switch--mobile{border-top:1px solid #ffffff2e;border-left:0;justify-content:flex-end;margin:16px 2px 0;padding:14px 0 0}:root .lang-switch--mobile .lang-option{color:#ffffff80}:root .lang-switch--mobile .lang-option.is-current{color:#fff}:root .lang-switch--mobile .lang-sep{color:#ffffff4d}html[lang=ja]:root .work .project-scene .project-description{max-width:100%}}:root #project-type[lang=ja]{letter-spacing:.06em;font-size:11px}html.contact-visible:root #field canvas{opacity:.72}:where(p,dd)[lang=ja]{word-break:auto-phrase;line-break:strict;text-wrap:pretty}:root header{z-index:60;backdrop-filter:blur(12px);background:#fbfbf9e0;position:fixed;top:0;left:0;right:0}@media (width>=801px){body{padding-top:92px}html{scroll-padding-top:92px}}@media (width<=1100px){:root #contact .lf-deadend{padding-bottom:56px}}html.subpage-root{scroll-padding-top:0}.subpage-root,.subpage-root body{color:#272a28;background:#fff}.subpage-main{z-index:1;background:#fff;position:relative}.legal{background:#fff;grid-template-columns:26% minmax(0,1fr);gap:7%;padding:84px 7% 136px;display:grid}.legal-rail{min-width:0}.legal-rail-sticky{flex-direction:column;display:flex}@media (width>=1101px) and (height>=680px){.legal-rail-sticky:not(.is-unpinned){position:sticky;top:124px}}.legal-display{letter-spacing:-.048em;color:#272a28;margin:0;font-size:clamp(42px,4.4vw,64px);font-weight:400;line-height:1.04}.legal-toc{border-top:1px solid #272a2824;margin:32px 0 0;padding:16px 0 0}.legal-toc ol{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.legal-toc a{color:#272a287a;grid-template-columns:28px minmax(0,1fr);align-items:baseline;padding:4.5px 0;font-size:12px;line-height:1.4;text-decoration:none;transition:color .2s;display:grid}.legal-toc .toc-num{letter-spacing:.12em;font-variant-numeric:tabular-nums;color:#272a285c;font-size:10.5px;font-weight:700;transition:color .2s}.legal-toc .toc-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.legal-toc a:hover,.legal-toc a:focus-visible,.legal-toc a.is-active{color:#272a28}.legal-toc a:hover .toc-num,.legal-toc a:focus-visible .toc-num,.legal-toc a.is-active .toc-num{color:#3f00ff}.legal-colophon{border-top:1px solid #272a2824;flex-direction:column;gap:6px;margin:28px 0 0;padding:16px 0 0;display:flex}.legal-colophon p{letter-spacing:.12em;font-variant-numeric:tabular-nums;color:#272a287a;justify-content:space-between;gap:12px;margin:0;font-size:10px;line-height:1.5;display:flex}.legal-colophon p span:first-child{font-weight:700}.legal-back{letter-spacing:.12em;text-transform:uppercase;color:#3f00ff;align-self:flex-start;margin-top:12px;font-size:11px;font-weight:700}.legal-sheet{min-width:0;padding-top:38px}.legal-preamble{margin:0 0 48px}.legal-intro{letter-spacing:-.02em;color:#252825;text-wrap:pretty;max-width:48ch;margin:0;font-size:clamp(19px,1.85vw,25px);font-weight:400;line-height:1.58}.legal-clauses{margin:0;padding:0;list-style:none}.legal-clause{border-top:1px solid #272a2824;grid-template-columns:220px minmax(0,1fr);align-items:start;gap:20px 56px;padding:38px 0;scroll-margin-top:86px;display:grid}.legal-clause:last-child{border-bottom:1px solid #272a2824}.legal-clause-head{flex-direction:column;gap:8px;display:flex}.legal-clause-head .service-num{margin:0}.legal-clause-head h2{letter-spacing:-.015em;color:#252825;margin:0;font-size:17px;font-weight:500;line-height:1.45}.legal-clause-body{flex-direction:column;gap:16px;max-width:56ch;display:flex}.legal-clause-body p{color:#424742;text-wrap:pretty;margin:0;font-size:14.5px;line-height:1.85}.legal-spec-list{border-top:1px solid #272a281f;margin:8px 0 0;padding:0;list-style:none}.legal-spec-list li{color:#424742;border-bottom:1px solid #272a281a;grid-template-columns:32px minmax(0,1fr);align-items:baseline;gap:12px;padding:13px 0;font-size:14px;line-height:1.7;display:grid}.legal-spec-list .spec-idx{letter-spacing:.12em;font-variant-numeric:tabular-nums;color:#272a286b;font-size:10.5px;font-weight:700}.legal-desk{border-top:1px solid #272a2824;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 36px;margin:8px 0 0;padding:24px 0 0;display:grid}.legal-desk>div{min-width:0}.legal-desk dt{margin:0 0 8px}.legal-desk .engage-kicker{letter-spacing:.14em;text-transform:uppercase;color:#3f00ff;font-size:10.5px;font-weight:700;line-height:1;display:block}.legal-desk dd{margin:0}.legal-desk-studio{letter-spacing:-.015em;color:#252825;font-size:16px;font-weight:500;line-height:1.35}.legal-desk-links{flex-direction:column;align-items:flex-start;display:flex}.legal-desk-links a.field-link{color:#3f00ff;padding:2px 0 4px;font-size:14px;font-weight:500}.notfound{background:#fff;flex-direction:column;justify-content:space-between;min-height:calc(100svh - 92px);padding:48px 7% 96px;display:flex}.notfound-top{border-bottom:1px solid #272a2824;justify-content:space-between;align-items:center;gap:24px;padding-bottom:24px;display:flex}.notfound-top .eyebrow{margin:0}.notfound-diagram{flex:none;width:180px;height:60px}.notfound-diagram .dg-guide{stroke:#272a281f;stroke-width:1px}.notfound-diagram .dg-base{fill:none;stroke:#272a283d;stroke-width:1px;stroke-dasharray:2 3}.notfound-diagram .dg-primary{stroke:#3f00ff;stroke-width:1.25px}.notfound-diagram .dg-focus{fill:#3f00ff1f}.notfound-diagram .dg-node-hollow{fill:#fff;stroke:#3f00ff;stroke-width:1.4px}.notfound-main{grid-template-columns:1.15fr 1fr;align-items:end;gap:36px 8%;margin-top:auto;padding-top:72px;display:grid}.notfound-display{letter-spacing:-.05em;color:#272a28;margin:0;font-size:clamp(52px,7.2vw,108px);font-weight:400;line-height:.98}.notfound-body{flex-direction:column;align-items:flex-start;gap:10px;max-width:42ch;padding-bottom:6px;display:flex}.notfound-ja{color:#272a28;margin:0;font-size:15px;line-height:1.75}.notfound-en{letter-spacing:.04em;color:#272a2894;margin:0;font-size:12.5px;line-height:1.65}.notfound-cta{letter-spacing:0;color:#3f00ff;background:0 0;border:1px solid #3f00ff66;border-radius:999px;align-items:center;gap:14px;min-height:44px;margin-top:18px;padding:0 8px 0 22px;font-size:13px;transition:background .3s,color .3s,border-color .3s;display:inline-flex}.notfound-cta:before,.notfound-cta:after{display:none}.notfound-cta span{color:#fff;background:#3f00ff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;padding:0;font-size:11px;line-height:1;transition:background .3s,color .3s,transform .3s;display:inline-flex}.notfound-cta:hover,.notfound-cta:focus-visible{color:#fff;opacity:1;background:#3f00ff;border-color:#3f00ff}.notfound-cta:hover span,.notfound-cta:focus-visible span{color:#3f00ff;background:#fff;transform:translate(2px)}@media (width<=1100px){.legal{grid-template-columns:1fr;gap:44px;padding:72px 7% 96px}.legal-rail-sticky{position:static}.legal-toc,.legal-back{display:none}.legal-colophon{margin-top:22px;padding-top:14px}.legal-sheet{padding-top:0}.legal-clause{grid-template-columns:180px minmax(0,1fr);gap:16px 36px}}@media (width<=800px){.legal{gap:32px;padding:104px 7% 76px}.legal-display{font-size:clamp(40px,11vw,54px)}.legal-preamble{margin-bottom:36px}.legal-intro{font-size:17px;line-height:1.68}.legal-clause{grid-template-columns:1fr;gap:12px;padding:28px 0}.legal-desk{grid-template-columns:1fr;gap:22px}.notfound{min-height:calc(100svh - 68px);padding:100px 7% 64px}.notfound-diagram{display:none}.notfound-main{grid-template-columns:1fr;gap:24px;padding-top:40px}}
