﻿:root{
  --ink:#2A2A2A; --ink-strong:#111111; --paper:#ECECEC; --card:#FFFFFF; --rule:#D5D5D5;
  --black:#0B0B0C; --black-2:#171719; --black-rule:#303033; --white-ink:#E6E6E4; --white-strong:#F7F7F5; --white-dim:#D2D2D0;
  --max:1120px; --gutter:clamp(16px, 4vw, 48px);
  --sans:"Inter","Noto Sans JP",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--black);line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
h1,h2{font-weight:300;letter-spacing:.04em;margin:0}

.dark{background:var(--black);color:var(--white-ink)}
.light{background:var(--paper);color:var(--ink)}

.top{position:fixed;inset:0 0 auto 0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:18px var(--gutter);color:var(--white-dim);mix-blend-mode:difference}
.top-mark{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.28em;color:#fff}
.top-nav{display:flex;gap:28px;font-size:13px;letter-spacing:.12em;color:#fff}
.top-nav a{opacity:.75}.top-nav a:hover{opacity:1}

.hero{min-height:100svh;display:grid;place-items:center;padding:120px var(--gutter) 96px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:-20%;background:radial-gradient(60% 50% at 50% 42%, rgba(255,255,255,.07), transparent 70%);pointer-events:none}
.hero-inner{position:relative;text-align:center;max-width:720px}
.hero-mark{margin:0 auto 36px;width:clamp(96px,14vw,160px);height:auto;opacity:.92}
.hero h1{font-size:clamp(34px,5vw,56px);letter-spacing:.32em;text-indent:.32em;color:var(--white-strong)}
.hero-lead{margin:28px 0 0;font-size:clamp(14px,1.4vw,17px);color:var(--white-dim);letter-spacing:.06em}

.product{padding:112px var(--gutter)}
.product-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.eyebrow{font-size:12px;letter-spacing:.24em;color:#6B6B6B;margin:0 0 14px}
.product h2{font-size:clamp(30px,3.6vw,44px);letter-spacing:.14em;color:var(--ink-strong)}
.product-lead{font-size:clamp(15px,1.5vw,18px);margin:22px 0 0;color:var(--ink)}
.points{list-style:none;padding:0;margin:28px 0 0;border-top:1px solid var(--rule)}
.points li{padding:12px 0;border-bottom:1px solid var(--rule);font-size:15px}
.spec{font-size:12.5px;letter-spacing:.04em;color:#6B6B6B;margin:22px 0 0}
.btn{display:inline-block;margin-top:34px;padding:16px 28px;background:#0A0A0A;color:#fff;font-size:14px;letter-spacing:.12em;border-radius:2px;transition:background .25s}
.btn:hover{background:#1A1A1A}
.product-figure{margin:0;background:var(--card);border:1px solid var(--rule);padding:0;overflow:hidden}
.product-figure img{width:100%;aspect-ratio:1/1;object-fit:cover}

.gallery{max-width:var(--max);margin:72px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.gallery figure{margin:0;background:var(--card);border:1px solid var(--rule)}
.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover}
.gallery figcaption{padding:12px 14px 14px;font-size:12.5px;line-height:1.6;color:#4A4A4A;border-top:1px solid var(--rule)}

.promise{padding:112px var(--gutter);background:var(--black-2)}
.promise-inner{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start}
.promise h2{font-size:clamp(22px,2.4vw,30px);letter-spacing:.1em;color:var(--white-strong)}
.promise ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--black-rule)}
.promise li{padding:14px 0;border-bottom:1px solid var(--black-rule);font-size:15px;color:var(--white-dim)}

.foot{padding:56px var(--gutter) 64px;display:flex;align-items:center;gap:14px;font-size:12.5px;letter-spacing:.1em;color:var(--white-dim);border-top:1px solid var(--black-rule)}
.foot p{margin:0}.foot a{text-decoration:underline;text-underline-offset:4px}

@media (max-width:860px){
  .product-inner{grid-template-columns:1fr}
  .product-figure{order:-1}
  .gallery{grid-template-columns:repeat(2,1fr)}
  .promise-inner{grid-template-columns:1fr;gap:20px}
  .top-nav{gap:18px}
}
