.architecture{--paper:#fff;--ink:#262626;--accent:#262626;--line:#e3e3e3;--wash:#f6f6f6;--muted:#707070;background:#fff;font-family:'DM Sans','Noto Sans JP',sans-serif}
.architecture .site-header{position:relative;height:100px;padding:0 4%;background:#fff;color:#252525;z-index:40;border:0}
.architecture-home .site-header{position:absolute;inset:0 0 auto;background:linear-gradient(#0007,transparent);color:#fff}
.architecture .brand-en{font-family:'DM Sans',sans-serif;font-size:32px;font-weight:400;letter-spacing:.14em;line-height:1}
.architecture .logo small{font-size:10px;letter-spacing:.12em;margin-top:9px;color:inherit}
.architecture .menu-toggle{display:block;width:58px;height:54px;background:none;color:inherit;font-size:10px;letter-spacing:.07em;padding:0;border:0;position:relative;z-index:42;padding-top:28px}
.architecture .menu-toggle:before,.architecture .menu-toggle:after{content:'';position:absolute;left:12px;width:34px;height:2px;background:currentColor;top:12px;transition:transform .2s}
.architecture .menu-toggle:after{top:22px}
.architecture .menu-toggle[aria-expanded=true]:before{transform:translateY(5px) rotate(45deg)}
.architecture .menu-toggle[aria-expanded=true]:after{transform:translateY(-5px) rotate(-45deg)}
.architecture .site-header:has([aria-expanded=true]){background:#252525;color:#fff}
.architecture .nav{display:none;position:absolute;top:100px;right:0;left:auto;bottom:auto;width:min(500px,100%);max-height:calc(100svh - 100px);overflow:auto;background:#252525;color:#fff;padding:30px 55px 40px;box-shadow:0 25px 35px #0002;z-index:41}
.architecture .nav[data-open=true]{display:flex;flex-direction:column;gap:0;align-items:stretch}
.architecture .nav>a{display:flex;align-items:baseline;justify-content:space-between;font:400 24px/1.5 'DM Sans',sans-serif;min-height:58px;padding:13px 0;border-bottom:1px solid #ffffff25;gap:20px;letter-spacing:.04em}
.architecture .nav>a small{font:400 12px/1.5 'Noto Sans JP',sans-serif;letter-spacing:.03em;color:#c7c7c7}
.architecture .nav>a:hover{color:#cbd8cc}
.ap-hero{height:100svh;min-height:560px;max-height:1200px;position:relative;background:#343d38;color:#fff;overflow:hidden}
.ap-slides,.ap-slide{position:absolute;inset:0}.ap-slide{opacity:0;transition:opacity .7s ease}.ap-slide.is-active{opacity:1}
.ap-slide img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.ap-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(#00000012,#0003 50%,#0005);pointer-events:none}
.ap-hero-title{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:100px 8%;text-align:center;text-shadow:0 2px 25px #0006;pointer-events:none}
.ap-hero-title>span{font-size:12px;letter-spacing:.3em;line-height:1.7;margin-bottom:23px}
.ap-hero-title h1{font-family:'Noto Sans JP',sans-serif;font-size:clamp(26px,2.5vw,40px);font-weight:400;line-height:1.9;letter-spacing:.22em}
.ap-mobile-break{display:none}
.ap-slide-controls{position:absolute;bottom:45px;left:4%;z-index:2;display:flex;align-items:center;gap:12px}
.ap-slide-controls button{width:44px;height:44px;border:1px solid #ffffff80;border-radius:0;background:#0001;color:#fff;font-size:23px;line-height:1;transition:background .2s}
.ap-slide-controls button:hover{background:#fff;color:#222}.ap-slide-controls span{font-size:12px;letter-spacing:.14em;padding-inline:8px}
.ap-scroll{position:absolute;right:4%;bottom:0;z-index:2;display:flex;align-items:center;gap:20px;writing-mode:vertical-rl;font-size:12px;letter-spacing:.18em}
.ap-scroll span{height:80px;width:1px;background:#ffffffa0}
.architecture .site-footer{background:#303030}.architecture .site-footer .brand-en{font-size:28px}.architecture .site-footer .logo small{font-size:10px}.architecture .footer-links{font-size:14px}
.architecture .page-intro h1{font-family:'Noto Sans JP',sans-serif;font-size:clamp(28px,3vw,44px);font-weight:400;letter-spacing:.12em}
.architecture .page-intro p{font-size:16px;line-height:2.2}.architecture .arch-detail-image{max-height:720px;object-fit:cover}.architecture .arch-detail-copy p,.architecture .split .stack>p{font-size:16px;line-height:2.25}.architecture .arch-detail-copy h2,.architecture .split h2{font-family:'Noto Sans JP',sans-serif;font-weight:400;letter-spacing:.07em}.architecture .btn{background:#292929;color:#fff}.architecture .data-list dd,.architecture .field,.architecture .filter,.architecture .text-link{font-size:14px}
@media(max-width:760px){.architecture .site-header{height:82px;padding-inline:6%}.architecture .brand-en{font-size:25px}.architecture .logo small{font-size:9px}.architecture .nav{top:82px;width:100%;max-height:calc(100svh - 82px);padding:18px 7% 28px}.architecture .nav>a{font-size:22px;min-height:57px}.ap-hero{min-height:570px;max-height:950px}.ap-hero-title{padding-inline:7%}.ap-hero-title>span{font-size:11px;letter-spacing:.21em;margin-bottom:19px}.ap-hero-title h1{font-size:27px;letter-spacing:.16em;line-height:2}.ap-mobile-break{display:block}.ap-slide img{object-position:58% center}.ap-slide-controls{left:6%;bottom:28px;gap:7px}.ap-scroll{right:7%;font-size:11px;gap:15px}.ap-scroll span{height:52px}.architecture .page-intro h1{font-size:27px}.architecture .site-footer{padding-top:55px}}
.ap-section-heading{position:relative;text-align:center;padding:95px 20px 65px;overflow:hidden}
.ap-section-heading h2{display:inline-block;font:400 clamp(30px,3vw,43px)/1.4 'DM Sans',sans-serif;letter-spacing:.12em;position:relative;margin-inline:35px}
.ap-section-heading h2:before,.ap-section-heading h2:after{content:'';position:absolute;top:0;bottom:0;width:6px;border:1px solid #555;left:-28px;border-right:0}
.ap-section-heading h2:after{left:auto;right:-28px;border-left:0;border-right:1px solid #555}
.ap-section-heading>p{font-size:13px;letter-spacing:.13em;margin-top:19px;color:#6e6e6e;position:relative}
.ap-watermark{position:absolute;top:-35px;left:0;font:400 clamp(85px,16vw,230px)/1.1 'DM Sans',sans-serif;letter-spacing:.1em;color:#111;opacity:.035;white-space:nowrap;pointer-events:none}
.ap-concept{position:relative;background:linear-gradient(#fffffff5,#fffffff5),url('/assets/architecture-interior.webp') center/cover;padding-bottom:105px}
.ap-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7%;max-width:1080px}
.ap-principles article{text-align:center}.ap-principle-number{display:inline-block;font:400 24px/1.6 'DM Sans',sans-serif;letter-spacing:.04em;border-bottom:1px solid #999;padding:0 14px 10px;margin-bottom:23px}
.ap-principles h3{font:400 25px/1.5 'DM Sans',sans-serif;letter-spacing:.03em}.ap-principles h3 small{display:block;font:400 14px/1.9 'Noto Sans JP',sans-serif;letter-spacing:.06em;margin-top:9px}
.ap-principles p{text-align:left;font-size:16px;line-height:2.1;color:#656565;margin-top:27px}
.ap-services{background:repeating-linear-gradient(90deg,transparent 0,transparent calc(25% - 1px),#f3f3f3 calc(25% - 1px),#f3f3f3 25%)}
.ap-services .ap-watermark{left:auto;right:0}.ap-service{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:0;padding-bottom:115px}
.ap-service-image{display:block;overflow:hidden}.ap-service-image img{aspect-ratio:1.3;object-fit:cover;transition:transform .8s ease}.ap-service-image:hover img{transform:scale(1.025)}
.ap-service-copy{padding:20px 13% 20px 12%;max-width:760px}.ap-service-number{display:flex;align-items:baseline;gap:22px;font-size:13px;letter-spacing:.18em;margin-bottom:35px;position:relative;padding-bottom:15px}.ap-service-number:after{content:'';position:absolute;bottom:0;left:0;width:38px;height:3px;background:#252525}.ap-service-number span{font-size:48px;line-height:1;letter-spacing:.025em}
.ap-service-copy h3{font:400 clamp(23px,2vw,31px)/1.9 'Noto Sans JP',sans-serif;letter-spacing:.075em;margin-bottom:26px}.ap-service-copy p{font-size:16px;line-height:2.1;color:#656565}.ap-service-copy p+p{margin-top:16px}
.ap-more{display:inline-flex;gap:60px;align-items:center;justify-content:space-between;min-width:230px;min-height:53px;padding:14px 20px;border:1px solid #bdbdbd;font-size:14px;line-height:1.5;margin-top:29px;transition:background .2s,color .2s}.ap-more:hover{background:#292929;color:#fff;border-color:#292929}
.ap-service-reverse .ap-service-image{grid-column:2;grid-row:1}.ap-service-reverse .ap-service-copy{grid-column:1;grid-row:1;justify-self:end}
.ap-works{padding-bottom:110px}.ap-works .ap-section-heading{padding-top:75px}.architecture #works .filters{justify-content:center;margin-bottom:42px;gap:34px}.architecture #works .filter{font-size:14px;padding:10px 0;min-height:44px}
.ap-works #project-grid{gap:40px}.ap-works .arch-project:nth-child(2){margin:0}.ap-works .arch-project img{aspect-ratio:1.4;filter:none}.ap-works .arch-project .eyebrow{font-size:12px;margin-bottom:13px}.ap-works .arch-project h3{font:400 20px/1.7 'Noto Sans JP',sans-serif;letter-spacing:.08em}.ap-works .caption-row>span{font-size:12px}.ap-works #project-count{margin-top:30px;text-align:center}
.ap-contact{background:#f5f5f5;text-align:center;padding:90px 0 95px}.ap-contact .eyebrow{font-size:14px;letter-spacing:.18em;margin-bottom:25px}.ap-contact h2{font:400 clamp(22px,2.5vw,32px)/1.8 'Noto Sans JP',sans-serif;letter-spacing:.07em}.ap-contact p{font-size:16px;line-height:2.2;color:#666;margin-top:25px}.ap-contact .ap-more{background:#fff}.ap-contact .ap-more:hover{background:#292929}
@media(max-width:1100px){.ap-service-copy{padding-inline:10%}.ap-service-copy h3{font-size:24px}.ap-service-number{margin-bottom:26px}.ap-service-image img{aspect-ratio:1;min-height:430px}.ap-principles{gap:5%}}
@media(max-width:760px){.ap-section-heading{padding:65px 7% 40px}.ap-section-heading h2{font-size:29px;letter-spacing:.09em}.ap-section-heading>p{font-size:12px;letter-spacing:.06em;margin-top:17px}.ap-watermark{top:0;font-size:20vw;letter-spacing:.05em}.ap-concept{padding-bottom:60px}.ap-principles{grid-template-columns:1fr;gap:35px}.ap-principles article{display:grid;grid-template-columns:50px 1fr;gap:0 18px;text-align:left}.ap-principle-number{grid-row:1;margin:0;align-self:start;font-size:22px;padding:0 8px 7px}.ap-principles h3{font-size:24px}.ap-principles h3 small{font-size:14px;margin-top:5px}.ap-principles p{grid-column:2;font-size:16px;margin-top:17px;line-height:2}.ap-services{background:#fff}.ap-service,.ap-service.ap-service-reverse{display:flex;flex-direction:column;padding-bottom:55px}.ap-service-image{width:100%}.ap-service-image img{aspect-ratio:1.4;min-height:0}.ap-service-copy{padding:32px 7% 0;max-width:none;width:100%}.ap-service-number{font-size:12px;gap:19px;margin-bottom:24px;padding-bottom:12px}.ap-service-number span{font-size:37px}.ap-service-copy h3{font-size:24px;line-height:1.85;margin-bottom:20px}.ap-service-copy p{font-size:16px;line-height:2}.ap-more{font-size:14px;margin-top:25px;min-width:225px;gap:40px}.ap-works{padding-bottom:65px}.ap-works .ap-section-heading{padding-top:55px}.ap-works #project-grid{grid-template-columns:1fr;gap:35px}.ap-works .caption-row{display:block}.ap-works .caption-row>span{display:block;margin-top:6px}.ap-contact{padding:60px 0}.ap-contact h2{font-size:24px;text-wrap:balance}.ap-contact p{font-size:16px}.ap-contact p br{display:none}}
@media(prefers-reduced-motion:reduce){.ap-slide,.ap-service-image img{transition:none}}
