.portal-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120}.portal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#12121257;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .26s ease}@starting-style{.portal-backdrop{opacity:0}}.portal-window{position:absolute;top:12px;right:12px;bottom:12px;left:12px;z-index:1;display:grid;grid-template-columns:248px minmax(0,1fr);background:var(--card);border-radius:22px;overflow:hidden;box-shadow:0 30px 90px #00000040,0 0 0 1px #0000000a;transition:transform .36s var(--ease-drawer),opacity .22s ease}@starting-style{.portal-window{transform:translateY(28px);opacity:0}}.portal-window:focus{outline:none}.portal-layer.is-closing .portal-backdrop{opacity:0;transition-duration:.2s}.portal-layer.is-closing .portal-window{transform:translateY(16px);opacity:0;transition:transform .2s var(--ease-out),opacity .16s ease}.pside{display:flex;flex-direction:column;gap:22px;padding:22px 16px 18px;border-right:1px solid var(--line);overflow-y:auto}.pside-back{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px 0 8px;border-radius:9px;font-size:13px;color:var(--ink-2);transition:background-color .15s ease,color .15s ease,transform .16s var(--ease-out)}.pside-back:active{transform:scale(.97)}.pside-id{display:flex;align-items:center;gap:10px;padding:0 6px}.pside-id>span:last-child{display:flex;flex-direction:column;line-height:1.25}.pside-id b{font-size:15px;font-weight:600;letter-spacing:-.015em}.pside-id small{font-size:12px;color:var(--ink-3)}.pmark{width:var(--s);height:var(--s);border-radius:26%;display:grid;place-items:center;flex:none;font-weight:700;font-size:calc(var(--s) * .58);letter-spacing:-.04em;line-height:1;box-shadow:inset 0 0 0 .5px #00000014;object-fit:cover}.pnav{display:flex;flex-direction:column;gap:1px}.pnav button{position:relative;text-align:left;padding:6px 10px 6px 18px;border-radius:8px;font-size:13.5px;color:var(--ink-3);transition:color .15s ease,background-color .15s ease}.pnav button:before{content:"";position:absolute;left:8px;top:50%;width:4px;height:4px;margin-top:-2px;border-radius:50%;background:var(--ink);opacity:0;transition:opacity .15s ease}.pnav button.is-on{color:var(--ink);background:var(--well)}.pnav button.is-on:before{opacity:1}.ptools{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:14px;border-top:1px solid var(--line)}.ptools>*{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;font-size:13px;color:var(--ink-2);text-align:left;transition:background-color .15s ease,color .15s ease,transform .16s var(--ease-out)}.ptools>*:active{transform:scale(.98)}@media(hover:hover)and (pointer:fine){.pside-back:hover,.ptools>*:hover{background:var(--well);color:var(--ink)}.pnav button:hover{color:var(--ink-2)}.pnav button.is-on:hover{color:var(--ink)}}.pmain{overflow-y:auto;overscroll-behavior:contain}.pdoc{max-width:900px;margin:0 auto;padding:56px clamp(20px,5vw,56px) 96px}.phead{display:flex;flex-direction:column;gap:14px;padding-bottom:8px}.phead h1{font-size:clamp(28px,3.2vw,36px);font-weight:600;letter-spacing:-.035em;line-height:1.1}.phead h1 span{color:var(--ink-3)}.phead>p{font-size:16px;line-height:1.6;color:var(--ink-2);max-width:62ch}.pfacts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;padding-top:18px;margin-top:6px;border-top:1px solid var(--line)}.pfacts dd{font-size:14px;margin-top:4px;line-height:1.4}.psec{padding-top:64px}.psec-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;min-height:32px}.psec-head h2{font-size:15px;font-weight:600;letter-spacing:-.01em}.pcap{margin-top:14px;font-size:14px;line-height:1.6;color:var(--ink-2);max-width:64ch}.pbanner{position:relative;aspect-ratio:16 / 9;border-radius:18px;overflow:hidden;display:grid;place-items:center;background:#1a1a1a;isolation:isolate}.pbanner-blur{position:absolute;top:-10%;right:-10%;bottom:-10%;left:-10%;width:120%;height:120%;object-fit:cover;filter:blur(34px) saturate(1.35);transform:scaleX(1.8);z-index:-1}.pbanner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:linear-gradient(90deg,#0000002e,#0000000a 50%,#0000002e)}.pbanner.is-light:after{background:linear-gradient(90deg,#fff3,#fff0 50%,#fff3)}.pbanner-mark{display:inline-flex;align-items:center;gap:14px;color:#fff;font-size:clamp(36px,5vw,56px);letter-spacing:-.03em;line-height:1;text-shadow:0 2px 24px rgba(0,0,0,.25)}.pbanner.is-light .pbanner-mark{color:#2b2b2b;text-shadow:none}.pbanner-mark .pmark{box-shadow:0 10px 30px #00000040}.pbanner-glyph{height:.9em;width:auto}.pbanner.is-dark .pbanner-glyph{height:1em;border-radius:22%}.pprinciples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pprinciples>div{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:16px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line)}.pprinciples b{font-size:28px;font-weight:600;letter-spacing:-.04em;line-height:1.1}.pprinciples p{font-size:14px;line-height:1.5;color:var(--ink-2)}.pchanges{border-top:1px solid var(--line)}.pchanges .change{grid-template-columns:44px minmax(0,1.35fr) minmax(0,1fr)}.pscreens{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 10px;margin:0 -2px;scrollbar-width:thin}.pscreens figure{flex:none;scroll-snap-align:start;display:flex;flex-direction:column;gap:10px}.pscreen-frame{display:block;width:196px;aspect-ratio:393 / 852;border-radius:30px;overflow:hidden;border:5px solid #161616;background:#161616;box-shadow:0 18px 40px -18px #0006}.pscreens figure.is-web .pscreen-frame{width:640px;aspect-ratio:16 / 10;border-radius:14px;border:1px solid var(--line);background:var(--well);box-shadow:0 18px 40px -22px #00000059}.pscreen-frame img{width:100%;height:100%;object-fit:cover;object-position:top}.ways{display:flex;flex-direction:column;gap:14px}.ways-stage{position:relative;aspect-ratio:16 / 9;border-radius:18px;overflow:hidden;background:radial-gradient(120% 90% at 50% 40%,#fff,#f2efe9);box-shadow:inset 0 0 0 1px var(--line)}.ways-stage img{position:absolute;left:50%;top:50%;width:58%;transform:translate(-50%,-50%) scale(.98);opacity:0;filter:blur(6px);transition:opacity .26s ease,filter .26s ease,transform .36s var(--ease-out)}.ways-stage img.is-on{opacity:1;filter:blur(0);transform:translate(-50%,-50%) scale(1)}.ways-dots{display:flex;flex-wrap:wrap;gap:8px}.ways-dots button{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 8px;border-radius:999px;font-size:13px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .15s ease,color .15s ease,transform .16s var(--ease-out)}.ways-dots button:active{transform:scale(.97)}.ways-dots button span{width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 1px #0000001f}.ways-dots button.is-on{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.pseg{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line)}.pseg button{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;font-size:12.5px;font-weight:500;color:var(--ink-2);transition:background-color .15s ease,color .15s ease}.pseg button.is-on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #00000014}.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.swatch{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line);background:var(--card)}.swatch-chip{height:112px;padding:12px 14px;font-size:13px;font-weight:500;box-shadow:inset 0 -1px #0000000f}.swatch-values{display:flex;flex-direction:column;padding:6px 6px 0}.swatch-values button{display:grid;grid-template-columns:34px 1fr 14px;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;text-align:left;transition:background-color .15s ease}.swatch-values dt{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--ink-3)}.swatch-values dd{font-family:var(--mono);font-size:12px;color:var(--ink)}.swatch-values svg{color:var(--ink-3);opacity:0;transition:opacity .15s ease}@media(hover:hover)and (pointer:fine){.swatch-values button:hover{background:var(--well)}.swatch-values button:hover svg{opacity:1}}.swatch-values button:focus-visible svg{opacity:1}.swatch-use{padding:6px 14px 14px;font-size:12.5px;line-height:1.45;color:var(--ink-2)}.pbar{display:flex;height:120px;border-radius:16px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line)}.pbar>span{min-width:4px;display:flex;flex-direction:column;justify-content:flex-end;padding:12px;gap:2px;box-shadow:inset -1px 0 #0000000f}.pbar b{font-size:18px;font-weight:600;letter-spacing:-.02em}.pbar small{font-size:12px;opacity:.75}.plegend{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:14px}.plegend li{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}.plegend li span{width:10px;height:10px;border-radius:3px;box-shadow:inset 0 0 0 1px #0000001f}.plegend b{font-family:var(--mono);font-weight:400;font-size:12px;color:var(--ink)}.pcontrast{border-top:1px solid var(--line)}.pcontrast li{display:grid;grid-template-columns:56px minmax(0,1fr) 90px 78px;gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.pcontrast-chip{height:36px;border-radius:9px;display:grid;place-items:center;font-weight:600;font-size:15px;box-shadow:inset 0 0 0 1px #00000014}.pcontrast-name{font-size:14px}.pcontrast .mono{text-align:right;color:var(--ink)}.pgrade{justify-self:end;font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;padding:4px 8px;border-radius:999px}.pgrade.is-aaa{background:var(--ink);color:#fff}.pgrade.is-aa{background:var(--mark);color:var(--ink)}.pgrade.is-aa-large{color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-2)}.pgrade.is-fail{color:#b42318;box-shadow:inset 0 0 0 1px #f2c8c3}.app-modes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.app-mode{border-radius:18px;padding:18px;display:flex;flex-direction:column;gap:12px;border:1px solid}.app-mode-card{border:1px solid;border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:4px;font-family:DM Sans,system-ui,sans-serif}.app-mode-k{font-family:JetBrains Mono,ui-monospace,monospace;font-size:10.5px;letter-spacing:.08em}.app-mode-v{font-family:JetBrains Mono,ui-monospace,monospace;font-size:26px;font-weight:500;letter-spacing:-.02em}.app-mode-s{font-size:12.5px}.app-mode-btn{align-self:flex-start;margin-top:10px;padding:8px 16px;border-radius:10px;font-size:13.5px;font-weight:600}.pfonts{display:grid;gap:12px}.pfont{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:end;padding:24px;border-radius:16px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line)}.pfont-sample{font-size:clamp(30px,4vw,44px);line-height:1.1;letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere}.pfont-meta{display:flex;flex-direction:column;gap:4px}.pfont-meta b{font-size:16px;font-weight:600}.pfont-use{font-size:13px;line-height:1.5;color:var(--ink-2)}.tscale{border-radius:16px;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}.tscale-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;padding:16px 20px;background:var(--well);border-bottom:1px solid var(--line)}.slider{display:flex;align-items:center;gap:12px;flex:1 1 220px}.slider input{flex:1;accent-color:var(--ink)}.slider-val{font-family:var(--mono);font-size:12px;min-width:64px}.slider-val small{display:block;color:var(--ink-3);font-size:10.5px}.reset:disabled{opacity:.35;cursor:default}.tscale-levels li{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.tscale-levels li:last-child{border-bottom:0}.tscale-meta{display:flex;justify-content:space-between;gap:12px}.tscale-meta .mono{color:var(--ink-3)}.tscale-levels p{color:var(--ink);overflow-wrap:anywhere}.drop{display:flex;flex-direction:column;align-items:center;gap:18px;padding:28px 16px;border-radius:18px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line)}.drop-phone{width:min(320px,100%);height:330px;border-radius:30px;padding:18px 14px;background:#f2f2f7;border:5px solid #161616;overflow:hidden;font-family:Plus Jakarta Sans,system-ui,sans-serif}.drop-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.drop-title{font-family:Zodiak,Georgia,serif;font-weight:700;font-size:28px;color:#1c1c1e}.drop-receipt{font-size:12px;font-weight:600;color:#c24e00;background:#fff3eb;padding:4px 10px;border-radius:999px;animation:receipt 1.2s ease forwards}@keyframes receipt{0%,70%{opacity:1}to{opacity:0}}.drop-list{display:flex;flex-direction:column;gap:8px}.drop-list li{background:#fff;border-radius:16px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.drop-kind{font-size:11px;color:#8a8a8e}.drop-text{font-size:13.5px;font-weight:600;color:#1c1c1e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pabout{display:flex;flex-direction:column;gap:16px}.ptools-inline{display:none}.pnext{width:100%;margin:28px 0 0}@media(max-width:900px){.portal-window{top:0;right:0;bottom:0;left:0;border-radius:0;display:flex;flex-direction:column}.pside{flex:none;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.pside-id{margin-left:auto;padding:0}.pside-id small{display:none}.pnav{order:3;flex:1 0 100%;flex-direction:row;gap:4px;overflow-x:auto;scrollbar-width:none;margin:0 -12px;padding:0 12px}.pnav::-webkit-scrollbar{display:none}.pnav button{flex:none;padding:6px 12px;border-radius:999px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap}.pnav button.is-on{color:#fff;background:var(--ink-deep);box-shadow:none}.pnav button:before{display:none}.pside>.ptools{display:none}.ptools-inline{display:block}.ptools-inline .ptools{border-top:0;padding-top:0}.pmain{flex:1}.pdoc{padding-top:28px}.pfacts{grid-template-columns:repeat(2,minmax(0,1fr))}.pprinciples{grid-template-columns:1fr}.pchanges .change{grid-template-columns:34px minmax(0,1fr)}.pchanges .change-why{grid-column:2}.pscreen-frame{width:168px}.pscreens figure.is-web .pscreen-frame{width:300px}.pfont{grid-template-columns:1fr;gap:14px}.pcontrast li{grid-template-columns:48px minmax(0,1fr) auto;gap:10px}.pcontrast .mono{display:none}.app-modes{grid-template-columns:1fr}.pbar{height:96px}}@media(prefers-reduced-motion:reduce){@starting-style{.portal-window{transform:none;opacity:0}}.portal-layer.is-closing .portal-window{transform:none}.ways-stage img{transition:opacity .2s ease;filter:none;transform:translate(-50%,-50%)}}@media(max-width:960px){.pprinciples p{font-size:16px;line-height:24px}.psec-head h2,.pside-id b{font-size:16px}.pnav button,.ptools>*,.pfont-use,.plegend li,.ways-dots button,.pseg button,.swatch-use,.app-mode-s,.app-mode-btn,.drop-text{font-size:14px}.pgrade,.slider-val small,.swatch-values dt,.app-mode-k,.drop-kind{font-size:12px}.tscale-meta .mono{color:var(--ink-2)}}:root{--card: #ffffff;--well: #f7f6f4;--ink: #121212;--ink-deep: #17141f;--ink-2: #6e6b66;--ink-3: #a29f9a;--line: #e7e5e1;--line-2: #dcd9d4;--rule: #ececec;--mark: #eae8e3;--tint: rgba(211, 67, 247, .15);--violet: #d343f7;--green: #2bb24c;--sans: "Geist", system-ui, -apple-system, sans-serif;--serif: "Instrument Serif", Georgia, serif;--mono: "Geist Mono", ui-monospace, "SF Mono", monospace;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--shadow-btn: 0 1px 1px rgba(0, 0, 0, .25), 0 12px 24px -8px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .12);--page: 1160px;--pad: 140px;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--sans);font-size:14px;line-height:21.7px;letter-spacing:-.15px;color:var(--ink-2);background:#fff;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}img,video{display:block;max-width:100%}button{font:inherit;letter-spacing:inherit;color:inherit;background:none;border:0;cursor:pointer;text-align:left}a{color:inherit;text-decoration:none}ul,ol{list-style:none}b{font-weight:500}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}.skip-link{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;border-radius:10px}.skip-link:focus{top:12px}.fill{width:100%;height:100%;object-fit:cover}.muted{color:var(--ink-3)}.label,.mono{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}.mono{text-transform:none;letter-spacing:0;font-size:12px}.page{width:100%;max-width:calc(var(--page) + var(--pad) * 2);margin:0 auto;padding:0 var(--pad)}.profile{display:flex;flex-direction:column;gap:30px;max-width:560px;padding-top:100px}.intro{display:flex;align-items:center;gap:18px}.avatar{position:relative;flex:none;width:60px;height:60px;margin:2px;border:2.368px solid #fff;border-radius:8px;overflow:hidden;transform:rotate(-4deg);box-shadow:0 9.474px 18.947px -7.895px #00000059,0 .789px 1.579px #00000014;transition:transform .3s var(--ease-out)}.avatar img{position:absolute;width:168.8%;height:300%;max-width:none;left:-33.7%;top:-101.7%;object-fit:cover}@media(hover:hover)and (pointer:fine){.intro:hover .avatar{transform:rotate(0) scale(1.04)}}.name{font-size:24px;line-height:28.8px;font-weight:500;letter-spacing:-.4px;color:var(--ink)}.role{color:var(--ink-3)}.bio{position:relative;display:flex;flex-direction:column;gap:14px}.bio p a,.bio .mark,.link-soon{color:var(--ink-deep);text-decoration:underline;text-decoration-thickness:from-font;text-underline-position:from-font;text-decoration-skip-ink:none}.bio .tint{color:var(--ink);background:var(--tint);border-radius:2px;padding:1px 2px 0;margin:0 -2px;transition:background-color .15s ease}.bio .mark{color:var(--ink)}@media(hover:hover)and (pointer:fine){.bio p a,.bio .mark{transition:text-decoration-color .15s ease}.bio p a:hover{text-decoration-color:color-mix(in srgb,var(--ink-deep) 40%,transparent)}.bio .tint:has(.mark:hover){background:#d343f742}}.worked{position:relative;display:flex;align-items:center;gap:14px}.worked-label{font-size:13px;line-height:18.2px;letter-spacing:-.1px;color:#6e6e6e}.logos{display:flex;padding-right:8px}.logos li+li{margin-left:-10px}.logo{position:relative;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:2px solid #fff;overflow:hidden;transition:transform .18s var(--ease-out),box-shadow .18s ease}.logo img{display:block}.logo img.is-cover{object-fit:cover}.logo.is-on{transform:translateY(-3px);z-index:2;box-shadow:0 8px 16px -8px #00000073}.logo:active{transform:translateY(-1px) scale(.96)}.tip{position:absolute;z-index:20;border-radius:16px;background:#fff;box-shadow:0 0 0 1px #12121212,0 2px 6px #1212120d,0 22px 44px -18px #1212124d;transform-origin:var(--arrow-x) 100%;transition:opacity .18s ease,transform .2s var(--ease-out)}@starting-style{.tip{opacity:0;transform:translateY(6px) scale(.97)}}.tip:after{content:"";position:absolute;left:var(--arrow-x);bottom:-6px;width:12px;height:12px;margin-left:-6px;background:#fff;border-bottom-right-radius:3px;transform:rotate(45deg);box-shadow:1px 1px #12121212,2px 2px 4px -1px #12121214;transition:left .2s var(--ease-out)}.tip.is-closing{opacity:0;transform:translateY(4px) scale(.98);transition-duration:.12s}.client-card{left:0;bottom:calc(100% + 14px);width:396px;padding:10px}.social-card{width:min(348px,calc(100vw - 40px))}.social-who{display:flex;align-items:center;gap:12px;padding:12px}.social-who>span:last-child{display:flex;flex-direction:column;min-width:0;line-height:1.35}.social-who b{font-size:14px;color:var(--ink);letter-spacing:-.2px}.social-who small{font-size:13px;color:var(--ink-3)}.social-avatar{position:relative;flex:none;width:44px;height:44px;border-radius:8px;overflow:hidden}.social-avatar img{position:absolute;width:168.8%;height:300%;max-width:none;left:-33.7%;top:-101.7%;object-fit:cover}.social-link{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--rule);border-radius:0 0 16px 16px;font-size:13px;color:var(--ink-2);transition:background-color .15s ease,color .15s ease}.social-link svg{flex:none}.social-link span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.social-link svg:last-child{color:var(--ink-3);transition:transform .2s var(--ease-out)}@media(hover:hover)and (pointer:fine){.social-link:hover{background:#f7f7f7;color:var(--ink)}.social-link:hover svg:last-child{transform:translate(1px,-1px)}.tip:has(.social-link:hover):after{background:#f7f7f7}}.client-card-body{display:flex;flex-direction:column;gap:12px;animation:card-swap .16s ease both}@keyframes card-swap{0%{opacity:0}}.client-shots{display:flex;gap:8px}.client-shots img{flex:1 1 0;min-width:0;height:120px;object-fit:cover;border-radius:9px;background:#f3f3f3}.client-meta{display:flex;align-items:center;gap:10px;padding:0 4px}.client-meta>span:last-child{display:flex;flex-direction:column;justify-content:center;min-height:35px;line-height:1.35}.client-meta b{font-size:14px;font-weight:500;color:var(--ink);letter-spacing:-.2px}.client-meta small{font-size:12px;color:var(--ink-3);letter-spacing:-.1px}.client-logo{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;overflow:hidden}.client-logo img.is-cover{object-fit:cover}.client-card p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:39px;padding:0 4px 2px;font-size:13px;line-height:19.5px;color:var(--ink-2)}.reel{margin-top:60px}.reel-video{width:100%;aspect-ratio:1160 / 825;object-fit:cover;border-radius:8px;background:#f2f2f2}.projects{padding:96px 0 56px}.section-title{padding-bottom:20px;font-size:24px;line-height:28.8px;font-weight:500;letter-spacing:-.4px;color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card{animation:rise .36s var(--ease-out) both;animation-delay:calc(min(var(--i),8)*30ms)}.card button,.card a{display:block;width:100%;border-radius:8px}.card-media{position:relative;display:grid;place-items:center;aspect-ratio:573 / 448.82;border-radius:8px;overflow:hidden;background:#f3f3f3;isolation:isolate;transition:transform .16s var(--ease-out)}.card-media>.fill,.card-media>.stage,.card-fill{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.card-media .fill{object-position:top center}.card-fill,.card-media .fill,.card-video{transition:transform .7s var(--ease-out)}.card-media.is-inset .card-video{width:77.66%;height:66.4%;object-fit:contain;border-radius:4px}.card button:active .card-media,.card a:active .card-media{transform:scale(.99)}@media(hover:hover)and (pointer:fine){.card button:hover .card-fill,.card button:hover .card-media .fill,.card button:hover .card-video,.card a:hover .card-fill{transform:scale(1.02)}}.more{display:flex;justify-content:center;padding-top:40px}.more-btn{display:inline-flex;align-items:center;justify-content:center;height:33px;padding:8px 16px;border-radius:4px;font-size:13px;line-height:16.9px;font-weight:500;color:#fff;background:var(--ink-deep);transition:transform .16s var(--ease-out),background-color .16s ease}.more-btn:active{transform:scale(.97)}@media(hover:hover)and (pointer:fine){.more-btn:hover{background:#2c2838}}.me{display:flex;flex-direction:column;gap:50px;max-width:560px;padding:20px 0 40px}.me-block{display:flex;flex-direction:column;gap:20px}.me-block .label{font-family:var(--sans);font-size:12px;line-height:normal;letter-spacing:-.15px;text-transform:none;font-weight:400;color:var(--ink-3)}.history{display:flex;flex-direction:column;gap:16px}.history-row{position:relative;display:flex;justify-content:space-between;align-items:center;gap:16px}a.history-row:before{content:"";position:absolute;top:-6px;right:-10px;bottom:-6px;left:-10px;border-radius:10px;background:var(--well);opacity:0;transition:opacity .15s ease}.history-row>*{position:relative}.history-who{display:flex;align-items:center;gap:12px}.history-org{display:inline-flex;align-items:center;gap:5px;min-width:85px;font-size:15px;color:var(--ink)}.history-arrow{position:absolute;right:0;top:50%;display:flex;margin-top:-7px;color:var(--ink);opacity:0;transform:translate(-4px,4px);transition:opacity .15s ease,transform .2s var(--ease-out)}.history-role,.history-years{transition:color .15s ease,transform .2s var(--ease-out)}@media(hover:hover)and (pointer:fine){a.history-row:hover:before{opacity:1}a.history-row:hover .history-role,a.history-row:hover .history-years{color:var(--ink)}a.history-row:hover .history-years{transform:translate(-22px)}a.history-row:hover .history-arrow{opacity:1;transform:none}}a.history-row:focus-visible .history-years{transform:translate(-22px)}a.history-row:focus-visible .history-arrow{opacity:1;transform:none}@media(hover:none){.history-row{padding-right:22px}.history-arrow{color:var(--ink-3);opacity:1;transform:none}}.history-icon{display:grid;place-items:center;width:20px;height:20px;border-radius:5px;overflow:hidden;flex:none}.history-icon img{max-width:20px;max-height:20px}.history-role{color:var(--ink-2)}.history-years{font-size:13px;color:var(--ink-2);white-space:nowrap}.main:focus{outline:none}.split{display:grid;grid-template-columns:300px minmax(0,1fr);gap:60px;align-items:start;padding-top:60px;padding-bottom:120px}.split-side{position:sticky;top:60px;display:flex;flex-direction:column;animation:fade .24s ease both}.split-title{font-size:14px;line-height:18.2px;font-weight:500;letter-spacing:-.15px;color:var(--ink)}.filters{position:relative;display:flex;flex-direction:column;gap:12px;margin-top:18.8px}.filters:before{content:"";position:absolute;left:0;top:0;width:1px;height:18.2px;background:var(--violet);transform:translateY(calc(var(--on) * 30.2px));transition:transform .24s var(--ease-out)}.filters button{display:block;width:100%;padding:6px 0;margin:-6px 0;font-size:13px;line-height:18.2px;letter-spacing:-.1px;color:var(--ink-3);transition:color .15s ease,transform .24s var(--ease-out)}.filters button.is-on{transform:translate(7px)}.filter-count:before{content:"("}.filter-count:after{content:")"}@media(hover:hover)and (pointer:fine){.filters button:hover{color:var(--ink)}}.grid.is-tight{gap:9.655px}.grid.is-tight .card-media{border-radius:5.517px}.card-fill.is-left{object-position:left center}.grid.is-tight .card-media .fill{object-position:left top}.detail-desc{margin-top:9px;font-size:12px;line-height:18px;color:var(--ink-2)}.detail-facts{display:flex;flex-direction:column;gap:26px;margin-top:18px}.detail-facts dt{font-size:13px;line-height:18.2px;letter-spacing:-.1px;color:var(--ink)}.detail-facts dd{margin-top:10px;font-size:12px;line-height:18px;color:var(--ink-3)}.detail-visit{align-self:flex-start;gap:8px;margin-top:26px;padding:8px 20px}.detail-flow{display:flex;flex-direction:column;gap:8px;min-width:0;animation:rise .36s var(--ease-out) both}.detail-copy{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;padding:16px 0}.detail-copy h2{font-size:14px;line-height:18.2px;font-weight:500;letter-spacing:-.15px;color:var(--ink)}.detail-copy>div{display:flex;flex-direction:column;gap:12px;color:var(--ink-3)}.detail-row{display:flex;gap:8px}.detail-media{flex:1 1 0;min-width:0;border-radius:4px;overflow:hidden;background:#f0f0f0}.detail-board{position:relative}.board-row{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:1.75%}.board-row img{flex:none;width:auto;max-width:none;height:86%;aspect-ratio:375 / 812;object-fit:cover;object-position:top;border-radius:11.5%/5.31%;box-shadow:0 1px 2px #0000001a,0 18px 36px -18px #00000059}.is-half .board-row{gap:3%}.is-half .board-row img{height:78%}.is-half .board-row img:only-child{height:88%}.is-bleed .board-row{align-items:flex-start;padding-top:6%}.is-bleed .board-row img{height:122%}.detail-media .fill{object-position:var(--position, center)}.detail-stack{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:8px}.detail-stack-media{display:block;aspect-ratio:1;overflow:hidden;border-radius:4px;background:#0a5c33}.detail-stack figcaption{padding:18px 24px 0}.detail-stack h3{display:flex;align-items:center;gap:5px;font-size:12px;line-height:16px;font-weight:500;letter-spacing:-.1px;color:#253127}.detail-stack p{margin-top:8px;font-size:11px;line-height:16px;letter-spacing:-.05px;color:var(--ink-2)}.back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;height:18px;margin:-32px 0 14px;font-size:13px;line-height:18.2px;letter-spacing:-.1px;color:var(--ink-3);transition:color .15s ease,transform .16s var(--ease-out)}.back svg{transition:transform .2s var(--ease-out)}.back:active{transform:scale(.97)}@media(hover:hover)and (pointer:fine){.back:hover{color:var(--ink)}.back:hover svg{transform:translate(-2px)}}.store-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 20px;min-width:0;animation:rise .36s var(--ease-out) both}.store-card{display:block;width:100%;border-radius:14px}.store-trio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;border-radius:14px;overflow:hidden;transition:transform .2s var(--ease-out)}.store-trio img{width:100%;aspect-ratio:1290 / 2796;object-fit:cover;object-position:top;background:#f3f3f3}.store-trio.is-slides img{aspect-ratio:4 / 5}.store-card:active .store-trio{transform:scale(.99)}@media(hover:hover)and (pointer:fine){.store-card:hover .store-trio{transform:translateY(-3px)}}.store-meta{display:flex;align-items:center;gap:10px;margin-top:12px}.store-meta>span:last-child{display:flex;flex-direction:column;min-width:0}.store-meta b{font-size:14px;line-height:18.2px;font-weight:500;letter-spacing:-.15px;color:var(--ink)}.store-meta small{font-size:13px;line-height:18.2px;letter-spacing:-.1px;color:var(--ink-3)}.store-icon{flex:none;display:block;width:40px;height:40px;border-radius:22.5%;object-fit:cover;box-shadow:0 0 0 1px #1212120f}.store-page{padding-top:60px;padding-bottom:120px}.store-page .back{display:flex;width:fit-content;margin:0 0 24px}.store-top{display:flex;align-items:center;gap:16px;animation:fade .24s ease both}.store-top .store-icon{width:72px;height:72px}.store-top h1{font-size:24px;line-height:28.8px;font-weight:500;letter-spacing:-.4px;color:var(--ink)}.store-top p{color:var(--ink-3)}.store-desc{max-width:560px;margin-top:20px;color:var(--ink-2)}.store-out{display:inline-flex;align-items:center;gap:4px;margin-top:12px;font-size:13px;line-height:18.2px;letter-spacing:-.1px;color:var(--ink-deep);text-decoration:underline;text-decoration-thickness:from-font;text-underline-position:from-font;transition:text-decoration-color .15s ease}.store-out svg{transition:transform .2s var(--ease-out)}@media(hover:hover)and (pointer:fine){.store-out:hover{text-decoration-color:color-mix(in srgb,var(--ink-deep) 40%,transparent)}.store-out:hover svg{transform:translate(1px,-1px)}}.store-shots{display:flex;gap:12px;margin-top:28px;margin-right:calc(var(--pad) * -1 - max(0px,(100vw - 1440px) / 2));padding-right:var(--pad);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab;animation:rise .36s var(--ease-out) both}.store-shots::-webkit-scrollbar{display:none}.store-shots.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.store-shots li{flex:none;width:288px}.store-shots img{width:100%;aspect-ratio:1290 / 2796;object-fit:cover;border-radius:18px;background:#f3f3f3}.store-shots.is-slides li{width:400px}.store-shots.is-slides img{aspect-ratio:4 / 5;border-radius:10px}.about section{display:flex;flex-direction:column;gap:8px}.about section+section{margin-top:16px}.toybox{position:relative;aspect-ratio:16 / 10;min-height:320px;width:100%;border-radius:4px;overflow:hidden;background:var(--well);-webkit-user-select:none;user-select:none}.toy{position:absolute;left:0;top:0;display:block;width:var(--toy, 88px);height:var(--toy, 88px);border-radius:22.5%;cursor:grab;touch-action:none;will-change:transform;box-shadow:0 1px 2px #0000001f,0 14px 24px -12px #0006;transition:box-shadow .18s ease}.toy img{display:block;width:100%;height:100%;border-radius:inherit;pointer-events:none;-webkit-user-drag:none}.toy.is-held{z-index:2;cursor:grabbing;box-shadow:0 2px 4px #00000024,0 28px 40px -14px #00000080}.toybox-hint{position:absolute;left:16px;bottom:14px;font-size:13px;color:var(--ink-3);pointer-events:none}.photos{display:flex;gap:8px;margin-top:8px}.photos ul{flex:1 1 0;min-width:0}.photos li{margin-bottom:8px}.photo-open{display:block;width:100%;border-radius:4px;overflow:hidden;cursor:zoom-in}.photos img{display:block;width:100%;height:auto;background:#f0f0f0;transition:transform .5s var(--ease-out)}@media(hover:hover)and (pointer:fine){.photo-open:hover img{transform:scale(1.015)}}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0d0d0d;color:#fff;outline:none;animation:fade .2s ease both}.viewer-strip{display:flex;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior:contain;scrollbar-width:none}.viewer-strip::-webkit-scrollbar{display:none}.viewer-slide{flex:none;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:64px 16px 124px;scroll-snap-align:center;scroll-snap-stop:always}.viewer-slide img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;border-radius:2px;background:#1a1a1a;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.viewer-count{position:absolute;left:20px;top:24px;font-size:13px;font-variant-numeric:tabular-nums;color:#fff9}.viewer-btn{position:absolute;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;color:#fff;background:#ffffff14;transition:background .15s ease,opacity .15s ease,transform .12s ease}.viewer-btn:active:not(:disabled){transform:scale(.94)}.viewer-btn:disabled{opacity:0;pointer-events:none}.viewer-btn:focus-visible,.viewer-note a:focus-visible{outline-color:#fff}@media(hover:hover)and (pointer:fine){.viewer-btn:hover{background:#ffffff2e}}.viewer-close{right:12px;top:12px}.viewer-prev{left:12px;top:calc(50% - 52px)}.viewer-next{right:12px;top:calc(50% - 52px)}@media(hover:none){.viewer-prev,.viewer-next{display:none}}.viewer-foot{position:absolute;left:0;right:0;bottom:14px;display:flex;flex-direction:column;gap:10px}.viewer-thumbs{position:relative;display:flex;gap:6px;padding:3px 20px;overflow-x:auto;scrollbar-width:none}.viewer-thumbs::-webkit-scrollbar{display:none}.viewer-thumbs:before,.viewer-thumbs:after{content:"";margin:auto}.viewer-thumbs button{flex:none;width:52px;height:52px;border-radius:4px;overflow:hidden;opacity:.45;transition:opacity .15s ease,box-shadow .15s ease,transform .12s ease}.viewer-thumbs button:active{transform:scale(.95)}.viewer-thumbs button.is-on{opacity:1;box-shadow:0 0 0 2px #fff}.viewer-thumbs button:focus-visible{outline-color:#fff;outline-offset:2px;opacity:1}@media(hover:hover)and (pointer:fine){.viewer-thumbs button:hover{opacity:.85}.viewer-thumbs button.is-on:hover{opacity:1}}.viewer-thumbs img{display:block;width:100%;height:100%;object-fit:cover;background:#1a1a1a}.viewer-note{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:0 20px;font-size:14px;color:#ffffffb3}.viewer-note b{margin-right:10px;font-weight:500;color:#fff}.viewer-note a{flex:none;color:#fff;text-decoration:underline;text-underline-offset:2px;transition:opacity .15s ease}@media(hover:hover)and (pointer:fine){.viewer-note a:hover{opacity:.6}}.photo-note{display:flex;justify-content:space-between;gap:12px;padding:8px 0 12px;font-size:13px;color:var(--ink-2)}.detail-flow .pfont,.detail-flow .tscale,.detail-flow .drop,.detail-flow .pprinciples>div{border-radius:4px}.detail-flow .pbar{border-radius:4px}.detail-flow .pprinciples,.detail-flow .palette,.detail-flow .pfonts,.detail-flow .pcontrast,.detail-flow .tscale,.detail-flow .drop{margin-bottom:8px}.palette{border-radius:4px;overflow:hidden}.palette-top{display:flex;aspect-ratio:16 / 9}.palette-col{position:relative;flex:1 1 0;min-width:0}.palette-col:after{content:"";position:absolute;left:0;right:0;bottom:0;height:52%;background:var(--next);-webkit-mask-image:linear-gradient(to bottom right,transparent 25%,#000 75%),linear-gradient(to bottom left,transparent 25%,#000 75%);mask-image:linear-gradient(to bottom right,transparent 25%,#000 75%),linear-gradient(to bottom left,transparent 25%,#000 75%);-webkit-mask-composite:source-in;mask-composite:intersect}.palette-rest{display:flex;flex-wrap:wrap}.palette-col,.palette-block{padding:14px 16px}.palette-block{flex:1 1 110px;min-width:0;min-height:150px}.palette b{position:relative;z-index:1;display:block;font-family:"Barlow Condensed",var(--sans);font-size:22px;font-weight:600;line-height:1.05;letter-spacing:.01em;text-transform:uppercase;overflow-wrap:anywhere}.palette span{position:relative;z-index:1;display:block;margin-top:3px;font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:.01em}.photo-note a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;transition:opacity .15s ease}@media(hover:hover)and (pointer:fine){.photo-note a:hover{opacity:.6}}.doodle{margin-top:8px}.doodle-pad{position:relative;width:100%;aspect-ratio:8 / 5;min-height:340px;border-radius:8px;overflow:hidden;box-shadow:inset 0 0 0 1px var(--line);background-color:#fbfaf7;background-image:radial-gradient(rgba(18,18,18,.12) 1px,transparent 1px);background-size:var(--dot, 20px) var(--dot, 20px);background-position:var(--dot-x, 0) var(--dot-y, 0)}.doodle-canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none}.doodle-pad.is-moving .doodle-canvas{cursor:grab}.doodle-pad.is-moving .doodle-canvas:active{cursor:grabbing}.doodle-pad.is-moderating .doodle-canvas{cursor:default}.doodle-view{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;gap:2px;padding:3px;border-radius:8px;background:#fff;box-shadow:0 0 0 1px var(--line),0 6px 16px -8px #00000040}.doodle-view button{display:grid;place-items:center;min-width:30px;height:30px;padding:0 6px;border-radius:6px;font-size:13px;color:var(--ink-2);transition:background .15s ease,color .15s ease,transform .12s ease}.doodle-view button:active{transform:scale(.94)}@media(hover:hover)and (pointer:fine){.doodle-view button:hover{background:var(--well);color:var(--ink)}}.doodle-view output{min-width:42px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-2)}.doodle-view .doodle-rule{margin:0 3px}.doodle-tool.is-on{color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.doodle-note .for-touch{display:none}@media(hover:none){.doodle-note .for-touch{display:inline}.doodle-note .for-mouse{display:none}}.doodle-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--ink-3);pointer-events:none}.doodle-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.doodle-inks,.doodle-actions{display:flex;align-items:center;gap:8px}.doodle-ink{width:22px;height:22px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 2px #fff,0 0 0 3px transparent;transition:transform .16s var(--ease-out),box-shadow .16s ease}.doodle-ink.is-on{box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--ink)}.doodle-ink:active{transform:scale(.9)}.doodle-rule{width:1px;height:16px;margin:0 4px;background:var(--line)}.doodle-tool{height:33px;padding:0 12px;border-radius:4px;font-size:13px;letter-spacing:-.1px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line);transition:color .15s ease,box-shadow .15s ease,transform .16s var(--ease-out),opacity .15s ease}.doodle-note{min-height:20px;margin-top:10px;font-size:13px;color:var(--ink-2)}.doodle-removable{cursor:pointer;pointer-events:stroke}@media(hover:hover)and (pointer:fine){.doodle-removable:hover{opacity:.4}}.doodle-moderate{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-size:13px;color:var(--ink-2)}.doodle-moderate input{height:33px;padding:0 10px;border-radius:4px;font:inherit;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}.doodle-tool:active:not(:disabled){transform:scale(.97)}.doodle-tool:disabled,.doodle .more-btn:disabled{opacity:.4;cursor:default}@media(hover:hover)and (pointer:fine){.doodle-tool:hover:not(:disabled){color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}}.footer{display:flex;justify-content:space-between;gap:16px;width:calc(100% - 200px);max-width:1240px;margin:0 auto;padding:20px 40px 134px;border-top:1px solid var(--rule);color:var(--ink-3)}.footer-links{display:flex;gap:20px}.footer a{transition:color .15s ease}@media(hover:hover)and (pointer:fine){.footer a:hover{color:var(--ink)}}.floating-bar{position:fixed;left:50%;bottom:36px;z-index:60;transform:translate(-50%);display:flex;align-items:center;gap:2px;height:40px;padding:4px;border-radius:12px;background:#1a1a1a;color:#fff;box-shadow:0 1px 2px #0000001f,0 6px 18px #0003;animation:bar-in .5s var(--ease-out) .3s both}.bar-item{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:8px;font-size:12px;line-height:1;color:#fff;transition:background-color .18s ease,transform .16s var(--ease-out)}.bar-item svg,.bar-icon svg{flex:none}.bar-item.is-on{background:#ffffff21}.bar-sep{width:9px;height:32px;display:grid;place-items:center}.bar-sep:before{content:"";width:1px;height:16px;border-radius:1px;background:#ffffff24}.bar-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:#fff;transition:background-color .18s ease,transform .16s var(--ease-out)}.bar-item:active,.bar-icon:active{transform:scale(.95)}.floating-bar :focus-visible{outline-color:#fff;outline-offset:-2px;border-radius:8px}@media(hover:hover)and (pointer:fine){.bar-item:not(.is-on):hover,.bar-icon:hover{background:#ffffff14}}@keyframes bar-in{0%{opacity:0;transform:translate(-50%,12px)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@keyframes fade{0%{opacity:0}}.hl{background:var(--mark);color:var(--ink);font-weight:500;padding:.04em .28em;margin:0 -.04em;border-radius:6px;-webkit-box-decoration-break:clone;box-decoration-break:clone}.btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px;border-radius:12px;font-weight:500;font-size:15px;letter-spacing:-.005em;transition:transform .16s var(--ease-out),background-color .16s ease,box-shadow .16s ease}.btn:active,.icon-btn:active,.chip:active,.status:active,.text-btn:active{transform:scale(.97)}.btn-lg{height:50px;padding:0 22px;font-size:16px;border-radius:13px}.btn-dark{background:var(--ink);color:#fff;box-shadow:var(--shadow-btn)}.btn-ghost{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}.icon-btn{width:38px;height:38px;border-radius:50%;display:inline-grid;place-items:center;background:var(--well);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);transition:transform .16s var(--ease-out),background-color .16s ease}.icon-btn-lg{width:50px;height:50px;border-radius:13px}.text-btn{display:inline-flex;align-items:center;gap:4px;font-weight:500;font-size:14px;color:var(--ink);transition:transform .16s var(--ease-out),opacity .16s ease}@media(hover:hover)and (pointer:fine){.btn-dark:hover{background:#262626}.btn-ghost:hover{box-shadow:inset 0 0 0 1px var(--ink-3)}.icon-btn:hover{background:var(--mark)}.text-btn:hover{opacity:.6}}.stage{position:relative;display:flex;justify-content:center;align-items:flex-start;width:100%;height:100%;overflow:hidden;background:#ecebe7;padding-top:9%}.device{width:46%;max-width:230px;aspect-ratio:393 / 852;border-radius:13%/6%;overflow:hidden;border:5px solid #161616;background:#161616;box-shadow:0 30px 60px -20px #00000059;transition:transform .6s var(--ease-out)}.device-screen{width:100%;height:100%;object-fit:cover;object-position:top}.tile.is-phone .stage{background:#f2efe9;padding-top:24px}.tile.is-phone .device{width:auto;height:128%;max-width:none}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags>*{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 9px;border-radius:999px;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}.sheet-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;justify-content:center;align-items:flex-end}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#12121252;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .26s ease}@starting-style{.sheet-backdrop{opacity:0}}.sheet-panel{position:relative;z-index:1;width:min(1040px,100% - 32px);height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;background:var(--card);border-radius:28px 28px 0 0;box-shadow:0 -20px 60px #0000002e;transition:transform .34s var(--ease-drawer),opacity .2s ease}@starting-style{.sheet-panel{transform:translateY(40px);opacity:0}}.sheet-layer.is-closing .sheet-backdrop{opacity:0;transition-duration:.2s}.sheet-layer.is-closing .sheet-panel{transform:translateY(24px);opacity:0;transition:transform .2s var(--ease-out),opacity .16s ease}.sheet-close-bar{position:sticky;top:0;height:0;z-index:5;display:flex;justify-content:flex-end}.sheet-close-bar .icon-btn{position:relative;top:16px;right:16px;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.case-head{padding:clamp(36px,5vw,64px) clamp(22px,5vw,64px) 32px;display:flex;flex-direction:column;gap:18px}.case-title{font-size:clamp(56px,8vw,104px);font-weight:650;letter-spacing:-.06em;line-height:.85;margin-left:-.03em}.case-lede{font-size:clamp(22px,2.4vw,30px);font-weight:500;letter-spacing:-.025em;line-height:1.25;max-width:26em;text-wrap:pretty}.case-lede .hl{font-weight:500}.case-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding-top:22px;margin-top:10px;border-top:1px solid var(--line)}.case-facts dd{font-size:15px;margin-top:6px;line-height:1.4}.case-hero{margin:0 clamp(22px,5vw,64px);aspect-ratio:16 / 9;border-radius:20px;overflow:hidden;background:var(--well)}.case-hero.is-phone .stage{background:#f2efe9;padding-top:5%}.case-hero.is-phone .device{width:28%}.changes{margin:clamp(40px,6vw,72px) clamp(22px,5vw,64px) 0}.changes-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line)}.changes-head h3{font-size:clamp(30px,3.4vw,44px);font-weight:600;letter-spacing:-.045em;line-height:1}.change{display:grid;grid-template-columns:56px minmax(0,1.4fr) minmax(0,1fr);gap:24px;padding:22px 0;border-bottom:1px solid var(--line);align-items:baseline}.change-num{font-size:26px;color:var(--ink-3);line-height:1}.change-what{font-size:18px;line-height:1.5;letter-spacing:-.01em}.change-why{font-size:15px;line-height:1.5;color:var(--ink-2);display:flex;flex-direction:column;gap:6px}.case-gallery{margin:clamp(40px,6vw,72px) clamp(22px,5vw,64px) 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gallery-item{position:relative;aspect-ratio:16 / 10;border-radius:16px;overflow:hidden;background:var(--well)}.gallery-item.is-film{grid-column:1 / -1;aspect-ratio:16 / 9;background:#000}.gallery-item.is-film figcaption{position:absolute;left:14px;top:14px;color:#fff;opacity:.8;pointer-events:none}.gallery-item.is-phone .device{width:34%}.case-about{margin:clamp(40px,6vw,72px) clamp(22px,5vw,64px) 0;display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;padding-top:22px;border-top:1px solid var(--line)}.case-about>div{display:flex;flex-direction:column;gap:16px;align-items:flex-start}.case-about p:not(.label){font-size:17px;line-height:1.6;color:var(--ink-2);max-width:40em}.case-next{width:calc(100% - (2*clamp(22px,5vw,64px)));margin:clamp(48px,7vw,88px) clamp(22px,5vw,64px) 56px;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;column-gap:20px;row-gap:6px;align-items:center;padding:28px;border-radius:22px;background:var(--well);box-shadow:inset 0 0 0 1px var(--line);transition:background-color .16s ease,transform .16s var(--ease-out)}.case-next:active{transform:scale(.99)}.case-next>svg{grid-column:2;grid-row:1 / 4;transition:transform .3s var(--ease-out)}.case-next-name{font-size:clamp(30px,4vw,48px);font-weight:600;letter-spacing:-.045em;line-height:1}.case-next-tag{color:var(--ink-2);font-size:15px}@media(hover:hover)and (pointer:fine){.case-next:hover{background:var(--mark)}.case-next:hover>svg{transform:translate(4px)}}.sheet-layer.is-dialog{align-items:center;padding:20px}.contact-panel{position:relative;z-index:1;width:min(440px,100%);background:var(--card);border-radius:26px;padding:30px 24px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;box-shadow:0 30px 80px #00000040;transition:transform .24s var(--ease-out),opacity .2s ease}@starting-style{.contact-panel{transform:scale(.96);opacity:0}}.sheet-layer.is-dialog.is-closing .contact-panel{transform:scale(.97);opacity:0;transition-duration:.16s}.contact-close{position:absolute;top:14px;right:14px}.contact-avatar{width:64px;height:64px;border-radius:18px;object-fit:cover;object-position:center 20%;margin-bottom:14px;transform:rotate(-4deg);box-shadow:0 10px 20px -10px #0006}.contact-panel h2{font-size:26px;font-weight:600;letter-spacing:-.035em}.contact-sub{color:var(--ink-2);font-size:14.5px;margin:6px 0 20px;max-width:30ch}.contact-email{display:flex;gap:8px;width:100%}.contact-email .btn{flex:1;justify-content:center;height:50px;font-size:14.5px}.copy-status{min-height:20px;font-size:12.5px;color:var(--ink-3);margin:6px 0 2px}.contact-rows{width:100%;text-align:left;border-top:1px solid var(--line)}.contact-rows a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px;border-bottom:1px solid var(--line);color:var(--ink-2)}.contact-rows a>span{display:flex;flex-direction:column;line-height:1.35}.contact-rows b{color:var(--ink);font-weight:550}.contact-rows small{font-size:13px;color:var(--ink-3)}@media(hover:hover)and (pointer:fine){.contact-rows a:hover b{text-decoration:underline;text-underline-offset:3px}}@media(max-width:1240px){:root{--pad: 40px}.footer{width:calc(100% - 80px);padding-left:0;padding-right:0}}@media(max-width:960px){.split{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:44px}.split-side{position:static}.back{margin:0 0 18px}.split:has(.filters){display:block}.split-side:has(.filters){display:contents}.filters{position:sticky;top:-1px;z-index:30;flex-direction:row;gap:6px;margin:14px calc(var(--pad) * -1) 18px;padding:10px var(--pad);overflow-x:auto;overscroll-behavior-x:contain;scroll-behavior:smooth;scrollbar-width:none;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:box-shadow .18s ease}.filters::-webkit-scrollbar{display:none}.filters:before{display:none}.filters.is-stuck{box-shadow:0 1px 0 var(--rule)}.filters li{flex:none}.filters button{position:relative;display:inline-flex;align-items:center;gap:5px;width:auto;height:36px;margin:0;padding:0 14px;border-radius:999px;font-size:14px;line-height:20px;letter-spacing:-.15px;white-space:nowrap;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line);transition:color .18s ease,background-color .18s ease,transform .16s var(--ease-out)}.filters button:after{content:"";position:absolute;top:-6px;right:0;bottom:-6px;left:0}.filters button.is-on,.filters button.is-on:hover{transform:none;color:#fff;background:var(--ink-deep);box-shadow:none}.filters button:active{transform:scale(.96)}.filter-count{font-variant-numeric:tabular-nums;opacity:.6}.filter-count:before,.filter-count:after{content:none}body{font-size:16px;line-height:24px}.split-title{font-size:20px;line-height:26px;letter-spacing:-.3px}.detail-copy h2{font-size:16px;line-height:22px}.detail-desc{margin-top:10px;font-size:16px;line-height:24px}.detail-stack h3,.store-meta b{font-size:16px;line-height:22px}.history-org{font-size:16px}.role,.worked-label,.me-block .label,.history-role,.history-years,.footer,.detail-facts dt,.detail-facts dd,.detail-stack p,.store-meta small,.store-out,.back,.more-btn,.bar-item,.photo-note,.toybox-hint,.viewer-count,.doodle-note,.doodle-tool,.doodle-view button,.doodle-moderate{font-size:14px;line-height:20px}.detail-facts dd{margin-top:4px}.label,.tags>*{font-size:12px}.doodle-moderate input{font-size:16px}.role,.me-block .label,.detail-copy>div,.detail-facts dd,.store-meta small,.store-top p,.back,.footer,.doodle-hint{color:var(--ink-2)}}@media(max-width:720px){:root{--pad: 20px}.profile{padding-top:56px}.reel{margin-top:44px}.projects{padding-top:64px}.grid{grid-template-columns:1fr}.detail-copy{grid-template-columns:minmax(0,1fr);gap:8px}.store-grid{grid-template-columns:minmax(0,1fr);gap:32px}.store-page{padding-top:44px}.store-shots li{width:220px}.store-shots img{border-radius:16px}.store-shots.is-slides li{width:280px}.detail-row{flex-direction:column}.detail-media{flex:none;width:100%}.detail-stack{grid-template-columns:minmax(0,1fr);gap:20px}.detail-stack figcaption{padding:14px 0 0}.history-row{flex-wrap:wrap;row-gap:2px}.palette-top{aspect-ratio:4 / 3}.palette-col,.palette-block{padding:10px}.palette b{font-size:16px}.palette span{font-size:12px;letter-spacing:0}.palette-block{flex-basis:96px;min-height:104px}.history-years{width:100%;padding-left:25px}.footer{width:calc(100% - 40px);flex-direction:column;gap:8px;padding-bottom:120px}.client-card{width:min(396px,calc(100vw - 40px))}.floating-bar{bottom:20px}.bar-item:not(.is-on){padding:0 10px;font-size:0;gap:0}.sheet-panel{width:100%;height:calc(100dvh - 8px);border-radius:22px 22px 0 0}.case-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.change{grid-template-columns:36px minmax(0,1fr)}.change-why{grid-column:2}.case-gallery{grid-template-columns:1fr}.case-about{grid-template-columns:1fr;gap:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.floating-bar,.detail-flow,.store-grid,.store-shots{animation-name:fade}.filters:before,.filters button{transition:color .15s ease}.filters{scroll-behavior:auto}@starting-style{.tip{opacity:0;transform:none}}.tip.is-closing{transform:none}.tip:after{transition:none}@starting-style{.sheet-panel{transform:none;opacity:0}}.sheet-layer.is-closing .sheet-panel{transform:none}@starting-style{.contact-panel{transform:none;opacity:0}}.viewer{animation:none}.photos img,.avatar,.card-fill,.card-media .fill,.card-video,.device,.logo,.history-role,.history-years,.history-arrow{transition:none}}
