:root{--bg: #f7f7f7;--text: #0e0e0e;--muted: #9b9b9b;--border: #dcdcdc;--space-sm: 16px;--space-md: 24px;--space-lg: 56px;--max-width: 1120px;--white: #ffffff;--gray100: #f5f5f5;--gray200: #e5e5e5;--gray300: #d4d4d4;--gray400: #a3a3a3;--gray500: #525252;--gray600: #222222}.transition-clip{position:relative;isolation:isolate}body.is-overlay-open{overflow:hidden}[data-scrub-target]{will-change:transform,opacity}[data-swup-animation=clip]{transition:opacity .45s ease}html.is-swup-leaving [data-swup-animation=clip]{opacity:0}html.is-swup-entering [data-swup-animation=clip]{opacity:1}@media (min-width: 768px){.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}}*{font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"palt" 1;text-rendering:optimizeLegibility}.bold{font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@font-face{font-family:PP Neue Montreal;src:url(/fonts/PPNeueMontreal-Medium.woff) format("woff");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/fonts/PPNeueMontreal-Bold.woff) format("woff");font-weight:600;font-style:normal;font-display:swap}body{font-family:PP Neue Montreal,Noto Sans JP,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:.02em;line-height:1.5;font-size:15px}@media only screen and (max-width: 767px){body{font-size:13px}}.section-title{font-size:clamp(1.25rem,2vw,1.5rem);text-transform:uppercase;letter-spacing:.08em}.section-eyebrow{font-size:.85rem;color:var(--muted);text-transform:uppercase}.hero-text h1{font-size:clamp(2rem,5vw,3.75rem);line-height:1.1}.hero-text p{margin-top:var(--space-md);max-width:420px;color:var(--muted)}body{background:var(--bg);color:var(--text);min-height:100vh}body.is-transitioning{cursor:progress}.page-projects{background:var(--gray100);min-height:100vh}.projects-section{padding:92px 32px 80px}.projects-section .container{max-width:var(--max-width);margin:0 auto}@media only screen and (max-width: 991px){.projects-section .container{width:calc(100% - 48px);max-width:none}}@media only screen and (max-width: 767px){.projects-section .container{width:calc(100% - 48px);-webkit-overflow-scrolling:touch}}.projects-section .section-header{margin-bottom:80px}.projects-section .section-header h1{font-size:clamp(2rem,4vw,3rem);font-weight:600;line-height:1.2;letter-spacing:0;color:var(--gray500);margin-bottom:24px}.projects-section .section-header .section-description{font-size:15px;color:var(--gray400);font-weight:500;line-height:1.8;letter-spacing:0}.projects-section .projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:40px}@media only screen and (min-width: 768px){.projects-section .projects-grid{grid-template-columns:repeat(2,1fr);gap:60px}}@media only screen and (min-width: 1025px){.projects-section .projects-grid{grid-template-columns:repeat(3,1fr)}}@media only screen and (max-width: 767px){.projects-section .projects-grid{grid-template-columns:1fr;gap:32px}}.projects-section .project-item{position:relative;transition:transform .3s cubic-bezier(.79,.14,.15,.86)}@media only screen and (min-width: 1025px){.projects-section .project-item:hover{transform:translateY(-4px)}}@media only screen and (max-width: 767px){.projects-section .project-item{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.projects-section .project-item:active{transform:scale(.99)}}.projects-section .project-link{display:block;text-decoration:none;color:inherit;position:relative;overflow:hidden}.projects-section .project-image{width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--gray200);border-radius:2px;margin-bottom:20px;position:relative}@media only screen and (max-width: 767px){.projects-section .project-image{border-radius:8px;margin-bottom:16px}}.projects-section .project-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.79,.14,.15,.86)}@media only screen and (min-width: 1025px){.project-link:hover .projects-section .project-image img{transform:scale(1.05)}}.projects-section .project-info .project-year{font-size:12px;color:var(--gray400);text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:8px}.projects-section .project-info .project-title{font-size:20px;font-weight:600;line-height:1.3;letter-spacing:0;color:var(--gray500);margin-bottom:8px}@media only screen and (max-width: 767px){.projects-section .project-info .project-title{font-size:clamp(18px,4vw,22px);margin-bottom:10px}}.projects-section .project-info .project-category{font-size:13px;color:var(--gray400);font-weight:500;letter-spacing:.05em;margin-bottom:12px}.projects-section .project-info .project-summary{font-size:14px;color:var(--gray400);line-height:1.6;letter-spacing:0;font-weight:400}.projects-section .project-arrow{position:absolute;top:20px;right:20px;width:40px;height:40px;background:#ffffffe6;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(-10px);transition:all .3s cubic-bezier(.79,.14,.15,.86);pointer-events:none}.projects-section .project-arrow svg{width:16px;height:16px;fill:var(--gray500)}.project-link:hover .projects-section .project-arrow{opacity:1;transform:translateY(0)}.page-project-detail{border-top:1px solid var(--gray200);margin-top:40px;padding-top:80px}@media only screen and (max-width: 991px){.page-project-detail{padding-top:60px}}@media only screen and (max-width: 767px){.page-project-detail{padding-top:40px;margin-top:20px}}.page-project-detail .project-detail-desktop{display:block}@media only screen and (max-width: 1024px){.page-project-detail .project-detail-desktop{display:none!important}}.page-project-detail .project-detail-mobile{display:none!important}@media only screen and (max-width: 1024px){.page-project-detail .project-detail-mobile{display:block!important}}.page-project-detail .project-detail{padding:0 0 80px;width:calc(100% - 80px);max-width:1600px;margin:0 auto;display:flex;flex-direction:row;gap:60px;align-items:flex-start}@media only screen and (max-width: 991px){.page-project-detail .project-detail{width:calc(100% - 48px);flex-direction:column;gap:40px;padding:0 0 60px}}@media only screen and (max-width: 767px){.page-project-detail .project-detail{width:calc(100% - 48px);gap:40px;padding:0 0 40px;-webkit-overflow-scrolling:touch}}.page-project-detail .project-detail .project-text{position:sticky;top:100px;padding:0;width:500px;min-width:500px;height:fit-content;margin:0;flex-shrink:0}@media only screen and (max-width: 991px){.page-project-detail .project-detail .project-text{position:static;width:100%;min-width:auto}}.page-project-detail .project-detail .project-images{flex:1;min-width:0;margin-left:0}@media only screen and (max-width: 991px){.page-project-detail .project-detail .project-images{width:100%;order:-1}}.page-project-detail .project-detail .project-detail-header{margin-bottom:0}.page-project-detail .project-detail .project-detail-header .section-eyebrow{font-size:13px;color:var(--gray400);text-transform:none;letter-spacing:.08em;margin-bottom:8px}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-detail-header .section-eyebrow{font-size:11px}}.page-project-detail .project-detail .project-detail-header h1{font-size:clamp(1.8rem,4vw,2rem);font-weight:600;line-height:1.2;letter-spacing:0;color:var(--gray500);margin-bottom:24px}@media only screen and (max-width: 991px){.page-project-detail .project-detail .project-detail-header h1{margin-bottom:20px}}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-detail-header h1{margin-bottom:16px}}.page-project-detail .project-detail .project-detail-header .project-role{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-detail-header .project-role{gap:8px;margin-bottom:20px}}.page-project-detail .project-detail .project-detail-header .project-role span{font-size:13px;color:var(--gray400);text-transform:none;letter-spacing:.08em;padding:6px 12px;background:var(--gray200);border-radius:2px}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-detail-header .project-role span{font-size:11px;padding:4px 10px}}.page-project-detail .project-detail .project-info{margin-bottom:60px;display:flex;flex-direction:column;gap:16px}@media only screen and (max-width: 991px){.page-project-detail .project-detail .project-info{margin-bottom:40px}}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-info{margin-bottom:32px;gap:12px}}.page-project-detail .project-detail .project-info .project-info-item{display:flex;align-items:flex-start;gap:4px;flex-flow:column}.page-project-detail .project-detail .project-info .project-info-item .project-info-label{font-size:13px;color:var(--gray400);text-transform:none;letter-spacing:.08em;font-weight:500;min-width:100px}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-info .project-info-item .project-info-label{min-width:auto;font-size:11px}}.page-project-detail .project-detail .project-info .project-info-item .project-info-value{font-size:15px;color:var(--gray500);line-height:1.6;letter-spacing:0;display:flex;flex-direction:column;gap:0em}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-info .project-info-item .project-info-value{font-size:13px}}.page-project-detail .project-detail .project-info .project-info-item .project-info-value span{display:block}@media only screen and (max-width: 991px){.page-project-detail .project-detail .project-info .project-info-item{flex-direction:column;gap:8px}.page-project-detail .project-detail .project-info .project-info-item .project-info-label{min-width:auto}}.page-project-detail .project-detail .work-summary{font-size:18px;line-height:1.8;color:var(--gray500);font-weight:500;margin-bottom:60px;max-width:800px}@media only screen and (max-width: 991px){.page-project-detail .project-detail .work-summary{font-size:16px;margin-bottom:40px}}@media only screen and (max-width: 767px){.page-project-detail .project-detail .work-summary{font-size:16px;line-height:1.9;margin-bottom:32px}}.page-project-detail .project-detail .project-cover{width:100%;margin-bottom:24px;border-radius:2px;overflow:hidden;background:var(--gray200)}@media only screen and (max-width: 991px){.page-project-detail .project-detail .project-cover{margin-bottom:32px}}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-cover{margin-bottom:24px}}.page-project-detail .project-detail .project-cover img{width:100%;height:auto;display:block}.page-project-detail .project-detail .project-gallery{display:grid;grid-template-columns:1fr;gap:24px}@media only screen and (max-width: 991px){.page-project-detail .project-detail .project-gallery{gap:24px}}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-gallery{gap:20px}}.page-project-detail .project-detail .project-gallery figure{width:100%;border-radius:2px;overflow:hidden;background:var(--gray200)}.page-project-detail .project-detail .project-gallery figure img{width:100%;height:auto;display:block}.page-project-detail .project-detail .project-description{font-size:15px;line-height:1.8;color:var(--gray500);font-weight:400;margin-bottom:40px}@media only screen and (max-width: 767px){.page-project-detail .project-detail .project-description{font-size:13px;margin-bottom:32px}}.page-project-detail .project-detail .project-description p{margin-bottom:1.5em}.page-project-detail .project-detail .project-description p:last-child{margin-bottom:0}.page-project-detail .project-next .project-next-link{display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:inherit;transition:opacity .3s ease;padding:80px 32px;border-top:1px solid rgba(0,0,0,.1);margin-top:80px;position:relative;background:#fff}.page-project-detail .project-next .project-next-link:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;z-index:1;mix-blend-mode:difference;transition:all .3s cubic-bezier(.79,.14,.15,.86);transform:scaleY(0);transform-origin:bottom}@media only screen and (min-width: 1025px){.page-project-detail .project-next .project-next-link:hover:before{transform:scaleY(1)}}.page-project-detail .project-next .project-next-link .project-next-content{flex:1}.page-project-detail .project-next .project-next-link .project-next-label{font-size:12px;color:var(--gray400);text-transform:none;letter-spacing:.08em;margin-bottom:12px;font-weight:600}@media only screen and (max-width: 767px){.page-project-detail .project-next .project-next-link .project-next-label{font-size:11px}}.page-project-detail .project-next .project-next-link .project-next-title{font-size:clamp(1.5rem,3vw,2rem);font-weight:600;line-height:1.2;letter-spacing:0;color:var(--gray500)}.page-project-detail .project-next .project-next-link .project-next-arrow{width:24px;height:24px;margin-left:32px;flex-shrink:0}.page-project-detail .project-next .project-next-link .project-next-arrow img{width:100%;height:100%;display:block}@media only screen and (max-width: 991px){.page-project-detail .project-next{padding:60px 0 0;width:100%;margin-left:0;margin-right:0}.page-project-detail .project-next .project-next-link{padding-left:24px;padding-right:24px;padding-bottom:60px}}@media only screen and (max-width: 767px){.page-project-detail .project-next{padding:60px 0 0;margin-top:60px;width:100%;margin-left:0;margin-right:0}.page-project-detail .project-next .project-next-link{flex-direction:column;align-items:flex-start;gap:20px;padding-left:24px;padding-right:24px;padding-bottom:60px}.page-project-detail .project-next .project-next-link .project-next-arrow{margin-left:0}}.page-project-detail .project-detail-mobile{width:100%;padding:0;margin:0;position:relative}.page-project-detail .project-detail-mobile .project-images-mobile{width:100%;padding-bottom:90px;position:relative;margin-top:50vh}.page-project-detail .project-detail-mobile .project-images-mobile .project-cover{width:100%;margin-bottom:60px;border-radius:0;overflow:hidden;background:var(--gray200);transform-origin:center center;will-change:transform}.page-project-detail .project-detail-mobile .project-images-mobile .project-cover img{width:100%;height:auto;display:block}.page-project-detail .project-detail-mobile .project-images-mobile .project-gallery{display:flex;flex-direction:column;gap:60px;margin:0}.page-project-detail .project-detail-mobile .project-images-mobile .project-gallery figure{width:100%;border-radius:0;overflow:hidden;background:var(--gray200);margin:0;top:0;transform-origin:center center;will-change:transform}.page-project-detail .project-detail-mobile .project-images-mobile .project-gallery figure img{width:100%;height:auto;display:block}.page-project-detail .project-detail-mobile .project-detail-mobile-bar{position:fixed;bottom:0;left:0;right:0;background:#fffffff2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--gray200);border-radius:24px 24px 0 0;padding:28px 0 0;display:flex;align-items:center;justify-content:center;gap:12px;z-index:100;pointer-events:auto!important;-webkit-tap-highlight-color:transparent;transform:translateY(100%);opacity:0;animation:slideUpBar .6s cubic-bezier(.32,.72,0,1) .3s forwards;cursor:pointer;touch-action:manipulation}.page-project-detail .project-detail-mobile .project-detail-mobile-bar .project-detail-mobile-bar-content{flex:1;min-width:0;padding:0 24px 28px}.page-project-detail .project-detail-mobile .project-detail-mobile-bar .project-detail-mobile-bar-content .project-detail-mobile-date{font-size:11px;color:var(--gray400);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-weight:500}.page-project-detail .project-detail-mobile .project-detail-mobile-bar .project-detail-mobile-bar-content .project-detail-mobile-title{font-size:15px;font-weight:600;line-height:1.3;letter-spacing:0;color:var(--gray500);margin:0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.page-project-detail .project-detail-mobile .project-detail-mobile-toggle{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border:none;background:var(--gray500);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:250!important;pointer-events:auto!important;transition:all .3s ease;-webkit-tap-highlight-color:transparent;touch-action:manipulation;box-shadow:0 4px 16px #00000026;transform:translateY(100px);opacity:0;animation:slideUpButton .6s cubic-bezier(.32,.72,0,1) .4s forwards}@media only screen and (max-width: 767px){.page-project-detail .project-detail-mobile .project-detail-mobile-toggle{width:40px;height:40px}}.page-project-detail .project-detail-mobile .project-detail-mobile-toggle svg{width:24px;height:24px;color:var(--white);transition:transform .3s ease}@media only screen and (max-width: 767px){.page-project-detail .project-detail-mobile .project-detail-mobile-toggle svg{width:20px;height:20px;opacity:.8}}.page-project-detail .project-detail-mobile .project-detail-mobile-toggle:active{transform:translateY(0) scale(.95)}.page-project-detail .project-detail-mobile .project-detail-mobile-toggle.is-open{opacity:1!important;visibility:visible!important}.page-project-detail .project-detail-mobile .project-detail-mobile-toggle.is-open svg{transform:rotate(180deg)}@keyframes slideUpButton{to{transform:translateY(0);opacity:1}}.page-project-detail .project-detail-mobile .project-detail-mobile-progress{position:fixed;right:24px;top:50%;transform:translateY(-50%);z-index:120;display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--gray400);opacity:0;animation:fadeInProgress .6s ease .5s forwards;pointer-events:none}.page-project-detail .project-detail-mobile .project-detail-mobile-progress .project-detail-mobile-progress-current{color:var(--gray500)}.page-project-detail .project-detail-mobile .project-detail-mobile-progress .project-detail-mobile-progress-separator{color:var(--gray300)}.page-project-detail .project-detail-mobile .project-detail-mobile-progress .project-detail-mobile-progress-total{color:var(--gray400)}@keyframes fadeInProgress{to{opacity:1}}.page-project-detail .project-detail-mobile .project-detail-mobile-modal{position:fixed;inset:0;z-index:200;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.page-project-detail .project-detail-mobile .project-detail-mobile-modal.is-open{opacity:1;visibility:visible}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-backdrop{position:absolute;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-content{position:absolute;bottom:0;left:0;right:0;background:var(--white);border-radius:24px 24px 0 0;max-height:70vh;overflow:hidden;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .4s cubic-bezier(.32,.72,0,1)}.page-project-detail .project-detail-mobile .project-detail-mobile-modal.is-open .project-detail-mobile-modal-content{transform:translateY(0)}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner{padding:40px 24px 32px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .section-eyebrow{font-size:13px;color:var(--gray400);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-weight:500}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner h1{font-size:clamp(1.5rem,5vw,1.8rem);font-weight:600;line-height:1.2;letter-spacing:0;color:var(--gray500);margin-bottom:24px}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .project-description{font-size:15px;line-height:1.8;color:var(--gray500);font-weight:400;margin-bottom:32px}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .project-description p{margin-bottom:1.5em}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .project-description p:last-child{margin-bottom:0}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .project-info{margin-bottom:0;display:flex;flex-direction:column;gap:16px}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .project-info .project-info-item{display:flex;align-items:flex-start;gap:8px;flex-flow:column}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .project-info .project-info-item .project-info-label{font-size:13px;color:var(--gray400);text-transform:uppercase;letter-spacing:.08em;font-weight:500;min-width:auto}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .project-info .project-info-item .project-info-value{font-size:15px;color:var(--gray500);line-height:1.6;letter-spacing:0;display:flex;flex-direction:column;gap:0em}.page-project-detail .project-detail-mobile .project-detail-mobile-modal .project-detail-mobile-modal-inner .project-info .project-info-item .project-info-value span{display:block}@keyframes slideUpBar{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
