:root{--green:#304c24;--serif:'Noto Serif JP','Yu Mincho',serif;--sans:'Noto Sans JP',sans-serif;--english:'Playfair Display',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:white;color:#222;font:14px var(--sans)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2,h3,p{margin:0}a:focus-visible,button:focus-visible{outline:3px solid #ad843d;outline-offset:5px}.site-header{position:absolute;z-index:30;left:40px;right:40px;top:20px;display:flex;justify-content:space-between;align-items:flex-start}.logo{display:block;width:290px;height:75px}.logo img{object-fit:contain;object-position:left top}.header-right{display:flex;align-items:center;gap:25px}.version-link{font:10px var(--sans);border-bottom:1px solid;padding-bottom:4px;letter-spacing:.1em}.menu-button{width:58px;height:58px;background:var(--green);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.menu-button>span{width:22px;height:1px;background:white}.menu-button small{font-size:8px;letter-spacing:.1em;margin-top:3px}.menu-panel{position:fixed;inset:0;z-index:29;background:#eff2eb;padding:140px 9vw 60px;overflow:auto}.menu-panel>a{display:flex;justify-content:space-between;font-size:38px;padding:23px 0;border-bottom:1px solid #c7cec0;max-width:1100px}.menu-panel>a span{font:14px var(--english);align-self:center}.menu-versions{display:flex;gap:25px;margin-top:30px;font-size:12px}.skip-link{position:fixed;top:-100px;z-index:100;background:white;padding:15px}.skip-link:focus{top:0}.eyebrow,.section-number{font:10px/1.8 var(--sans);letter-spacing:.16em}.image-wrap{overflow:hidden;position:relative}.image-wrap img,.pair-image img{transition:transform .5s}.work-card:hover img,.b-pair>a:hover img{transform:scale(1.04)}.image-arrow{position:absolute;right:0;bottom:0;background:white;padding:10px 15px;font:20px var(--sans)}.text-link{display:flex;justify-content:space-between;border-bottom:1px solid #999;padding:20px 0;font:12px var(--sans);gap:20px}.contact-section{padding:100px max(7vw,calc((100vw - 1040px)/2));background:#f3f5ef;text-align:center}.contact-section h2{font:400 30px/1.8 var(--serif);margin:20px 0 45px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.contact-grid button{min-height:160px;border:1px solid var(--green);padding:35px 40px;background:transparent;font:20px var(--serif);display:flex;align-items:center;justify-content:space-between;text-align:left}.contact-grid button:hover{background:var(--green);color:white}.contact-grid small{display:block;font:10px var(--sans);letter-spacing:.15em;margin-bottom:15px}.contact-grid b{font:25px var(--sans)}.contact-note{font:11px var(--sans);color:#666;margin-top:25px}footer{background:var(--green);color:white;padding:70px 7vw 25px}.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:65px}.footer-logo{font:27px var(--sans);letter-spacing:.06em}.footer-logo b{font-size:36px;font-weight:400}.footer-top>p{font:17px/2 var(--serif)}.footer-top small{font:11px var(--sans)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff40;padding-top:25px;font:9px var(--sans)}dialog{border:0;background:#f3f5ef;padding:60px;max-width:600px;width:calc(100% - 40px);color:#222}dialog::backdrop{background:#192210b8;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:12px;top:8px;font-size:30px;background:none;padding:10px}dialog h2{font:400 28px/1.7 var(--serif);margin:20px 0}dialog>p:not(.eyebrow){font:13px/2 var(--sans)}.prototype-message{margin-top:30px;background:white;padding:20px;font:12px/1.9 var(--sans)}.dialog-done{margin-top:25px;border-bottom:1px solid #888;display:flex;justify-content:space-between;width:100%;padding:18px 0;background:none;font-size:12px}.modal-open{overflow:hidden}@media(max-width:750px){.site-header{left:20px;right:20px;top:20px}.logo{width:210px;height:55px}.header-right{gap:12px}.version-link{font-size:8px}.menu-button{width:47px;height:47px}.menu-panel{padding:115px 25px 35px}.menu-panel>a{font-size:23px}.menu-panel>a span{font-size:10px}.menu-versions{flex-wrap:wrap;gap:20px}.contact-section{padding:65px 24px}.contact-section h2{font-size:23px}.contact-grid{grid-template-columns:1fr;gap:15px}.contact-grid button{min-height:115px;padding:25px;font-size:18px}.contact-note{line-height:1.8}.footer-top{display:block;padding-bottom:35px}.footer-logo{font-size:23px}.footer-top>p{margin-top:25px;font-size:15px}.footer-bottom{flex-direction:column;gap:15px}footer{padding:50px 25px 25px}dialog{padding:45px 25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

@media(max-width:370px){.site-header .logo,.design-a .site-header .logo,.design-b .site-header .logo{width:190px;height:52px}.site-header .version-link{display:none}}
/* Right-hand navigation drawer. */
.menu-backdrop{position:fixed;inset:0;z-index:39;width:100%;height:100%;padding:0;background:rgb(18 28 13 / 28%);opacity:0;transition:opacity .3s;cursor:pointer}.menu-backdrop.is-open{opacity:1}.menu-backdrop[hidden]{display:none}.menu-panel{inset:0 0 0 auto;width:min(560px,92vw);height:100dvh;z-index:40;background:rgb(242 246 236 / 95%);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transform:translateX(100%);opacity:0;transition:transform .3s ease,opacity .3s ease;overscroll-behavior:contain;overflow:auto}.menu-panel.is-open{transform:translateX(0);opacity:1}.modal-open .site-header{z-index:42;pointer-events:none}.modal-open .site-header .logo{visibility:hidden}.modal-open .site-header .menu-button{pointer-events:auto}.menu-button[aria-expanded=true]>span:first-child{transform:translateY(3px) rotate(45deg)}.menu-button[aria-expanded=true]>span:nth-child(2){transform:translateY(-3px) rotate(-45deg)}
.footer-logo{display:block;width:290px;max-width:100%;height:auto}.footer-logo img{width:100%;height:auto;object-fit:contain;filter:brightness(0) invert(1)}@media(max-width:750px){.footer-logo{width:230px}}
/* One quiet, persistent consultation entrance. */
.header-consult-cta{display:flex;align-items:center;justify-content:space-between;gap:26px;min-height:48px;padding:0 20px;border:1px solid #304c24;background:#304c24;color:#fff;font:12px var(--sans);letter-spacing:.05em}.header-consult-cta:hover{background:#223b18}.mobile-consult-cta{display:none}.modal-open .header-consult-cta,.modal-open .mobile-consult-cta,.is-form-input .header-consult-cta,.is-form-input .mobile-consult-cta,.contact-page .header-consult-cta,.contact-page .mobile-consult-cta{visibility:hidden;pointer-events:none}.contact-page .header-consult-cta,.contact-page .mobile-consult-cta{display:none}@media(max-width:750px){.header-consult-cta{display:none}.has-consult-cta{padding-bottom:calc(52px + env(safe-area-inset-bottom,0px));scroll-padding-bottom:calc(68px + env(safe-area-inset-bottom,0px))}.has-consult-cta main,.has-consult-cta footer{scroll-margin-bottom:calc(68px + env(safe-area-inset-bottom,0px))}.mobile-consult-cta{position:fixed;z-index:30;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;min-height:calc(52px + env(safe-area-inset-bottom,0px));padding:16px 25px calc(16px + env(safe-area-inset-bottom,0px));background:#304c24;color:#fff;border-top:1px solid #ffffff35;font:12px/20px var(--sans);letter-spacing:.08em}.contact-page{padding-bottom:0}.has-consult-cta :where(a,button,input,textarea,select,summary){scroll-margin-bottom:calc(68px + env(safe-area-inset-bottom,0px))}.design-a.has-consult-cta .side-contact{display:none}}
@media(min-width:751px){.header-consult-cta{position:fixed;top:25px;right:123px;z-index:31}}
/* Keep shared navigation comfortable to read and tap at narrow widths. */
summary:focus-visible{outline:3px solid #ad843d;outline-offset:5px}
footer .footer-nav>a{display:flex;align-items:center;min-height:44px}
.footer-bottom>a{display:inline-flex;align-items:center;min-height:44px;align-self:flex-start;font-size:12px}
@media(max-width:750px){
  /* Include the bar's border in the space reserved below the footer. */
  .has-consult-cta:not(.contact-page){padding-bottom:calc(54px + env(safe-area-inset-bottom,0px))}
  .mobile-consult-cta{min-height:calc(54px + env(safe-area-inset-bottom,0px))}
  .menu-panel#main-menu{padding-bottom:calc(30px + env(safe-area-inset-bottom,0px));scroll-padding-bottom:calc(30px + env(safe-area-inset-bottom,0px))}
  footer .footer-nav{font-size:12px;gap:8px 20px}
  .menu-panel .menu-page-grid>a{flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
  .menu-panel .menu-page-grid>a>span{font-size:10px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
}
