:root{--black:#101112;--deep:#171819;--panel:#202122;--white:#f4f1eb;--muted:#aaa49a;--copper:#ac7451;--line:#393939;--serif:"Noto Serif JP",serif;--sans:"Noto Sans JP",sans-serif;--latin:"Cormorant Garamond",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--white);background:var(--black);font-family:var(--sans);font-weight:300;line-height:1.9}img{display:block;width:100%}a{color:inherit;text-decoration:none}button{font:inherit}.skip{position:fixed;top:-60px;left:1rem;z-index:999;background:#fff;color:#111;padding:.7rem 1rem}.skip:focus{top:1rem}
.header{position:fixed;inset:0 0 auto;z-index:100;height:78px;display:flex;align-items:center;gap:clamp(1rem,2.5vw,2.8rem);padding:0 clamp(1.2rem,3.5vw,4rem);background:rgba(9,12,15,.88);border-bottom:1px solid rgba(255,255,255,.1);backdrop-filter:blur(12px)}.logo{display:flex;flex-direction:column;min-width:150px;line-height:.85}.logo b{font:500 1.85rem var(--latin);letter-spacing:.12em}.logo span{margin-top:.42rem;font:400 .58rem var(--latin);letter-spacing:.13em}.desktop-nav{display:flex;gap:clamp(1rem,2.2vw,2.3rem);margin-left:auto}.desktop-nav a,.top-actions>a{font-size:.68rem;letter-spacing:.1em;white-space:nowrap}.desktop-nav a{position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;bottom:-.55rem;width:100%;height:1px;background:var(--copper);transform:scaleX(0);transform-origin:right;transition:.3s}.desktop-nav a:hover:after{transform:scaleX(1);transform-origin:left}.top-actions{display:flex;align-items:center;gap:1rem}.line-link{color:#9bc2aa}.contact-link{padding:.72rem 1rem;background:var(--copper);color:#fff}.menu,.mobile-panel,.mobile-quick{display:none}
.hero{position:relative;height:100svh;min-height:730px;padding-top:78px;overflow:hidden}.hero>img{position:absolute;inset:78px 0 0;height:calc(100% - 78px);object-fit:cover;animation:hero 1.7s cubic-bezier(.2,.8,.2,1) both}.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;height:100%;width:min(1180px,calc(100% - 10vw));margin:auto}.hero-copy h1{margin:0;font:400 clamp(3.4rem,6.3vw,6.6rem)/1.45 var(--serif);letter-spacing:.12em;text-shadow:0 3px 25px rgba(0,0,0,.55)}.hero-copy p{margin:1.7rem 0 2.2rem;font:400 clamp(.9rem,1.2vw,1.15rem)/2 var(--serif);letter-spacing:.08em}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;width:max-content;min-width:245px;min-height:56px;padding:.85rem 1.35rem;background:var(--copper);border:1px solid var(--copper);font-size:.78rem;letter-spacing:.1em;transition:.25s}.button:hover{background:#c08662;transform:translateY(-2px)}.button svg{width:18px;fill:none;stroke:currentColor;stroke-width:1.4}.vertical-mark{position:absolute;z-index:2;left:1.4rem;top:50%;margin:0;font:.54rem var(--latin);letter-spacing:.25em;writing-mode:vertical-rl}.scroll{position:absolute;z-index:2;left:4rem;bottom:2.7rem;margin:0;font:.55rem var(--latin);letter-spacing:.25em}.scroll:after{content:"";display:inline-block;width:60px;height:1px;margin-left:1rem;vertical-align:middle;background:currentColor}
.section{padding:clamp(5rem,9vw,9rem) max(5vw,calc((100vw - 1180px)/2))}.label{margin:0 0 1.1rem;color:var(--copper);font:500 .62rem var(--sans);letter-spacing:.25em}.section-copy h2,.section-title h2,.contact h2{margin:0 0 2rem;font:400 clamp(2rem,3.7vw,3.75rem)/1.65 var(--serif);letter-spacing:.08em}.section-copy>p:not(.label){max-width:520px;color:var(--muted);font-size:.88rem}.text-link{display:inline-flex;gap:3rem;margin-top:1.4rem;padding-bottom:.45rem;border-bottom:1px solid var(--copper);font-size:.72rem;letter-spacing:.1em}
.philosophy{display:grid;grid-template-columns:.75fr 1.25fr;align-items:center;padding-right:0;background:linear-gradient(90deg,var(--deep) 0 48%,#252525 48%)}.philosophy-image{height:580px}.philosophy-image img{height:100%;object-fit:cover}
.works{background:var(--deep)}.section-title{margin-bottom:4.5rem}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.work{margin:0}.work img{aspect-ratio:4/3;object-fit:cover;filter:saturate(.78);transition:.7s}.work:hover img{filter:saturate(1);transform:scale(.99)}.work>div{padding:1.4rem 0}.work span{color:var(--copper);font:.65rem var(--latin);letter-spacing:.18em}.work h3{margin:.6rem 0;font:400 1.25rem var(--serif);letter-spacing:.08em}.work p{margin:0;color:var(--muted);font-size:.78rem}
.materials{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(3rem,7vw,7rem);align-items:center;background:#121313}.material-image img{aspect-ratio:4/3;object-fit:cover}.materials ul{margin:2.5rem 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}.materials li{display:grid;grid-template-columns:120px 1fr;padding:1rem 0;border-bottom:1px solid var(--line);font-size:.75rem}.materials li b{font-weight:400;color:var(--white)}.materials li span{color:var(--muted)}
.process{background:#1b1c1d}.process ol{display:grid;grid-template-columns:repeat(5,1fr);margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.process li{padding:2.4rem clamp(1rem,2vw,2rem)}.process li+li{border-left:1px solid var(--line)}.process li span{color:var(--copper);font:2rem var(--latin)}.process h3{margin:1.5rem 0 .7rem;font:400 1rem var(--serif)}.process li p{margin:0;color:var(--muted);font-size:.75rem}
.voice{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:0;background:#101112}.voice-image{height:600px}.voice-image img{height:100%;object-fit:cover}.voice blockquote{margin:0;padding:clamp(3rem,7vw,7rem)}.voice q{display:block;margin:0 0 2rem;font:400 clamp(2rem,3.2vw,3.2rem)/1.65 var(--serif);letter-spacing:.08em}.voice blockquote>p:not(.label){max-width:470px;color:var(--muted);font-size:.85rem}.voice footer{margin-top:1.8rem;font-size:.7rem;color:#827d75}
.faq{background:#171819}.faq .section-title{text-align:center}.faq-list{max-width:900px;margin:auto;border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{position:relative;padding:1.65rem 3rem 1.65rem 1rem;cursor:pointer;list-style:none;font:400 .95rem var(--serif)}summary::-webkit-details-marker{display:none}summary:after{content:"＋";position:absolute;right:1rem;color:var(--copper)}details[open] summary:after{content:"−"}details p{margin:0;padding:0 3rem 1.6rem;color:var(--muted);font-size:.8rem}
.contact{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:650px;background:#191a1a}.contact>img{height:100%;object-fit:cover}.contact-copy{align-self:center;padding:clamp(3rem,7vw,7rem)}.contact-copy>p:not(.label){color:var(--muted);font-size:.84rem}.contact-buttons{display:flex;gap:.8rem;margin:2.2rem 0 1.5rem}.outline{color:var(--copper);background:transparent}.outline:hover{color:#fff}.contact small{color:#746f68;font-size:.65rem}
.footer{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:3.5rem max(5vw,calc((100vw - 1180px)/2));background:#0a0b0b;color:#7f7b74}.footer nav{display:flex;gap:2rem;font-size:.7rem}.footer p{grid-column:1/-1;margin:1.5rem 0 0;padding-top:1.5rem;border-top:1px solid #242525;font-size:.58rem}.footer .logo{color:var(--white)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s,transform .9s}.reveal.is-visible{opacity:1;transform:none}@keyframes hero{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}@media(max-width:1240px) and (min-width:981px){.header{padding-inline:1.7rem;gap:1rem}.desktop-nav{gap:1rem}.desktop-nav a,.top-actions>a{font-size:.61rem}.contact-link{padding:.65rem .75rem}}
@media(max-width:980px){.desktop-nav,.top-actions{display:none}.header{height:70px;justify-content:flex-start;gap:.65rem}.header>.logo{margin-right:auto}.mobile-quick{display:flex;align-items:center;gap:.5rem}.mobile-quick a{display:grid;place-items:center;min-width:36px;height:36px;padding:0 .35rem;border:1px solid #494541;color:#d0a184;font:500 .58rem var(--sans);letter-spacing:.08em}.menu{display:flex;width:42px;height:42px;padding:0;border:0;background:transparent;flex-direction:column;align-items:center;justify-content:center;gap:7px}.menu span{width:25px;height:1px;background:#fff;transition:.3s}.menu[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-panel{position:absolute;left:0;top:70px;width:100vw;height:calc(100svh - 70px);overflow:auto;padding:3rem 1.5rem;background:#111213}.mobile-panel.open{display:block}.mobile-panel nav{display:flex;flex-direction:column}.mobile-panel nav a{padding:1rem 0;border-bottom:1px solid var(--line);font:400 1.2rem var(--serif)}.mobile-actions{display:flex;gap:1.5rem;margin-top:2rem;color:var(--copper);font-size:.78rem}.hero{padding-top:70px}.hero>img{inset:70px 0 0;height:calc(100% - 70px)}.philosophy{grid-template-columns:1fr;padding-right:max(5vw,calc((100vw - 1180px)/2));background:var(--deep)}.philosophy-image{height:480px;margin-top:3rem}.process ol{grid-template-columns:repeat(3,1fr)}.process li:nth-child(4){border-left:0}.process li:nth-child(n+4){border-top:1px solid var(--line)}}
@media(max-width:680px){.header .logo b{font-size:1.55rem}.hero{min-height:700px}.hero>img{object-position:66% center}.hero-copy{justify-content:flex-start;width:calc(100% - 2.5rem);padding-top:9rem}.hero-copy h1{font-size:clamp(2.7rem,13vw,4rem);line-height:1.5}.hero-copy p{font-size:.82rem}.hero-copy .button{width:100%;max-width:280px}.vertical-mark,.scroll{display:none}.section{padding:5rem 1.25rem}.section-copy h2,.section-title h2,.contact h2{font-size:2rem}.philosophy{padding-right:1.25rem}.philosophy-image{height:330px}.work-grid{grid-template-columns:1fr}.materials{grid-template-columns:1fr;gap:3rem}.process ol{grid-template-columns:1fr 1fr}.process li:nth-child(3),.process li:nth-child(5){border-left:0}.process li:nth-child(4){border-left:1px solid var(--line)}.process li:nth-child(n+3){border-top:1px solid var(--line)}.voice{grid-template-columns:1fr}.voice-image{height:380px}.voice blockquote{padding:4rem 1.25rem}.contact{grid-template-columns:1fr}.contact>img{height:360px}.contact-copy{padding:4rem 1.25rem}.contact-buttons{flex-direction:column}.button{width:100%;min-width:0}.footer{grid-template-columns:1fr;padding:3rem 1.25rem}.footer nav{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
