@font-face{font-family:LXGW KoSe;src:url(/fonts/Xiaolai-Regular.ttf) format("truetype");font-display:swap;font-style:normal;font-weight:400}:root{color-scheme:light;--bg: #f7f8fa;--surface: #ffffff;--text: #111318;--muted: #666b75;--soft: #9aa0aa;--line: #dfe3e8;--line-strong: #cfd5dd;--accent: #2458ff;--radius: 8px;--max: 1160px;--header: 72px;--font-sans: Inter, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Noto Sans CJK SC", sans-serif;font-family:var(--font-sans)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);letter-spacing:0}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:var(--header);padding:0 clamp(24px,5vw,76px);background:#f7f8faf0;border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.brand{font-size:clamp(22px,2.4vw,30px);font-weight:800;line-height:1}.site-header .desktop-nav{position:relative;display:flex;gap:clamp(24px,3.2vw,48px);font-size:15px;font-weight:600}.site-header .desktop-nav a{position:relative;padding:27px 0 24px;transition:color 90ms ease,transform 90ms ease;transform-origin:center 62%;will-change:transform}.site-header .desktop-nav a:hover,.site-header .desktop-nav a[aria-current=page]{color:var(--text)}.site-header .desktop-nav a.is-pressing{color:#737984;transform:scale(.965)}.mobile-menu{position:relative;display:none}.mobile-menu summary{display:grid;width:44px;height:44px;gap:6px;align-content:center;justify-content:end;margin-right:-8px;cursor:pointer;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{display:block;width:28px;height:2px;background:var(--text)}.mobile-menu nav{position:absolute;top:calc(100% + 12px);right:0;display:grid;min-width:132px;padding:8px;background:#fffffffa;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 46px #1113181f}.mobile-menu nav a{position:relative;padding:12px 14px;border-radius:6px;color:var(--text);font-size:14px;font-weight:700;transition:color 90ms ease,background-color 90ms ease,transform 90ms ease;transform-origin:center}.mobile-menu nav a:hover,.mobile-menu nav a[aria-current=page]{color:var(--text)}.mobile-menu nav a.is-pressing{color:#737984;transform:scale(.965)}.mobile-menu:not([open]) nav a{color:var(--text);transition:none;transform:none}.section-shell{width:min(var(--max),calc(100% - 48px));margin:0 auto;padding:clamp(36px,5vw,66px) 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--header) + 18px)}.section-label{display:flex;gap:10px;align-items:baseline;margin-bottom:24px;color:var(--muted);font-size:14px;font-weight:600}.section-label span{color:var(--accent)}.intro-section{min-height:calc(48vh - var(--header));display:grid;align-content:center}.intro-copy{max-width:560px}.intro-copy h1{margin:0 0 24px;font-size:clamp(64px,8vw,96px);line-height:.95;letter-spacing:0}.intro-copy p{margin:0;color:#30343b;font-size:17px;line-height:1.9}.intro-meta{display:flex;flex-wrap:wrap;gap:16px 28px;margin-top:28px;color:#3a3f48;font-size:15px}.intro-meta span+span{position:relative}.intro-meta span+span:before{position:absolute;left:-16px;color:var(--soft);content:"|"}.projects-section{padding-top:40px}.project-carousel{position:relative;outline:none}.carousel-frame{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.project-cover-link{display:block;aspect-ratio:16 / 3.2;animation:carousel-cover-enter .42s ease both}.project-cover-link img{width:100%;height:100%;object-fit:cover}@keyframes carousel-cover-enter{0%{opacity:.2;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.carousel-control{position:absolute;top:calc(50% - 48px);width:44px;height:44px;display:grid;place-items:center;color:var(--text);background:transparent;border:0;border-radius:50%;cursor:pointer}.carousel-control svg{width:28px;height:28px}.carousel-control:hover,.carousel-control:focus-visible{color:var(--accent);outline:1px solid var(--line-strong)}.carousel-control-left{left:max(-68px,calc((100vw - 100%)/-2 + 12px))}.carousel-control-right{right:max(-68px,calc((100vw - 100%)/-2 + 12px))}.carousel-meta{display:flex;justify-content:space-between;gap:24px;margin-top:22px}.project-kicker{margin:0 0 8px;color:var(--muted);font-size:13px;font-weight:600}.carousel-title{display:inline-block;margin-bottom:8px;font-size:clamp(24px,2.8vw,32px);font-weight:800;line-height:1.2}.carousel-title:hover{color:var(--accent)}.carousel-meta p:not(.project-kicker):not(.carousel-count){max-width:620px;margin:0;color:var(--muted);line-height:1.7}.carousel-count{flex:0 0 auto;align-self:end;color:var(--soft);font-weight:600}.carousel-count span{color:var(--accent)}.carousel-dots{display:flex;justify-content:center;gap:18px;margin-top:18px}.carousel-dots button{width:8px;height:8px;padding:0;border:0;border-radius:999px;background:#c4c8cf;cursor:pointer}.carousel-dots button[aria-current=true]{background:var(--accent)}.carousel-progress{position:relative;overflow:hidden;width:min(240px,36vw);height:2px;margin:20px auto 0;background:var(--line)}.carousel-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#ff3b30,#ff8a00,#ffd60a,#34c759,#32d7d7,#2458ff,#af52de);transform-origin:left;animation:carousel-progress 5s linear both}.project-carousel:hover .carousel-progress span,.project-carousel:focus-within .carousel-progress span{animation-play-state:paused}@keyframes carousel-progress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.empty-projects{display:grid;min-height:260px;place-items:center;border:1px solid var(--line);border-radius:var(--radius);color:var(--muted)}.other-section{padding-top:clamp(28px,3.6vw,46px);padding-bottom:clamp(32px,3.8vw,50px)}.other-grid{display:grid;grid-template-columns:minmax(260px,.86fr) minmax(0,1.28fr);gap:clamp(38px,6vw,78px);align-items:start;margin-top:6px;padding-top:clamp(22px,3vw,32px);border-top:1px solid var(--line-strong)}.other-group{min-height:0}.other-group-heading{display:flex;gap:12px;align-items:baseline;margin-bottom:clamp(18px,2.4vw,26px)}.other-group-heading span{width:24px;height:2px;background:var(--accent);transform:translateY(-.24em)}.other-group h2{margin:0;color:var(--text);font-size:clamp(20px,2vw,27px);font-weight:800;line-height:1.1}.award-timeline{display:grid;margin:0;padding:0;list-style:none}.award-timeline li{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr);gap:14px;min-width:0;padding-bottom:clamp(16px,2.2vw,24px)}.award-timeline li:not(:last-child):after{position:absolute;top:24px;bottom:0;left:16px;width:1px;content:"";background:var(--line)}.award-index{position:relative;z-index:1;display:grid;width:34px;height:24px;place-items:center;color:var(--accent);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;background:var(--bg);border-top:1px solid var(--line-strong)}.award-timeline strong{display:block;color:#25282e;font-size:clamp(15px,1.25vw,17px);font-weight:740;line-height:1.35}.award-timeline div span{display:block;margin-top:4px;color:var(--muted);font-size:clamp(13px,1.08vw,15px);line-height:1.42}.skill-matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(28px,4vw,52px);border-top:1px solid var(--line)}.skill-item{min-width:0;padding:clamp(15px,1.8vw,20px) 0 clamp(16px,1.9vw,22px);border-bottom:1px solid var(--line)}.skill-item-heading{display:flex;gap:18px;align-items:baseline;justify-content:space-between;margin-bottom:8px}.skill-item h3{margin:0;color:var(--text);font-size:clamp(16px,1.45vw,20px);font-weight:760;line-height:1.2}.skill-item-heading span{color:var(--accent);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.skill-item p{margin:0;color:#464b55;font-size:clamp(13px,1.08vw,15px);line-height:1.5}.project-detail{width:min(var(--max),calc(100% - 48px));margin:0 auto;padding:clamp(26px,4vw,54px) 0 80px}.detail-nav{display:flex;justify-content:space-between;gap:24px;margin-bottom:28px;color:var(--muted);font-size:14px;font-weight:600}.detail-switcher{display:flex;gap:28px}.detail-nav a:hover{color:var(--accent)}.back-link{display:inline-flex;gap:6px;align-items:center}.back-link svg{width:16px;height:16px}.detail-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.92fr);gap:clamp(32px,6vw,76px);align-items:start;padding-bottom:48px;border-bottom:1px solid var(--line)}.detail-title{grid-column:1}.detail-title p{margin:0 0 18px;color:var(--accent);font-size:14px;font-weight:700}.detail-title h1{margin:0 0 22px;font-size:clamp(48px,5vw,72px);line-height:1.08;letter-spacing:0}.detail-title span{display:block;max-width:620px;color:#3b4049;font-size:18px;line-height:1.8}.detail-meta{grid-column:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:28px 0 0}.detail-meta div{padding:0 22px;border-left:1px solid var(--line-strong)}.detail-meta div:first-child{padding-left:0;border-left:0}.detail-meta dt{margin-bottom:8px;color:var(--muted);font-size:13px}.detail-meta dd{margin:0;color:var(--text);font-size:15px;line-height:1.5}.detail-cover{grid-column:2;grid-row:1 / span 2;width:100%;aspect-ratio:4 / 3;object-fit:cover;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.detail-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(36px,6vw,72px);padding:44px 0;border-bottom:1px solid var(--line)}.detail-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,86px)}.project-detail h2{margin:0 0 18px;font-size:22px}.detail-columns p,.detail-columns li,.detail-process p,.asset-item span,.detail-results dd{color:#3c414b;line-height:1.8}.detail-columns ul{margin:0;padding-left:18px}.detail-process{padding-left:clamp(24px,3vw,42px);border-left:1px solid var(--line)}.detail-process ol{display:grid;gap:28px;margin:0;padding:0;list-style:none}.detail-process li{display:grid;grid-template-columns:34px 1fr;gap:18px}.detail-process li>span{width:28px;height:28px;display:grid;place-items:center;color:#fff;background:#111318;border-radius:50%;font-size:13px;font-weight:800}.detail-process h3{margin:0 0 6px;font-size:18px}.detail-process p{margin:0}.detail-assets{padding-top:44px}.deliverables{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.deliverables span{padding:0 0 8px;color:var(--muted);border-bottom:1px solid var(--line-strong);font-size:14px}.asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.asset-item{display:grid;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.asset-item:hover{border-color:var(--line-strong)}.asset-item img{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:6px}.asset-item strong{font-size:15px}.asset-item span{font-size:13px}.detail-results{padding-top:44px}.detail-results dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0}.detail-results div{min-height:120px;padding:0 28px;border-left:1px solid var(--line)}.detail-results div:first-child{padding-left:0;border-left:0}.detail-results dt{margin-bottom:14px;font-weight:800}.detail-results dd{margin:0}.case-shell{--case-bg: #ffffff;--case-text: #15171b;--case-heading: #111318;--case-muted: #555960;--case-subtle: #8a8e96;--case-rail-muted: #9fa2a8;--case-line: #e4e5e7;--case-line-soft: #edeef0;--case-card: #ffffff;--case-card-soft: #fbfbfb;--case-card-muted: #f7f8f9;--case-tag-bg: #edf3ff;--case-tag-text: #2466ff;--case-chrome-bg: rgba(255, 255, 255, .72);--case-shadow: rgba(20, 24, 32, .08);min-height:100vh;background:var(--case-bg);color:var(--case-text);color-scheme:light;transition:background-color .52s cubic-bezier(.22,1,.36,1),color .42s ease}.case-shell[data-theme=dark],html[data-theme=dark] .case-shell{--case-bg: #101113;--case-text: #f2f3f5;--case-heading: #f7f8fa;--case-muted: #b3b7bf;--case-subtle: #7e848e;--case-rail-muted: #6d737d;--case-line: #2a2d33;--case-line-soft: #22252b;--case-card: #15171b;--case-card-soft: #17191d;--case-card-muted: #1d2026;--case-tag-bg: #1d2635;--case-tag-text: #8db1ff;--case-chrome-bg: rgba(16, 17, 19, .78);--case-shadow: rgba(0, 0, 0, .32);color-scheme:dark}.case-chrome{position:fixed;top:0;right:0;left:0;z-index:30;display:flex;align-items:center;justify-content:space-between;min-height:70px;padding:0 36px;color:var(--case-heading);background:var(--case-chrome-bg);backdrop-filter:blur(18px);transition:background-color .52s cubic-bezier(.22,1,.36,1),color .42s ease,border-color .42s ease}.case-chrome-left,.case-chrome-right{display:inline-flex;align-items:center;gap:4px}.case-chrome-right{color:var(--case-heading);font-size:12px;font-weight:720;letter-spacing:.02em}.case-chrome-right a,.case-lang-toggle,.case-theme-toggle{transition:color .16s ease,transform .16s ease}.case-chrome-right a:hover,.case-lang-toggle:hover,.case-theme-toggle:hover{color:var(--case-muted)}.case-icon-link{display:grid;width:24px;height:24px;place-items:center;color:var(--case-heading);transition:color .16s ease,transform .16s ease}.case-icon-link:hover,.case-chrome-right a:hover,.case-lang-toggle:hover,.case-theme-toggle:hover{transform:translateY(-1px)}.case-icon-link:active,.case-chrome-right a:active,.case-lang-toggle:active,.case-theme-toggle:active{color:var(--case-subtle);transform:scale(.94)}.case-lang-toggle,.case-theme-toggle{display:inline-grid;min-width:40px;min-height:40px;height:40px;place-items:center;padding:6px;background:transparent;border:0;color:var(--case-subtle);cursor:pointer;font:inherit}.case-lang-toggle{font-size:12px;font-weight:500;letter-spacing:.03em}.case-theme-toggle{width:40px}.case-theme-icon{position:relative;display:block;width:18px;height:18px}.case-theme-icon svg{position:absolute;inset:0;display:block;width:18px;height:18px;overflow:visible;transform-origin:50% 50%}.case-theme-moon,.case-theme-sun{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.65}.case-theme-icon .case-theme-moon{display:block}.case-theme-icon .case-theme-sun,.case-shell[data-theme=dark] .case-theme-icon .case-theme-moon,html[data-theme=dark] .case-shell .case-theme-icon .case-theme-moon{display:none}.case-shell[data-theme=dark] .case-theme-icon .case-theme-sun,html[data-theme=dark] .case-shell .case-theme-icon .case-theme-sun{display:block}.case-icon-link svg{width:18px;height:18px;overflow:visible}.case-icon-link path,.case-icon-link rect{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.case-rail{position:fixed;top:50%;left:24px;z-index:25;display:flex;flex-direction:column;gap:11px;padding:12px 32px 12px 0;transform:translateY(-50%)}.case-rail-item{position:relative;display:flex;min-width:112px;height:4px;align-items:center;color:var(--case-rail-muted);text-decoration:none;transition:height .28s cubic-bezier(.2,0,0,1),color .2s ease,transform .24s cubic-bezier(.22,1,.36,1)}.case-rail:hover .case-rail-item{height:18px}.case-rail-bar{display:block;width:10px;height:3px;background:currentColor;border-radius:999px;opacity:.62;transition:width .32s cubic-bezier(.22,1,.36,1),opacity .24s cubic-bezier(.2,0,0,1),transform .32s cubic-bezier(.22,1,.36,1)}.case-rail-item.is-active{color:var(--case-heading)}.case-rail-item.is-rail-mid .case-rail-bar{width:18px;opacity:.72}.case-rail-item.is-rail-near .case-rail-bar{width:30px;opacity:.82}.case-rail-item.is-active .case-rail-bar{width:48px;opacity:1}.case-rail-text{position:absolute;top:50%;left:0;color:inherit;font-size:13px;font-weight:500;letter-spacing:.01em;line-height:1;opacity:0;pointer-events:none;transform:translateY(-50%);white-space:nowrap;transition:opacity .24s cubic-bezier(.2,0,0,1),transform .24s cubic-bezier(.22,1,.36,1)}.case-rail-item.is-active .case-rail-text{font-weight:620}.case-rail:hover .case-rail-bar{width:0;opacity:0;transform:translate(-6px)}.case-rail:hover .case-rail-text{opacity:1;pointer-events:auto;transform:translate(16px,-50%)}.case-rail:hover .case-rail-item{color:var(--case-rail-muted)}.case-rail:hover .case-rail-item.is-active,.case-rail:hover .case-rail-item:hover,.case-rail-item:focus-visible{color:var(--case-heading)}.case-rail:hover .case-rail-item:hover .case-rail-text,.case-rail-item:focus-visible .case-rail-text{transform:translate(24px,-50%)}.case-page{min-height:100vh;padding:126px 24px 86px;background:var(--case-bg);color:var(--case-text);transition:background-color .52s cubic-bezier(.22,1,.36,1),color .42s ease}.case-body{width:min(760px,100%);margin:0 auto;transition:opacity .36s cubic-bezier(.22,1,.36,1),filter .36s cubic-bezier(.22,1,.36,1),transform .36s cubic-bezier(.22,1,.36,1)}.case-shell.is-language-changing [data-i18n=text]{will-change:height,width,contents}.case-shell.is-theme-exiting .case-body,.case-shell.is-theme-exiting .case-rail{opacity:.08;filter:blur(8px);transform:translateY(4px)}.case-shell.is-theme-entering .case-body,.case-shell.is-theme-entering .case-rail{animation:case-theme-content-return .42s cubic-bezier(.22,1,.36,1) both}@keyframes case-theme-content-return{0%{opacity:.08;filter:blur(8px);transform:translateY(4px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.case-hero{display:grid;gap:24px;margin-bottom:54px}.case-meta-line,.case-role{margin:0;color:var(--case-muted);font-size:15px;font-weight:430;line-height:1.8;letter-spacing:.04em}.case-hero h1{margin:0;color:var(--case-heading);font-size:16px;font-weight:520;line-height:1.78;letter-spacing:.02em}.case-shell[data-lang=zh] .case-meta-line,.case-shell[data-lang=zh] .case-role,.case-shell[data-lang=zh] .case-section p,.case-shell[data-lang=zh] .case-lead,.case-shell[data-lang=zh] .case-star-copy p,.case-shell[data-lang=zh] .case-action-item p,.case-shell[data-lang=zh] .case-star-points li,.case-shell[data-lang=zh] .case-fact-grid dd,.case-shell[data-lang=zh] .case-hero h1,.case-shell[data-lang=zh] .case-section h2,.case-shell[data-lang=zh] .case-section h3,.case-shell[data-lang=zh] .case-star-copy h3,.case-shell[data-lang=zh] .case-action-item h3{letter-spacing:0}.case-shell[data-lang=zh] .case-hero h1{font-size:18px;font-weight:620;line-height:1.62}.case-shell[data-lang=zh] .case-section h2{font-size:16px;font-weight:660;line-height:1.56}.case-shell[data-lang=zh] .case-lead,.case-shell[data-lang=zh] .case-star-copy p,.case-shell[data-lang=zh] .case-action-item p{font-size:15px;line-height:1.7}.case-shell[data-lang=zh] .case-star-copy h3,.case-shell[data-lang=zh] .case-action-item h3{font-size:16px;font-weight:620;line-height:1.64}.case-shell[data-lang=zh] .case-star-points li{font-size:15px;line-height:1.68}.case-hero-media,.case-flow-card,.case-output-card{margin:12px 0 0;overflow:hidden;background:var(--case-card-soft);border:1px solid var(--case-line);border-radius:8px}.case-hero-media{display:grid;min-height:0;place-items:center;padding:clamp(16px,2.6vw,28px)}.case-hero-media img{width:min(100%,704px);max-height:none;object-fit:contain;border-radius:6px;box-shadow:0 18px 42px var(--case-shadow)}.case-section{scroll-margin-top:92px;margin-top:56px}.case-section h2{margin:0 0 20px;padding-top:16px;border-top:1px solid var(--case-line);color:var(--case-heading);font-size:15px;font-weight:560;line-height:1.5;letter-spacing:.04em}.case-section h3{margin:28px 0 12px;color:var(--case-heading);font-size:15px;font-weight:520;line-height:1.65;letter-spacing:.035em}.case-section p,.case-lead{margin:0 0 18px;color:var(--case-muted);font-size:16px;font-weight:390;line-height:1.82;letter-spacing:.02em}.case-lead{font-size:16px}.case-reflection-copy{display:grid;gap:14px;margin:0}.case-reflection-copy p{margin:0;color:var(--case-muted);font-family:LXGW KoSe,Inter,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,Noto Sans CJK SC,sans-serif;font-size:16px;font-weight:400;line-height:1.92;letter-spacing:0}.case-shell[data-lang=zh] .case-reflection-copy{gap:16px}.case-shell[data-lang=zh] .case-reflection-copy p{font-size:16px;line-height:2}.case-fact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:30px 0 0;padding:0;border-top:1px solid var(--case-line);border-bottom:1px solid var(--case-line)}.case-fact-grid div{min-width:0;padding:18px 18px 20px;border-left:1px solid var(--case-line)}.case-fact-grid div:first-child{padding-left:0;border-left:0}.case-fact-grid dt{margin:0 0 8px;color:var(--case-subtle);font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.case-fact-grid dd{margin:0;color:var(--case-heading);font-size:13px;font-weight:500;line-height:1.65}.case-star-copy{display:block}.case-star-copy h3,.case-action-item h3{margin:0 0 10px;color:var(--case-heading);font-size:16px;font-weight:560;line-height:1.65;letter-spacing:.02em}.case-star-copy p,.case-action-item p{margin:0 0 8px;color:var(--case-muted);font-size:15px;font-weight:390;line-height:1.7;letter-spacing:.02em}.case-star-points{display:grid;gap:4px;margin:0;padding:0;list-style:none}.case-star-points li{position:relative;padding-left:20px;color:var(--case-muted);font-size:14px;font-weight:390;line-height:1.68}.case-star-points li:before{position:absolute;top:.78em;left:0;width:5px;height:5px;background:var(--case-subtle);border-radius:999px;content:""}.case-action-list{display:grid;gap:0}.case-action-item{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:22px 0;border-bottom:1px solid var(--case-line)}.case-action-item:first-child{padding-top:2px}.case-action-item:last-child{padding-bottom:0;border-bottom:0}.case-action-item>span{display:inline-flex;width:fit-content;min-width:26px;color:var(--case-subtle);font-size:12px;font-weight:680;letter-spacing:.08em;line-height:1}.case-action-item>div{display:block}.case-star-section .case-result-grid{margin-top:20px}.case-evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px}.case-evidence-card{display:grid;min-width:0;gap:9px;padding:12px;color:inherit;background:var(--case-card);border:1px solid var(--case-line);border-radius:8px;cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.case-evidence-card:hover{border-color:var(--case-subtle);box-shadow:0 16px 34px var(--case-shadow);transform:translateY(-2px)}.case-evidence-card:focus-visible{outline:2px solid var(--case-heading);outline-offset:4px}.case-evidence-preview{position:relative;display:grid;aspect-ratio:4 / 3;place-items:center;overflow:hidden;background:var(--case-card-muted);border:1px solid var(--case-line-soft);border-radius:6px}.case-evidence-card img{width:100%;height:100%;object-fit:contain}.case-evidence-viewer-controls button{display:inline-grid;width:20px;height:20px;place-items:center;padding:0;color:var(--case-heading);background:var(--case-card);border:1px solid var(--case-line);border-radius:999px;cursor:pointer;font:inherit;font-size:13px;line-height:1;transition:border-color .16s ease,transform .16s ease,background-color .16s ease}.case-evidence-viewer-controls button:hover{border-color:var(--case-heading);transform:translateY(-1px)}.case-evidence-viewer-controls button:active{transform:translateY(0) scale(.96)}.case-evidence-viewer-controls span{min-width:28px;color:var(--case-muted);font-size:9px;font-weight:650;line-height:1;text-align:center}.case-evidence-card .case-evidence-type,.case-evidence-viewer-meta>span{width:fit-content;padding:4px 7px;color:var(--case-muted);background:var(--case-card-muted);border-radius:4px;font-size:10px;font-weight:650;line-height:1;text-transform:uppercase}.case-evidence-card strong{color:var(--case-heading);font-size:14px;font-weight:560;line-height:1.55}.case-evidence-card p{margin:0;color:var(--case-subtle);font-size:12px;line-height:1.65}body.is-evidence-viewing{overflow:hidden}.case-evidence-viewer{--evidence-dialog-width: min(1060px, 100%);--evidence-frame-width: 100%;--evidence-frame-height: min(64vh, 760px);--evidence-frame-padding: 12px;position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:clamp(16px,3vw,34px);pointer-events:none;transition:visibility 0s linear .22s;visibility:hidden}.case-evidence-viewer.is-open{pointer-events:auto;transition-delay:0s;visibility:visible}.case-evidence-viewer-backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--case-bg) 66%,transparent);border:0;cursor:zoom-out;opacity:0;backdrop-filter:blur(18px);transition:opacity .22s ease}.case-evidence-viewer.is-open .case-evidence-viewer-backdrop{opacity:1}.case-evidence-dialog{position:relative;z-index:1;display:grid;width:var(--evidence-dialog-width);max-height:min(88vh,900px);gap:12px;padding:42px 14px 14px;overflow:hidden;background:var(--case-card);border:1px solid var(--case-line);border-radius:12px;box-shadow:0 28px 80px var(--case-shadow);transform:translateY(8px) scale(.992);transition:transform .22s cubic-bezier(.22,1,.36,1)}.case-evidence-viewer.is-open .case-evidence-dialog{transform:translateY(0) scale(1)}.case-evidence-close{position:absolute;top:12px;right:12px;z-index:2;display:inline-grid;width:30px;height:30px;place-items:center;padding:0;color:#111;background:color-mix(in srgb,var(--case-card) 72%,transparent);border:1px solid transparent;border-radius:999px;cursor:pointer;font:inherit;font-size:21px;font-weight:460;line-height:1;transition:color .16s ease,background-color .16s ease,transform .16s ease}.case-evidence-close:hover{color:#e11919;background:color-mix(in srgb,var(--case-card) 88%,transparent);transform:scale(1.06)}.case-evidence-close:focus-visible{outline:2px solid currentColor;outline-offset:3px}.case-evidence-viewer-frame{position:relative;display:grid;justify-self:center;width:var(--evidence-frame-width);height:var(--evidence-frame-height);min-height:0;max-height:var(--evidence-frame-height);place-items:center;overflow:hidden;padding:var(--evidence-frame-padding);background:#fff;border:1px solid var(--case-line-soft);border-radius:8px;contain:layout paint}.case-evidence-viewer-controls[hidden],.case-evidence-viewer-frame img[hidden],.case-evidence-viewer-frame iframe[hidden]{display:none!important}.case-evidence-viewer-loader{position:absolute;inset:14px;z-index:0;opacity:0;pointer-events:none;background:linear-gradient(100deg,color-mix(in srgb,var(--case-card-muted) 76%,var(--case-card)),color-mix(in srgb,var(--case-card) 76%,var(--case-card-muted)) 42%,color-mix(in srgb,var(--case-card) 96%,var(--case-card-muted)),color-mix(in srgb,var(--case-card) 76%,var(--case-card-muted)) 62%,color-mix(in srgb,var(--case-card-muted) 76%,var(--case-card))),color-mix(in srgb,var(--case-card-muted) 88%,var(--case-card));background-size:220% 100%;border:1px solid var(--case-line-soft);border-radius:7px;transition:opacity .18s ease}.case-evidence-viewer.is-media-loading .case-evidence-viewer-loader{opacity:1;animation:evidence-media-loading .96s ease-in-out infinite}@keyframes evidence-media-loading{0%{background-position:120% 0}to{background-position:-120% 0}}.case-evidence-viewer-frame img{position:relative;z-index:1;display:block;max-width:100%;max-height:calc(var(--evidence-frame-height) - var(--evidence-frame-padding) * 2);background:#fff;border-radius:7px;object-fit:contain;box-shadow:0 18px 42px color-mix(in srgb,var(--case-shadow) 78%,transparent);transform:translateZ(0)}.case-evidence-viewer-frame iframe{position:relative;z-index:1;width:100%;height:var(--evidence-frame-height);background:var(--case-card);border:0}.case-evidence-viewer.is-evidence-portrait{--evidence-dialog-width: min(880px, 100%);--evidence-frame-width: min(520px, 100%);--evidence-frame-height: min(72vh, 780px);--evidence-frame-padding: clamp(12px, 2vw, 20px)}.case-evidence-viewer.is-evidence-portrait .case-evidence-dialog,.case-evidence-viewer.is-evidence-long .case-evidence-dialog{grid-template-columns:minmax(0,var(--evidence-frame-width)) minmax(180px,1fr);grid-template-areas:"frame meta" "controls meta";align-items:center;column-gap:clamp(18px,2.5vw,28px);padding-right:clamp(14px,2.2vw,22px);padding-left:clamp(14px,2.2vw,22px)}.case-evidence-viewer.is-evidence-portrait .case-evidence-viewer-frame,.case-evidence-viewer.is-evidence-long .case-evidence-viewer-frame{grid-area:frame}.case-evidence-viewer.is-evidence-portrait .case-evidence-viewer-controls,.case-evidence-viewer.is-evidence-long .case-evidence-viewer-controls{grid-area:controls}.case-evidence-viewer.is-evidence-portrait .case-evidence-viewer-meta,.case-evidence-viewer.is-evidence-long .case-evidence-viewer-meta{grid-area:meta;align-self:center;padding:0 4px}.case-evidence-viewer.is-evidence-portrait .case-evidence-viewer-frame,.case-evidence-viewer.is-evidence-long .case-evidence-viewer-frame{background:#fff}.case-evidence-viewer.is-evidence-portrait .case-evidence-viewer-frame img{width:auto;max-width:100%}.case-evidence-viewer.is-evidence-long{--evidence-dialog-width: min(840px, 100%);--evidence-frame-width: min(480px, 100%);--evidence-frame-height: min(76vh, 840px);--evidence-frame-padding: clamp(10px, 1.8vw, 18px)}.case-evidence-viewer.is-evidence-long .case-evidence-viewer-frame{overflow:auto;scrollbar-gutter:stable both-edges}.case-evidence-viewer.is-evidence-long .case-evidence-viewer-frame img{width:min(100%,440px);max-height:none}.case-evidence-viewer.is-evidence-document .case-evidence-viewer-frame{overflow:hidden}.case-evidence-viewer-controls{display:inline-flex;gap:9px;align-items:center;justify-self:center}.case-evidence-viewer-meta{display:grid;gap:7px;padding:2px 2px 4px}.case-evidence-viewer-meta h3{margin:0;color:var(--case-heading);font-size:15px;font-weight:620;line-height:1.55}.case-evidence-viewer-meta p{margin:0;color:var(--case-muted);font-size:13px;line-height:1.7}.case-card-title{margin:0;color:var(--case-muted);font-size:13px;font-weight:520;line-height:1.6;text-align:center}.case-flow-card{padding:clamp(28px,5vw,44px) clamp(24px,4vw,34px)}.case-flow-grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:20px;align-items:center;margin-top:28px}.case-flow-box{display:grid;gap:10px;min-height:126px;align-content:center;padding:18px;border-radius:8px}.case-flow-box strong{color:var(--case-heading);font-size:13px;font-weight:620}.case-flow-box span{color:var(--case-muted);font-size:12px;line-height:1.65}.case-flow-box small{color:var(--case-subtle);font-size:11px;line-height:1.5}.case-flow-box.is-source{background:var(--case-card-muted);border:1px dashed var(--case-line)}.case-flow-box.is-target{background:var(--case-card-muted);border:1px solid var(--case-line)}.case-flow-arrow{color:var(--case-subtle);font-size:22px}.case-note-stack{display:grid;gap:12px;margin-top:20px}.case-note,.case-result-grid article,.case-asset-list a,.case-asset-list div,.case-tools{background:var(--case-card);border:1px solid var(--case-line);border-radius:8px}.case-note{padding:18px 20px}.case-note span,.case-result-grid span,.case-asset-list span,.case-tools span{display:inline-block;margin-bottom:8px;padding:4px 8px;color:var(--case-tag-text);background:var(--case-tag-bg);border-radius:4px;font-size:11px;font-weight:560;line-height:1}.case-note p{margin:0;font-size:14px;line-height:1.72}.case-process{display:grid;gap:18px;margin:28px 0 0;padding:0;list-style:none}.case-process li{display:grid;grid-template-columns:42px minmax(0,1fr);gap:20px;padding-bottom:18px;border-bottom:1px solid var(--case-line)}.case-process li>span{color:var(--case-subtle);font-size:12px;font-weight:620;letter-spacing:.08em}.case-process h3{margin:0 0 6px}.case-process p{margin:0;color:var(--case-muted);font-size:14px;line-height:1.75}.case-output-card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:0}.case-output-media{display:grid;min-height:260px;place-items:center;padding:22px;background:var(--case-card-muted);border-right:1px solid var(--case-line)}.case-output-media img{width:100%;max-height:236px;object-fit:contain;border-radius:6px}.case-output-copy{min-width:0;padding:28px 26px}.case-output-copy .case-card-title{margin-bottom:18px;text-align:left}.case-output-copy ul{display:grid;gap:10px;margin:0 0 18px;padding:0;list-style:none}.case-output-copy li{color:var(--case-heading);font-size:14px;line-height:1.65}.case-output-copy li:before{margin-right:8px;color:var(--case-subtle);content:"—"}.case-output-copy p{margin:0;color:var(--case-subtle);font-size:12px;line-height:1.7}.case-asset-list{display:grid;gap:12px;margin-top:14px}.case-asset-list a,.case-asset-list div{display:grid;gap:5px;padding:16px 18px}.case-asset-list a:hover{border-color:var(--case-subtle)}.case-asset-list strong{color:var(--case-heading);font-size:14px;font-weight:540;line-height:1.5}.case-asset-list small{color:var(--case-subtle);font-size:12px;line-height:1.55}.case-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.case-result-grid article{min-height:132px;padding:18px}.case-result-grid strong{display:block;color:var(--case-heading);font-size:14px;font-weight:540;line-height:1.65}.case-tools{margin-top:28px;padding:18px 20px}.case-tools p{margin:0;color:var(--case-heading);font-size:14px}.case-footer{display:flex;justify-content:space-between;gap:24px;margin-top:64px;padding-top:24px;border-top:1px solid var(--case-line);color:var(--case-heading);font-size:13px;font-weight:520}.case-footer a{max-width:46%;line-height:1.6;text-decoration:underline;text-decoration-color:var(--case-line);text-underline-offset:4px}.case-footer a:hover{text-decoration-color:var(--case-heading)}.portfolio-shell{min-height:100vh;padding:clamp(18px,3vw,36px);background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.9),transparent 28%),linear-gradient(145deg,#f1f3f6,#e9edf2);color:#24262b;overflow-x:hidden}.portfolio-book{position:relative;width:min(100%,1400px);min-height:min(920px,calc(100vh - clamp(36px,6vw,72px)));margin:0 auto;padding:clamp(56px,7vw,92px) clamp(22px,9vw,290px) clamp(48px,6vw,78px);overflow:hidden auto;background:#fffcf9f5;border:1px solid rgba(36,38,43,.05);border-radius:14px;box-shadow:0 28px 80px #292c3421,0 1px #ffffffe6 inset}.book-chrome{position:absolute;top:clamp(28px,4.4vw,58px);left:50%;display:flex;width:min(100% - 44px,520px);align-items:center;justify-content:space-between;transform:translate(-50%);pointer-events:none}.book-mark{display:inline-flex;width:auto;min-width:24px;height:24px;align-items:center;justify-content:center;color:#222429d1;font-family:var(--font-sans);font-size:16px;font-style:normal;font-weight:760;line-height:1;pointer-events:auto}.book-chrome p{margin:0;color:#a0a3a9;font-size:10px;font-weight:600}.book-glass-veil{position:absolute;inset:0;z-index:2;background:#f7f8fa3d;opacity:0;pointer-events:none;backdrop-filter:blur(6px) saturate(1.05);transition:opacity .32s cubic-bezier(.22,1,.36,1)}.book-glass-veil.is-visible{opacity:1}.book-view{position:relative;z-index:1;transform-origin:50% 36%;transition:opacity .72s cubic-bezier(.22,1,.36,1),filter .72s cubic-bezier(.22,1,.36,1),transform .72s cubic-bezier(.22,1,.36,1);will-change:opacity,filter,transform}.book-view.is-entering{animation:book-view-enter .76s cubic-bezier(.16,1,.3,1) both}.book-view.is-exiting{animation:book-view-exit .36s cubic-bezier(.55,.06,.68,.19) both}.book-view.is-focus-source.is-exiting{animation:book-source-focus .36s cubic-bezier(.16,1,.3,1) both}.book-view.is-hover-focused{animation:none;opacity:.46;filter:blur(5px);transform:scale(.997)}.book-view.is-hover-focused.is-exiting{animation:none}@keyframes book-view-enter{0%{opacity:0;filter:blur(12px);transform:translateY(18px) scale(.982)}to{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}@keyframes book-view-exit{0%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}to{opacity:0;filter:blur(8px);transform:translateY(-7px) scale(.988)}}@keyframes book-source-focus{0%{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}18%{opacity:.64;filter:blur(4px);transform:translateY(0) scale(.997)}to{opacity:.46;filter:blur(5px);transform:translateY(2px) scale(.992)}}.book-focus-preview{position:absolute;top:max(76px,calc(var(--focus-top) - 118px));left:50%;z-index:4;display:grid;grid-template-columns:minmax(210px,250px) minmax(0,1fr);width:min(760px,calc(100% - 92px));min-height:268px;align-items:center;gap:clamp(34px,5vw,58px);padding:58px 54px 44px;color:#111d4f;background:linear-gradient(145deg,#e3e8ffe6,#bcc7f9d1),#d3dbffd6;border:1px solid rgba(255,255,255,.72);border-radius:30px;box-shadow:0 42px 88px #24409c3d,0 18px 38px #12193029,inset 0 1px #ffffffd1,inset 0 -1px #5367ae1f;backdrop-filter:blur(22px) saturate(1.12);pointer-events:none;contain:layout;overflow:hidden;transform:translate(-50%);transform-origin:50% 50%;transition:top .22s cubic-bezier(.2,.8,.2,1),width .22s cubic-bezier(.2,.8,.2,1),min-height .22s cubic-bezier(.2,.8,.2,1);animation:book-quicklook-in .42s cubic-bezier(.16,1,.3,1) both;will-change:opacity,transform}.book-focus-preview.is-leaving{animation:book-quicklook-out .25s cubic-bezier(.4,0,.2,1) both}.book-quicklook-toolbar{position:absolute;top:20px;right:24px;left:24px;display:flex;align-items:center;gap:12px;color:#23317cc2}.book-quicklook-control{position:relative;display:block;width:18px;height:18px;border-radius:999px;background:#132060bd;box-shadow:inset 0 1px #ffffff38}.book-quicklook-close:before,.book-quicklook-close:after,.book-quicklook-secondary:before{position:absolute;top:8px;left:4px;width:10px;height:2px;border-radius:999px;background:#dde2fff2;content:""}.book-quicklook-close:before{transform:rotate(45deg)}.book-quicklook-close:after{transform:rotate(-45deg)}.book-quicklook-secondary:before{transform:rotate(-45deg)}.book-quicklook-share{display:grid;width:28px;height:28px;place-items:center;margin-left:auto;color:#23317cbd}.book-quicklook-share svg{width:23px;height:23px}.book-quicklook-cover{position:relative;overflow:hidden;width:100%;aspect-ratio:16 / 9;background:#ffffffb8;border:1px solid rgba(255,255,255,.74);border-radius:18px;box-shadow:0 22px 36px #1922403d,0 7px 14px #19224029,inset 0 1px #ffffffc7;animation:book-quicklook-cover-in .52s cubic-bezier(.16,1,.3,1) both}.book-quicklook-cover img{width:100%;height:100%;object-fit:cover;filter:saturate(1.05) contrast(1.06)}.book-quicklook-cover:after{position:absolute;inset:0;content:"";background:linear-gradient(135deg,#ffffff47,#fff0 44%),linear-gradient(0deg,#222d601f,#222d6000 42%);pointer-events:none}.book-quicklook-copy{min-width:0;padding-top:4px}.book-quicklook-copy>*{animation:book-quicklook-copy-in .56s cubic-bezier(.16,1,.3,1) both}.book-quicklook-copy>*:nth-child(2){animation-delay:45ms}.book-quicklook-copy>*:nth-child(3){animation-delay:90ms}.book-quicklook-copy>*:nth-child(4){animation-delay:135ms}.book-quicklook-copy h2{max-width:100%;margin:0 0 18px;color:#07154f;font-size:clamp(25px,3vw,36px);font-weight:820;line-height:1.18;overflow-wrap:anywhere}.book-quicklook-copy p,.book-quicklook-copy time{display:block;margin:0;color:#172463b8;font-size:clamp(14px,1.5vw,19px);font-weight:560;line-height:1.72}.book-quicklook-copy time{margin-top:2px;color:#17246394}.book-folder-thumb{position:relative;display:block;width:42px;height:34px;isolation:isolate;transform-origin:50% 72%;will-change:transform}.book-folder-art{inset:0;position:absolute;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none}@keyframes book-quicklook-in{0%{opacity:0;filter:blur(12px);transform:translate(-50%) translateY(16px) scale(.94)}64%{opacity:1;filter:blur(0);transform:translate(-50%) translateY(-2px) scale(1.008)}to{opacity:1;filter:blur(0);transform:translate(-50%) translateY(0) scale(1)}}@keyframes book-quicklook-out{0%{opacity:1;filter:blur(0);transform:translate(-50%) translateY(0) scale(1)}to{opacity:0;filter:blur(8px);transform:translate(-50%) translateY(10px) scale(.965)}}@keyframes book-quicklook-cover-in{0%{opacity:0;transform:translateY(18px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes book-quicklook-copy-in{0%{opacity:0;filter:blur(6px);transform:translateY(10px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.book-index-view{width:min(100%,520px);margin:0 auto;padding-top:8px}.book-intro{display:grid;gap:8px;margin:0 0 30px;padding-top:2px}.book-intro p{max-width:440px;margin:0;color:#5e626a;font-size:12px;font-weight:560;line-height:1.72}.book-intro span{color:#a3a6ad;font-size:10px;font-weight:650}.book-list-section{position:relative}.book-section-heading{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end;margin-bottom:9px}.book-section-heading h1{margin:0;color:#222429;font-family:var(--font-sans);font-size:19px;font-style:italic;font-weight:700;line-height:1.1;text-transform:lowercase}.book-section-heading span{color:#a1a4aa;font-size:10px;font-weight:650}.book-project-groups{display:grid;gap:26px}.book-project-group{display:grid;gap:8px}.book-project-group h2{margin:0;color:#a3a6ad;font-size:11px;font-weight:740;line-height:1.1}.book-project-list{display:grid;margin:0;padding:0;list-style:none}.book-project-list li{border-bottom:1px solid rgba(36,38,43,.055);animation:book-row-enter .65s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(.17s + var(--row-index, 0) * 72ms)}.book-project-list button{display:grid;grid-template-columns:46px minmax(0,1fr) auto;width:100%;min-height:56px;align-items:center;gap:18px;padding:7px 0;background:transparent;border:0;color:#34373e;cursor:pointer;text-align:left;transition:color .13s ease,opacity .13s ease,transform .13s ease}.book-project-list button:hover{color:#111318;transform:translate(3px)}.book-project-list button:active{color:#858991;opacity:.72;transform:translate(3px) scale(.985)}.book-project-list button:focus-visible,.book-back:focus-visible,.book-detail-footer a:focus-visible{outline:1px solid rgba(36,88,255,.58);outline-offset:4px}.book-project-list .book-folder-thumb{justify-self:start}.book-project-list span{overflow:hidden;font-size:12px;font-weight:650;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.book-project-list time{color:#9da1a9;font-size:10px;font-weight:650;white-space:nowrap}@keyframes book-row-enter{0%{opacity:0;filter:blur(7px);transform:translateY(11px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.book-detail-view{width:min(100%,620px);margin:0 auto;padding-top:16px}.book-back{display:inline-grid;width:25px;height:25px;place-items:center;margin:0 0 22px -48px;padding:0;background:#ffffffb8;border:1px solid rgba(36,38,43,.08);border-radius:999px;color:#3f4249;cursor:pointer;transition:color .13s ease,background-color .13s ease,transform .13s ease}.book-back svg{width:14px;height:14px}.book-back:hover{background:#fff;color:#15171b}.book-back:active{color:#83878f;transform:scale(.92)}.book-detail-media{width:min(100%,410px);margin:0 auto 28px;padding:4px;background:#fff;animation:book-media-settle .42s cubic-bezier(.16,1,.3,1) both;box-shadow:0 18px 46px #1b1d231f,0 0 0 1px #2224290a}.book-detail-media img{width:100%;aspect-ratio:16 / 9;object-fit:cover}.book-detail-copy{width:min(100%,430px);margin:0 auto;color:#33363d}.book-detail-copy>*{animation:book-copy-enter .62s cubic-bezier(.16,1,.3,1) both}.book-detail-copy>*:nth-child(1){animation-delay:.72s}.book-detail-copy>*:nth-child(2){animation-delay:.79s}.book-detail-copy>*:nth-child(3){animation-delay:.86s}.book-detail-copy>*:nth-child(4){animation-delay:.93s}.book-detail-copy>*:nth-child(5){animation-delay:1s}.book-detail-copy>*:nth-child(6){animation-delay:1.07s}@keyframes book-media-settle{0%{opacity:0;filter:blur(4px);transform:translateY(4px) scale(.992)}to{opacity:1;filter:blur(0);transform:translateY(0) scale(1)}}@keyframes book-copy-enter{0%{opacity:0;filter:blur(6px);transform:translateY(10px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.book-detail-year{margin:0 0 6px;color:#a3a6ad;font-size:10px;font-weight:700}.book-detail-copy h1{margin:0 0 12px;color:#222429;font-family:var(--font-sans);font-size:clamp(24px,3vw,34px);font-style:italic;font-weight:700;line-height:1.05}.book-detail-summary{margin:0 0 20px;color:#686c74;font-size:12px;font-weight:560;line-height:1.78}.book-detail-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 22px;padding:12px 0;border-top:1px solid rgba(36,38,43,.07);border-bottom:1px solid rgba(36,38,43,.07)}.book-detail-meta div{min-width:0;padding-right:16px}.book-detail-meta dt{margin-bottom:5px;color:#a2a5ac;font-size:9px;font-weight:750;text-transform:uppercase}.book-detail-meta dd{margin:0;overflow-wrap:anywhere;color:#34373e;font-size:11px;font-weight:660;line-height:1.4}.book-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.book-detail-grid section,.book-detail-footer{min-width:0}.book-detail-grid h2,.book-detail-footer h2{margin:0 0 10px;color:#a0a3aa;font-size:11px;font-weight:760}.book-detail-grid ul,.book-detail-grid ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.book-detail-grid li,.book-detail-footer p{margin:0;color:#5e626a;font-size:11px;font-weight:560;line-height:1.62}.book-detail-grid ol li{display:grid;gap:2px}.book-detail-grid strong{color:#373a41;font-size:11px;font-weight:720}.book-detail-grid span{color:#6d7178}.book-detail-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;margin-top:24px;padding-top:16px;border-top:1px solid rgba(36,38,43,.07)}.book-detail-footer a{color:#33363d;font-size:11px;font-weight:760;white-space:nowrap;transition:color .13s ease,transform .13s ease}.book-detail-footer a:hover{color:#111318;transform:translate(2px)}.book-detail-footer a:active{color:#858991;transform:translate(2px) scale(.97)}.story-page{--story-bg: #ffffff;--story-text: #18191c;--story-muted: #747474;--story-soft: #a0a0a0;--story-line: #e6e1dc;--story-link: #161616;--story-dash: rgba(35, 79, 59, .42);--story-hover: #eef6f0;--story-control: #f8f8f8;--story-control-border: #dedede;--story-shadow: rgba(18, 22, 28, .08);position:relative;min-height:100vh;overflow-x:clip;background:radial-gradient(circle at 50% 108%,rgba(40,95,61,.06),transparent 34rem),var(--story-bg);color:var(--story-text);font-family:var(--font-sans);transition:background .62s cubic-bezier(.22,1,.36,1),color .52s ease}.story-page[data-theme=dark],html[data-theme=dark] .story-page{--story-bg: #111214;--story-text: #e9e5dc;--story-muted: #aaa49b;--story-soft: #78746d;--story-line: #2e2d2b;--story-link: #f1ede5;--story-dash: rgba(147, 197, 166, .5);--story-hover: rgba(126, 171, 140, .13);--story-control: #17191b;--story-control-border: #333438;--story-shadow: rgba(0, 0, 0, .28);background:radial-gradient(circle at 52% 108%,rgba(106,146,117,.1),transparent 34rem),var(--story-bg)}.story-column{position:relative;z-index:2;width:min(100% - 48px,560px);margin:0 auto;padding:clamp(84px,10vw,112px) 0 62px;transform-origin:50% 18%}.story-name-line,.story-language-content{transition:opacity .36s cubic-bezier(.22,1,.36,1),filter .36s cubic-bezier(.22,1,.36,1),transform .36s cubic-bezier(.22,1,.36,1)}.story-page.is-theme-exiting .story-name-line,.story-page.is-theme-exiting .story-language-content{opacity:.08;filter:blur(8px);transform:translateY(4px)}.story-page.is-theme-entering .story-name-line,.story-page.is-theme-entering .story-language-content{animation:story-theme-content-return .42s cubic-bezier(.22,1,.36,1) both}@keyframes story-theme-content-return{0%{opacity:.08;filter:blur(8px);transform:translateY(4px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.story-column.is-language-changing .story-scramble{will-change:height}.story-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;margin-bottom:38px}.story-topbar p,.story-copy p,.story-section-note,.story-project-link,.story-footer{letter-spacing:.08em}.story-page[data-lang=zh] .story-topbar p,.story-page[data-lang=zh] .story-copy p,.story-page[data-lang=zh] .story-section-note,.story-page[data-lang=zh] .story-project-link,.story-page[data-lang=zh] .story-footer{letter-spacing:.035em}.story-topbar p{margin:0;color:var(--story-text);font-size:14px;font-weight:520;line-height:1.7}.story-controls{display:inline-flex;align-items:center;gap:18px}.story-lang-toggle,.story-theme-toggle,.story-social{color:inherit;font:inherit}.story-lang-toggle,.story-theme-toggle{display:inline-grid;height:32px;place-items:center;padding:0;background:transparent;border:0;color:var(--story-muted);cursor:pointer;transition:color .14s ease,transform .14s ease}.story-lang-toggle{min-width:28px;font-size:12px;font-weight:560;letter-spacing:.08em}.story-theme-toggle{width:30px}.story-theme-icon{position:relative;display:block;width:18px;height:18px}.story-theme-icon svg{position:absolute;inset:0;display:block;width:18px;height:18px;overflow:visible;transform-origin:50% 50%;transition:opacity .36s cubic-bezier(.22,.61,.36,1),transform .52s cubic-bezier(.22,.61,.36,1)}.story-theme-moon,.story-theme-sun{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.65}.story-theme-moon{opacity:1;transform:rotate(0) scale(1)}.story-theme-sun{opacity:0;transform:rotate(-20deg) scale(.84)}.story-page[data-theme=dark] .story-theme-moon,html[data-theme=dark] .story-page .story-theme-moon{opacity:0;transform:rotate(20deg) scale(.84)}.story-page[data-theme=dark] .story-theme-sun,html[data-theme=dark] .story-page .story-theme-sun{opacity:1;transform:rotate(0) scale(1)}.story-lang-toggle:hover,.story-theme-toggle:hover,.story-social:hover,.story-mail:hover,.story-project-link:hover{color:var(--story-link)}.story-lang-toggle:active,.story-theme-toggle:active,.story-social:active,.story-mail:active,.story-project-link:active{transform:scale(.97)}.story-copy{display:grid;gap:22px;margin-bottom:34px}.story-copy p,.story-section-note{margin:0;color:var(--story-muted);font-size:15px;font-weight:400;line-height:1.9}.story-secondary{margin-top:38px;margin-bottom:38px}.story-highlight{display:inline;color:var(--story-link);padding:0;text-decoration:underline dashed var(--story-dash);text-decoration-thickness:2px;text-underline-offset:4px;cursor:default;outline:none;transition:text-decoration-color .14s ease,color .14s ease}.story-highlight:hover,.story-highlight:focus-visible{text-decoration-color:var(--story-link)}.story-name-hover{display:inline-flex;max-width:100%;align-items:baseline;white-space:nowrap}.story-name-label{flex:0 0 auto}.story-name-roles{display:inline-block;max-width:0;overflow:hidden;opacity:0;transform:translate(-6px);vertical-align:bottom;white-space:pre;transition:max-width .52s cubic-bezier(.22,1,.36,1),opacity .22s ease,transform .36s cubic-bezier(.22,1,.36,1)}.story-name-hover:hover .story-name-roles,.story-name-hover:focus-visible .story-name-roles{max-width:min(360px,72vw);opacity:1;transform:translate(0)}@media(max-width:560px){.story-page[data-lang=en] .story-name-hover{position:relative;flex-wrap:nowrap;overflow:visible;white-space:nowrap}.story-page[data-lang=en] .story-name-roles{position:absolute;top:calc(100% + 4px);left:0;white-space:normal;width:min(282px,calc(100vw - 48px))}.story-page[data-lang=en] .story-name-hover:hover .story-name-roles,.story-page[data-lang=en] .story-name-hover:focus-visible .story-name-roles{max-width:min(282px,calc(100vw - 48px))}.story-page[data-lang=en] .story-name-role-separator{display:none}}.story-work{display:grid;gap:13px;margin:42px 0 0}.story-section-note{margin:0;color:var(--story-muted);font-weight:500}.story-project-list{display:grid;gap:8px;margin:0;padding-left:1.15em;color:var(--story-muted);list-style:disc}.story-project-list+.story-section-note{margin-top:20px}.story-project-list li{padding-left:.15em}.story-project-list li::marker{color:var(--story-muted);font-size:.86em}.story-project-link{display:inline;padding:0 0 .02em;background:transparent;border-radius:0;color:var(--story-link);font-size:15px;font-weight:620;line-height:1.86;text-decoration-line:underline;text-decoration-color:var(--story-line);text-decoration-thickness:1px;text-underline-offset:4px;transition:color .14s ease,text-decoration-color .14s ease,transform .14s ease}.story-project-link span{font-weight:560}.story-project-link small{color:var(--story-soft);font-size:.92em}.story-project-link em{color:var(--story-muted);font-style:normal}.story-project-link:hover,.story-project-link:focus-visible{background:transparent;color:var(--story-link);text-decoration-color:var(--story-dash)}.story-project-link-static{cursor:default}.story-secondary-list{margin-top:-4px}.story-project-link:focus-visible,.story-lang-toggle:focus-visible,.story-theme-toggle:focus-visible,.story-social:focus-visible,.story-mail:focus-visible{outline:1px solid var(--story-dash);outline-offset:5px}.story-footer{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:center;margin-top:38px;padding-top:25px;border-top:1px solid var(--story-line)}.story-social,.story-mail{color:var(--story-link);font-size:13px;font-weight:520;line-height:1.6;text-decoration-line:underline;text-decoration-color:var(--story-line);text-underline-offset:4px;transition:color .14s ease,text-decoration-color .14s ease,transform .14s ease}.story-social{padding:0;background:transparent;border:0;cursor:pointer;letter-spacing:.08em}.story-mail{justify-self:end;overflow-wrap:anywhere}.story-social:hover,.story-mail:hover,.story-social:focus-visible,.story-mail:focus-visible{text-decoration-color:var(--story-link)}.story-confetti-canvas{position:fixed;inset:0;z-index:30;width:100vw;height:100vh;pointer-events:none}@media(max-width:920px){:root{--header: 68px}.site-header{padding:0 24px}.site-header .desktop-nav{gap:22px;font-size:14px}.section-shell,.project-detail{width:min(100% - 40px,var(--max))}.intro-section{min-height:auto}.intro-copy h1{font-size:48px}.intro-copy p{font-size:18px}.project-cover-link{aspect-ratio:16 / 10}.carousel-frame{overflow:visible}.carousel-control{top:auto;bottom:18px;z-index:2;background:#fffc;border:1px solid var(--line)}.carousel-control-left{left:18px}.carousel-control-right{right:18px}.carousel-meta{display:block;padding:20px 0 0}.carousel-count{margin-top:16px}.carousel-dots{margin-top:18px}.other-grid{grid-template-columns:1fr;gap:26px;margin-top:6px;padding-top:20px}.other-group-heading{gap:10px;margin-bottom:18px}.other-group-heading span{width:22px}.award-timeline li{grid-template-columns:32px minmax(0,1fr);gap:12px;padding-bottom:18px}.award-timeline li:not(:last-child):after{left:15px}.award-index{width:32px}.skill-matrix{grid-template-columns:1fr}.detail-nav{align-items:center}.detail-switcher{display:none}.detail-hero{display:block}.detail-title h1{font-size:38px}.detail-title span{font-size:16px}.detail-meta{grid-template-columns:1fr;margin:24px 0}.detail-meta div,.detail-meta div:first-child{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:14px 0;border-left:0;border-bottom:1px solid var(--line)}.detail-cover{aspect-ratio:1 / .78}.detail-columns,.detail-main-grid{display:block}.detail-columns article+article{margin-top:32px}.detail-process{margin-top:40px;padding-left:0;border-left:0}.detail-process h2,.detail-assets h2,.detail-results h2{margin-bottom:24px}.asset-grid{display:flex;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}.asset-item{flex:0 0 min(78vw,320px);scroll-snap-align:start}.detail-results dl{grid-template-columns:1fr}.detail-results div,.detail-results div:first-child{min-height:0;padding:18px 0;border-left:0;border-bottom:1px solid var(--line)}.portfolio-shell{padding:14px}.portfolio-book{min-height:calc(100vh - 28px);padding:54px clamp(20px,8vw,70px) 46px}.book-chrome{top:28px;width:min(100% - 40px,560px)}.book-index-view,.book-detail-view{width:min(100%,560px)}.book-back{margin-left:0}.case-chrome{padding:0 24px}.case-rail{display:none}.case-page{padding-top:96px}}@media(max-width:560px){.site-header .desktop-nav{display:none}.mobile-menu{display:block}.section-shell,.project-detail{width:calc(100% - 32px)}.section-label{font-size:36px;color:var(--text)}.section-label span{color:var(--text)}.intro-copy h1{font-size:42px}.intro-meta{display:block;line-height:2}.intro-meta span{display:inline-block}.intro-meta span+span:before{position:static;margin:0 12px}.carousel-title{font-size:28px}.detail-title h1{font-size:34px}.portfolio-shell{padding:0;background:#edf0f4}.portfolio-book{min-height:100vh;border-radius:0;padding:70px 22px 48px}.book-chrome{top:28px;width:calc(100% - 44px)}.book-intro{margin-bottom:28px}.book-intro p{font-size:12px}.book-project-list button{grid-template-columns:42px minmax(0,1fr) auto;gap:13px;min-height:58px}.book-project-list span{font-size:12px}.book-focus-preview{top:max(96px,calc(var(--focus-top) - 96px));grid-template-columns:130px minmax(0,1fr);width:calc(100% - 28px);min-height:218px;gap:18px;padding:48px 18px 30px;border-radius:24px}.book-quicklook-toolbar{top:16px;right:17px;left:17px}.book-quicklook-control{width:16px;height:16px}.book-quicklook-close:before,.book-quicklook-close:after,.book-quicklook-secondary:before{top:7px;left:4px;width:8px}.book-quicklook-share{width:24px;height:24px}.book-quicklook-share svg{width:20px;height:20px}.book-quicklook-cover{border-radius:14px}.book-quicklook-copy h2{margin-bottom:10px;font-size:17px;line-height:1.28}.book-quicklook-copy p,.book-quicklook-copy time{font-size:11px;line-height:1.55}.book-detail-view{padding-top:4px}.book-detail-media,.book-detail-copy{width:100%}.book-detail-meta,.book-detail-grid,.book-detail-footer{grid-template-columns:1fr}.book-detail-footer{align-items:start}}@media(max-width:640px){.case-chrome{min-height:60px;padding:0 24px;border-bottom:1px solid var(--case-line)}.case-chrome-left{gap:18px}.case-chrome-right{gap:16px;font-size:12px}.case-page{padding:76px 24px 64px}.case-body{width:100%}.case-hero{gap:20px;margin-bottom:48px}.case-meta-line,.case-role{font-size:15px;line-height:1.7}.case-hero h1{font-size:16px;line-height:1.7}.case-hero-media{margin-top:16px;padding:12px}.case-hero-media img{width:100%;max-height:none}.case-section{margin-top:48px}.case-section h2{margin-bottom:20px;font-size:16px}.case-section h3{margin-top:20px}.case-star-copy h3,.case-action-item h3{margin-top:0}.case-section p,.case-lead{font-size:16px;line-height:1.78}.case-fact-grid{grid-template-columns:1fr}.case-fact-grid div,.case-fact-grid div:first-child{padding:16px 0;border-left:0;border-top:1px solid var(--case-line)}.case-fact-grid div:first-child{border-top:0}.case-star-copy h3,.case-action-item h3{font-size:16px}.case-star-copy p,.case-action-item p{font-size:15px;line-height:1.82}.case-action-item{grid-template-columns:1fr;gap:10px;padding:22px 0}.case-action-item>span{font-size:11px}.case-evidence-grid{grid-template-columns:1fr}.case-evidence-viewer.is-evidence-portrait,.case-evidence-viewer.is-evidence-long{--evidence-dialog-width: 100%;--evidence-frame-width: 100%;--evidence-frame-height: min(58vh, 560px)}.case-evidence-viewer.is-evidence-portrait .case-evidence-dialog,.case-evidence-viewer.is-evidence-long .case-evidence-dialog{grid-template-columns:1fr;grid-template-areas:"frame" "controls" "meta";align-items:stretch}.case-flow-card{padding:28px 26px}.case-flow-grid{grid-template-columns:1fr;gap:16px}.case-flow-arrow{justify-self:center;transform:rotate(90deg)}.case-flow-box{min-height:0}.case-process li{grid-template-columns:36px minmax(0,1fr);gap:16px}.case-output-card{grid-template-columns:1fr}.case-output-media{min-height:190px;border-right:0;border-bottom:1px solid var(--case-line)}.case-output-copy{padding:24px 22px}.case-result-grid{grid-template-columns:1fr}.case-result-grid article{min-height:0}.case-footer{display:grid;gap:14px}.case-footer a{max-width:100%}.story-column{width:calc(100% - 48px);padding:84px 0 46px}.story-topbar{gap:18px;margin-bottom:32px}.story-topbar p,.story-copy p,.story-section-note,.story-project-link{font-size:14px;line-height:1.88;letter-spacing:.06em}.story-copy{gap:18px;margin-bottom:30px}.story-work{margin-top:34px}.story-project-list{gap:16px}.story-footer{grid-template-columns:1fr;gap:12px;margin-top:34px;justify-items:start}.story-social,.story-mail{justify-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}.carousel-progress{display:none}.book-view,.book-view.is-entering,.book-view.is-exiting,.book-glass-veil,.book-project-list li,.book-focus-preview,.book-folder-thumb,.book-quicklook-cover,.book-quicklook-copy>*,.book-detail-media,.book-detail-copy>*{animation:none!important}.story-confetti-canvas{display:none}::view-transition-new(root),::view-transition-old(root){animation:none!important;mask-image:none!important;-webkit-mask-image:none!important}}
