:root{--b-gap: 60px;--header-gap: 60px;--top: 90px;--white: #ffffff;--ink: #111111;--muted: #8e8e93;--border: #e5e5e5;--accent: #0066ff;--margin: 96px;--gap: 24px}*{box-sizing:border-box;margin:0;padding:0}html{overscroll-behavior:none}body{background:var(--white);color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.page{min-height:100vh;padding:var(--top) var(--margin) 96px}.grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));column-gap:var(--gap)}.site-name{position:fixed;z-index:6;top:var(--top);left:var(--margin);font-size:20px;line-height:24px;font-weight:400}.home__left{position:fixed;z-index:1;top:var(--top);left:var(--margin);width:calc((100% - 2 * var(--margin) - 7 * var(--gap)) / 8 * 3 + 2 * var(--gap));height:max(640px,calc(100vh - var(--top) - 96px));display:flex;flex-direction:column;justify-content:space-between;gap:24px}@media(min-width:769px)and (max-height:825px){.home__left{position:absolute}}.bio{margin-top:calc(24px + var(--header-gap));font-size:16px;line-height:24px}.bio__lead{color:#000}.bio__rest{color:#595963}.big-b-slot{flex:1;min-height:0;width:100%;margin-top:var(--b-gap)}.menu-btn,.menu-backdrop{display:none}.home__links{grid-column:5 / span 4;grid-row:1;justify-self:end;align-self:start;margin-top:6px;display:flex;align-items:center;gap:24px;font-size:16px;line-height:24px;font-weight:400;white-space:nowrap}.home__link-wrap{position:relative;display:inline-flex;align-items:center;gap:24px}.home__links a,.link-btn{transition:color .3s ease}.home__links a:hover,.link-btn:hover{color:#007aff}.link-btn{border:0;padding:0;background:none;font:inherit;color:inherit;cursor:pointer}.dot{flex:none;width:8px;height:8px}.work{grid-column:5 / span 4;grid-row:2;margin-top:calc(24px + var(--header-gap) - 30px);position:relative;display:flex;flex-direction:column;gap:80px}.work__head{display:flex;flex-direction:column;gap:8px}.work__head h2{font-size:16px;line-height:24px;font-weight:700}.work__bar{height:8px;background:#e6e6e6}.period{display:flex;flex-direction:column}.period__label{display:flex;align-items:center;gap:16px;padding:16px 0;font-size:18px;line-height:24px}.period__years{font-weight:700}.period__label--first{font-size:16px}.period__badge{margin-left:auto;display:inline-flex;align-items:center;height:24px;padding:0 12px;border-radius:12px;background:#007aff;color:#fff;font-size:14px;line-height:1;font-weight:400;white-space:nowrap}.line{display:block;width:100%;height:1px}.item-wrap{position:relative}.item{display:flex;flex-direction:column;gap:8px;padding:32px 8px 32px 0;position:relative}.item__title{font-size:24px;line-height:normal;color:#000;transition:color .3s ease}.item__lock{position:absolute;right:8px;top:50%;translate:0 -50%;color:#000}.item__role{font-size:16px;line-height:24px;color:#3d3d3d}.item:hover .item__title{color:#007aff}.item--media,.item--media:hover{cursor:none}.hover-preview{position:fixed;left:0;top:0;z-index:10;pointer-events:none;will-change:transform}.hover-preview__media{width:280px;height:200px;margin:-100px 0 0 -140px;overflow:hidden;opacity:0;transform:scale(.9);transition:opacity .2s ease,transform .2s ease}.hover-preview__media.is-visible{opacity:1;transform:scale(1)}.hover-preview__media img,.hover-preview__media video{width:100%;height:100%;object-fit:cover;display:block}@media(hover:none){.hover-preview{display:none}}.brand{pointer-events:none}.brand__back{position:fixed;left:var(--margin);top:calc(100vh - var(--margin) - 60px);width:60px;height:60px;border-radius:50%;z-index:5;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease,scale .2s ease}.brand__back img{display:block;width:36px;height:36px;filter:invert(1)}.brand.is-docked .brand__back{opacity:1;pointer-events:auto}.brand.is-animated.is-docked .brand__back{transition-delay:.45s,0s}.brand__back:hover{scale:1.06}.brand__menu{position:fixed;z-index:5;left:0;top:0;width:60px;height:60px;border:0;padding:0;border-radius:50%;background:transparent;color:#fff;will-change:transform;display:none;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease,background-color .2s ease}.brand__menu span{display:block;width:24px;height:2px;border-radius:1px;background:currentColor;transition:transform .3s ease}.brand.is-menu-open .brand__menu span:first-child{transform:translateY(4px) rotate(45deg)}.brand.is-menu-open .brand__menu span:last-child{transform:translateY(-4px) rotate(-45deg)}.brand__menu:focus-visible{outline:2px solid #007aff;outline-offset:4px}.brand__back:focus-visible{outline:2px solid #007aff;outline-offset:4px}@media(prefers-reduced-motion:reduce){.brand.is-animated.is-docked .brand__back{transition-delay:0s}}.brand__letter,.brand__dot{position:fixed;z-index:5;display:block;max-width:none;pointer-events:none}.brand.is-stacked .brand__letter,.brand__dot.is-flow{position:absolute}.brand__dot{left:0;top:0;border-radius:50%;will-change:transform;background:linear-gradient(180deg,#ffffff0d,#fff0 45%),#007aff}.brand.is-animated .brand__letter{transition:opacity .3s ease}@media(prefers-reduced-motion:reduce){.brand.is-animated .brand__letter{transition:none}}.project__content{grid-column:3 / span 6}.project__title{margin-top:0;font-size:32px;line-height:32px;font-weight:400}.project__cover{position:relative;margin-top:48px;aspect-ratio:930 / 517;overflow:hidden;background:var(--border)}.project__cover-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:16px;line-height:24px;color:var(--muted)}.project__cover-placeholder span{font-size:12px;line-height:16px;padding:4px 8px;border-radius:12px;background:var(--white);color:var(--ink)}.project__cover img{position:absolute;left:0;top:-37.33%;width:100%;height:179.88%;max-width:none}.case__meta{margin-top:32px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--gap)}.case__meta dt{font-size:16px;line-height:24px;color:var(--muted)}.case__meta dd{margin-top:8px;font-size:16px;line-height:24px}.case__section{margin-top:96px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));column-gap:var(--gap)}.case__label{grid-column:1 / span 2;font-size:16px;line-height:24px;font-weight:700}.case__body{grid-column:3 / span 4;font-size:20px;line-height:32px;color:#181818;display:flex;flex-direction:column;gap:24px}.case__list{list-style:none;display:flex;flex-direction:column;gap:8px}.case__list li{padding-left:24px;position:relative}.case__list li:before{content:"";position:absolute;left:0;top:12px;width:8px;height:8px;border-radius:50%;background:#d9d9d9}.case__wide{margin-top:96px}.case__wide .case__label{margin-bottom:32px}.flow{display:block;width:100%;height:auto;font-family:inherit}.flow__lane{font-size:12px;fill:var(--muted)}.flow__num{font-size:14px;font-weight:700}.flow__label{font-size:12px;fill:var(--ink)}.flow-list{display:none;list-style:none;flex-direction:column;gap:16px;font-size:16px;line-height:24px}.flow-list li{display:flex;gap:16px;align-items:flex-start}.flow-list__num{flex:none;width:24px;height:24px;border-radius:50%;background:#007aff;color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.flow-list__lane{display:block;color:var(--muted);font-size:13px;line-height:16px}.media-grid{margin-top:48px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}.media{background:var(--border);overflow:hidden;position:relative}.media--2{grid-column:1 / -1}.media img{width:100%;height:100%;object-fit:cover;display:block}.media__placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:16px;line-height:24px;color:var(--muted)}.media__placeholder span{font-size:12px;line-height:16px;padding:4px 8px;border-radius:12px;background:var(--white);color:var(--ink)}.outcomes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}.outcome{display:flex;flex-direction:column;gap:8px}.outcome__value{font-size:120px;line-height:120px;font-weight:400;letter-spacing:-4px;color:#007aff}.outcome__label{font-size:20px;line-height:24px;color:var(--ink)}.outcome__detail{font-size:16px;line-height:24px;color:#3d3d3d}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes slide-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:none}}.reveal{animation:rise .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i, 0) * 80ms + .1s)}.reveal--left{animation-name:slide-in}.is-leaving .reveal{animation:none;opacity:0;transform:translateY(-8px);transition:opacity .3s ease,transform .3s ease;transition-delay:calc(var(--i, 0) * 40ms)}.is-leaving .reveal--left{transform:translate(-16px)}.is-leaving{pointer-events:none}@media(prefers-reduced-motion:reduce){.reveal{animation:none}.is-leaving .reveal{transition:none}}@media(max-width:1024px){:root{--margin: 48px}}@media(max-width:768px){:root{--margin: 24px;--top: 24px}.home{display:flex;flex-direction:column}.home__left{position:static;width:auto;height:auto;gap:48px}.big-b-slot{flex:none;width:min(453px,100%);aspect-ratio:453 / 422.869;margin-top:0}.work{order:2;margin-top:64px}.project__content{grid-column:1 / -1}.project__title{margin-top:56px}.bio,.work__head h2,.period__label--first,.item__role,.case__meta dt,.case__meta dd,.case__label,.flow-list,.outcome__detail,.media__placeholder,.project__cover-placeholder,.toast{font-size:18px;line-height:28px}.brand__menu{display:flex}.brand.is-menu-docked .brand__menu{opacity:1;pointer-events:auto}.brand.is-menu-open .brand__menu{z-index:60;background:#007aff}.dot-is-menu .menu-btn{visibility:hidden}.site-name{position:absolute;z-index:7}.menu-btn{position:absolute;z-index:60;top:calc(var(--top) - 8px);right:calc(var(--margin) - 8px);width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:0;border:0;background:none;color:var(--ink);cursor:pointer}.menu-btn span{display:block;width:24px;height:2px;border-radius:1px;background:currentColor;transition:transform .3s ease,background-color .3s ease}.menu-btn.is-open{color:#fff}.menu-btn.is-open span:first-child{transform:translateY(4px) rotate(45deg)}.menu-btn.is-open span:last-child{transform:translateY(-4px) rotate(-45deg)}.menu-backdrop{display:block;position:fixed;inset:0;z-index:55;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .25s ease}.menu-backdrop.is-open{opacity:1;pointer-events:auto}.home__links{position:fixed;z-index:58;top:calc(var(--top) + 96px);left:var(--margin);right:var(--margin);margin:0;order:0;justify-self:stretch;align-self:auto;flex-direction:column;align-items:stretch;gap:0;padding:8px 24px;background:var(--white);border-radius:24px;font-size:20px;line-height:32px;box-shadow:0 16px 64px #00000040;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s ease,transform .25s ease,visibility 0s linear .25s}.home__links.is-open{opacity:1;visibility:visible;transform:none;transition-delay:0s}.home__links .dot{display:none}.home__link-wrap{display:block;padding:16px 0;border-bottom:1px solid var(--border);animation:none;opacity:1}.home__link-wrap:last-child{border-bottom:0}.home__link-wrap a,.link-btn{display:block;width:100%;text-align:left}}@media(max-width:640px){:root{--margin: 24px;--top: 24px}.page{padding-bottom:48px}.work{gap:48px}.item__title{font-size:20px}.project{display:block}.project__title{margin-top:56px;font-size:24px;line-height:32px}.case__meta{grid-template-columns:1fr;row-gap:16px}.case__section{display:block;margin-top:64px}.case__label{margin-bottom:16px}.case__body{font-size:18px;line-height:28px}.media-grid{grid-template-columns:1fr}.case__wide{margin-top:64px}.flow{display:none}.flow-list{display:flex}.outcomes{grid-template-columns:1fr}.outcome__value{font-size:96px;line-height:96px}}@keyframes gate-in{0%{opacity:0}to{opacity:1}}@keyframes gate-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes shake{0%,to{translate:0}15%{translate:-12px}30%{translate:10px}45%{translate:-8px}60%{translate:6px}75%{translate:-3px}}.gate{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:gate-in .2s ease both}.gate__box{display:flex;align-items:center;gap:16px;width:min(640px,100%);padding:16px 16px 16px 24px;background:var(--white);border:1px solid transparent;border-radius:24px;color:var(--muted);box-shadow:0 16px 64px #00000040;animation:gate-pop .25s cubic-bezier(.2,.7,.2,1) both;transition:border-color .2s ease,color .2s ease}.gate__box:focus-within{color:var(--ink)}.gate__lock{flex:none}.gate__input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:20px;line-height:32px;color:var(--ink)}.gate__input::placeholder{color:var(--muted)}.gate__submit{flex:none;width:40px;height:40px;border:0;border-radius:50%;background:#007aff;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease,opacity .2s ease}.gate__submit:disabled{background:var(--border);color:var(--muted);cursor:default}.gate__box.is-error{border-color:#ff3b30;color:#ff3b30;animation:gate-pop .25s both,shake .45s ease .05s}.gate__box.is-error .gate__input,.gate__box.is-error .gate__input::placeholder{color:#ff3b30}@keyframes check-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes check-pop{0%{transform:scale(.8)}60%{transform:scale(1.12)}to{transform:scale(1)}}.gate__box.is-success{border-color:#34c759;color:#34c759}.gate__box.is-success .gate__submit,.gate__box.is-success .gate__submit:disabled{background:#34c759;color:#fff;opacity:1;animation:check-pop .4s ease both}.gate__check path{stroke-dasharray:1;stroke-dashoffset:1;animation:check-draw .4s ease .15s forwards}@media(prefers-reduced-motion:reduce){.gate__box.is-error,.gate__box.is-success .gate__submit{animation:none}.gate__check path{animation:none;stroke-dashoffset:0}}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@keyframes toast-check{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.toast{position:absolute;z-index:50;top:calc(100% + 16px);right:0;width:max-content;pointer-events:none;display:flex;align-items:center;gap:12px;padding:12px 20px 12px 16px;border-radius:16px;background:#111;color:#fff;font-size:16px;line-height:24px;box-shadow:0 8px 32px #00000040;animation:toast-in .3s cubic-bezier(.2,.7,.2,1) both}.toast__check{flex:none;color:#34c759}.toast__check path{stroke-dasharray:1;stroke-dashoffset:1;animation:toast-check .4s ease .15s forwards}.toast__detail{display:block;font-size:14px;line-height:16px;color:#fff9}.toast--error{background:#ff3b30}@media(prefers-reduced-motion:reduce){.toast{animation:none}.toast__check path{animation:none;stroke-dashoffset:0}}
