*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.table{display:table}.grid{display:grid}.hidden{display:none}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.\!paused{animation-play-state:paused!important}.paused{animation-play-state:paused}:root{--type-label: 12px;--type-body: 16px;--type-title: 28px;--type-display: 48px;--paper: #faf9f7;--ink: #242824;--ink-2: #626960;--ink-3: #626960;--line: rgba(35, 33, 28, .1);--line-soft: rgba(35, 33, 28, .06);--accent: #315ed6;--accent-deep: #315ed6;--accent-tint: rgba(46, 91, 222, .07)}html{scroll-behavior:smooth}body{font-size:var(--type-body);font-weight:400;background:var(--paper);color:var(--ink);font-family:-apple-system,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::-moz-selection{background:var(--accent);color:#fff}::selection{background:var(--accent);color:#fff}.display{font-family:Newsreader,"Noto Serif SC",Songti SC,serif;font-weight:600;letter-spacing:-.005em;line-height:1.18}.figure{margin:28px 0 48px}.figure img{width:100%;display:block;border-radius:12px;box-shadow:0 1px 2px #23211c08,0 16px 40px -16px #23211c24}.figure figcaption{margin-top:12px;font-size:var(--type-label);color:var(--ink-2);display:flex;gap:10px;align-items:baseline}.figure figcaption .no{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:var(--type-label);color:var(--ink-3)}a{color:inherit}@keyframes portfolio-scroll-reveal{0%{opacity:0;translate:0 22px}14%,86%{opacity:1;translate:0 0}to{opacity:0;translate:0 -14px}}@supports (animation-timeline: view()){@media(prefers-reduced-motion:no-preference){.portfolio-v2 :is(.p-intro>div,.p-section-label,.p-feature>a,.p-project-info,.p-secondary-project,.p-system-card,.p-about>div,.p-case-title-row>div,.p-case-meta,.p-case-hero-art,.e-hero-art,.i-hero-art,.p-case-content>section>*,.p-next-case>*,.p-footer>div){animation:portfolio-scroll-reveal 1s linear both;animation-timeline:view(block);animation-range:entry 0% exit 100%}.portfolio-v2 :is(:focus-within,:has(dialog[open])){animation:none}}}@media print{.portfolio-v2 *{animation:none!important}}.p-topic-icon{overflow:visible}.p-task-check{stroke-dasharray:1;stroke-dashoffset:0}.p-task-line{transform-box:fill-box;transform-origin:left center}.p-layout-frame{transform-origin:12px 12px}@media(hover:hover)and (prefers-reduced-motion:no-preference){.p-system-card:is(:hover,:focus-visible) .p-task-check{animation:topic-check 1s cubic-bezier(.22,1,.36,1) both}.p-system-card:is(:hover,:focus-visible) .p-task-check-second{animation-delay:.22s}.p-system-card:is(:hover,:focus-visible) .p-task-line{animation:topic-task-line .9s ease-in-out both}.p-system-card:is(:hover,:focus-visible) .p-task-line-second{animation-delay:.12s}.p-system-card:is(:hover,:focus-visible) .p-task-line-third{animation-delay:.24s}.p-system-card:is(:hover,:focus-visible) .p-layout-frame{animation:topic-layout-frame 1.1s cubic-bezier(.22,1,.36,1) both}.p-system-card:is(:hover,:focus-visible) .p-layout-divider{animation:topic-layout-divider 1.1s cubic-bezier(.22,1,.36,1) both}}@keyframes topic-check{0%{stroke-dashoffset:0;opacity:1}15%{stroke-dashoffset:1;opacity:.25}65%,to{stroke-dashoffset:0;opacity:1}}@keyframes topic-task-line{0%,to{transform:scaleX(1);opacity:1}30%{transform:scaleX(.72);opacity:.55}70%{transform:scaleX(1);opacity:1}}@keyframes topic-layout-frame{0%,to{transform:rotate(0) scale(1)}30%{transform:rotate(-5deg) scale(1.05)}65%{transform:rotate(1deg) scale(1)}}@keyframes topic-layout-divider{0%,to{transform:translate(0)}35%{transform:translate(4px)}70%{transform:translate(-1px)}}.p-brand-avatar{--avatar-shadow: 0 2px 4px rgb(35 43 31 / 8%), 0 5px 12px rgb(35 43 31 / 7%);--avatar-shadow-raised: 0 3px 6px rgb(35 43 31 / 10%), 0 9px 20px rgb(35 43 31 / 13%);box-shadow:var(--avatar-shadow)}.portfolio-v2 :is(.p-header,.p-footer) .p-brand-avatar{transition:width .35s,height .35s,transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.portfolio-v2:not(.p-entering) :is(.p-avatar-replay,.p-header a.p-wordmark,.p-footer-avatar):hover .p-brand-avatar{transform:translateY(-3px);box-shadow:var(--avatar-shadow-raised)}}@media(prefers-reduced-motion:no-preference){.portfolio-v2:not(.p-entering) :is(.p-avatar-replay,.p-header a.p-wordmark,.p-footer-avatar):focus-visible .p-brand-avatar{transform:translateY(-3px);box-shadow:var(--avatar-shadow-raised)}}@media(prefers-reduced-motion:reduce){.portfolio-v2 :is(.p-header,.p-footer) .p-brand-avatar{transition:none}}.p-avatar-expression{opacity:0;pointer-events:none}.p-avatar-blink{-webkit-mask-image:radial-gradient(ellipse 12% 11% at 42% 47%,#000 80%,transparent 100%),radial-gradient(ellipse 11% 11% at 64% 43%,#000 80%,transparent 100%);mask-image:radial-gradient(ellipse 12% 11% at 42% 47%,#000 80%,transparent 100%),radial-gradient(ellipse 11% 11% at 64% 43%,#000 80%,transparent 100%)}.p-avatar-talk{-webkit-mask-image:radial-gradient(ellipse 12% 10% at 57.5% 61.5%,#000 80%,transparent 100%);mask-image:radial-gradient(ellipse 12% 10% at 57.5% 61.5%,#000 80%,transparent 100%)}@media(hover:hover)and (prefers-reduced-motion:no-preference){.portfolio-v2:not(.p-entering) .p-brand-avatar:hover .p-avatar-blink{animation:avatar-hover-blink .18s .06s linear both}.portfolio-v2:not(.p-entering) .p-brand-avatar:hover .p-avatar-talk{animation:avatar-hover-talk .38s .22s ease-in-out both}}@media(prefers-reduced-motion:no-preference){.portfolio-v2:not(.p-entering) .p-avatar-replay:focus-visible .p-avatar-blink{animation:avatar-hover-blink .18s .06s linear both}.portfolio-v2:not(.p-entering) .p-avatar-replay:focus-visible .p-avatar-talk{animation:avatar-hover-talk .38s .22s ease-in-out both}}@keyframes avatar-hover-blink{0%,to{opacity:0}20%,75%{opacity:1}}@keyframes avatar-hover-talk{0%,to{opacity:0}18%,70%{opacity:1}}.portfolio-v2{--p-bg:#f9f9f6;--p-ink:#242824;--p-muted:#626960;--p-soft:#7c8477;--p-warning:#815d24;--p-line:#dedfd9;--p-blue:#315ed6;background:var(--p-bg);color:var(--p-ink);font-size:var(--type-body);font-weight:400;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.65;overflow-wrap:break-word}.portfolio-v2 *{box-sizing:border-box}.portfolio-v2 a{text-decoration:none}.portfolio-v2 button{font:inherit;cursor:pointer}.portfolio-v2 :is(a,button):focus-visible{outline:3px solid #315ed6;outline-offset:5px;border-radius:4px}.portfolio-v2 img{display:block;max-width:100%}.portfolio-v2 h1,.portfolio-v2 h2,.portfolio-v2 h3,.portfolio-v2 p{margin:0}.portfolio-v2 section[id]{scroll-margin-top:104px}.p-wrap{width:calc(100% - 112px);max-width:1280px;margin-inline:auto}.p-header{height:64px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid transparent;padding:0 56px;gap:24px;--p-glass-bg:linear-gradient(120deg,#ffffff8c,#ffffff38),rgba(249,249,246,.38);background:transparent;position:sticky;top:0;z-index:20}.p-wordmark{font-size:var(--type-title);font-weight:600;letter-spacing:-1px;display:flex;align-items:center;gap:18px;white-space:nowrap}.p-wordmark span{font:var(--type-label)/1.4 ui-monospace,SFMono-Regular,monospace;letter-spacing:1.5px;border-left:1px solid #c8ccc3;padding-left:18px;color:var(--p-muted)}.p-header nav{display:flex;gap:30px;align-items:center;font-size:var(--type-label)}.p-header nav a{display:inline-flex;gap:6px;align-items:center;min-height:44px}.p-header nav a:hover{color:var(--p-blue)}.p-header .p-contact{border:1px solid #c8ccc3;border-radius:100px;padding:0 18px;min-height:38px}.p-kicker{font:var(--type-label)/1.6 ui-monospace,SFMono-Regular,monospace;letter-spacing:1.5px;color:var(--p-muted);display:flex;align-items:center;gap:10px}.p-dot{width:7px;height:7px;border-radius:50%;background:#65816b;display:inline-block}.p-intro{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:end;padding:83px 0 76px}.p-intro h1{font-size:var(--type-display);font-weight:600;letter-spacing:-2.8px;line-height:1.28;margin-top:24px}.p-intro-side{padding-bottom:7px}.p-intro-side>p{font-size:var(--type-body);line-height:1.95;color:var(--p-muted)}.p-career-tags{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 26px}.p-career-tags button{font:inherit;font-size:var(--type-label);border:0;border-radius:4px;padding:5px 10px;background:#eeefec;color:var(--p-muted);white-space:nowrap;cursor:pointer;transition:background .2s,color .2s}.p-career-tags button[aria-pressed=true]{background:#e0e3dc;color:var(--p-ink)}.p-career-tags button:focus-visible{outline:2px solid var(--p-muted);outline-offset:3px}.p-text-link{display:inline-flex;gap:12px;align-items:center;font-size:var(--type-label);font-weight:600;min-height:40px}.p-text-link:hover{color:var(--p-blue)}.p-text-link svg{transition:transform .2s}.p-text-link:hover svg{transform:translate(3px)}.p-section-label{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid var(--p-line);padding:22px 0 27px;gap:20px}.p-section-label h2{font-size:var(--type-body);font-weight:600}.p-section-label>span{font:var(--type-label)/1.5 ui-monospace,SFMono-Regular,monospace;letter-spacing:1px;color:var(--p-muted)}.p-feature-visual{position:relative;display:block;background:#e7eef9;border-radius:14px;overflow:hidden;aspect-ratio:1.94}.p-cover-label{position:absolute;left:34px;right:34px;top:28px;display:flex;align-items:center;justify-content:space-between;font-size:var(--type-label);font-weight:600;letter-spacing:.7px;color:var(--p-muted);z-index:2}.p-cover-label span+span{font-size:var(--type-label);font-weight:400}.p-feishu-cover{position:absolute;inset:16% 8% 0 7%}.p-cover-desktop{position:absolute;left:0;top:0;width:90%;border-radius:8px;box-shadow:0 20px 45px -10px #546c9b38;transition:transform .5s}.p-cover-phone{position:absolute;right:0;top:10%;width:18.3%;border-radius:14px;box-shadow:0 18px 40px #42578230;transition:transform .5s}.p-feature-visual:hover .p-cover-desktop{transform:translateY(-4px)}.p-feature-visual:hover .p-cover-phone{transform:translateY(-8px)}.p-cover-open{position:absolute;bottom:24px;right:26px;width:44px;height:44px;background:#ffffffe0;border:1px solid #ffffff90;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--p-muted)}.p-project-info{display:grid;grid-template-columns:1fr 1fr;gap:90px;padding:32px 0 58px}.p-project-no{font:var(--type-label)/1.5 ui-monospace,SFMono-Regular,monospace;letter-spacing:1px;color:var(--p-muted);display:block;margin-bottom:14px}.p-project-info h3{font-size:var(--type-title);font-weight:600;letter-spacing:-1px;line-height:1.45}.p-project-info p{font-size:var(--type-body);line-height:1.9;max-width:500px;color:var(--p-muted)}.p-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.p-tags span{font-size:var(--type-label);background:#eef0e9;color:var(--p-muted);padding:4px 9px;border-radius:4px}.p-project-info .p-text-link{margin-top:15px}.p-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}.p-secondary-visual{position:relative;display:block;aspect-ratio:1.38;border-radius:12px;overflow:hidden;margin-bottom:27px}.p-secondary-project h3{font-size:var(--type-title);font-weight:600;letter-spacing:-.5px;line-height:1.5;margin-bottom:14px}.p-secondary-project>p{font-size:var(--type-body);line-height:1.9;color:var(--p-muted);max-width:480px}.p-project-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:17px}.p-project-bottom .p-tags{margin-top:0}.p-thunderbit-cover{background:#eceefa}.p-thunderbit-type{position:absolute;top:24%;left:34px;font-size:var(--type-title);font-weight:600;letter-spacing:-1px;line-height:1.4;color:var(--p-muted)}.p-thunderbit-cover>img{position:absolute;bottom:-5%;left:5%;width:90%;mix-blend-mode:multiply;max-height:43%;-o-object-fit:contain;object-fit:contain}.p-brisi-cover{background:#e9e9e0}.p-brisi-cover .p-cover-label{color:var(--p-muted)}.p-brisi-cover>img{position:absolute;width:112%;max-width:none;left:7%;top:24%;border-radius:7px;box-shadow:0 18px 40px #46523723}.p-draft-label{font-size:var(--type-label);line-height:1.5;color:var(--p-warning);border:1px solid #ddd0aa;background:#f5efde;display:inline-block;padding:5px 9px;border-radius:4px}.p-system-section{margin-top:90px}.p-system-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.p-system-card{display:block;border:1px solid var(--p-line);padding:24px;border-radius:8px;transition:background .2s}.p-system-card:hover{background:#eeefe9}.p-system-card>span{display:flex;justify-content:space-between;font:var(--type-label) ui-monospace,monospace;color:var(--p-muted)}.p-system-card h3{font-size:var(--type-body);font-weight:600;margin:29px 0 9px}.p-system-card p{font-size:var(--type-label);color:var(--p-muted)}.p-about{margin-top:100px;border-top:1px solid var(--p-line);padding-top:56px;padding-bottom:96px;display:grid;grid-template-columns:1fr 1fr;gap:100px}.p-about h2{font-size:var(--type-title);line-height:1.5;font-weight:600;letter-spacing:-1px;margin:22px 0}.p-about>div>p{font-size:var(--type-body);color:var(--p-muted);max-width:440px;line-height:1.9}.p-about .p-text-link{margin-top:23px}.p-timeline>div{padding:24px 0;border-bottom:1px solid var(--p-line)}.p-timeline>div:first-child{padding-top:0}.p-timeline>div>span{font:var(--type-label) ui-monospace,monospace;color:var(--p-muted)}.p-timeline h3{font-size:var(--type-body);font-weight:600;margin:13px 0 8px;display:flex;justify-content:space-between;gap:14px;align-items:baseline;flex-wrap:wrap}.p-timeline h3 small{font-size:var(--type-label);color:var(--p-muted);font-weight:400}.p-timeline p{font-size:var(--type-label);color:var(--p-muted)}.p-footer{--p-ink:#f5f6f0;--p-muted:#b5bcb0;background:#141413;color:var(--p-ink);padding:65px max(56px,calc((100vw - 1280px)/2));display:flex;justify-content:space-between;align-items:end;gap:32px}.p-footer h2{font-size:var(--type-title);font-weight:600;letter-spacing:-1px;margin:17px 0}.p-footer a{display:inline-flex;align-items:center;gap:16px;font-size:var(--type-body);border-bottom:1px solid #8d9685;padding-bottom:7px}.p-footer-meta{display:flex;flex-direction:column;text-align:right;gap:6px;font-size:var(--type-label);color:var(--p-muted)}.p-back{display:inline-flex;align-items:center;gap:8px;font-size:var(--type-label);color:var(--p-muted);min-height:40px}.p-case-hero{padding-top:30px}.p-case-title-row{display:grid;grid-template-columns:1.7fr 1fr;gap:60px;align-items:end;margin-top:35px}.p-case-title-row h1{font-size:var(--type-display);font-weight:600;line-height:1.32;letter-spacing:-2px;margin-top:22px}.p-case-title-row h1>span{font-size:var(--type-title);color:var(--p-muted);letter-spacing:-1.4px}.p-case-summary{padding-bottom:5px}.p-case-summary p{font-size:var(--type-body);color:var(--p-muted);line-height:1.95;margin-top:18px}.p-case-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;border-top:1px solid var(--p-line);margin-top:40px;padding:24px 0 36px}.p-case-meta>div>span{font-size:var(--type-label);display:block;color:var(--p-muted);margin-bottom:8px}.p-case-meta strong{font-size:var(--type-label);font-weight:600}.p-case-meta strong.p-unconfirmed{color:var(--p-warning)}.p-case-hero-art{padding:40px 44px 20px;background:#e7eef9;border-radius:12px}.p-case-hero-art .p-figure{margin:0}.p-case-hero-art .p-image-button img{box-shadow:0 14px 35px #647b9c26;border-radius:7px}.p-hero-art-note{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:18px;font-size:var(--type-label);color:var(--p-muted)}.p-case-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:72px;padding-top:83px;align-items:start}.p-case-nav{position:sticky;top:124px}.p-case-nav nav{display:flex;flex-direction:column;gap:3px;margin-top:25px}.p-case-nav nav a{display:flex;gap:14px;font-size:var(--type-label);min-height:42px;align-items:center;color:var(--p-muted)}.p-case-nav nav a:hover{color:var(--p-blue)}.p-case-nav nav a>span{font:var(--type-label) ui-monospace,monospace;color:var(--p-muted)}.p-case-nav-note{border-top:1px solid var(--p-line);margin-top:30px;padding-top:20px;font-size:var(--type-label);line-height:1.9;color:var(--p-muted)}.p-case-content>section{border-bottom:1px solid var(--p-line);padding-bottom:72px;margin-bottom:72px}.p-case-content>section:last-child{border-bottom:0;margin-bottom:0}.p-case-heading{max-width:730px;margin-bottom:30px}.p-case-heading h2{font-size:var(--type-title);line-height:1.45;font-weight:600;letter-spacing:-1px;margin-top:16px}.p-case-heading>p{font-size:var(--type-body);line-height:1.95;color:var(--p-muted);margin-top:19px}.p-two-notes{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:32px 0}.p-two-notes h3{font-size:var(--type-body);font-weight:600;margin-bottom:12px}.p-two-notes p{font-size:var(--type-label);color:var(--p-muted);line-height:1.9}.p-pending{display:flex;gap:16px;background:#f5f0e3;border:1px solid #e8dfc9;border-radius:6px;padding:18px 20px;margin-top:30px}.p-pending>span{font-size:var(--type-label);color:var(--p-warning);border:1px solid #cdbd92;border-radius:3px;padding:2px 6px;white-space:nowrap;height:-moz-fit-content;height:fit-content;margin-top:2px}.p-pending strong{font-size:var(--type-label);color:var(--p-warning);font-weight:600}.p-pending p{font-size:var(--type-label);color:var(--p-warning);line-height:1.9;margin-top:6px}.p-figure{margin:24px 0}.p-image-button{width:100%;border:0;background:transparent;padding:0;position:relative;display:block;text-align:left;border-radius:8px}.p-image-button>img{width:100%;border-radius:8px}.p-expand{position:absolute;right:10px;bottom:10px;display:flex;width:32px;height:32px;align-items:center;justify-content:center;background:#fffffff2;box-shadow:0 1px 7px #00000015;border:1px solid #e1e4dc;border-radius:6px;color:var(--p-muted);opacity:0;transition:opacity .2s}.p-image-button:hover .p-expand,.p-image-button:focus-visible .p-expand{opacity:1}.p-figure figcaption{font-size:var(--type-label);color:var(--p-muted);line-height:1.8;margin-top:13px}.p-lightbox{border:1px solid #d1d6ca;border-radius:12px;padding:0;max-width:94vw;max-height:94vh;width:-moz-max-content;width:max-content;background:#f9f9f6;box-shadow:0 30px 100px #00000050}.p-lightbox::backdrop{background:#1a221bd4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.p-lightbox-bar{position:sticky;top:0;z-index:2;background:#f9f9f6;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:12px 20px;border-bottom:1px solid var(--p-line);font-size:var(--type-label)}.p-lightbox-bar button{background:transparent;border:0;display:flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;color:var(--p-muted)}.p-lightbox>img{max-width:90vw;max-height:none;width:auto;height:auto;margin:auto;min-width:280px}.p-source{display:inline-flex;gap:6px;align-items:center;font-size:var(--type-label);line-height:1.7;color:var(--p-muted);min-height:30px}.p-source:hover{color:var(--p-blue)}.p-journey-strip{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin:30px 0;background:var(--p-line);border:1px solid var(--p-line);border-radius:5px;overflow:hidden}.p-journey-strip li{background:#f1f3ec;padding:15px 12px;font-size:var(--type-label)}.p-journey-strip span{display:block;font:var(--type-label) ui-monospace,monospace;color:var(--p-muted);margin-bottom:6px}.p-phone-grid{display:grid;gap:24px}.p-three-phones{grid-template-columns:repeat(3,minmax(0,1fr))}.p-phone-story .p-figure{padding:18px;background:#eef0e9;border-radius:8px;margin:0 0 21px}.p-phone-story .p-image-button img{border-radius:7px;box-shadow:0 6px 14px #4f594416}.p-phone-story h3{font-size:var(--type-body);font-weight:600;margin:10px 0 7px}.p-phone-story p{font-size:var(--type-label);color:var(--p-muted);line-height:1.9}.p-insight{border-left:2px solid #7d8a70;padding-left:20px;margin:30px 0}.p-insight>span{font-size:var(--type-label);color:var(--p-muted)}.p-insight p{font-size:var(--type-body);line-height:1.9;margin-top:9px;color:var(--p-muted)}.p-decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.p-decision-grid>article{background:#eef0e9;border-radius:8px;padding:26px 25px 18px}.p-decision-head>span{font:var(--type-label) ui-monospace,monospace;color:var(--p-muted)}.p-decision-head h3{font-size:var(--type-body);font-weight:600;margin:12px 0 10px}.p-decision-head p{font-size:var(--type-label);color:var(--p-muted);min-height:48px}.p-decision-grid .p-figure{max-width:218px;margin:23px auto 15px}.p-decision-grid .p-source{justify-content:center;width:100%}.p-boundary-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.p-state-card{background:#f0f1ec;border:1px solid #e3e5dd;padding:25px;border-radius:8px}.p-state-card .p-figure{max-width:210px;margin:0 auto 25px}.p-state-card h3{font-size:var(--type-body);font-weight:600;margin-bottom:9px}.p-state-card p{font-size:var(--type-label);line-height:1.9;color:var(--p-muted)}.p-wide-evidence{margin-top:35px}.p-wide-evidence h3{font-size:var(--type-body);font-weight:600;margin:14px 0 8px}.p-wide-evidence p{font-size:var(--type-label);color:var(--p-muted)}.p-comparison{background:#eff1ec;border:1px solid #dfe3d9;border-radius:8px;padding:18px}.p-comparison-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:var(--type-label);color:var(--p-muted)}.p-comparison-toolbar>div{display:flex;background:#e2e6dc;padding:3px;border-radius:5px}.p-comparison-toolbar button{font-size:var(--type-label);border:0;background:transparent;border-radius:3px;padding:7px 15px;min-height:34px;white-space:nowrap;color:var(--p-muted)}.p-comparison-toolbar button[aria-pressed=true]{background:#fff;color:var(--p-muted);box-shadow:0 1px 5px #0000000a}.p-comparison .p-figure{margin:18px 0 9px}.p-change-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin:35px 0}.p-change-grid article>span{font:var(--type-label) ui-monospace,monospace;color:var(--p-muted)}.p-change-grid h3{font-size:var(--type-body);font-weight:600;margin:12px 0}.p-change-grid p{font-size:var(--type-label);line-height:1.9;color:var(--p-muted)}.p-handoff{display:grid;grid-template-columns:1fr 1fr;gap:32px;background:#eef0e9;padding:28px;border-radius:8px;margin-top:30px}.p-handoff h3{font-size:var(--type-body);font-weight:600;margin-bottom:10px}.p-handoff p{font-size:var(--type-label);line-height:1.9;color:var(--p-muted)}.p-handoff ul{list-style:none;margin:0;padding:0}.p-handoff li{font-size:var(--type-label);padding:8px 0;border-bottom:1px solid #d9dfd0}.p-handoff li:first-child{padding-top:0}.p-handoff li:last-child{border:0;padding-bottom:0}.p-related-links{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.p-related-links a{font-size:var(--type-label);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--p-line);padding:16px 0}.p-source-list{border-top:1px solid var(--p-line);margin-top:30px;padding-top:25px;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.p-source-list h3{font-size:var(--type-body);font-weight:600;margin-bottom:9px}.p-source-list p{font-size:var(--type-label);color:var(--p-muted);line-height:1.9;margin-top:12px}.p-next-case{border-top:1px solid var(--p-line);padding:30px 0 75px}.p-next-case>a{display:flex;align-items:center;justify-content:space-between;margin-top:18px;gap:20px}.p-next-case a span{font:var(--type-label) ui-monospace,monospace;color:var(--p-muted)}.p-next-case h2{font-size:var(--type-title);font-weight:600;margin-top:8px;letter-spacing:-.7px}.p-next-case>a:hover{color:var(--p-blue)}@media(min-width:1600px){.p-header{padding-inline:max(56px,calc((100vw - 1280px)/2))}}@media(max-width:1050px){.p-wrap{width:calc(100% - 64px)}.p-header{padding:0 32px}.p-intro{gap:32px;padding:64px 0}.p-intro h1{font-size:var(--type-display);letter-spacing:-2px}.p-intro-side p{font-size:var(--type-label)}.p-desktop-break{display:none}.p-project-info{gap:40px}.p-project-info h3{font-size:var(--type-title)}.p-secondary-project h3{font-size:var(--type-body)}.p-about{gap:50px}.p-footer{padding:50px 32px}.p-case-layout{grid-template-columns:155px minmax(0,1fr);gap:35px}.p-case-title-row{gap:30px}.p-case-title-row h1{font-size:var(--type-display)}.p-case-title-row h1>span{font-size:var(--type-title)}.p-case-heading h2{font-size:var(--type-title)}.p-three-phones{gap:13px}.p-phone-story .p-figure{padding:10px}.p-decision-grid>article{padding:20px}.p-case-hero-art{padding:28px 28px 16px}.p-case-summary p{font-size:var(--type-label)}}@media(max-width:760px){.p-wrap{width:calc(100% - 40px)}.p-header{height:58px;padding:0 20px;gap:15px}.p-wordmark{font-size:var(--type-body)}.p-wordmark span{display:none}.p-header nav{gap:18px;font-size:var(--type-label)}.p-header nav .p-contact{display:none}.p-intro{grid-template-columns:1fr;gap:30px;padding:48px 0 42px}.p-intro h1{font-size:var(--type-display);letter-spacing:-2px;margin-top:22px}.p-intro-side{padding:0}.p-intro-side p{font-size:var(--type-body)}.p-career-tags{margin:18px 0 12px}.p-kicker{font-size:var(--type-label);letter-spacing:1.2px}.p-section-label{padding:18px 0}.p-section-label>span{font-size:var(--type-label)}.p-feature-visual{aspect-ratio:1.32;border-radius:9px}.p-cover-label{top:20px;left:20px;right:20px;font-size:var(--type-label)}.p-cover-label span+span{font-size:var(--type-label)}.p-feishu-cover{inset:26% 7% 0 6%}.p-cover-desktop{width:96%;top:0}.p-cover-phone{width:24%;top:9%;right:-2%}.p-cover-open{width:34px;height:34px;bottom:16px;right:16px}.p-cover-open svg{width:19px}.p-project-info{grid-template-columns:1fr;gap:19px;padding:24px 0 40px}.p-project-info h3{font-size:var(--type-title);line-height:1.5}.p-project-info p{font-size:var(--type-label)}.p-project-no{font-size:var(--type-label);margin-bottom:10px}.p-project-info .p-text-link{margin-top:10px}.p-project-grid{grid-template-columns:1fr;gap:40px}.p-secondary-visual{aspect-ratio:1.45;margin-bottom:23px}.p-thunderbit-type{font-size:var(--type-title);left:24px}.p-secondary-project h3{font-size:var(--type-title)}.p-secondary-project>p{font-size:var(--type-label)}.p-system-section{margin-top:55px}.p-system-grid{grid-template-columns:1fr;gap:12px}.p-system-card{padding:20px}.p-system-card h3{margin:14px 0 7px}.p-about{grid-template-columns:1fr;gap:35px;margin-top:55px;padding-top:35px;padding-bottom:55px}.p-about h2{font-size:var(--type-title)}.p-footer{padding:40px 20px;align-items:start;flex-direction:column;gap:35px}.p-footer h2{font-size:var(--type-title)}.p-footer a{font-size:var(--type-body)}.p-footer-meta{text-align:left;flex-direction:row;gap:14px;font-size:var(--type-label);flex-wrap:wrap}.p-case-hero{padding-top:20px}.p-case-title-row{grid-template-columns:1fr;gap:24px;margin-top:24px}.p-case-title-row h1{font-size:var(--type-display);letter-spacing:-1.8px;margin-top:18px}.p-case-title-row h1>span{font-size:var(--type-title);letter-spacing:-.8px}.p-case-summary p{font-size:var(--type-label);margin-top:12px}.p-case-meta{grid-template-columns:1fr 1fr;gap:20px;margin-top:25px;padding:22px 0}.p-case-meta strong{font-size:var(--type-label)}.p-case-hero-art{padding:16px 12px 10px;border-radius:8px}.p-hero-art-note{font-size:var(--type-label);gap:8px;margin-top:9px}.p-hero-art-note .p-source{font-size:var(--type-label)}.p-case-layout{display:block;padding-top:25px}.p-case-nav{position:static;margin-bottom:40px}.p-case-nav>.p-kicker,.p-case-nav-note{display:none}.p-case-nav nav{display:flex;flex-direction:row;overflow-x:auto;gap:17px;border-block:1px solid var(--p-line);margin:0;padding:6px 0}.p-case-nav nav a{white-space:nowrap;gap:7px;font-size:var(--type-label)}.p-case-content>section{padding-bottom:45px;margin-bottom:45px}.p-case-heading h2{font-size:var(--type-title);letter-spacing:-.7px}.p-case-heading>p{font-size:var(--type-body);margin-top:16px}.p-case-heading{margin-bottom:24px}.p-two-notes{grid-template-columns:1fr;gap:22px;margin:24px 0}.p-pending{padding:15px;gap:11px;margin-top:23px}.p-pending>span{font-size:var(--type-label);padding:2px 4px}.p-pending strong,.p-pending p{font-size:var(--type-label)}.p-journey-strip{grid-template-columns:1fr 1fr;margin:24px 0}.p-journey-strip li{font-size:var(--type-label);padding:11px}.p-three-phones{grid-template-columns:1fr;gap:28px}.p-phone-story .p-figure{max-width:none;padding:23px 45px}.p-phone-story .p-image-button{max-width:240px;margin:auto}.p-phone-story h3{font-size:var(--type-body)}.p-phone-story p{font-size:var(--type-label)}.p-decision-grid{gap:12px}.p-decision-grid>article{padding:14px 10px}.p-decision-head h3{font-size:var(--type-body);line-height:1.6;min-height:45px}.p-decision-head p{font-size:var(--type-label);min-height:57px;line-height:1.8}.p-decision-grid .p-figure{margin:16px auto 10px}.p-decision-grid .p-source{font-size:var(--type-label)}.p-boundary-grid{grid-template-columns:1fr;gap:20px}.p-state-card{padding:23px}.p-state-card .p-figure{max-width:230px}.p-state-card p{font-size:var(--type-label)}.p-comparison{padding:11px}.p-comparison-toolbar{align-items:start;flex-direction:column}.p-comparison-toolbar>span{font-size:var(--type-label)}.p-comparison-toolbar button{min-height:38px;padding:7px 16px}.p-comparison .p-figure{margin-top:12px}.p-change-grid{grid-template-columns:1fr;gap:23px;margin:25px 0}.p-change-grid h3{margin:8px 0}.p-change-grid p{font-size:var(--type-label)}.p-handoff{grid-template-columns:1fr;gap:20px;padding:22px}.p-related-links{gap:20px}.p-related-links a{font-size:var(--type-label)}.p-next-case{padding:25px 0 45px}.p-next-case h2{font-size:var(--type-title)}.p-lightbox{max-width:96vw;max-height:94vh}.p-lightbox-bar{padding:7px 12px;gap:15px;font-size:var(--type-label)}.p-lightbox>img{max-width:94vw;min-width:0}.p-expand{opacity:1;width:27px;height:27px;bottom:6px;right:6px}.p-expand svg{width:13px}}@media(prefers-reduced-motion:reduce){.portfolio-v2 *,html:has(.portfolio-v2){scroll-behavior:auto!important;transition:none!important;animation:none!important}}html:has(.portfolio-v2){scroll-behavior:auto}.portfolio-v2 .p-mobile-screen{display:block;position:relative;aspect-ratio:375 / 812;overflow:hidden;border-radius:8px}.portfolio-v2 .p-mobile-screen>img{position:absolute;left:calc(-100% * 10 / 375);top:calc(-100% * 5 / 812);width:calc(100% * 395 / 375);max-width:none;height:auto;border-radius:0;box-shadow:none}.portfolio-v2 .p-mobile-screen.p-cover-phone{position:absolute;border-radius:14px}.portfolio-v2 .p-lightbox>.p-mobile-screen{width:min(375px,90vw,calc((94dvh - 72px) * 375 / 812));max-width:90vw;margin:auto;border-radius:0}.e-home-visual{display:block;position:relative;overflow:hidden;border-radius:14px;background:#e9eee8;aspect-ratio:1.94;border:1px solid #e2e3de}.e-home-visual>.e-cover-art{position:absolute;width:76%;height:91%;right:0;top:9%;perspective:1100px;perspective-origin:60% 53%;pointer-events:none}.e-cover-caption{position:absolute;left:34px;bottom:42px;display:flex;flex-direction:column;gap:14px;max-width:27%;color:var(--p-muted)}.e-cover-caption span:first-child{font:var(--type-label)/1.8 ui-monospace,monospace;letter-spacing:1px}.e-cover-caption span:last-child{font-size:var(--type-title);line-height:1.6;font-weight:600;letter-spacing:-.5px}.e-system-grid{grid-template-columns:repeat(2,1fr)}.e-hero-art{background:#f0f0ed;border:1px solid #e2e3de;padding:25px 40px 18px;border-radius:12px}.e-hero-art>.p-figure{max-width:1000px;margin:0 auto}.e-hero-art .p-image-button>img{mix-blend-mode:multiply}.p-elevation .p-case-title-row h1{font-size:var(--type-display)}.e-principles,.e-taxonomy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:30px 0 16px}.e-principles article{padding-top:18px;border-top:1px solid #cdd4c6}.e-principles article>span,.e-taxonomy article>span,.e-deliverables article>span{font:var(--type-label)/1.5 ui-monospace,monospace;color:var(--p-muted);letter-spacing:1px}.e-principles h3,.e-taxonomy h3,.e-deliverables h3{font-size:var(--type-body);font-weight:600;margin:13px 0 12px}.e-principles p,.e-taxonomy p,.e-deliverables p{font-size:var(--type-label);line-height:1.9;color:var(--p-muted)}.e-taxonomy{gap:16px}.e-taxonomy article{padding:23px;background:#eef0e9;border-radius:7px}.e-taxonomy article>span{font-size:var(--type-label)}.e-taxonomy h3{font-size:var(--type-body)}.e-level-table{overflow-x:auto;border:1px solid var(--p-line);border-radius:8px;margin-top:24px}.e-level-table table{border-collapse:collapse;width:100%;text-align:left;font-size:var(--type-label)}.e-level-table caption{text-align:left;padding:18px 20px;font-size:var(--type-label);color:var(--p-muted);background:#f0f2eb}.e-level-table th{font-weight:600;background:#edf0e6}.e-level-table th,.e-level-table td{padding:14px 20px;border-top:1px solid var(--p-line);vertical-align:top;line-height:1.8}.e-level-table td:first-child{font:var(--type-body)/1.8 ui-monospace,monospace;color:var(--p-muted);white-space:nowrap}.e-level-table td:last-child{color:var(--p-muted)}.e-story{margin-top:35px}.e-story-label>span{font:var(--type-label)/1.5 ui-monospace,monospace;color:var(--p-muted)}.e-story h3,.e-rule h3,.e-collision h3,.e-coplanar h3{font-size:var(--type-body);font-weight:600;line-height:1.5;margin:13px 0}.e-story p,.e-rule p,.e-collision p,.e-coplanar p{font-size:var(--type-label);line-height:1.9;color:var(--p-muted)}.e-story .p-figure{margin:16px 0 40px}.p-elevation .p-figure figcaption{max-width:760px}.e-rule{display:grid;grid-template-columns:1fr 1.25fr;gap:28px;align-items:center;padding:30px 0;border-bottom:1px solid var(--p-line)}.e-equation{font:var(--type-title)/1.5 ui-monospace,monospace;color:var(--p-muted);letter-spacing:-1px}.e-rule h3{font-size:var(--type-body)}.e-collision{margin-top:30px;padding:25px;background:#eef0e9;border-radius:8px}.e-collision .p-figure{margin:0 0 24px}.e-switcher{margin-top:28px;border:1px solid var(--p-line);border-radius:8px;overflow:hidden;background:#fff}.e-switch-body{padding:28px}.e-switch-body h3{font-size:var(--type-title);font-weight:600;line-height:1.5;margin-bottom:14px}.e-switch-body>p{font-size:var(--type-label);color:var(--p-muted);line-height:1.9}.e-switch-body .p-figure{margin:24px 0 12px}.e-coplanar{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-bottom:35px}.e-coplanar .p-figure{margin:0 0 20px}.e-coplanar h3{font-size:var(--type-body)}.e-coplanar .p-image-button{aspect-ratio:2;display:flex;align-items:center;background:#ececec;overflow:hidden}.e-coplanar .p-image-button img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;border-radius:0}.e-deliverables{display:grid;grid-template-columns:1fr 1fr;gap:20px}.e-deliverables article{border:1px solid var(--p-line);border-radius:7px;padding:24px}.e-deliverables .p-source{margin-top:12px}@media(max-width:1050px){.e-cover-caption span:last-child{font-size:var(--type-title)}.e-taxonomy{gap:12px}.e-taxonomy article{padding:16px}.e-rule{grid-template-columns:1fr}.e-principles{gap:18px}.e-hero-art{padding:20px}.e-switch-body{padding:22px}}@media(max-width:760px){.e-home-visual{aspect-ratio:1.25;border-radius:9px}.e-home-visual>.e-cover-art{width:100%;height:76%;top:9%;right:0}.e-cover-caption{left:20px;bottom:18px;max-width:80%;gap:5px}.e-cover-caption span:first-child{font-size:var(--type-label)}.e-cover-caption span:last-child{font-size:var(--type-body)}.e-system-grid{grid-template-columns:1fr}.p-elevation .p-case-title-row h1{font-size:var(--type-display)}.p-elevation .p-case-title-row h1>span{font-size:var(--type-title)}.e-hero-art{padding:12px 10px;border-radius:8px}.e-principles,.e-taxonomy{grid-template-columns:1fr;gap:18px}.e-taxonomy article{padding:21px}.e-taxonomy h3{font-size:var(--type-body)}.e-level-table th,.e-level-table td{padding:12px;font-size:var(--type-label)}.e-level-table caption{padding:14px 12px;line-height:1.8}.e-level-table td:first-child{font-size:var(--type-label)}.e-story h3,.e-collision h3{font-size:var(--type-body)}.e-rule{gap:20px;padding:25px 0}.e-collision{padding:18px}.e-switch-body{padding:19px 15px}.e-switch-body h3{font-size:var(--type-body)}.e-coplanar{grid-template-columns:1fr;gap:26px}.e-deliverables{grid-template-columns:1fr;gap:14px}.e-deliverables article{padding:21px}}.p-icons .p-case-title-row h1{font-size:var(--type-display)}.i-hero-art{background:#eeedf3;border:1px solid #e0dfe7;border-radius:12px;padding:28px 32px 24px}.i-hero-top{display:flex;align-items:center;justify-content:space-between;gap:20px}.i-hero-top>span{font:var(--type-label)/1.7 ui-monospace,monospace;letter-spacing:1.2px;color:var(--p-muted)}.i-style-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;padding:35px 0 30px}.i-style-gallery>div{text-align:center;min-width:0}.i-style-gallery img{width:100%;border-radius:0;clip-path:inset(15.5% 16.5% 17%);mix-blend-mode:darken}.i-style-gallery span{display:block;font-size:var(--type-label);color:var(--p-muted);margin-top:12px}.i-hero-bottom{border-top:1px solid #d9d6e2;padding-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.i-hero-bottom>span{display:flex;align-items:baseline;gap:14px;font:var(--type-title)/1.4 ui-monospace,monospace;color:var(--p-muted)}.i-hero-bottom small{font:var(--type-label)/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:var(--p-muted)}.i-scope-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--p-line);border-radius:6px;overflow:hidden;margin:28px 0 35px}.i-scope-strip>div{padding:20px 17px;background:#eef0e9;border-right:1px solid var(--p-line)}.i-scope-strip>div:last-child{border:0}.i-scope-strip h3{font-size:var(--type-body);font-weight:600;margin-bottom:9px}.i-scope-strip p{font-size:var(--type-label);color:var(--p-muted);line-height:1.8}.i-comparison{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:26px 0 18px}.i-comparison>article{background:#f4f5f0;border:1px solid #e3e6dd;border-radius:7px;padding:18px}.i-comparison>article+article{background:#f5f3ef;border-color:#e7e1d8}.i-example-label{font-size:var(--type-label);color:var(--p-muted);letter-spacing:.5px}.i-example-label.i-avoid{color:var(--p-warning)}.i-comparison .p-figure{margin:15px auto}.i-comparison p{font-size:var(--type-label);color:var(--p-muted);line-height:1.8}.i-principle-pair .p-figure{max-width:205px}.i-principle-pair .p-image-button>img{border-radius:5px}.i-comparison:not(.i-principle-pair) .p-image-button>img{max-height:300px;-o-object-fit:contain;object-fit:contain;background:#fbfbfb}.p-icons .e-switch-body>.p-kicker{margin-bottom:12px}.i-level-meta{display:grid;grid-template-columns:1.1fr .8fr 1.1fr;border-block:1px solid var(--p-line);padding:18px 0;gap:20px;margin-top:22px}.i-level-meta span{display:block;font-size:var(--type-label);color:var(--p-muted);margin-bottom:7px}.i-level-meta strong{font-size:var(--type-label);font-weight:600;line-height:1.8}.i-context-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.i-context-gallery .p-figure{background:transparent;padding:0}.i-spec-stats{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--p-line);padding:25px 0;gap:20px;margin:30px 0}.i-spec-stats strong{font:var(--type-title)/1.5 ui-monospace,monospace;color:var(--p-muted);display:block}.i-spec-stats span{font-size:var(--type-label);color:var(--p-muted);display:block;margin-top:7px}.i-keyline-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:10px 0}.i-keyline-pair .p-figure{margin:12px 0}.i-optical-story{margin-top:40px}.i-optical-story h3{font-size:var(--type-title);font-weight:600;line-height:1.5;margin:14px 0}.i-optical-story>p{font-size:var(--type-label);color:var(--p-muted);line-height:1.9}.i-optical-story+.i-optical-story{border-top:1px solid var(--p-line);padding-top:35px}.i-craft-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}.i-craft-gallery>.p-figure{margin:0}.i-craft-gallery>.p-figure:first-child{grid-column:1/-1}.i-craft-gallery>.p-figure:first-child .p-image-button{max-width:680px;margin:auto}.i-craft-gallery figcaption{text-align:center}.p-icons .e-switch-body>.p-source+.p-source{margin-left:20px}.i-colors{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:28px 0}.i-colors>div{display:flex;align-items:center;gap:18px;border:1px solid var(--p-line);border-radius:7px;padding:20px}.i-swatch{width:42px;height:42px;border-radius:8px;flex-shrink:0}.i-colors strong{font:var(--type-label)/1.5 ui-monospace,monospace}.i-colors p{font-size:var(--type-label);color:var(--p-muted);margin-top:6px}@media(max-width:1050px){.i-hero-art{padding:24px}.i-style-gallery{gap:12px}.i-hero-bottom>span{font-size:var(--type-body);gap:9px}.i-level-meta{gap:15px}.i-colors{gap:16px}.i-colors>div{padding:16px;gap:12px}.i-context-gallery{grid-template-columns:1fr}.i-scope-strip>div{padding:16px 12px}.i-spec-stats strong{font-size:var(--type-title)}}@media(max-width:760px){.p-icons .p-case-title-row h1{font-size:var(--type-display)}.p-icons .p-case-title-row h1>span{font-size:var(--type-title)}.i-hero-art{padding:18px 14px}.i-hero-top{display:block}.i-hero-top>span{display:block;font-size:var(--type-label);letter-spacing:1px}.i-hero-top .p-source{font-size:var(--type-label);margin-top:5px}.i-style-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 12px;padding:23px 0}.i-style-gallery span{font-size:var(--type-label);margin-top:8px}.i-hero-bottom{gap:12px;padding-top:18px}.i-hero-bottom>span{display:block;font-size:var(--type-body)}.i-hero-bottom small{display:block;font-size:var(--type-label);margin-top:7px}.i-scope-strip{grid-template-columns:1fr 1fr}.i-scope-strip>div:nth-child(2){border-right:0}.i-scope-strip>div:nth-child(-n+2){border-bottom:1px solid var(--p-line)}.i-scope-strip>div{padding:16px}.i-comparison{gap:12px;margin-top:20px}.i-comparison>article{padding:12px 10px}.i-comparison p,.i-example-label{font-size:var(--type-label)}.i-level-meta{grid-template-columns:1fr;gap:13px;padding:16px 0}.i-level-meta>div{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:baseline}.i-level-meta span{margin:0}.i-level-meta strong{font-size:var(--type-label)}.i-spec-stats{gap:12px;padding:20px 0}.i-spec-stats strong{font-size:var(--type-body);letter-spacing:-1px}.i-spec-stats span{font-size:var(--type-label)}.i-keyline-pair{grid-template-columns:1fr;gap:5px}.i-optical-story h3{font-size:var(--type-body)}.i-craft-gallery{grid-template-columns:1fr;gap:20px}.i-colors{grid-template-columns:1fr;gap:12px}.i-colors>div{padding:17px}}.p-intro .p-clarity-headline{margin-top:28px;line-height:1.2;font-weight:400;letter-spacing:0}.p-clarity-headline .p-headline-input{display:block;font-size:var(--type-title);font-weight:400;line-height:1.5;letter-spacing:.035em;color:var(--p-soft);margin-bottom:17px}.p-clarity-headline .p-headline-output{display:flex;align-items:baseline;gap:.1em;white-space:nowrap;font-size:var(--type-title);font-weight:400;letter-spacing:-.045em;color:var(--p-muted)}.p-headline-focus{position:relative;display:inline-block;margin:0 .035em;padding:.07em .12em .1em;font-size:var(--type-display);font-weight:700;line-height:1.13;letter-spacing:-.055em;color:var(--p-ink)}.p-focus-corner{position:absolute;width:10px;height:10px;border:0 solid #81916e;pointer-events:none}.p-focus-tl{top:0;left:0;border-top-width:1px;border-left-width:1px}.p-focus-tr{top:0;right:0;border-top-width:1px;border-right-width:1px}.p-focus-bl{bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}.p-focus-br{bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}@media(max-width:1050px)and (min-width:761px){.p-clarity-headline .p-headline-input,.p-clarity-headline .p-headline-output{font-size:var(--type-title)}}@media(max-width:760px){.p-intro .p-clarity-headline{margin-top:24px}.p-clarity-headline .p-headline-input{font-size:var(--type-title);margin-bottom:15px}.p-clarity-headline .p-headline-output{font-size:var(--type-title)}.p-headline-focus{font-size:var(--type-display)}.p-focus-corner{width:8px;height:8px}}.p-header .p-wordmark{gap:10px;letter-spacing:0;min-height:44px}.p-header .p-wordmark span{display:block;border:0;padding:0;color:inherit}.p-header .p-wordmark .p-brand-avatar{width:34px;height:34px;overflow:hidden;border-radius:50%;background:#e9ebe3;position:relative;flex-shrink:0}.p-brand-avatar img{position:absolute;width:44px;max-width:none;left:-5px;top:0}.p-header .p-wordmark .p-brand-name{display:flex;flex-direction:row;align-items:center;gap:10px}.p-brand-name strong{display:flex;align-items:center;gap:4px;font-size:var(--type-body);font-weight:600;line-height:1.2;letter-spacing:1px;flex-shrink:0}.p-brand-name small{font:var(--type-label)/1.2 ui-monospace,SFMono-Regular,monospace;letter-spacing:1.5px;flex-shrink:0;color:var(--p-muted)}@media(max-width:760px){.p-header .p-wordmark{gap:8px}.p-header .p-wordmark .p-brand-avatar{width:30px;height:30px}.p-brand-avatar img{width:39px;left:-4px}.p-brand-name strong{font-size:var(--type-body);letter-spacing:.5px;gap:3px}.p-brand-name small{font-size:var(--type-label);letter-spacing:.02em}.p-header nav{gap:14px}}@media(max-width:360px){.p-header{padding-inline:14px;gap:10px}.p-header nav{gap:10px;font-size:var(--type-label)}.p-header .p-wordmark .p-brand-name{gap:7px}}.p-header-space{height:64px}.p-header{position:fixed;left:50%;isolation:isolate;transform:translate3d(-50%,0,0);width:100%;border:1px solid transparent;border-bottom-color:transparent;transition:width .42s cubic-bezier(.22,1,.36,1),height .42s cubic-bezier(.22,1,.36,1),top .42s cubic-bezier(.22,1,.36,1),padding .42s cubic-bezier(.22,1,.36,1),border-radius .42s cubic-bezier(.22,1,.36,1),background .3s,border-color .3s,box-shadow .3s}.p-header .p-wordmark{transition:gap .35s ease}.p-header .p-brand-name{max-width:140px;opacity:1;overflow:hidden;transition:max-width .35s cubic-bezier(.22,1,.36,1),opacity .2s ease}.p-header .p-brand-avatar{transition:width .35s,height .35s}.p-brand-avatar img{transition:width .35s,left .35s}.p-header.p-header-compact{top:16px;width:min(720px,calc(100% - 48px));--p-bar-height:54px;--p-bar-inset:8px;height:var(--p-bar-height);padding:0 calc(var(--p-bar-inset) - 1px) 0 11px;border-color:#ffffffa3;border-radius:calc(var(--p-bar-height) / 2);--p-glass-bg:linear-gradient(120deg,rgba(255,255,255,.6),rgba(255,255,255,.12) 48%,rgba(255,255,255,.38)),rgba(249,249,246,.22);background:transparent;box-shadow:inset 0 1px 1px #ffffffed,inset 0 -1px 1px #ffffff70,inset 1px 0 2px #ffffffa3,inset -1px 0 2px #fff6,0 0 0 1px #35432c0a,0 8px 28px #26321c12,0 2px 6px #26321c08}.p-header-compact .p-contact{height:calc(var(--p-bar-height) - 2 * var(--p-bar-inset));min-height:0;border-radius:calc(var(--p-bar-height) / 2 - var(--p-bar-inset))}.p-header-compact .p-wordmark{gap:0}.p-header-compact .p-brand-name{max-width:0;opacity:0}.p-header.p-header-compact .p-brand-avatar{width:30px;height:30px}.p-header-compact .p-brand-avatar img{width:39px;left:-4px}@media(max-width:760px){.p-header-space{height:58px}.p-header.p-header-compact{top:10px;width:calc(100% - 24px);--p-bar-height:52px;padding:0 14px}.p-header.p-header-compact .p-brand-avatar{width:28px;height:28px}.p-header-compact .p-brand-avatar img{width:36px;left:-4px}}.p-header-compact .p-contact{background:linear-gradient(135deg,#ffffff61,#ffffff1f);border-color:#6d796333;box-shadow:inset 0 1px #ffffffad}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.p-header,.p-header.p-header-compact{background:#f9f9f6f7}}@media(prefers-reduced-transparency:reduce){.p-header,.p-header.p-header-compact{background:#f9f9f6;-webkit-backdrop-filter:none;backdrop-filter:none}}.p-timeline>.p-experience{display:grid;grid-template-columns:56px minmax(0,1fr);-moz-column-gap:18px;column-gap:18px;align-items:start}.p-experience-copy>span{font:var(--type-label) ui-monospace,monospace;color:var(--p-muted)}.p-timeline .p-company-logo{display:flex;align-items:center;justify-content:center;width:56px;height:48px;margin-top:30px;position:relative;overflow:hidden;background:var(--p-bg)}.p-company-logo img{width:44px;height:44px;-o-object-fit:contain;object-fit:contain;mix-blend-mode:multiply}.p-company-pxcook img{width:56px;height:auto}.p-company-bytedance img{position:absolute;width:420px;max-width:none;height:auto;left:-10px;top:-80px}.p-company-baidu img{position:absolute;width:163px;max-width:none;height:auto;left:-54px;top:-25px;clip-path:inset(27% 39% 34% 39%)}.p-company-360 img{position:absolute;width:120px;max-width:none;height:auto;left:3px;top:-13px;clip-path:inset(23% 63% 22% 3%)}.p-timeline h3{gap:9px 18px}@media(max-width:760px){.p-timeline>.p-experience{grid-template-columns:48px minmax(0,1fr);-moz-column-gap:14px;column-gap:14px}.p-timeline .p-company-logo,.p-company-pxcook img{width:48px}.p-company-bytedance img{left:-14px}.p-company-baidu img{left:-58px}.p-company-360 img{left:-1px}.p-experience-copy h3{font-size:var(--type-body);display:flex;flex-direction:column;gap:7px;align-items:flex-start}.p-experience-copy h3 small{font-size:var(--type-label)}}.p-kicker,.p-section-label>span,.p-cover-label,.p-project-no{letter-spacing:.06em}.p-brand-name small{letter-spacing:.02em}.p-header .p-brand-name{max-width:150px}.p-intro .p-clarity-headline{line-height:1.3}.p-clarity-headline .p-headline-output{letter-spacing:-.035em}.p-headline-focus{font-weight:700}.p-cover-label{gap:12px;flex-wrap:wrap}.p-footer-meta{gap:12px}@media(max-width:760px){.p-header nav{gap:12px}.p-header .p-wordmark,.p-header .p-wordmark .p-brand-name{gap:7px}.p-section-label{flex-wrap:wrap;gap:8px 16px}.p-cover-label{top:16px;left:16px;right:16px;gap:4px 12px}.p-kicker{letter-spacing:.02em}.p-intro-side>p{line-height:1.85}.p-case-meta{gap:20px 14px}.p-footer-meta{flex-direction:column;gap:8px}.e-cover-caption span:last-child{font-size:var(--type-body)}.p-case-nav nav a{white-space:nowrap}}@media(max-width:360px){.p-header .p-brand-name small{display:none}.p-header nav{gap:10px}.p-clarity-headline .p-headline-output{gap:0;letter-spacing:-.05em}.p-system-card h3{overflow-wrap:anywhere}}.portfolio-v2 p{font-size:var(--type-body)}.portfolio-v2 .p-experience-copy>p{font-size:var(--type-label)}.p-case-meta strong{font-size:var(--type-body)}@media(max-width:760px){.portfolio-v2 .p-case-title-row h1{font-size:var(--type-title);font-weight:700;letter-spacing:-.025em}.portfolio-v2 .p-case-title-row h1>span{font-size:var(--type-body);font-weight:600;letter-spacing:0;line-height:1.6}}.portfolio-v2 :is(h1,h2,h3){text-wrap:balance}.i-feature-cover{background:#eeedf3;isolation:isolate}.i-cover-field{position:absolute;inset:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 94%,transparent)}.i-feature-cover:after{content:"";position:absolute;inset:0 0 auto;height:88px;background:linear-gradient(#eeedf3 15%,#eeedf3e8 55%,#eeedf300);pointer-events:none}.e-cover-caption,.i-cover-title{position:absolute;left:7%;top:50%;bottom:auto;transform:translateY(-50%);display:flex;flex-direction:column;gap:16px;max-width:none}.e-cover-caption span:last-child,.i-cover-title>strong{color:#343440}.e-cover-caption span:first-child,.i-cover-title>span{line-height:1.6}.i-cover-title>span{font-size:var(--type-label);letter-spacing:.06em;color:#686978}.e-cover-caption span:last-child,.i-cover-title>strong{font-size:var(--type-title);font-weight:600;line-height:1.6;letter-spacing:-.5px}.i-feature-cover .p-cover-open{z-index:2}@media(max-width:760px){.i-feature-cover{aspect-ratio:1}.e-cover-caption,.i-cover-title{left:8%;gap:12px}.e-home-visual{aspect-ratio:1}.e-home-visual>.e-cover-art{width:88%;height:91%;right:-28%;top:9%}.e-cover-caption span:last-child,.i-cover-title>strong{font-size:var(--type-body)}.i-feature-cover .p-cover-label{align-items:flex-start}.i-feature-cover .p-cover-label span+span{max-width:165px;text-align:right}}.p-header:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:var(--p-glass-bg);-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%)}@media(prefers-reduced-transparency:reduce){.p-header:before{background:#f9f9f6;-webkit-backdrop-filter:none;backdrop-filter:none}}.e-home-visual .p-cover-open{transition:background-color .3s ease,color .3s ease}.e-home-visual .p-cover-open svg{transition:transform .45s cubic-bezier(.22,1,.36,1)}@media(hover:hover)and (pointer:fine){.e-home-visual:hover .p-cover-open{background:#fff;color:#42664a}.e-home-visual:hover .p-cover-open svg{transform:translate(2px,-2px)}}@media(prefers-reduced-motion:reduce){.e-home-visual>.e-cover-art,.e-home-visual .p-cover-open,.e-home-visual .p-cover-open svg{transition:none}.e-home-visual:hover .e-layer-rear,.e-home-visual:hover .e-layer-front,.e-home-visual:hover .p-cover-open svg{transform:none}}.e-layer-rear,.e-layer-front{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:none;backface-visibility:hidden}.e-layer-rear{transform-origin:50% 46%}.e-layer-front{transform-origin:61% 56%}.e-depth-active .e-layer-rear,.e-depth-active .e-layer-front{will-change:transform}@media(prefers-reduced-motion:reduce){.e-layer-rear,.e-layer-front{transition:none}}.p-case-meta{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}@media(max-width:760px){.p-case-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}.p-case-summary>p:first-child{margin-top:0}.p-two-notes:has(>div:only-child){grid-template-columns:1fr}.portfolio-v2 :is(.p-text-link,.p-related-links>a,.p-back){display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;gap:8px;min-height:44px;max-width:100%;padding:10px 18px;border:1px solid #c9cec5;border-radius:999px;background:transparent;color:var(--p-ink,#242824);font-size:var(--type-label);font-weight:600;line-height:1.5;text-decoration:none;transition:border-color .18s ease,color .18s ease,background-color .18s ease}.portfolio-v2 :is(.p-text-link,.p-related-links>a,.p-back) svg.lucide{width:14px;height:14px;flex-shrink:0;transition:transform .18s ease}.p-text-link:hover,.p-related-links>a:hover,.p-back:hover{border-color:#7b8b76;color:#42664a;background:#eef0e980}.p-related-links>a:hover svg{transform:translate(2px,-2px)}.p-back:hover svg{transform:translate(-2px)}.p-text-link:focus-visible,.p-related-links>a:focus-visible,.p-back:focus-visible{outline:2px solid #65816b;outline-offset:3px}@media(prefers-reduced-motion:reduce){.portfolio-v2 :is(.p-text-link,.p-related-links>a,.p-back),.portfolio-v2 :is(.p-text-link,.p-related-links>a,.p-back) svg.lucide{transition:none}}.e-content-gallery{margin-top:32px}.e-content-gallery>h3{font-size:var(--type-body);font-weight:600;line-height:1.5;margin:0 0 24px}.e-content-gallery>.p-figure{padding:20px;background:#fff}@media(max-width:760px){.e-content-gallery>.p-figure{padding:8px}.e-content-gallery .i-context-gallery{grid-template-columns:1fr}}.p-thunderbit .p-case-hero-art{background:#eceefa}.p-brisi .p-case-hero-art{background:#e9eae1}.p-selected-case .p-case-hero-art>.p-figure{margin:0}.p-thunderbit .p-case-hero-art .p-image-button>img{max-height:480px;-o-object-fit:contain;object-fit:contain;box-shadow:none}.p-secondary-visual:is(.p-thunderbit-commerce-cover,.p-brisi-cover){border-radius:12px}.p-browser-preview{position:absolute;left:7%;top:24%;width:112%;border-radius:6px;overflow:hidden;box-shadow:0 18px 40px #46523723;transform:translateY(0);transition:transform .4s cubic-bezier(.22,1,.36,1)}.p-browser-preview>img{display:block;width:100%;height:auto;max-width:none;border-radius:inherit;clip-path:inset(0 round 6px)}@media(hover:hover)and (pointer:fine){.p-secondary-visual:hover .p-browser-preview{transform:translateY(-8px)}}.p-secondary-visual:focus-visible .p-browser-preview{transform:translateY(-8px)}@media(prefers-reduced-motion:reduce){.p-secondary-visual .p-browser-preview{transform:none!important;transition:none}}.p-dark-art .p-image-button{background:#17161a}.p-case-closing-note{font-size:var(--type-label);line-height:1.8;color:var(--p-muted);margin-bottom:var(--case-section)}.p-intro-bio>span{display:block}.p-bio-name,.p-bio-highlight{font-weight:600;color:var(--p-ink)}.p-bio-highlight{white-space:nowrap;background:#e8eddf;border-radius:3px;padding:1px 3px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.p-intro-bio>span+span{margin-top:16px}.p-footer .p-footer-intro{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:0}.p-footer-title-row{display:flex;align-items:center;gap:12px;margin:var(--space-2) 0 var(--space-3)}.p-footer .p-footer-title-row h2{margin:0;line-height:1.5}.p-footer a{border-bottom:0;padding-bottom:0;text-decoration:none}.p-footer .p-footer-email{gap:10px;min-height:44px}.p-footer .p-footer-email:hover{color:#d1e1c5;text-decoration:none}.p-footer .p-footer-avatar{display:block;flex:none;border:0;padding:0;border-radius:50%}.p-footer-avatar .p-brand-avatar{display:block;position:relative;width:calc(var(--type-title) * 1.2);height:calc(var(--type-title) * 1.2);overflow:hidden;border-radius:50%;background:#e2e7db}.p-footer-avatar .p-brand-avatar img{width:130%;left:-15%;top:0}.p-footer :is(.p-footer-avatar,.p-footer-email):focus-visible{outline:2px solid var(--p-muted);outline-offset:5px}@media(prefers-reduced-motion:no-preference){.p-footer-avatar:focus-visible .p-avatar-blink{animation:avatar-hover-blink .18s .06s linear both}.p-footer-avatar:focus-visible .p-avatar-talk{animation:avatar-hover-talk .38s .22s ease-in-out both}}.p-footer-avatar .p-avatar-email-gaze{-webkit-mask-image:radial-gradient(ellipse 12% 11% at 42% 47%,#000 80%,transparent 100%),radial-gradient(ellipse 11% 11% at 64% 43%,#000 80%,transparent 100%);mask-image:radial-gradient(ellipse 12% 11% at 42% 47%,#000 80%,transparent 100%),radial-gradient(ellipse 11% 11% at 64% 43%,#000 80%,transparent 100%);transition:opacity .65s cubic-bezier(.4,0,.2,1)}@media(hover:hover){.p-footer-intro:has(.p-footer-email:hover) .p-avatar-email-gaze{opacity:1}}.p-footer-intro:has(.p-footer-email:focus-visible) .p-avatar-email-gaze{opacity:1}@media(prefers-reduced-motion:reduce){.p-footer-avatar .p-avatar-email-gaze{transition:none}}.portfolio-v2 .p-desktop-screen{display:block;position:relative;width:100%;aspect-ratio:12 / 7;overflow:hidden;border-radius:8px}.portfolio-v2 .p-desktop-screen>img{display:block;width:100%;max-width:none;height:auto;border-radius:0;box-shadow:none}.portfolio-v2 .p-lightbox>.p-desktop-screen{width:min(1200px,90vw,calc((94dvh - 72px) * 12 / 7));max-width:90vw;margin:auto}@media(max-width:760px){.portfolio-v2 .p-lightbox>.p-desktop-screen{max-width:94vw}}.p-platform-list{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 18px;vertical-align:middle}.p-platform-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;line-height:1.5}.p-platform-item>svg{width:18px;height:18px;flex-shrink:0;color:currentColor}.p-case-nav nav a{position:relative;transition:color .18s ease}.p-case-nav nav a[aria-current=location]{color:var(--p-blue);font-weight:600}.p-case-nav nav a[aria-current=location]>span{color:inherit}.p-case-nav nav a[aria-current=location]:before{content:"";position:absolute;left:-12px;top:50%;width:3px;height:16px;border-radius:3px;background:currentColor;transform:translateY(-50%)}@media(max-width:760px){.p-case-nav nav a[aria-current=location]:before{display:none}}.p-system-grid.e-system-grid{gap:32px}.p-system-grid .p-system-card{border:0;border-radius:14px;padding:32px;background:#f2f3ee;transition:background .22s ease,box-shadow .22s ease}.p-system-card-top{display:flex;align-items:center;justify-content:space-between;color:var(--p-muted)}.portfolio-v2 .p-system-card svg.p-system-icon{width:36px;height:36px;stroke-width:1.5;flex-shrink:0;transition:color .22s ease,transform .22s ease}.p-system-arrow{opacity:.55;transition:opacity .22s ease,transform .22s ease}.p-system-grid .p-system-card h3{margin:32px 0 12px;font-size:var(--type-body);font-weight:600;line-height:1.5}.p-system-grid .p-system-card p{margin:0;font-size:var(--type-label);line-height:1.9;max-width:38em}.p-system-card:focus-visible{outline:2px solid var(--p-blue);outline-offset:4px}@media(hover:hover){.p-system-grid .p-system-card:hover{background:#eceee7;box-shadow:0 6px 20px #24282406}.p-system-card:hover .p-system-icon{color:var(--p-ink);transform:translateY(-2px)}.p-system-card:hover .p-system-arrow{opacity:1;transform:translate(2px,-2px)}}@media(max-width:760px){.p-system-grid.e-system-grid{gap:20px}.p-system-grid .p-system-card{padding:24px}.p-system-grid .p-system-card h3{margin-top:24px}}@media(prefers-reduced-motion:reduce){.p-system-grid .p-system-card,.p-system-icon,.p-system-arrow{transition:none}.p-system-card:hover .p-system-icon,.p-system-card:hover .p-system-arrow{transform:none}}.p-footer .p-footer-email{transition:color .2s ease}.p-footer .p-brand-avatar{--avatar-shadow:0 2px 6px #0003,0 6px 16px #0003;--avatar-shadow-raised:0 4px 10px #0004,0 10px 24px #0005}@media(prefers-reduced-motion:reduce){.p-footer .p-footer-email{transition:none}}.p-welcome{position:fixed;inset:0;z-index:100;pointer-events:none}.p-welcome-backdrop{position:absolute;inset:0;background:var(--p-bg)}.p-welcome-avatar{position:absolute;top:0;left:0;transform-origin:0 0;opacity:0;will-change:transform,opacity}.p-welcome-face{width:100%;height:100%;position:relative;overflow:hidden;border-radius:50%;background:#e9ebe3}.p-welcome-avatar img{position:absolute;max-width:none;height:auto}.p-welcome-hi{position:absolute;left:calc(var(--welcome-x) + var(--welcome-size) - 8px);top:calc(var(--welcome-y) - 24px);padding:12px 20px;background:#e9eddf;color:var(--p-ink);border-radius:24px 24px 24px 6px;font-size:var(--type-title);font-weight:600;line-height:1.2;letter-spacing:-1px;transform-origin:0 100%;opacity:0}.p-welcome-spark{position:absolute;right:-14px;top:-14px;color:#81916e;font-size:var(--type-body)}.p-entering .p-header .p-brand-avatar{opacity:0}.p-entering .p-header .p-brand-name,.p-entering .p-header nav,.p-entering .p-header:before,.p-entering .p-intro .p-kicker,.p-entering .p-headline-input,.p-entering .p-headline-output,.p-entering .p-intro-side,.p-entering main>section:not(.p-intro),.p-entering>.p-footer{opacity:0}.portfolio-v2.p-entering .p-intro>div{animation:none;translate:none}.portfolio-v2.p-entering .p-intro-side{opacity:0}.portfolio-v2.p-entering .p-intro-side>.p-credential-wall{opacity:0}.portfolio-v2.p-entrance-started .p-intro-side>.p-credential-wall{animation:welcome-rise .45s 2s both}.p-entering .p-credential-track{animation-play-state:paused}.p-entrance-started .p-welcome-avatar{animation:welcome-appear .28s ease-out both}.p-entrance-started .p-welcome-face{animation:welcome-nod .68s ease-in-out both}.p-entrance-started .p-welcome-hi{animation:welcome-hi .65s .2s both}.p-entrance-started .p-welcome-backdrop{animation:welcome-backdrop .42s .86s both}.p-entrance-started .p-header .p-brand-name,.p-entrance-started .p-header nav,.p-entrance-started .p-header:before{animation:welcome-appear .32s 1.03s both}.p-entrance-started .p-intro .p-kicker{animation:welcome-appear .35s 1.13s both}.p-entrance-started .p-headline-input{animation:welcome-rise .45s 1.2s both}.p-entrance-started .p-headline-output{animation:welcome-rise .45s 1.35s both}.p-entrance-started .p-headline-focus-text{display:inline-block;animation:welcome-focus .9s 1.38s both}.p-entrance-started .p-focus-corner{animation:welcome-corners .6s 1.48s both}.portfolio-v2.p-entrance-started .p-intro>.p-intro-side{animation:welcome-rise .45s 1.75s both}.p-entrance-started main>section:not(.p-intro):not(.p-selected):not(.p-system-section),.p-entrance-started>.p-footer{animation:welcome-appear .45s 2.38s both}.portfolio-v2.p-entering main>:is(.p-selected,.p-system-section){opacity:1}.portfolio-v2 .p-project-reveal{--work-rise:20px}.portfolio-v2 .p-section-label.p-project-reveal{--work-rise:12px}.portfolio-v2 .p-project-reveal :is(.p-feature>a,.p-project-info),.portfolio-v2 .p-feature.p-project-reveal>a{animation:none;translate:none}.portfolio-v2 .p-project-reveal[data-project-reveal=pending]{animation:none;opacity:0;translate:none;transform:translateY(var(--work-rise))}.portfolio-v2 .p-project-reveal[data-project-reveal=visible]{animation:welcome-work-rise .6s var(--project-delay,0ms) cubic-bezier(.22,1,.36,1) both;translate:none}.portfolio-v2 .p-section-label.p-project-reveal[data-project-reveal=visible]{animation-duration:.48s}.portfolio-v2 .p-project-reveal[data-project-reveal]:focus-within{animation:none;opacity:1;transform:none}@keyframes welcome-work-rise{0%{opacity:0;transform:translateY(var(--work-rise))}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.portfolio-v2 .p-project-reveal[data-project-reveal]{animation:none;opacity:1;transform:none}}@media print{.portfolio-v2 .p-project-reveal[data-project-reveal]{animation:none;opacity:1;transform:none}}@keyframes welcome-appear{0%{opacity:0}to{opacity:1}}@keyframes welcome-backdrop{to{opacity:0}}@keyframes welcome-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes welcome-nod{0%{transform:scale(.9) rotate(-7deg)}45%{transform:scale(1) rotate(5deg)}75%{transform:scale(1.02) rotate(-2deg)}to{transform:scale(1) rotate(0)}}@keyframes welcome-hi{0%{opacity:0;transform:scale(.8) rotate(-6deg)}25%,72%{opacity:1;transform:scale(1) rotate(0)}to{opacity:0;transform:translateY(-8px) scale(.96)}}@keyframes welcome-focus{0%{filter:blur(14px);opacity:.15;transform:scale(1.08)}55%{filter:blur(3px);opacity:.85}to{filter:blur(0);opacity:1;transform:scale(1)}}@keyframes welcome-corners{0%{opacity:0;translate:0 3px}to{opacity:1;translate:0 0}}@media(prefers-reduced-motion:reduce){.p-welcome{display:none}.portfolio-v2.p-entering :is(.p-brand-avatar,.p-brand-name,nav,.p-kicker,.p-headline-input,.p-headline-output,.p-intro-side,main>section,.p-footer),.portfolio-v2.p-entering .p-intro-side>.p-credential-wall{opacity:1;animation:none;transform:none}}.p-header .p-avatar-replay{display:flex;align-items:center;justify-content:center;padding:0;min-height:44px;border:0;background:transparent;color:inherit;flex-shrink:0}.p-entering .p-header,.p-entering .p-header *{transition:none!important}.p-welcome-expression{opacity:0;pointer-events:none;will-change:opacity}.p-welcome-expression[hidden]{display:none}.p-welcome-blink{-webkit-mask-image:radial-gradient(ellipse 12% 11% at 42% 47%,#000 80%,transparent 100%),radial-gradient(ellipse 11% 11% at 64% 43%,#000 80%,transparent 100%);mask-image:radial-gradient(ellipse 12% 11% at 42% 47%,#000 80%,transparent 100%),radial-gradient(ellipse 11% 11% at 64% 43%,#000 80%,transparent 100%)}.p-welcome-talk{-webkit-mask-image:radial-gradient(ellipse 12% 10% at 57.5% 61.5%,#000 80%,transparent 100%);mask-image:radial-gradient(ellipse 12% 10% at 57.5% 61.5%,#000 80%,transparent 100%)}.p-entrance-started .p-welcome-blink{animation:welcome-blink .16s .16s linear both}.p-entrance-started .p-welcome-talk{animation:welcome-speak .36s .3s ease-in-out both}@keyframes welcome-blink{0%,to{opacity:0}20%,75%{opacity:1}}@keyframes welcome-speak{0%,to{opacity:0}18%,70%{opacity:1}}.portfolio-v2 .p-intro{--hero-display:64px;--hero-title:32px;--hero-metric:36px;--hero-highlight:#6255d9;row-gap:56px}.portfolio-v2 .p-intro .p-clarity-headline{margin-top:72px}.portfolio-v2 .p-intro-side>.p-credential-wall{margin-top:32px;width:100%}.portfolio-v2 .p-intro .p-clarity-headline .p-headline-input{font-size:var(--hero-title);color:#141413;line-height:1.45;font-weight:400;letter-spacing:-.025em;margin-bottom:20px}.portfolio-v2 .p-intro .p-clarity-headline .p-headline-output{font-size:var(--hero-title);color:#141413;font-weight:400;letter-spacing:-.045em;line-height:1.3}.portfolio-v2 .p-intro .p-clarity-headline .p-headline-focus{font-size:var(--hero-display);font-weight:700;color:#141413}.portfolio-v2 .p-intro .p-focus-corner{width:12px;height:12px;border-color:currentColor}.portfolio-v2 .p-hero-identity p{font-size:var(--type-body);line-height:1.7;color:#555d52;margin:0}.portfolio-v2 .p-hero-identity p:first-child{color:#141413;margin-bottom:8px}.p-hero-identity strong{font-weight:700}.portfolio-v2 .p-intro .p-hero-metrics{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:28px 0 24px}.p-hero-metrics dt strong{display:flex;align-items:baseline;white-space:nowrap;font-size:var(--hero-metric);line-height:1.2;font-weight:600;letter-spacing:-.045em;color:#141413}.p-hero-metrics dt .p-metric-unit{font-size:var(--type-body);font-weight:600;letter-spacing:normal;margin-left:8px}.p-hero-metrics dd{margin:10px 0 0;font-size:var(--type-label);line-height:1.8;color:#555d52}.p-hero-metrics dd b{font-weight:600;color:#555d52}.portfolio-v2 .p-intro-side .p-hero-awards{font-size:var(--type-label);line-height:1.8;color:#555d52;margin:0}.portfolio-v2 .p-intro-side .p-career-tags{margin-top:20px;gap:8px}@media(min-width:761px)and (max-width:1100px){.portfolio-v2 .p-intro{--hero-display:56px;--hero-title:28px;--hero-metric:32px}.portfolio-v2 .p-intro .p-hero-metrics{gap:16px}}@media(max-width:760px){.portfolio-v2 .p-intro{--hero-display:52px;--hero-title:28px;--hero-metric:32px;row-gap:40px}.portfolio-v2 .p-intro .p-clarity-headline{margin-top:40px}.portfolio-v2 .p-intro .p-hero-metrics{gap:16px;margin-top:24px}.portfolio-v2 .p-intro .p-headline-input{margin-bottom:16px}}@media(max-width:360px){.portfolio-v2 .p-intro{--hero-display:48px;--hero-metric:32px}}.p-mosaic-word{display:inline-block;position:relative;white-space:nowrap}.p-mosaic-word canvas{position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;height:1.4286em;image-rendering:pixelated;opacity:0;pointer-events:none}.p-mosaic-word.is-ready .p-mosaic-text{opacity:0}.p-mosaic-word.is-ready canvas{opacity:1}@media(max-width:1100px){.p-hero-metrics dt .p-metric-unit{font-size:var(--type-label);margin-left:5px}}.p-rolling-number{display:inline-block;position:relative;font-variant-numeric:tabular-nums}.p-number-value{opacity:0}.p-number-wheels{position:absolute;inset:0;display:flex;pointer-events:none}.p-number-window{flex:1;min-width:0;height:1.2em;overflow:hidden}.p-number-reel{display:block}.p-number-cell{display:block;height:1.2em;line-height:1.2;text-align:center}@media(prefers-reduced-motion:reduce),print{.p-number-value{opacity:1}.p-number-wheels{display:none}}.portfolio-v2 .p-case-tabs{display:flex;align-items:stretch;gap:4px;padding:6px;max-width:100%;min-width:0;border:0;border-radius:28px;background:#eeefe8;overflow-x:auto;scrollbar-width:thin}.portfolio-v2 .p-case-tabs>button{display:flex;flex:1 0 auto;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 20px;border:0;border-radius:22px;background:transparent;color:var(--p-muted);font:inherit;font-size:var(--type-label);font-weight:400;line-height:1.5;white-space:nowrap;cursor:pointer;box-shadow:none;transition:background .2s ease,color .2s ease,box-shadow .2s ease}.portfolio-v2 .p-case-tabs>button[aria-pressed=true]{background:#fff;color:var(--p-ink);box-shadow:0 2px 6px #24282405}.portfolio-v2 .p-case-tabs>button:focus-visible{outline:2px solid var(--p-blue);outline-offset:-3px}.portfolio-v2 .p-case-tabs>button>svg{width:20px;height:20px;flex-shrink:0;stroke-width:1.6}.portfolio-v2 .p-case-tabs>button>svg>path{transform:none;stroke-width:inherit}.portfolio-v2 .p-case-tabs>button>span{display:inline;margin:0;font:inherit;letter-spacing:normal;opacity:1}.portfolio-v2 .e-switcher{border:0;border-radius:0;overflow:visible;background:transparent}.portfolio-v2 .e-switcher>.e-switch-body{margin-top:20px;background:#fff;border-radius:14px}.portfolio-v2 .p-comparison-toolbar>.p-case-tabs{flex-shrink:0}.portfolio-v2 .b-demo-controls>.p-case-tabs{gap:4px;padding:6px}@media(hover:hover){.portfolio-v2 .p-case-tabs>button:not([aria-pressed=true]):hover{background:#ffffff70;color:var(--p-ink)}}@media(max-width:760px){.portfolio-v2 .p-case-tabs{border-radius:24px;padding:5px;gap:3px}.portfolio-v2 .p-case-tabs>button{min-height:44px;border-radius:19px;padding:9px 14px;gap:8px}.portfolio-v2 .e-switcher>.e-switch-body{margin-top:16px}.portfolio-v2 .p-comparison-toolbar>.p-case-tabs{width:100%}}@media(prefers-reduced-motion:reduce){.portfolio-v2 .p-case-tabs>button{transition:none}}.b-flow-case .b-principles,.b-flow-case .b-motion-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.b-flow-case :is(.b-principles,.b-motion-notes)>div{padding:24px;background:#efefeb;border-radius:8px}.b-flow-case :is(.b-principles,.b-motion-notes) span{font-size:var(--type-label);color:var(--p-muted)}.b-flow-case :is(.b-principles,.b-motion-notes,.b-lane-head,.b-detail-copy,.b-case-takeaway) h3{font-size:var(--type-body);font-weight:600;line-height:1.6;margin:8px 0}.b-flow-case :is(.b-principles,.b-motion-notes,.b-detail-copy,.b-case-takeaway,.b-flow-context) p{margin:0;font-size:var(--type-body);line-height:1.9;color:var(--p-muted)}.b-workflow{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:32px;background:#f0efeb;border-radius:8px}.b-flow-lane{background:#fafaf8;border-radius:8px;padding:24px}.b-lane-head{display:flex;gap:12px;align-items:center}.b-flow-steps{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-top:24px;font-size:var(--type-body)}.b-flow-steps>svg{color:#a3a198;margin-left:2px}.b-flow-steps strong{display:flex;gap:8px;align-items:center;font-weight:600}.b-flow-context{grid-column:1/-1;padding:8px 0 0}.b-flow-context strong{font-size:var(--type-body);font-weight:600}.b-detail-copy{max-width:720px}.b-flow-case .b-detail-copy h3{margin-top:0}.b-case-takeaway{padding:32px;background:#ebece5;border-radius:8px}.b-voice-demo{min-width:0}.b-demo-stage{padding:32px;background:#eee8e4;border-radius:8px;overflow:hidden}.b-demo-topline{display:flex;justify-content:space-between;font-size:var(--type-label);color:#716b67;letter-spacing:.04em}.b-message-window{max-width:560px;margin:48px auto 0;background:#fcfcfc;border-radius:8px;box-shadow:0 12px 40px #42352e12;overflow:hidden}.b-message-chrome{display:flex;align-items:center;gap:6px;padding:16px;background:#f6f5f4}.b-message-chrome i{width:8px;height:8px;border-radius:50%;background:#d8d4cf}.b-message-chrome span{margin-left:12px;font-size:var(--type-label);color:#68645f}.b-message-to{padding:16px 24px 0;font-size:var(--type-label);color:#827c75}.b-message-to span{color:#57534e;margin-left:8px}.b-message-body{padding:24px;min-height:152px;font-size:var(--type-body);line-height:1.8;color:#35312d}.b-demo-placeholder{color:#9b958e}.b-demo-placeholder i{display:inline-block;height:18px;width:1px;background:#746257;margin-left:8px;vertical-align:middle}.b-hud-space{height:120px;display:flex;align-items:center;justify-content:center}.b-voice-capsule{width:320px;height:60px;max-width:100%;background:#252427;border:1px solid #ffffff20;border-radius:999px;box-shadow:0 10px 28px #332d3b24;position:relative;display:flex;align-items:center;justify-content:center;transition:width .65s cubic-bezier(.2,.8,.2,1),height .5s,opacity .5s}.b-voice-capsule canvas{position:absolute;left:12px;top:8px;width:210px;height:44px;transition:width .65s cubic-bezier(.2,.8,.2,1),opacity .3s}.b-capsule-label{position:absolute;right:22px;font-size:var(--type-label);color:#e8e5ed}.b-demo-stage[data-phase=thinking] .b-voice-capsule{width:160px}.b-demo-stage[data-phase=thinking] canvas{width:44px}.b-demo-stage[data-phase=complete] .b-voice-capsule{width:40px;height:40px}.b-demo-stage[data-phase=complete] canvas{opacity:0;width:24px}.b-voice-capsule>svg{color:#d6e4d9}.b-flow-case .b-demo-status{font-size:var(--type-label);line-height:1.8;text-align:center;color:#716b67;margin:0;min-height:44px}.b-demo-controls,.b-demo-controls>div{display:flex;align-items:center;gap:8px}.b-demo-controls{justify-content:space-between;margin-top:16px;flex-wrap:wrap}.b-demo-controls button{display:inline-flex;align-items:center;gap:6px;min-height:36px;border:1px solid #cbcfc5;background:transparent;border-radius:999px;padding:8px 14px;font:inherit;font-size:var(--type-label);color:var(--p-muted);cursor:pointer;transition:background .2s,color .2s}.b-demo-controls button[aria-pressed=true],.b-demo-controls button:hover{background:#e9e8e2;color:var(--p-ink,#252922)}.b-demo-controls button:focus-visible{outline:2px solid #777283;outline-offset:3px}.b-demo-controls button:disabled{opacity:.4;cursor:default}.b-flow-case .b-demo-caption{font-size:var(--type-label);line-height:1.8;color:var(--p-muted);margin:8px 0 0}@media(max-width:760px){.b-flow-case .b-principles,.b-flow-case .b-motion-notes{grid-template-columns:1fr;gap:16px}.b-workflow{grid-template-columns:1fr;padding:16px;gap:16px}.b-flow-lane{padding:20px}.b-case-takeaway{padding:24px}.b-demo-stage{padding:20px 16px}.b-message-window{margin-top:32px}.b-message-body{padding:20px;min-height:180px}.b-voice-capsule{width:260px}.b-voice-capsule canvas{width:164px}.b-capsule-label{right:16px}.b-demo-controls{gap:12px}.b-demo-controls button{padding:8px 12px}}@media(prefers-reduced-motion:reduce){.b-voice-capsule,.b-voice-capsule canvas{transition:none}}.b-demo-stage[data-auto=true][data-phase=complete] .b-voice-capsule{animation:b-capsule-exit .5s .85s ease both}.b-demo-stage[data-paused=true] .b-voice-capsule{animation-play-state:paused}@keyframes b-capsule-exit{to{opacity:0;transform:translateY(4px) scale(.9)}}@media(prefers-reduced-motion:reduce){.b-demo-stage .b-voice-capsule{animation:none!important}}.t-extension-case .p-case-hero-art{background:#eceefa}.t-extension-case .p-case-hero-art .p-image-button>img{max-height:none}.portfolio-v2.t-extension-case .p-case-hero-art :is(.p-image-button,.p-image-button>img){border-radius:6px;clip-path:inset(0 round 6px)}.t-extension-case .t-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}.t-extension-case :is(.t-principles,.t-ownership,.t-note,.t-decision,.t-result-boundary) h3{font-size:var(--type-body);font-weight:600;line-height:1.6;letter-spacing:0;margin:0}.t-extension-case :is(.t-principles,.t-ownership,.t-note,.t-decision,.t-result-boundary) p{font-size:var(--type-body);font-weight:400;line-height:1.9;color:var(--p-muted);margin:8px 0 0}.t-extension-case .t-principles h3{margin-top:16px}.t-extension-case .t-principles .p-kicker{letter-spacing:.5px}.t-extension-case .t-task-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;list-style:none;padding:24px;background:#efeff6;border-radius:8px}.t-task-flow li{position:relative;display:flex;flex-direction:column;gap:8px}.t-extension-case .t-flow-number{font:var(--type-label)/1.5 ui-monospace,monospace;color:#747086}.t-extension-case .t-task-flow strong{font-size:var(--type-label);font-weight:600;line-height:1.6}.t-task-flow svg{position:absolute;right:0;top:1px;color:#8c879f}.t-extension-case .t-entry-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;padding:32px;background:#efeff6;border-radius:8px}.t-entry-pair>div{width:100%;max-width:300px;margin-inline:auto}.t-extension-case .t-sidebar-story{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:center;gap:48px}.t-extension-case .t-sidebar-story>.p-figure{width:100%;max-width:300px}.t-extension-case .t-notes{display:grid;gap:32px}.t-extension-case .t-notes-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.t-extension-case .t-note{display:grid;grid-template-columns:24px minmax(0,1fr);gap:16px}.t-extension-case .t-note-index{font:var(--type-label)/1.6 ui-monospace,monospace;color:#827994;padding-top:4px}.t-extension-case .t-decision{padding:32px;background:#efeff6;border-radius:8px}.t-extension-case .t-decision h3{margin-top:16px}.portfolio-v2.t-extension-case .t-result-boundary>.p-figure{margin-top:var(--case-media-gap,32px)}.portfolio-v2.t-extension-case .p-case-content>section>:is(.t-entry-pair,.t-sidebar-story){margin-top:var(--case-media-gap,32px)}@media(max-width:1050px)and (min-width:761px){.t-extension-case .t-sidebar-story{grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:32px;align-items:start}.t-extension-case .t-principles{grid-template-columns:1fr;gap:24px}}@media(max-width:760px){.portfolio-v2.t-extension-case .p-case-hero-art :is(.p-image-button,.p-image-button>img){border-radius:6px;clip-path:inset(0 round 6px)}.t-extension-case .t-principles,.t-extension-case .t-notes-columns,.t-extension-case .t-sidebar-story{grid-template-columns:1fr;gap:32px}.t-extension-case .t-sidebar-story>.p-figure{margin-inline:auto}.t-extension-case .t-entry-pair{grid-template-columns:1fr;padding:24px}.t-extension-case .t-task-flow{grid-template-columns:1fr;gap:16px;padding:24px}.t-task-flow li{flex-direction:row;gap:16px;align-items:center}.t-task-flow svg{position:static;margin-left:auto;transform:rotate(90deg)}.t-extension-case .t-decision{padding:24px}}:root{--space-1: 8px;--space-2: 16px;--space-3: 24px;--space-4: 32px;--space-6: 48px;--space-8: 64px;--space-12: 96px;--layout-gutter: 56px;--layout-max-width:1120px;--layout-column-gap: var(--space-4);--layout-section: 160px;--case-section: 160px;--content-gap: var(--space-6);--card-gap: var(--space-3);--card-inset: var(--space-3)}.p-wrap{width:calc(100% - 2 * var(--layout-gutter));max-width:var(--layout-max-width)}.p-header:not(.p-header-compact){padding-inline:max(var(--layout-gutter),calc((100vw - var(--layout-max-width))/2))}.p-intro,.p-project-info,.p-project-grid,.p-about,.p-system-grid{grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:var(--layout-column-gap);column-gap:var(--layout-column-gap)}.p-intro{align-items:start;row-gap:var(--space-6);padding-block:var(--space-8) 128px}.p-intro-side .p-career-tags{margin-bottom:0}@media(min-width:761px){.p-intro .p-clarity-headline :is(.p-headline-input,.p-headline-output){font-size:calc(var(--type-title) * 1.28)}.p-intro .p-headline-focus{font-size:calc(var(--type-display) * 1.28)}.p-intro .p-focus-corner{width:13px;height:13px}}.p-intro-side{padding:calc(var(--type-label) * 1.6 + var(--space-3)) 0 0}.p-intro .p-clarity-headline{margin-top:var(--space-3)}.p-clarity-headline .p-headline-input{margin-bottom:var(--space-2)}.p-career-tags{gap:var(--space-1);margin:var(--space-3) 0}.p-section-label{border:0;padding:0 0 var(--space-4);gap:var(--space-2)}.p-project-info{padding:var(--space-4) 0 112px}.p-project-no{margin-bottom:var(--space-2)}.p-project-info .p-text-link{margin-top:var(--space-2)}.p-secondary-project{display:flex;flex-direction:column;min-width:0}.p-secondary-visual{flex-shrink:0;margin-bottom:var(--space-4)}.p-secondary-project h3{margin-bottom:var(--space-2)}.p-project-bottom{margin-top:auto;padding-top:var(--space-3);flex-wrap:wrap}.p-system-section{margin-top:var(--layout-section)}.p-system-grid{row-gap:var(--card-gap)}.p-system-card{padding:var(--card-inset)}.p-system-card h3{margin:var(--space-3) 0 var(--space-2)}.p-about{border:0;margin-top:var(--layout-section);padding-block:0 var(--layout-section)}.p-about h2{margin:var(--space-3) 0 var(--space-2)}.p-about .p-text-link{margin-top:var(--space-3)}.p-timeline>.p-experience{border:0;-moz-column-gap:var(--space-2);column-gap:var(--space-2);padding:0 0 var(--space-6)}.p-timeline>.p-experience:last-child{padding-bottom:0}.p-timeline>.p-experience:first-child{padding-top:0}.p-timeline h3{margin:var(--space-2) 0 var(--space-1);gap:var(--space-1) var(--space-2)}.p-timeline .p-company-logo{margin-top:var(--space-4)}.p-footer{padding:var(--space-8) max(var(--layout-gutter),calc((100vw - var(--layout-max-width))/2));gap:var(--space-4)}.p-footer h2{margin:var(--space-2) 0 var(--space-3)}.p-footer-meta{gap:var(--space-1)}.p-case-hero{padding-top:var(--space-4)}.p-case-title-row{gap:var(--space-4);margin-top:var(--space-4)}.p-case-title-row h1{margin-top:var(--space-2)}.p-case-summary{padding:0}.p-case-summary p{margin-top:var(--space-2)}.p-case-meta{gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-3) 0 var(--space-4)}.p-case-meta>div>span{margin-bottom:var(--space-1)}.p-case-hero-art,.e-hero-art,.i-hero-art{padding:var(--space-4)}.p-hero-art-note{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap}.p-case-layout{gap:var(--space-8);padding-top:var(--layout-section)}.p-case-nav nav{margin-top:var(--space-3)}.p-case-nav-note{margin-top:var(--space-3);padding-top:var(--space-3)}.p-case-content>section{display:flow-root;border:0;padding-bottom:0;margin-bottom:var(--case-section)}.p-case-content>section:last-child{margin-bottom:var(--case-section)}.p-case-content>section>:not(dialog){margin-block:0}.p-case-content>section>:not(dialog)+:not(dialog){margin-top:var(--content-gap)}.p-case-content>section>.p-source{margin-top:var(--space-1)}.p-case-heading h2{margin-top:var(--space-2)}.p-case-heading>p{margin-top:var(--space-2)}.p-two-notes,.p-phone-grid,.p-decision-grid,.p-boundary-grid,.p-change-grid,.p-handoff,.p-related-links,.e-principles,.e-taxonomy,.e-coplanar,.e-deliverables,.i-comparison,.i-context-gallery,.i-keyline-pair,.i-craft-gallery,.i-colors{gap:var(--card-gap)}.p-state-card,.p-decision-grid>article,.p-handoff,.p-comparison,.e-taxonomy article,.e-collision,.e-switch-body,.e-deliverables article,.i-comparison>article,.i-colors>div{padding:var(--card-inset)}.p-case-content :is(.p-two-notes,.p-phone-story,.p-decision-head,.p-state-card,.p-wide-evidence,.p-change-grid,.p-handoff,.e-principles,.e-taxonomy,.e-deliverables,.e-story,.e-rule,.e-collision,.e-coplanar,.e-switch-body,.i-optical-story,.i-scope-strip) h3{margin:var(--space-2) 0}.p-case-content :is(.p-two-notes,.p-state-card,.p-handoff,.e-switch-body,.i-scope-strip) h3:first-child{margin-top:0}.p-case-content p+.p-source{margin-top:var(--space-1)}.p-pending{padding:var(--card-inset);gap:var(--space-2)}.p-pending p{margin-top:var(--space-1)}.p-figure{margin-block:var(--space-3)}.p-figure figcaption{margin-top:var(--space-1)}.p-phone-story .p-figure{padding:var(--card-inset);margin:0 0 var(--space-3)}.p-decision-grid>article{display:flex;flex-direction:column}.p-decision-head{flex:1}.p-decision-head p{min-height:0}.p-decision-grid .p-figure{width:100%;margin:var(--space-3) auto var(--space-2)}.p-state-card .p-figure{margin:0 auto var(--space-3)}.p-insight{padding-left:var(--space-3)}.p-insight p{margin-top:var(--space-1)}.p-comparison .p-figure{margin:var(--space-3) 0 var(--space-1)}.p-source-list{padding-top:var(--space-3);gap:var(--space-1)}.p-source-list h3{margin-bottom:var(--space-1)}.p-source-list p{margin-top:var(--space-2)}.p-next-case{padding:var(--space-4) 0 var(--space-8)}.p-next-case>a{margin-top:var(--space-3)}.e-principles article{padding-top:var(--space-2)}.e-story .p-figure{margin:var(--space-3) 0 0}.e-rule{gap:var(--card-gap);padding-block:var(--space-4)}.e-rule .p-figure{margin:0}.e-switch-body .p-figure{margin:var(--space-3) 0 var(--space-1)}.e-coplanar .p-figure{margin:0 0 var(--space-3)}.i-style-gallery{gap:var(--space-2);padding-block:var(--space-4)}.i-hero-bottom{gap:var(--space-2);padding-top:var(--space-3)}.i-scope-strip>div{padding:var(--card-inset)}.i-comparison{margin-block:var(--space-3)}.i-comparison .p-figure{margin:var(--space-2) auto}.i-level-meta,.i-spec-stats{gap:var(--space-2);padding-block:var(--space-3);margin-block:var(--space-3)}.i-optical-story+.i-optical-story{padding-top:var(--space-4)}.i-craft-gallery{margin-top:var(--space-3)}.i-colors>div{gap:var(--space-2)}@media(max-width:1050px){:root{--layout-gutter:32px}.p-case-layout{gap:var(--space-4)}}@media(max-width:760px){:root{--layout-gutter:20px;--layout-section:var(--space-12);--case-section:112px;--content-gap:var(--space-4);--card-gap:var(--space-2);--card-inset:var(--space-2)}.p-intro,.p-project-info,.p-project-grid,.p-about,.p-system-grid{grid-template-columns:1fr}.p-intro{gap:var(--space-4);padding-block:var(--space-6) 80px}.p-intro-side{padding:0}.p-career-tags{margin:var(--space-2) 0}.p-project-info{gap:var(--space-2);padding:var(--space-3) 0 80px}.p-project-grid{row-gap:80px}.p-secondary-visual{margin-bottom:var(--space-3)}.p-project-bottom{padding-top:var(--space-2)}.p-about{gap:var(--space-8);padding-top:0}.p-footer{padding-block:var(--space-6)}.p-case-hero{padding-top:var(--space-3)}.p-case-title-row{gap:var(--space-3);margin-top:var(--space-3)}.p-case-meta{gap:var(--space-3) var(--space-2);margin-top:var(--space-3);padding-block:var(--space-3)}.p-case-hero-art,.e-hero-art,.i-hero-art{padding:var(--card-inset)}.p-case-layout{padding-top:var(--space-8)}.p-case-nav{margin-bottom:var(--space-8)}.p-case-nav nav{margin:0;gap:var(--space-2);padding-block:var(--space-1)}.p-three-phones{gap:var(--space-4)}.p-decision-grid{grid-template-columns:1fr}.p-decision-head h3{min-height:0}.p-pending{flex-direction:column;gap:var(--space-1)}.p-pending>span{align-self:flex-start;margin-top:0}.p-next-case{padding:var(--space-3) 0 var(--space-6)}.i-level-meta{gap:var(--space-2);padding-block:var(--space-2)}}@media(max-width:420px){.i-comparison{grid-template-columns:1fr}.p-related-links{grid-template-columns:1fr;gap:0}}.p-case-meta,.p-case-nav-note,.p-case-nav nav,.p-source-list,.p-next-case,.e-principles article,.e-rule,.i-hero-bottom,.i-level-meta,.i-spec-stats,.i-optical-story+.i-optical-story,.p-handoff li,.p-related-links a{border:0}.p-case-meta,.p-case-nav-note{margin-top:var(--space-6);padding-top:0}.p-source-list{padding-top:0}.p-next-case{padding-top:0;padding-bottom:var(--layout-section)}.e-principles article{padding-top:0}.i-optical-story+.i-optical-story{padding-top:var(--space-3)}.p-case-title-row.p-case-title-stacked{grid-template-columns:minmax(0,1fr);gap:var(--space-3)}.p-case-title-stacked .p-case-summary{max-width:730px}.p-project-info.p-project-info-stacked{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.p-project-info-stacked>div>p{max-width:640px}.p-case-title-stacked .p-case-summary p,.p-project-info-stacked>div>p{text-wrap:pretty}:root{--title-description-gap:var(--space-2);--title-line-height:1.5;--description-line-height:1.9}.portfolio-v2 :is(.p-project-info h3,.p-secondary-project h3,.p-system-card h3,.p-case-heading h2,.p-about h2){font-size:var(--type-title);font-weight:600;line-height:var(--title-line-height);letter-spacing:-.025em}.portfolio-v2 .p-case-title-row h1{font-size:var(--type-display);font-weight:600;line-height:1.32;letter-spacing:-.025em;margin-bottom:0}.p-case-title-row.p-case-title-stacked,.p-project-info.p-project-info-stacked{gap:var(--title-description-gap)}.p-project-info h3{margin-bottom:0}.p-secondary-project h3,.p-system-card h3,.p-about h2{margin-bottom:var(--title-description-gap)}.portfolio-v2 :is(.p-project-info p,.p-secondary-project>p,.p-system-card p,.p-case-summary p,.p-case-heading>p,.p-about>div>p){font-size:var(--type-body);font-weight:400;line-height:var(--description-line-height);color:var(--p-muted);letter-spacing:normal}.p-case-summary>p,.p-secondary-project>p,.p-system-card>p,.p-about>div>p{margin-top:0}.p-case-heading h2{margin-bottom:0}.p-case-heading>p{margin-top:var(--title-description-gap)}@media(max-width:760px){.portfolio-v2 .p-case-title-row h1{font-size:var(--type-title);font-weight:600}}:root{--case-media-gap:var(--space-4);--case-caption-gap:var(--space-1);--case-image-radius:8px}.portfolio-v2 :is(.p-case-content,.p-case-hero) .p-figure{display:flex;flex-direction:column;gap:var(--case-caption-gap);margin-block:0}.portfolio-v2 :is(.p-case-content,.p-case-hero) .p-figure>figcaption{margin:0;font-size:var(--type-label);font-weight:400;line-height:1.8;color:var(--p-muted)}.portfolio-v2 :is(.p-case-content,.p-case-hero) :is(.p-image-button,.p-image-button>img,.p-image-button>.p-mobile-screen){border-radius:var(--case-image-radius)}.portfolio-v2 :is(.p-case-hero-art,.e-hero-art,.i-hero-art,.p-phone-story>.p-figure,.e-content-gallery>.p-figure){border-radius:var(--case-image-radius)}.portfolio-v2 .p-hero-art-note{margin-top:var(--case-caption-gap);line-height:1.8}.portfolio-v2 .p-case-content>section>.p-figure:not(:first-child),.portfolio-v2 .p-case-content>section>.p-figure+*,.portfolio-v2 .p-case-content :is(.e-story,.e-switch-body,.i-optical-story,.p-wide-evidence,.p-two-notes>div,.p-decision-grid>article)>*+.p-figure,.portfolio-v2 .p-case-content .e-content-gallery>h3+:is(.p-figure,.i-context-gallery){margin-top:var(--case-media-gap)}.portfolio-v2 .p-case-content .e-content-gallery>h3{margin-bottom:0}.portfolio-v2 .p-case-content :is(.e-collision,.e-coplanar article,.p-phone-story,.p-state-card)>.p-figure+*{margin-top:var(--case-media-gap)}.portfolio-v2 .p-case-content :is(.i-context-gallery,.i-keyline-pair,.i-craft-gallery){gap:var(--case-media-gap)}.portfolio-v2 .p-case-content .e-switch-body>p+div:has(.p-figure),.portfolio-v2 .p-case-content .i-optical-story>p+.i-comparison{margin-top:var(--case-media-gap)}.portfolio-v2 .p-case-content .i-comparison .p-figure{margin-top:var(--case-media-gap)}.portfolio-v2 .p-case-content .p-comparison>div[aria-live]{margin-top:var(--case-media-gap)}.portfolio-v2 .p-case-content .e-rule{gap:var(--case-media-gap)}.portfolio-v2 .p-case-content .i-example-label{display:block}.portfolio-v2 svg.lucide{width:18px;height:18px;flex-shrink:0;stroke-width:2}.portfolio-v2 svg.lucide-arrow-up-right>path{transform:translate(-4.8px,-4.8px) scale(1.4);stroke-width:1.428571}.portfolio-v2 .p-header svg.lucide,.portfolio-v2 .p-source svg.lucide{width:16px;height:16px;stroke-width:2.25}.portfolio-v2 :is(.p-header,.p-source) svg.lucide-arrow-up-right>path{stroke-width:1.607143}.portfolio-v2 .p-header svg.lucide-mail{width:14px;height:14px;stroke-width:2.571429}.portfolio-v2 :is(.p-cover-open,.p-lightbox-bar,.p-footer) svg.lucide{width:20px;height:20px;stroke-width:1.8}.portfolio-v2 :is(.p-cover-open,.p-footer) svg.lucide-arrow-up-right>path{stroke-width:1.285714}.portfolio-v2 .p-next-case svg.lucide{width:24px;height:24px;stroke-width:1.5}.portfolio-v2 .p-expand svg.lucide{width:16px;height:16px;stroke-width:2.25}.p-timeline .p-company-logo{overflow:visible}.p-company-art{display:flex;align-items:center;justify-content:center;position:relative;width:56px;height:48px;flex:none;overflow:hidden;transform-origin:center;background:var(--p-bg)}.p-company-art img{mix-blend-mode:multiply}.p-company-thunderbit .p-company-art{transform:scale(.76)}.p-company-bytedance .p-company-art{transform:scale(.78)}.p-company-baidu .p-company-art{transform:scale(.88)}.p-company-360 .p-company-art{transform:scale(.9)}.p-company-pxcook .p-company-art{transform:scale(1.12)}.p-company-roobo .p-company-art{transform:scale(1.25)}@media(max-width:760px){.p-company-pxcook img{width:56px}.p-company-bytedance img{left:-10px}.p-company-baidu img{left:-54px}.p-company-360 img{left:3px}}.p-intro-side{min-width:0}.p-credential-wall{container-type:inline-size;position:relative;min-width:0;max-width:100%;margin-top:24px;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 16px),transparent);mask-image:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 16px),transparent)}.p-credential-track{display:flex;width:-moz-max-content;width:max-content;animation:credential-scroll 32s linear infinite}.p-credential-sequence{display:flex;align-items:center;flex-shrink:0;gap:24px;padding:4px 24px 4px 0;justify-content:flex-start}.p-credential-sequence>a{display:flex;flex-shrink:0;align-items:center;justify-content:center;height:48px;background:var(--p-bg)}.p-credential-sequence>a:focus-visible{outline:2px solid var(--p-ink);outline-offset:2px;border-radius:4px}.p-credential-sequence>a img{filter:grayscale(1);opacity:.72;transition:filter .24s ease,opacity .24s ease}@media(hover:hover)and (pointer:fine){.p-credential-sequence>a:hover img{filter:grayscale(0);opacity:1}}.p-credential-sequence>a:focus-visible img{filter:grayscale(0);opacity:1}.p-credential-company{width:56px}.p-credential-company .p-company-logo{display:flex;align-items:center;justify-content:center;width:56px;height:48px;position:relative;background:var(--p-bg)}.p-credential-company .p-company-art{transform:scale(.72)}.p-credential-company .p-company-pxcook .p-company-art{transform:scale(1)}.p-credential-company .p-company-roobo .p-company-art{transform:scale(1.1)}.p-credential-award img{-o-object-fit:contain;object-fit:contain;flex-shrink:0}.p-credential-award .p-award-reddot{width:140px;height:40px;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;mix-blend-mode:multiply}.p-award-if{width:32px;height:32px}.p-award-gmark{width:148px;height:32px}.p-credential-wall:hover .p-credential-track,.p-credential-wall:focus-within .p-credential-track{animation-play-state:paused}.p-credential-wall.is-filtered{-webkit-mask-image:none;mask-image:none}.p-credential-wall.is-filtered .p-credential-track{visibility:hidden;animation-play-state:paused;pointer-events:none}.p-credential-filtered{position:absolute;inset:0;overflow-x:auto}.p-credential-filtered .p-credential-sequence{width:-moz-max-content;width:max-content;min-width:0;margin-inline:0;padding-right:4px}.p-credential-filtered .p-credential-sequence>a img{filter:grayscale(0);opacity:1}.p-credential-filtered{animation:credential-filter-in .2s ease-out}@keyframes credential-filter-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes credential-scroll{to{transform:translate(calc(-100% / 3))}}@media(max-width:760px){.p-credential-filtered .p-credential-sequence{gap:16px}.p-credential-filtered .p-award-reddot{width:126px;height:36px}.p-credential-filtered .p-award-if{width:32px;height:32px}.p-credential-filtered .p-award-gmark{width:132px;height:29px}.p-credential-company .p-company-bytedance img{left:-10px}.p-credential-company .p-company-baidu img{left:-54px}.p-credential-company .p-company-360 img{left:3px}}@media(prefers-reduced-motion:reduce){.p-credential-sequence>a img{transition:none}.p-credential-wall{overflow-x:auto}.p-credential-track{animation:none}.p-credential-sequence[aria-hidden=true]{display:none}}.portfolio-v2 .p-lightbox{overflow:hidden;width:min(1200px,94vw)}.portfolio-v2 .p-lightbox-bar{flex-wrap:wrap;gap:8px 20px}.p-lightbox-bar>span{flex:1 1 220px;line-height:1.6}.p-lightbox-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.portfolio-v2 .p-lightbox-actions button{min-height:44px;min-width:44px;gap:6px;font:inherit;cursor:pointer}.p-lightbox-actions button:first-child{padding-inline:12px;border-radius:999px;background:#eeefe8}.p-lightbox-actions button:focus-visible{outline:2px solid var(--p-blue);outline-offset:-2px}.p-lightbox-viewport{overflow:auto;max-height:calc(90dvh - 110px);overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}.portfolio-v2 .p-lightbox-viewport>img{display:block;width:auto;height:auto;max-width:100%;margin:auto}.portfolio-v2 .p-lightbox-viewport>.p-mobile-screen{width:min(375px,100%);margin:auto;border-radius:0}.portfolio-v2 .p-lightbox-viewport>.p-desktop-screen{width:100%;margin:auto}.portfolio-v2 .p-lightbox.is-detail .p-lightbox-viewport>img{width:var(--detail-width,1200px);max-width:none;margin:0}.portfolio-v2 .p-lightbox.is-detail .p-lightbox-viewport>.p-desktop-screen{width:1200px;max-width:none;margin:0}.portfolio-v2 .p-lightbox.is-detail .p-lightbox-viewport>.p-mobile-screen{width:750px;max-width:none;margin:0}@media(max-width:760px){.portfolio-v2 .e-home-visual>.e-cover-art{width:100%;height:68%;top:30%;right:0}.portfolio-v2 .e-home-visual .e-cover-caption{left:8%;top:20%;transform:none;gap:6px}.portfolio-v2 .p-secondary-visual .p-browser-preview{width:92%;left:4%}.portfolio-v2 .p-brisi-cover>img{width:92%;left:4%}.portfolio-v2 .p-career-tags button{min-height:44px}.portfolio-v2 .p-header nav a{min-width:32px;justify-content:center}.portfolio-v2 .p-case-tabs{flex-wrap:wrap;overflow:visible;border-radius:20px}.portfolio-v2 .p-case-tabs>button{flex:1 1 auto;min-width:0;border-radius:16px}.portfolio-v2 .p-case-tabs:has(>button:nth-child(4))>button{flex-basis:calc(50% - 3px)}.portfolio-v2 .p-case-nav nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;overflow:visible}.portfolio-v2 .p-case-nav nav a{min-height:44px;white-space:normal;line-height:1.5}.portfolio-v2 .p-case-nav nav a>span{flex-shrink:0}.portfolio-v2 .b-demo-controls button{min-height:44px}.portfolio-v2 .b-voice-capsule{max-width:100%}.portfolio-v2 .p-lightbox{width:96vw;max-width:96vw}.portfolio-v2 .p-lightbox-bar{padding:10px 12px}.portfolio-v2 .p-lightbox-bar>span{flex-basis:100%}}@media(max-width:360px){.portfolio-v2 .p-cover-label{gap:12px;align-items:flex-start}.portfolio-v2 .p-cover-label>span:last-child{max-width:150px;text-align:right}.portfolio-v2 .p-section-label{align-items:flex-start;flex-wrap:wrap;gap:8px}}
