html.mg{--mg-bg:#fafaf7;--mg-surface:#f3f2ed;--mg-line:#e8e7e1;--mg-line2:#dedcd5;--mg-ink:#121211;--mg-ink2:#47463f;--mg-mute:#6b6a63;--mg-faint:#a3a29b;--mg-ok:#2a7d52;--font-space-grotesk:var(--font-inter);--font-jetbrains-mono:var(--font-geist-mono);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--mg-bg);scrollbar-color:#1212112e transparent}html.mg ::-webkit-scrollbar-thumb{background:#1212112e}body.mg-body{background-color:var(--mg-bg);color:var(--mg-ink);font-family:var(--font-inter), system-ui, sans-serif;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");font-size:16px;line-height:normal}.mg a:focus-visible,.mg button:focus-visible{outline:1.5px solid var(--mg-ink);outline-offset:3px;border-radius:4px}.mg-mono{font-family:var(--font-geist-mono), ui-monospace, monospace;letter-spacing:.04em;font-size:11px}.mg-disp{font-family:var(--font-inter-tight), var(--font-inter), sans-serif}.mg-layout{grid-template-columns:400px minmax(0,1fr);max-width:1440px;margin:0 auto;display:grid}.mg-margin{flex-direction:column;height:100svh;padding:44px 44px 36px 56px;display:flex;position:sticky;top:0}.mg-margin:after{content:"";background:var(--mg-line);transform-origin:top;width:1px;position:absolute;top:0;bottom:0;right:-1px}.mg-who{flex-direction:column;gap:3px;display:flex}.mg-who b{letter-spacing:-.01em;font-size:15px;font-weight:500}.mg-who span{color:var(--mg-mute);font-size:13.5px}.mg-nav{flex-direction:column;align-items:flex-start;margin-top:64px;display:flex}.mg-nav a{color:var(--mg-mute);padding:5px 0;font-size:15px;transition:color .25s}.mg-nav a:hover,.mg-nav a[aria-current=true]{color:var(--mg-ink)}.mg-bottom{flex-direction:column;gap:18px;margin-top:auto;display:flex}.mg-mail{flex-direction:column;gap:8px;display:flex}.mg-mail .mg-mono{color:var(--mg-mute)}.mg-mail-row{align-items:center;gap:10px;display:flex}.mg-mail-row a,.mg-mail>a{color:var(--mg-ink2);font-size:14.5px;transition:color .2s}.mg-mail-row a:hover,.mg-mail>a:hover{color:var(--mg-ink)}.mg-mail .mg-btn{align-self:flex-start;margin-top:6px}.mg-margin .mg-who,.mg-margin .mg-bottom{opacity:0;visibility:hidden;transition:opacity .4s,transform .4s,visibility 0s .4s;transform:translateY(6px)}.mg-margin[data-past] .mg-who,.mg-margin[data-past]:not([data-contact]) .mg-bottom{opacity:1;visibility:visible;transition:opacity .4s,transform .4s;transform:none}.mg-links{color:var(--mg-ink2);gap:18px;font-size:13.5px;display:flex}.mg-links a{border-bottom:1px solid var(--mg-line2);padding-bottom:1px;transition:border-color .2s,color .2s}.mg-links a:hover{color:var(--mg-ink);border-color:var(--mg-ink)}.mg-copy-icon{width:30px;height:30px;color:var(--mg-ink2);cursor:pointer;background:#fff;border:1px solid #d4d2ca;border-radius:8px;place-items:center;transition:border-color .2s,color .2s;display:grid;position:relative}.mg-copy-icon:hover{border-color:var(--mg-faint);color:var(--mg-ink)}.mg-copy-icon svg,.mg-btn svg{fill:none;stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.mg-copy-icon .mg-tip{font-family:var(--font-geist-mono), monospace;color:var(--mg-ok);opacity:0;pointer-events:none;white-space:nowrap;font-size:11px;transition:opacity .2s,transform .2s;position:absolute;top:50%;left:calc(100% + 10px);transform:translate(-4px,-50%)}.mg-copy-icon[data-copied]{color:var(--mg-ok);border-color:#2f8a5b59}.mg-copy-icon[data-copied] .mg-tip{opacity:1;transform:translateY(-50%)}.mg-btn{background:var(--mg-ink);color:#fafaf7;cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-width:128px;height:42px;padding:0 16px;font-size:14px;transition:background .2s;display:inline-flex}.mg-btn:hover{background:#2a2a28}.mg-btn[data-copied]{background:var(--mg-ok)}.mg-content{padding:0 72px 0 64px}.mg-sec{padding:124px 0 40px}.mg-sec-h{color:var(--mg-mute);margin-bottom:44px;display:block}.mg-stmt{letter-spacing:-.035em;max-width:880px;font-size:clamp(36px,3.6vw,52px);font-weight:400;line-height:1.14}.mg-stmt em{color:var(--mg-mute);font-style:normal}.mg-para{color:var(--mg-ink2);max-width:570px;margin-top:28px;font-size:16.5px;font-weight:300;line-height:1.75}.mg-lbl{color:var(--mg-mute);margin-bottom:12px;display:block}.mg-xp{margin-top:72px}.mg-xr{border-top:1px solid var(--mg-line);grid-template-columns:210px 1fr;gap:32px;padding:22px 0;display:grid}.mg-xr:last-child{border-bottom:1px solid var(--mg-line)}.mg-xr h3{letter-spacing:-.01em;font-size:16px;font-weight:500}.mg-xr span{color:var(--mg-mute);font-size:13px}.mg-xr p{color:var(--mg-ink2);font-size:15.5px;line-height:1.6}.mg-facts{grid-template-columns:210px 1fr 1fr;gap:32px;margin-top:44px;display:grid}.mg-facts dd{font-size:15.5px}.mg-tools{grid-template-columns:210px 1fr;gap:32px;margin-top:36px;display:grid}.mg-tools .mg-lbl{margin:0}.mg-tools ul{color:var(--mg-ink2);flex-wrap:wrap;gap:8px;list-style:none;display:flex}.mg-tools li{border:1px solid var(--mg-line);background:#fff;border-radius:99px;padding:6px 12px;font-size:14px}.mg-proj{margin-bottom:128px;scroll-margin-top:48px}.mg-media{border:1px solid var(--mg-line);background:radial-gradient(70% 62% at 50% 46%, color-mix(in srgb, var(--accent) 15%, transparent), transparent 72%), var(--mg-surface);border-radius:22px;height:600px;position:relative;overflow:hidden}.mg-media:after{content:"";border-radius:inherit;pointer-events:none;position:absolute;inset:0;box-shadow:inset 0 1px #ffffffb3}.mg-app{transform-origin:50%;color:var(--photon);position:absolute;top:50%;left:50%;translate:-50% -50%}.mg-p-head{justify-content:space-between;align-items:baseline;gap:20px;margin-top:30px;display:flex}.mg-p-head h3{letter-spacing:-.045em;font-size:clamp(40px,4.4vw,64px);font-weight:500;line-height:1}.mg-p-head .mg-mono{color:var(--mg-mute)}.mg-p-line{color:var(--mg-ink2);max-width:620px;margin-top:8px;font-size:19px;line-height:1.5}.mg-pts{grid-template-columns:1fr 1fr;gap:12px;margin-top:34px;list-style:none;display:grid}.mg-pts li{border:1px solid var(--mg-line);color:var(--mg-ink2);background:#fff;border-radius:18px;padding:20px 22px 22px;font-size:14.5px;line-height:1.55}.mg-pts b{color:var(--mg-ink);margin-bottom:6px;font-size:15px;font-weight:500;display:block}.mg-p-foot{color:var(--mg-mute);justify-content:space-between;align-items:center;margin-top:22px;font-size:13.5px;display:flex}.mg-go{color:var(--mg-ink);border:1px solid var(--mg-line2);background:#fff9;border-radius:99px;align-items:center;gap:8px;padding:9px 14px 9px 16px;font-size:14px;transition:background .2s,border-color .2s;display:inline-flex}.mg-go:hover{border-color:var(--mg-faint);background:#fff}.mg-go i,.mg-xrow i{font-style:normal;transition:transform .25s,color .2s}.mg-go:hover i,.mg-xrow:hover i{transform:translate(2px,-2px)}.mg-more{margin-bottom:40px;scroll-margin-top:120px}.mg-xrow{border-top:1px solid var(--mg-line);grid-template-columns:210px 1fr 20px;align-items:baseline;gap:32px;padding:18px 0;display:grid}.mg-xrow:last-child{border-bottom:1px solid var(--mg-line)}.mg-xrow b{letter-spacing:-.01em;font-size:15.5px;font-weight:500}.mg-xrow span{color:var(--mg-ink2);font-size:15px;line-height:1.55}.mg-xrow i{color:var(--mg-faint);text-align:right}.mg-xrow:hover i{color:var(--mg-ink)}.mg-contact h2{letter-spacing:-.04em;font-size:clamp(54px,6.1vw,88px);font-weight:400;line-height:1}.mg-contact h2 a{color:var(--mg-mute);transition:color .25s}.mg-contact h2 a:hover{color:var(--mg-ink)}.mg-box{border:1px solid var(--mg-line2);background:#fff;border-radius:16px;align-items:center;gap:6px;margin-top:44px;padding:6px 6px 6px 22px;display:inline-flex;box-shadow:0 1px 2px #1212110a,0 18px 40px -28px #12121140}.mg-box .mg-addr{letter-spacing:-.01em;margin-right:14px;font-size:16.5px}.mg-foot{border-top:1px solid var(--mg-line);color:var(--mg-mute);justify-content:space-between;margin-top:140px;padding:22px 0 36px;display:flex}.mg-foot a:hover{color:var(--mg-ink)}@media (min-width:881px){.mg-cover{flex-direction:column;min-height:100svh;padding:46px 0 64px;display:flex}.mg-cover .mg-role{color:var(--mg-mute);font-size:14px}.mg-cover h1{letter-spacing:-.06em;margin-top:auto;margin-left:-.05em;font-size:clamp(72px,min(100vw,1440px)/4 - 134px,210px);font-weight:500;line-height:.86}.mg-acts{align-items:center;gap:32px;margin-top:48px;display:flex}.mg-acts .mg-btn{border-radius:14px;min-width:168px;height:50px;padding:0 22px;font-size:15px}.mg-acts .mg-links{gap:22px;font-size:14.5px}.mg-p-line{margin-top:14px}.mg-contact h2{text-wrap:balance}}.mg-bar,.mg-sheet{display:none}@media (max-width:880px){.mg-layout{grid-template-columns:minmax(0,1fr)}.mg-margin{display:none}.mg-content{padding:0 22px}.mg-bar{z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fafaf7d6;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;height:58px;padding:0 14px 0 22px;transition:border-color .3s;display:flex;position:sticky;top:0}.mg-bar .mg-id{opacity:0;align-items:baseline;gap:10px;transition:opacity .35s,transform .35s;display:flex;transform:translateY(5px)}.mg-bar .mg-id b{letter-spacing:-.01em;font-size:15px;font-weight:500}.mg-bar .mg-id .mg-mono{color:var(--mg-mute)}.mg-bar[data-past]{border-color:var(--mg-line)}.mg-bar[data-past] .mg-id{opacity:1;transform:none}.mg-pill{border:1px solid var(--mg-line2);cursor:pointer;background:#fff;border-radius:99px;align-items:center;gap:8px;height:38px;padding:0 15px;font-size:14px;display:inline-flex}.mg-bars{width:14px;height:8px;position:relative}.mg-bars:before,.mg-bars:after{content:"";background:currentColor;border-radius:1px;height:1.4px;position:absolute;left:0;right:0}.mg-bars:before{top:0}.mg-bars:after{bottom:0;right:4px}.mg-cover{flex-direction:column;min-height:calc(100svh - 58px);padding:6px 0 30px;display:flex}.mg-cover .mg-role{color:var(--mg-mute);font-size:14px}.mg-cover h1{letter-spacing:-.055em;margin-top:auto;font-size:clamp(56px,19.5vw,96px);font-weight:500;line-height:.9}.mg-acts{flex-direction:column;gap:18px;margin-top:34px;display:flex}.mg-acts .mg-btn,.mg-box .mg-btn{border-radius:16px;width:100%;height:54px;font-size:15px}.mg-acts .mg-links{justify-content:space-between;font-size:14px}.mg-sec{padding:64px 0 24px;scroll-margin-top:20px}.mg-sec-h{margin-bottom:26px}.mg-stmt{letter-spacing:-.028em;font-size:28px;line-height:1.22}.mg-para{margin-top:22px;font-size:16px}.mg-xp{margin-top:52px}.mg-xr{grid-template-columns:1fr;gap:8px;padding:18px 0}.mg-xr>div:first-child{justify-content:space-between;align-items:baseline;display:flex}.mg-xr p{font-size:15px}.mg-facts{grid-template-columns:1fr 1fr;gap:20px;margin-top:34px}.mg-facts>div:first-child{display:none}.mg-tools{grid-template-columns:1fr;gap:12px;margin-top:30px}.mg-tools ul{gap:7px}.mg-tools li{padding:6px 11px;font-size:13.5px}.mg-proj{margin-bottom:72px;scroll-margin-top:70px}.mg-media{border-left:0;border-right:0;border-radius:0;height:480px;margin:0 -22px}.mg-media:after{box-shadow:none}.mg-p-head{margin-top:24px}.mg-p-head h3{letter-spacing:-.035em;font-size:34px;line-height:normal}.mg-p-line{font-size:17px}.mg-pts{scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;margin:24px -22px 0;padding:0 22px 2px;scroll-padding:0 22px;display:flex;overflow-x:auto}.mg-pts::-webkit-scrollbar{display:none}.mg-pts li{scroll-snap-align:start;border:1px solid var(--mg-line);background:#fff;border-radius:18px;flex:0 0 78%;padding:18px 18px 20px}.mg-pts b{margin-bottom:6px}.mg-p-foot{border-top:0;flex-direction:column;align-items:stretch;gap:14px;margin-top:16px;padding-top:0}.mg-p-foot .mg-go{background:#fff;border-radius:14px;justify-content:center;height:48px}.mg-more{scroll-margin-top:80px}.mg-xrow{grid-template-columns:1fr 20px;gap:4px 16px;padding:16px 0}.mg-xrow span{grid-row:2;font-size:14.5px}.mg-contact h2{font-size:40px;line-height:1.05}.mg-box{border-radius:22px;flex-direction:column;align-items:stretch;gap:14px;width:100%;margin-top:32px;padding:20px 16px 16px;display:flex}.mg-box .mg-addr{margin:0 0 0 4px}.mg-foot{flex-direction:column;gap:10px;margin-top:72px}.mg-sheet{z-index:50;padding:0 22px max(30px, env(safe-area-inset-bottom));background:var(--mg-bg);opacity:0;visibility:hidden;flex-direction:column;transition:opacity .3s,transform .4s cubic-bezier(.2,.8,.2,1),visibility 0s .4s;display:flex;position:fixed;inset:0;transform:translateY(-8px)}.mg-sheet[data-open]{opacity:1;visibility:visible;transition:opacity .3s,transform .4s cubic-bezier(.2,.8,.2,1);transform:none}.mg-sheet-top{justify-content:space-between;align-items:center;height:58px;margin-right:-8px;display:flex}.mg-sheet-top b{font-size:15px;font-weight:500}.mg-sheet nav{flex-direction:column;align-items:flex-start;margin-top:auto;display:flex}.mg-sheet nav a{letter-spacing:-.045em;opacity:0;padding:4px 0;font-size:46px;line-height:1.12;transition:opacity .4s,transform .5s cubic-bezier(.2,.8,.2,1);transform:translateY(10px)}.mg-sheet[data-open] nav a{opacity:1;transform:none}.mg-sheet[data-open] nav a:nth-child(2){transition-delay:50ms}.mg-sheet[data-open] nav a:nth-child(3){transition-delay:.1s}.mg-sheet nav a[aria-current=true]{color:var(--mg-mute)}.mg-sheet .mg-bottom{border-top:1px solid var(--mg-line);margin-top:48px;padding-top:22px}}@media (prefers-reduced-motion:reduce){.mg-sheet,.mg-sheet nav a,.mg-bar .mg-id{transition:none}}.mg-ln{display:block}@media (prefers-reduced-motion:no-preference){.mg-cover .mg-ln{clip-path:inset(-.1em -.15em -.25em)}.mg-cover .mg-ln>span{animation:1.05s cubic-bezier(.16,1,.3,1) .14s both mg-rise;display:inline-block}.mg-cover .mg-ln+.mg-ln>span{animation-delay:.23s}.mg-cover .mg-role,.mg-acts>*,.mg-margin .mg-nav a,.mg-bar .mg-pill{animation:.7s cubic-bezier(.16,1,.3,1) both mg-settle}.mg-cover .mg-role{animation-delay:60ms}.mg-acts>:first-child{animation-delay:.55s}.mg-acts>:nth-child(2){animation-delay:.63s}.mg-margin .mg-nav a{animation-delay:.42s}.mg-margin .mg-nav a:nth-child(2){animation-delay:.48s}.mg-margin .mg-nav a:nth-child(3){animation-delay:.54s}.mg-bar .mg-pill{animation-delay:.55s}.mg-margin:after{animation:1.2s cubic-bezier(.65,0,.25,1) both mg-draw}}@keyframes mg-rise{0%{transform:translateY(1.15em)}}@keyframes mg-settle{0%{opacity:0;transform:translateY(8px)}}@keyframes mg-draw{0%{transform:scaleY(0)}}
