
:root{
  --bg:#07060a;--panel:#0f0c13;--panel2:#151019;--line:#2c1b2f;
  --text:#f6f0f5;--muted:#b7aab8;--red:#b20f2f;--red2:#6d071d;--gold:#d2b16a;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:
radial-gradient(circle at 20% -10%,rgba(118,20,50,.28),transparent 34%),
radial-gradient(circle at 100% 10%,rgba(76,30,97,.18),transparent 25%),
var(--bg);color:var(--text);font-family:"Noto Sans JP",sans-serif;line-height:1.7}
body.lock{overflow:hidden}
.noise{position:fixed;inset:0;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}
.hero{min-height:72vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:70px 22px 55px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(210,177,106,.12);border-radius:50%;box-shadow:0 0 0 42px rgba(178,15,47,.03),0 0 0 95px rgba(178,15,47,.02)}
.hero>*{position:relative}
.hero__ornament{font-size:12px;letter-spacing:.25em;color:var(--gold);margin-bottom:22px}
h1{font-family:"Cormorant Garamond",serif;font-size:clamp(42px,9vw,86px);line-height:.9;margin:0;letter-spacing:.02em}
h1 span{font-size:.55em;color:#e6d7e4;letter-spacing:.11em}
.hero p{color:var(--muted);margin:27px 0 30px}
.hero__cta{display:inline-block;color:white;text-decoration:none;font-weight:800;background:linear-gradient(135deg,var(--red),var(--red2));padding:14px 27px;border:1px solid #d42a4d;box-shadow:0 10px 35px rgba(178,15,47,.26)}
main{max-width:1100px;margin:auto;padding:0 20px}
section{padding:70px 0}
.section-title{text-align:center;margin-bottom:34px}
.section-title span{font-family:"Cormorant Garamond",serif;color:var(--gold);letter-spacing:.18em;font-size:14px}
.section-title h2{margin:3px 0 0;font-size:28px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.step{background:linear-gradient(180deg,#151018,#0d0a10);border:1px solid var(--line);min-height:120px;padding:19px;display:flex;align-items:flex-end;justify-content:space-between}
.step b{font-family:"Cormorant Garamond",serif;font-size:39px;color:var(--red)}
.step span{font-weight:700;text-align:right}
.benefit{margin-top:18px;text-align:center;border:1px solid rgba(210,177,106,.38);padding:18px;background:rgba(210,177,106,.04)}
.benefit strong{color:var(--gold)}
.benefit p{margin:4px 0 0;font-size:14px}
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{background:linear-gradient(180deg,#121016,#0c0a0e);border:1px solid var(--line);overflow:hidden;transition:.25s;cursor:pointer}
.card:hover{transform:translateY(-4px);border-color:#5f2940;box-shadow:0 15px 38px rgba(0,0,0,.35)}
.card__image{aspect-ratio:1/1;background:#09070b;overflow:hidden}
.card__image img{width:100%;height:100%;object-fit:cover;display:block}
.card__body{padding:17px}
.card__tag{font-size:10px;color:var(--gold);letter-spacing:.12em}
.card h3{font-size:16px;margin:4px 0 9px}
.price{font-size:21px;font-weight:900}
.card__button{margin-top:14px;width:100%;border:1px solid #782138;background:#25121a;color:#fff;padding:11px;font-weight:800;cursor:pointer}
.notice{margin:25px 0 70px;background:#0e0b10;border:1px solid var(--line);padding:26px}
.notice h3{margin-top:0;color:var(--gold)}
.notice p{color:var(--muted);font-size:13px;margin-bottom:4px}
footer{text-align:center;border-top:1px solid var(--line);padding:40px 20px 60px;color:var(--muted)}
.footer-brand{font-family:"Cormorant Garamond",serif;font-size:27px;color:white;margin:0}
.small{font-size:11px}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:50;display:flex;justify-content:flex-end}
.overlay[hidden]{display:none}
.drawer{height:100%;width:min(520px,100%);background:#0d0a10;border-left:1px solid var(--line);padding:35px 24px;overflow:auto;position:relative;box-shadow:-20px 0 50px rgba(0,0,0,.5)}
.drawer__close{position:absolute;right:17px;top:12px;border:0;background:transparent;color:white;font-size:30px;cursor:pointer}
.drawer-product{display:grid;grid-template-columns:120px 1fr;gap:18px;margin-bottom:24px;align-items:center}
.drawer-product img{width:120px;height:120px;object-fit:cover;border:1px solid var(--line)}
.drawer-product h2{font-size:20px;margin:0 0 5px}
.form-group{margin:18px 0}
label{display:block;font-size:12px;font-weight:800;color:#d8cbd5;margin-bottom:7px}
input,select,textarea{width:100%;padding:13px 12px;border:1px solid #3a2536;background:#151019;color:#fff;border-radius:0;font:inherit}
textarea{min-height:110px;resize:vertical}
.paypay{width:100%;border:0;background:#ff003c;color:#fff;padding:15px;font-weight:900;font-size:16px;cursor:pointer;margin-top:8px}
.paypay:disabled{opacity:.55;cursor:not-allowed}
.demo-note{font-size:11px;color:#a998a6;text-align:center;margin-top:8px}
.order-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;margin:18px 0;display:flex;justify-content:space-between}
.order-summary strong{font-size:21px}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#21131a;border:1px solid #6f2a42;color:#fff;padding:12px 17px;z-index:80;box-shadow:0 8px 25px rgba(0,0,0,.4)}
@media(max-width:760px){
  .hero{min-height:62vh}.steps{grid-template-columns:repeat(2,1fr)}
  .product-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .card__body{padding:12px}.card h3{font-size:13px}.price{font-size:17px}
  .section-title h2{font-size:24px}
}
@media(max-width:380px){.product-grid{grid-template-columns:1fr}}

.age-warning{color:#ff6688!important;font-weight:900;margin-top:12px!important}
.footer-links{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:18px 0 8px}
.footer-links a{color:var(--gold);text-decoration:none;font-size:12px;border-bottom:1px solid rgba(210,177,106,.35)}
.footer-links a:hover{color:#fff}
.footer-company{font-size:12px;margin:8px 0;color:#d8cbd5}
.legal-hero{padding:54px 22px 34px;text-align:center;border-bottom:1px solid var(--line)}
.legal-hero h1{font-size:clamp(32px,6vw,54px);line-height:1.05}
.back-link{display:inline-block;color:var(--gold);text-decoration:none;font-size:12px;margin-bottom:24px}
.legal-main{max-width:900px}
.legal-card{padding:46px 0 70px}
.legal-list{margin:0;border:1px solid var(--line);background:linear-gradient(180deg,#121016,#0c0a0e)}
.legal-list>div{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--line)}
.legal-list>div:last-child{border-bottom:0}
.legal-list dt,.legal-list dd{margin:0;padding:18px 20px}
.legal-list dt{font-weight:900;color:var(--gold);background:rgba(210,177,106,.035)}
.legal-list dd{color:#e9dfe7}
.legal-list a{color:#e4c885}
.legal-note{margin-top:18px;border:1px solid rgba(210,177,106,.35);padding:18px;color:var(--muted);font-size:13px}
@media(max-width:650px){.legal-list>div{grid-template-columns:1fr}.legal-list dt{padding-bottom:6px}.legal-list dd{padding-top:4px}.footer-links{gap:12px}}
