
:root { --sand:#f4efe6; --oak:#8b5e34; --ink:#2a241c; --mute:#6f675c; --line:#e2d8c8; --paper:#fbf8f2; --ease:cubic-bezier(.22,.61,.36,1); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'Outfit',sans-serif; line-height:1.7; }
h1,h2,h3 { font-family:'Cormorant Garamond',serif; margin:0; font-weight:600; line-height:1.12; }
img { max-width:100%; display:block; } a { color:inherit; } p { margin:0 0 1em; }
.inner { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.block { padding:clamp(64px,8vw,120px) 0; }
.block--sand { background:var(--sand); }
.lede { color:var(--mute); max-width:58ch; }
.bar { position:sticky; top:0; z-index:40; background:rgba(251,248,242,.9); backdrop-filter:blur(12px); }
.bar.is-stuck { box-shadow:0 8px 24px -20px #2a241c; }
.bar__row { display:flex; align-items:center; min-height:78px; gap:20px; }
.sign { margin-right:auto; text-decoration:none; font-family:'Cormorant Garamond',serif; font-size:28px; }
.nav ul { display:flex; list-style:none; gap:8px; margin:0; padding:0; }
.nav a { text-decoration:none; padding:8px 12px; font-size:14px; letter-spacing:.08em; text-transform:uppercase; }
.nav a.is-current { border-bottom:1px solid var(--oak); }
.ham { display:none; width:42px; height:42px; border:0; background:transparent; cursor:pointer; position:relative; }
.ham span,.ham::before,.ham::after { content:''; position:absolute; left:10px; right:10px; height:1px; background:var(--ink); }
.ham::before { top:15px; } .ham span { top:20px; display:block; } .ham::after { bottom:15px; }
.ham.is-open::before { transform:translateY(5px) rotate(45deg); } .ham.is-open span { opacity:0; } .ham.is-open::after { transform:translateY(-5px) rotate(-45deg); }
.opening { display:grid; grid-template-columns: .9fr 1.1fr; gap:48px; align-items:center; padding:70px 0; }
.opening h1 { font-size:clamp(40px,6vw,76px); }
.opening img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.btn { display:inline-block; padding:12px 24px; background:var(--oak); color:#fff; text-decoration:none; border:0; cursor:pointer; font:inherit; }
.btn--line { background:transparent; color:var(--ink); box-shadow:inset 0 0 0 1px var(--line); }
.duo { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.duo img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.pieces { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:36px; }
.piece img { width:100%; aspect-ratio:1; object-fit:cover; }
.piece h3 { font-size:28px; margin:14px 0 8px; }
.nums { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.nums strong { display:block; font-family:'Cormorant Garamond',serif; font-size:48px; }
.atelier { display:grid; grid-template-columns:1.2fr .8fr; gap:24px; }
.atelier img { width:100%; object-fit:cover; }
.pagehead { padding:72px 0 24px; } .pagehead h1 { font-size:clamp(36px,5vw,64px); }
.crumbs { font-size:13px; color:var(--mute); }
.prose { max-width:74ch; } .prose h2 { font-size:32px; margin:36px 0 12px; } .prose li { color:var(--mute); }
.form { display:grid; gap:14px; }
.fld { display:grid; gap:6px; }
.fld input,.fld textarea { font:inherit; padding:12px 14px; border:1px solid var(--line); background:#fff; }
.fld.is-invalid input,.fld.is-invalid textarea { border-color:#9c3b28; }
.fld__err { display:none; color:#9c3b28; font-size:13px; } .fld.is-invalid .fld__err { display:block; }
.fld--ok { grid-template-columns:auto 1fr; }
.okmsg { display:none; padding:12px; background:#e7f0dc; } .okmsg.is-visible { display:block; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-btn { width:100%; text-align:left; background:0; border:0; font:inherit; font-size:20px; font-family:'Cormorant Garamond',serif; padding:18px 0; cursor:pointer; }
.faq-panel { max-height:0; overflow:hidden; transition:.35s var(--ease); } .faq-panel p { color:var(--mute); padding-bottom:16px; }
.faq-item.is-open .faq-btn { color:var(--oak); }
.cards { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.foot { background:var(--ink); color:#d9d0c4; padding:56px 0 24px; }
.foot a { color:#fff; text-decoration:none; } .foot__grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:24px; }
.chip { position:fixed; left:18px; right:18px; bottom:18px; background:#fff; padding:18px 22px; display:none; gap:16px; justify-content:space-between; align-items:center; flex-wrap:wrap; box-shadow:0 20px 50px -30px #2a241c; }
.chip.is-shown { display:flex; } .chip.is-visible { opacity:1; } .chip p { margin:0; font-size:14px; max-width:70ch; }
.appear { opacity:0; transform:translateY(18px); transition:.7s var(--ease); } .appear.is-shown { opacity:1; transform:none; }
@media(max-width:900px){ .opening,.duo,.atelier,.pieces,.nums,.cards,.foot__grid { grid-template-columns:1fr; } .opening img { aspect-ratio:16/10; } }
@media(max-width:720px){ .ham{display:block;} .nav{position:fixed;inset:78px 0 auto;background:var(--paper);padding:16px 24px;transform:translateY(-130%);transition:.35s;} .nav.is-open{transform:none;} .nav ul{flex-direction:column;} }
