@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Noto+Sans+JP:wght@400;500&family=Noto+Serif+JP:wght@400;500&display=swap');
:root{--paper:#f8f7f2;--ink:#303b32;--muted:#687064;--line:#d3d6cb;--sage:#e8ebdf;--accent:#7a825b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Noto Sans JP',sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;width:100%;height:100%;object-fit:cover}p{line-height:2.2}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}.serif,h1,h2,h3{font-family:'Noto Serif JP',serif}.en{font-family:'Cormorant Garamond',serif}.eyebrow{font-size:10px;letter-spacing:.16em;text-transform:uppercase}.wrap{max-width:1440px;margin:auto;padding:0 6%}.header{height:100px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:20px}.wordmark{font-family:'Cormorant Garamond',serif;font-size:48px;line-height:1;letter-spacing:-2px}.brand-note{font-size:9px;line-height:1.6;letter-spacing:.06em;border-left:1px solid var(--line);padding-left:18px}.nav{display:flex;align-items:center;gap:30px;font-size:12px}.nav a:not(.pill){position:relative}.nav a:not(.pill):after{content:'';position:absolute;bottom:-8px;left:0;right:100%;height:1px;background:var(--ink);transition:right .3s}.nav a:hover:after{right:0}.pill{display:inline-flex;align-items:center;gap:40px;border:1px solid var(--ink);border-radius:50px;padding:15px 24px;font-size:11px;transition:background .3s,color .3s}.pill:hover{background:var(--ink);color:white}.pill.dark{background:var(--ink);color:white}.pill.dark:hover{background:#536047}.arrow{font-size:20px;line-height:1;display:inline-block;transition:transform .3s}.pill:hover .arrow,.project:hover .arrow{transform:translateX(5px)}.menu{display:none;border:0;background:none;padding:12px}.hero{min-height:720px;height:calc(100svh - 100px);max-height:950px;position:relative;overflow:hidden}.hero-photo{position:absolute;inset:0 0 0 33%;}.hero-photo img{object-position:56% 50%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--paper) 5%,rgba(248,247,242,.98) 25%,rgba(248,247,242,.72) 39%,rgba(248,247,242,0) 59%);pointer-events:none}.hero-copy{position:relative;z-index:1;padding:75px 0 75px 7%;width:62%;}.hero-kicker{display:flex;align-items:center;gap:14px;margin-bottom:46px}.hero-kicker:before{content:'';width:30px;height:1px;background:var(--accent)}h1{font-size:clamp(38px,4vw,65px);line-height:1.65;letter-spacing:.09em;margin-bottom:26px}.hero-copy p{font-size:13px;line-height:2.2;letter-spacing:.06em;margin-bottom:34px}.hero-english{position:absolute;right:5%;bottom:72px;z-index:2;font-size:31px;font-style:italic;color:white;text-align:right;line-height:1.2;text-shadow:0 1px 15px #343d2b}.hero-bottom{position:absolute;bottom:24px;left:7%;right:5%;z-index:2;display:flex;justify-content:space-between;font-size:9px;letter-spacing:.13em}.hero-bottom span:last-child{color:#fff}.intro{padding:130px 0 145px;position:relative}.section-marker{display:flex;align-items:baseline;gap:18px;font-size:12px;margin-bottom:34px}.section-marker .num{font-family:'Cormorant Garamond';font-size:17px;color:var(--accent)}.intro-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:9%}.intro h2{font-size:35px;line-height:1.85;letter-spacing:.07em}.body-copy{max-width:430px;font-size:13px;line-height:2.5}.intro-art{height:510px;position:relative}.organic{position:absolute;inset:0 30px 20px 0;border-radius:50% 47% 48% 42% / 57% 36% 56% 40%;overflow:hidden;transform:rotate(-12deg)}.organic img{transform:rotate(12deg) scale(1.15)}.orbit{position:absolute;width:105%;height:78%;border:1px solid #9ca18d;border-radius:50%;transform:rotate(-36deg);left:-5%;top:14%;pointer-events:none}.art-note{position:absolute;bottom:0;right:-10px;background:var(--paper);padding:15px;font-size:28px;line-height:1.1;font-style:italic}.text-link{display:inline-flex;gap:50px;align-items:center;border-bottom:1px solid var(--ink);padding:10px 0;font-size:12px;margin-top:22px}.services{background:var(--sage);padding:90px 0 100px}.section-head{display:grid;grid-template-columns:1fr 1fr;gap:9%;margin-bottom:54px}.section-head h2{font-size:34px;line-height:1.75;margin-bottom:0;letter-spacing:.06em}.section-head p{padding-top:38px;font-size:13px;max-width:430px}.service-list{border-top:1px solid #bfc5b3}.service-row{display:grid;grid-template-columns:55px 1fr 1fr 30px;gap:20px;align-items:center;border-bottom:1px solid #bfc5b3;padding:30px 6px;transition:padding .3s,background .3s}.service-row:hover{padding-left:20px;background:#e0e4d5}.service-row .en{font-size:35px}.service-row small{font-size:11px;display:block;margin-top:5px}.service-row p{margin:0;font-size:12px;line-height:1.9}.projects{padding:110px 0 120px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px}.project:nth-child(2){margin-top:95px}.project-image{height:360px;position:relative;overflow:hidden;background:#e4e7dd}.project-image img{transition:transform .8s;object-position:65% 50%}.project:hover img{transform:scale(1.04)}.project:first-child .project-image{border-radius:160px 160px 4px 4px}.project:nth-child(2) .project-image{border-radius:4px 4px 150px 4px}.project-meta{display:flex;justify-content:space-between;margin:24px 0 12px;font-size:10px;letter-spacing:.08em;color:var(--muted)}.project h3{font-family:'Cormorant Garamond',serif;font-size:44px;margin-bottom:12px;letter-spacing:-1px}.project:nth-child(2) h3{font-size:37px}.project p{font-size:13px;margin-bottom:0}.project .text-link{width:100%;justify-content:space-between;padding-bottom:17px;border-color:var(--line)}.belief{padding:85px 0;background:#edece3}.belief-inner{display:grid;grid-template-columns:1fr 2fr;gap:60px}.belief h2{font-size:30px;line-height:1.9;margin-bottom:25px}.values{display:flex;gap:35px;border-top:1px solid var(--line);padding-top:26px;margin-top:40px}.values div{flex:1}.values b{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:26px}.values p{font-size:11px;margin:10px 0 0}.contact{padding:100px 0 85px}.contact-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:70px}.contact h2{font-size:38px;line-height:1.8}.contact .en.big{font-size:105px;line-height:1;margin:10px 0 25px;letter-spacing:-3px}.round-link{height:125px;width:125px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-size:40px;transition:.3s}.round-link:hover{background:var(--ink);color:var(--paper);transform:rotate(-35deg)}.footer{padding:0 6% 35px}.footer-top,.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px}.footer-top{padding-bottom:45px}.footer-nav{display:flex;gap:25px;font-size:11px}.footer-bottom{padding-top:22px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}.reveal{opacity:1;transform:none}.js-motion .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.js-motion .reveal.visible{opacity:1;transform:none}.skip{position:fixed;top:-60px;left:10px;z-index:10;background:white;padding:10px}.skip:focus{top:10px}:focus-visible{outline:2px solid #68733d;outline-offset:6px}.subhero{padding:85px 0 65px;border-bottom:1px solid var(--line)}.subhero .en{font-size:90px;line-height:1;margin:0 0 25px}.subhero h1{font-size:35px}.content{padding:70px 0 100px;max-width:1000px}.content h2{font-size:26px;line-height:1.7;margin-top:55px}.content p{max-width:680px}.content dl{display:grid;grid-template-columns:150px 1fr}.content dt,.content dd{margin:0;border-bottom:1px solid var(--line);padding:25px 0;line-height:2}.notice{padding:20px 24px;background:var(--sage);font-size:12px;line-height:2}.contact-form{max-width:650px;margin-top:40px}.contact-form label{display:block;margin:25px 0 8px;font-size:12px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:15px;border:1px solid var(--line);background:#fffef9;color:var(--ink);font:inherit;border-radius:0}.contact-form textarea{min-height:150px;resize:vertical}.contact-form button{margin-top:25px;cursor:pointer}.form-result{margin-top:25px;padding:20px;background:var(--sage)}
@media(min-width:1600px){.hero-copy{padding-left:max(7%,calc((100vw - 1240px)/2))}}
@media(max-width:900px){.nav{gap:18px}.brand-note{display:none}.hero-copy{width:75%}.hero{min-height:700px}.intro-grid{gap:5%}.intro h2,.section-head h2{font-size:28px}.intro-art{height:380px}.project-image{height:280px}.project h3{font-size:38px}.project:nth-child(2) h3{font-size:29px}.service-row{grid-template-columns:30px 1fr 1fr 20px}.contact .en.big{font-size:80px}}
@media(max-width:650px){.header{height:78px;padding:0 6%}.wordmark{font-size:42px}.menu{display:block;font-size:11px;letter-spacing:.1em}.nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:30px 7%;border-bottom:1px solid var(--line)}.nav.open{display:flex;flex-direction:column;align-items:stretch;gap:25px}.nav .pill{justify-content:space-between}.hero{height:820px;max-height:none;min-height:0}.hero-photo{inset:320px 0 0 0}.hero-photo img{object-position:64% 50%}.hero:after{background:linear-gradient(180deg,var(--paper) 32%,rgba(248,247,242,.9) 42%,rgba(248,247,242,0) 65%)}.hero-copy{width:100%;padding:35px 7%}.hero-kicker{font-size:8px;margin-bottom:22px}h1{font-size:36px;line-height:1.7;margin-bottom:18px}.hero-copy p{font-size:11px;line-height:2;margin-bottom:16px}.hero-copy .pill{padding:11px 18px;font-size:10px}.hero-english{font-size:26px;bottom:55px}.hero-bottom{font-size:8px}.hero-bottom span:first-child{color:white}.intro{padding:70px 0 85px}.intro-grid{grid-template-columns:1fr;gap:40px}.intro h2{font-size:28px}.body-copy{font-size:12px}.intro-art{height:365px;margin:0 20px}.art-note{font-size:25px}.section-marker{margin-bottom:25px}.services,.projects{padding:65px 0}.section-head{grid-template-columns:1fr;gap:20px;margin-bottom:30px}.section-head h2{font-size:28px}.section-head p{padding-top:0;margin:0;font-size:12px}.service-row{grid-template-columns:22px 1fr 24px;gap:14px;padding:24px 0}.service-row .en{font-size:30px}.service-row p{grid-column:2;grid-row:2}.service-row>.arrow{grid-column:3;grid-row:1}.project-grid{grid-template-columns:1fr;gap:50px}.project:nth-child(2){margin-top:0}.project-image{height:330px}.project h3{font-size:42px}.project:nth-child(2) h3{font-size:34px}.belief{padding:60px 0}.belief-inner{grid-template-columns:1fr;gap:0}.belief h2{font-size:25px}.values{gap:14px}.values b{font-size:22px}.values p{font-size:10px}.contact{padding:60px 0 45px}.contact h2{font-size:25px}.contact .en.big{font-size:62px}.round-link{height:72px;width:72px;font-size:26px;flex-shrink:0}.contact-top{gap:10px;padding-bottom:45px}.footer-top{align-items:flex-start;flex-direction:column;padding-bottom:30px}.footer-nav{gap:20px;flex-wrap:wrap}.footer-bottom{font-size:8px;align-items:flex-start;gap:14px}.subhero{padding:50px 0}.subhero .en{font-size:64px}.subhero h1{font-size:27px}.content{padding-top:35px}.content dl{grid-template-columns:95px 1fr}.content dt,.content dd{font-size:12px}.content h2{font-size:23px}.content p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js-motion .reveal{opacity:1;transform:none}}
/* Review 1: preserve the relationship between the subjects at narrower widths. */
.hero-photo img{object-position:100% 50%}
@media(max-width:650px){.hero-photo img{object-position:90% 50%}.contact .en.big{font-size:clamp(37px,9vw,62px);letter-spacing:-1px}.contact-top>div{min-width:0}}
/* Review 2: keep decorative orbit within the page on mobile. */
.intro{overflow:clip}
/* Review 3: continuous hero blend without a visible image boundary. */
@media(min-width:651px){.hero-photo{inset:0}.hero:after{background:linear-gradient(90deg,var(--paper) 3%,rgba(248,247,242,.97) 24%,rgba(248,247,242,.72) 39%,rgba(248,247,242,0) 62%)}}
/* Review 3: preserve the editorial gutters on section containers. */
.wrap.intro,.wrap.projects,.wrap.contact{padding-left:6%;padding-right:6%}
/* Official project identities and uncropped website first views. */
.project.project-site .project-image{height:auto;aspect-ratio:1440/950;border-radius:5px;border:1px solid var(--line);background:white;overflow:hidden;box-shadow:0 12px 32px #303b3207}
.project.project-site .project-image img{object-fit:contain;object-position:center;transform:none;transition:filter .35s}
.project.project-site:hover .project-image img{filter:brightness(.98)}
.project.project-site h3.project-logo{height:72px;display:flex;align-items:center;margin:12px 0 20px}
.project-logo img{width:240px;height:auto;max-height:72px;object-fit:contain;object-position:left;transform:none!important}
.salon-logo img{width:360px;max-width:100%;max-height:95px}
.project.project-site .project-tagline{font-family:'Noto Serif JP',serif;font-size:23px;line-height:1.8;margin-bottom:15px;letter-spacing:.03em}
.project.project-site .project-description{color:var(--muted);font-size:12px;line-height:2}
.site-domain{font-size:10px;color:var(--muted);margin-left:auto}.project-site .text-link{gap:18px}
.project-capture-note{font-size:10px;color:var(--muted);margin-top:40px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:650px){.project.project-site .project-tagline{font-size:21px}.project.project-site h3.project-logo{height:60px;margin-bottom:16px}.project-logo img{width:210px}.salon-logo img{width:310px}.project-grid{gap:55px}}
.project-logo img{mix-blend-mode:multiply}
/* Services are now informational rows within the homepage. */
.service-row:hover{padding-left:6px;background:transparent}
.hero-bottom span:first-child{color:var(--ink)}
@media(max-width:650px){.service-row:hover{padding-left:0}.hero-bottom span:first-child{color:white}}
/* Inquiry form */
[hidden]{display:none!important}.contact-form label>span{font-size:10px;color:var(--muted);margin-left:12px}.contact-form .form-consent{display:flex;align-items:flex-start;gap:12px;line-height:1.8}.contact-form .form-consent input{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;accent-color:var(--ink)}.form-privacy{font-size:12px;margin-top:28px}.contact-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.form-actions{display:flex;gap:16px;flex-wrap:wrap}.form-actions button{margin-top:20px}.contact-form button:disabled{opacity:.55;cursor:wait}.contact-form dd{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.contact-form dt{font-size:12px}.contact-content .form-result{max-width:650px;padding:30px}.contact-content .form-result h2{margin-top:0}#contact-send-status{font-size:13px;line-height:1.9}

/* Shared centered column for secondary-page headings and content. */
.subhero.wrap,.content.wrap{max-width:1000px;padding-left:6%;padding-right:6%}
.content.wrap>p,.content.wrap>.contact-form,.content.wrap>.form-result{max-width:none}
.content.wrap>h2:first-child{margin-top:0}
.content dd{min-width:0;overflow-wrap:anywhere}

/* Privacy policy and accessible policy links. */
.privacy-content{font-size:13px;overflow-wrap:anywhere}.privacy-content ul{padding-left:1.5em;line-height:2.2;margin-bottom:24px}.privacy-content li+li{margin-top:10px}.privacy-content strong{font-weight:500}.privacy-content a,.form-privacy a,.footer-bottom a{text-decoration:underline;text-underline-offset:4px}.privacy-content a:hover,.form-privacy a:hover,.footer-bottom a:hover{color:var(--accent)}.privacy-content .policy-date{margin-top:48px;color:var(--muted)}.subhero .en{overflow-wrap:anywhere}.subhero:has(+.privacy-content) .en{font-size:clamp(44px,7vw,78px)}.footer-bottom{flex-wrap:wrap}.form-privacy a{margin-inline:.3em}
