:root{
  --cream:#F7F4EF;
  --cream-2:#F0EBE2;
  --ink:#2A2723;
  --ink-soft:#5C574F;
  --wood:#B98A54;
  --wood-deep:#8C6539;
  --line:#E3DCCF;
  --white:#FFFFFF;
  --accent:#3E6259;
  --radius:18px;
  --max:1140px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Noto Sans JP','Hiragino Sans',sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.brand{
  font-family:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}
.section{padding:96px 0;}
.section--tight{padding:64px 0;}
.eyebrow{
  display:inline-block;
  font-size:12.5px;
  letter-spacing:.14em;
  font-weight:700;
  color:var(--wood-deep);
  background:rgba(185,138,84,0.12);
  padding:6px 14px;
  border-radius:999px;
  margin-bottom:18px;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:15px 30px;
  border-radius:999px;
  font-weight:700;
  font-size:15px;
  cursor:pointer;
  border:none;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn-primary{
  background:var(--ink);
  color:var(--white);
  box-shadow:0 10px 24px rgba(42,39,35,0.18);
}
.btn-primary:hover{box-shadow:0 14px 30px rgba(42,39,35,0.24);}
.btn-ghost{
  background:transparent;
  color:var(--ink);
  border:1.5px solid var(--ink);
}

/* Header */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,244,239,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
header .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:76px;
}
.brand{font-size:22px;font-weight:900;letter-spacing:.02em;}
.brand span{color:var(--wood-deep);}
nav{display:flex;gap:32px;font-size:14.5px;font-weight:500;color:var(--ink-soft);}
nav a:hover{color:var(--ink);}
.nav-cta{display:none;}
@media(min-width:720px){.nav-cta{display:inline-flex;}}

/* Hero */
.hero{padding:76px 0 40px;}
.hero-grid{
  display:grid;grid-template-columns:1fr;gap:56px;align-items:center;
}
@media(min-width:900px){
  .hero-grid{grid-template-columns:1.05fr 1fr;gap:40px;}
}
.hero h1{
  font-size:clamp(34px,5.4vw,54px);
  font-weight:900;
  line-height:1.35;
  letter-spacing:.01em;
  margin-bottom:24px;
}
.hero h1 em{
  font-style:normal;
  color:var(--wood-deep);
}
.hero p.lead{
  font-size:17px;
  color:var(--ink-soft);
  max-width:46ch;
  margin-bottom:34px;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:22px;}
.hero-note{font-size:13px;color:var(--ink-soft);}
.hero-note strong{color:var(--wood-deep);}
.hero-photo{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  background:var(--white);
  box-shadow:0 30px 60px -20px rgba(42,39,35,0.28);
}
.hero-photo img{width:100%;height:auto;}
.hero-photo .tag{
  position:absolute;bottom:18px;left:18px;
  background:rgba(255,255,255,0.92);
  padding:8px 14px;border-radius:999px;
  font-size:12.5px;font-weight:700;
  box-shadow:0 6px 16px rgba(0,0,0,0.08);
}

/* Feature bar */
.stats{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);
  border-radius:var(--radius);overflow:hidden;
  margin-top:64px;
  border:1px solid var(--line);
}
@media(min-width:720px){.stats{grid-template-columns:repeat(4,1fr);}}
.stat{background:var(--white);padding:26px 20px;text-align:center;}
.stat b{display:block;font-size:22px;font-weight:900;margin-bottom:4px;}
.stat span{font-size:12.5px;color:var(--ink-soft);}

/* Features */
.section-head{max-width:640px;margin-bottom:52px;}
.section-head h2{
  font-size:clamp(26px,3.6vw,36px);
  font-weight:900;line-height:1.5;margin-bottom:14px;
}
.section-head p{color:var(--ink-soft);font-size:15.5px;}
.feature-grid{
  display:grid;grid-template-columns:1fr;gap:20px;
}
@media(min-width:720px){.feature-grid{grid-template-columns:repeat(2,1fr);}}
.feature-card{
  background:var(--white);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:32px 30px;
}
.feature-icon{
  width:46px;height:46px;border-radius:12px;
  background:rgba(62,98,89,0.1);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:18px;font-size:22px;
}
.feature-card h3{font-size:18px;font-weight:700;margin-bottom:10px;}
.feature-card p{font-size:14.5px;color:var(--ink-soft);}

/* Gallery / placeholders */
.gallery-grid{
  display:grid;grid-template-columns:1fr;gap:18px;
}
@media(min-width:860px){.gallery-grid{grid-template-columns:1.3fr 1fr;}}
.gallery-main{
  border-radius:var(--radius);overflow:hidden;
  border:1px solid var(--line);background:var(--white);
}
.gallery-main img{width:100%;height:100%;object-fit:cover;}
.gallery-side{display:flex;flex-direction:column;gap:18px;}
.placeholder-shot{
  flex:1;min-height:150px;
  border:1.5px dashed #C9BFA9;
  border-radius:var(--radius);
  background:var(--cream-2);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:8px;padding:22px;color:var(--ink-soft);
}
.placeholder-shot .icon{font-size:26px;}
.placeholder-shot b{font-size:13.5px;color:var(--ink);}
.placeholder-shot span{font-size:12px;}

/* Why section */
.why{
  background:var(--ink);color:var(--cream);
  border-radius:28px;
  padding:64px 40px;
}
.why .section-head h2, .why .section-head p{color:var(--cream);}
.why .section-head p{color:#C9C3B8;}
.why-list{display:grid;grid-template-columns:1fr;gap:0;}
@media(min-width:720px){.why-list{grid-template-columns:repeat(2,1fr);}}
.why-item{
  padding:22px 0;border-bottom:1px solid rgba(255,255,255,0.12);
  display:flex;gap:16px;align-items:flex-start;
}
@media(min-width:720px){.why-item:nth-child(odd){padding-right:28px;}
  .why-item:nth-child(even){padding-left:28px;}}
.why-item .num{
  font-family:'Zen Kaku Gothic New',sans-serif;
  font-weight:900;font-size:15px;color:var(--wood);
  flex-shrink:0;
}
.why-item h4{font-size:15.5px;font-weight:700;margin-bottom:6px;}
.why-item p{font-size:13.5px;color:#C9C3B8;}

/* Kit breakdown */
.kit-grid{display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:720px){.kit-grid{grid-template-columns:repeat(3,1fr);}}
.kit-card{
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius);padding:26px 24px;
}
.kit-card .kit-num{
  font-size:12px;font-weight:700;letter-spacing:.08em;
  color:var(--wood-deep);margin-bottom:10px;
}
.kit-card h3{font-size:16.5px;margin-bottom:8px;}
.kit-card p{font-size:13.5px;color:var(--ink-soft);}

/* Waitlist */
.waitlist{
  background:var(--cream-2);
  border-radius:28px;
  padding:64px 40px;
  text-align:center;
}
.waitlist h2{font-size:clamp(26px,3.6vw,34px);font-weight:900;margin-bottom:14px;}
.waitlist p{color:var(--ink-soft);max-width:52ch;margin:0 auto 34px;font-size:15.5px;}
.waitlist-form{
  display:flex;flex-direction:column;gap:12px;max-width:420px;margin:0 auto;
}
@media(min-width:560px){.waitlist-form{flex-direction:row;}}
.waitlist-form input{
  flex:1;padding:15px 18px;border-radius:999px;
  border:1.5px solid var(--line);font-size:15px;
  font-family:inherit;background:var(--white);
}
.waitlist-form input:focus{outline:2px solid var(--wood);border-color:transparent;}
.waitlist-form button{white-space:nowrap;}
.waitlist-fine{font-size:12px;color:var(--ink-soft);margin-top:16px;}

footer{padding:48px 0 60px;border-top:1px solid var(--line);margin-top:20px;}
.footer-grid{
  display:flex;flex-direction:column;gap:18px;
  font-size:13px;color:var(--ink-soft);
}
@media(min-width:720px){.footer-grid{flex-direction:row;justify-content:space-between;align-items:center;}}
.disclaimer{font-size:12px;color:var(--ink-soft);max-width:640px;margin-top:14px;line-height:1.7;}
