:root {
  --ink: #15171c;
  --muted: #626a78;
  --line: rgba(20, 24, 34, 0.11);
  --paper: #ffffff;
  --soft: #f5f7fb;
  --ice: #e9f7ff;
  --ice-strong: #9bdcff;
  --blue: #4b78ff;
  --pink: #ec55a8;
  --violet: #9659ee;
  --green: #1c9066;
  --amber: #a96b00;
  --danger: #ac3546;
  --radius-lg: 34px;
  --radius-md: 22px;
  --shadow: 0 24px 70px rgba(31, 42, 68, 0.12);
  --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid rgba(75, 120, 255, 0.42); outline-offset: 4px; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.narrow { width: min(calc(100% - 40px), 820px); margin-inline: auto; }
.section { padding: 112px 0; }
.section-sm { padding: 76px 0; }
.soft-section { background: var(--soft); }
.ice-section { background: linear-gradient(140deg, #f8fcff, #e9f7ff 62%, #f8f4ff); }
.dark-section { color: #fff; background: #16181e; }
.stack { display: grid; gap: 24px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.eyebrow {
  margin: 0 0 14px;
  color: #496276;
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.dark-section .eyebrow { color: #b8dfff; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.28; letter-spacing: -0.035em; }
h1 { margin-bottom: 24px; font-size: clamp(2.55rem, 5.7vw, 5.6rem); font-weight: 740; }
h2 { margin-bottom: 20px; font-size: clamp(2rem, 3.7vw, 3.6rem); font-weight: 720; }
h3 { margin-bottom: 12px; font-size: 1.35rem; }
.lead { color: var(--muted); font-size: clamp(1.02rem, 1.5vw, 1.18rem); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 48px; }
.section-head > div { max-width: 720px; }
.section-head p:last-child { margin-bottom: 0; }
.gradient-text {
  color: transparent;
  background: linear-gradient(105deg, var(--pink), var(--violet) 48%, var(--blue));
  -webkit-background-clip: text;
  background-clip: text;
}

.age-notice {
  min-height: 34px;
  display: grid;
  place-items: center;
  padding: 6px 20px;
  color: #515866;
  background: #f3f5f8;
  border-bottom: 1px solid var(--line);
  font-size: 0.76rem;
  text-align: center;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,0.92);
  border-bottom: 1px solid rgba(20,24,34,0.08);
  backdrop-filter: blur(18px);
}
.header-inner { height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand img { width: 154px; height: auto; }
.site-nav { display: flex; align-items: center; gap: 26px; }
.site-nav a { position: relative; color: #3a404b; font-size: 0.91rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.site-nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--pink), var(--blue));
  transform: scaleX(0);
  transition: transform .2s ease;
}
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { transform: scaleX(1); }
.nav-cta { padding: 10px 17px; color: #fff !important; background: #17191e; border-radius: 999px; }
.nav-amazon { color: #17191e !important; background: linear-gradient(180deg, #ffd36a, #ffb43e); box-shadow: 0 8px 22px rgba(255,174,52,.26); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 0; background: transparent; border: 1px solid var(--line); border-radius: 50%; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { content: ""; display: block; width: 18px; height: 2px; margin: 4px auto; background: #20242b; transition: .2s ease; }
.nav-open .menu-toggle span { opacity: 0; }
.nav-open .menu-toggle::before { transform: translateY(6px) rotate(45deg); }
.nav-open .menu-toggle::after { transform: translateY(-6px) rotate(-45deg); }

.hero {
  position: relative;
  min-height: 700px;
  display: grid;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 73% 32%, rgba(155,220,255,.44), transparent 26%),
    radial-gradient(circle at 90% 70%, rgba(236,85,168,.12), transparent 23%),
    linear-gradient(135deg, #fff 0 48%, #f1f9ff 100%);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .28;
  pointer-events: none;
  background-image: linear-gradient(rgba(75,120,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(75,120,255,.08) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: linear-gradient(to right, transparent 45%, #000);
}
.hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, .95fr) minmax(450px, 1.05fr); align-items: center; gap: 30px; padding: 72px 0 84px; }
.hero-copy { position: relative; z-index: 2; }
.hero-copy h1 { font-size: clamp(3.15rem, 5vw, 4.6rem); }
.hero-copy h1 .gradient-text { white-space: nowrap; }
.hero-copy .lead { max-width: 630px; margin-bottom: 32px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.btn {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 12px 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .94rem;
  font-weight: 750;
  text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { color: #fff; background: #17191e; box-shadow: 0 14px 30px rgba(20,22,28,.18); }
.btn-secondary { color: #20242b; background: #fff; border-color: var(--line); }
.btn-ice { color: #123552; background: #dff4ff; }
.btn-amazon { color: #17191e; background: linear-gradient(180deg, #ffd66e, #ffb43e); border-color: rgba(169,107,0,.2); box-shadow: 0 14px 30px rgba(255,174,52,.24); }
.btn-amazon:hover { background: linear-gradient(180deg, #ffdb7d, #ffbd52); box-shadow: 0 18px 34px rgba(255,174,52,.3); }
.btn-disabled { color: #7c8491; background: #edf0f4; border-color: #e2e6eb; cursor: not-allowed; pointer-events: none; }
.external-note { max-width: 620px; margin: 13px 0 0; color: #747c88; font-size: .76rem; line-height: 1.65; }
.text-link { display: inline-flex; align-items: center; gap: 7px; color: #33404e; font-weight: 750; text-decoration: none; }
.text-link::after { content: "→"; transition: transform .2s ease; }
.text-link:hover::after { transform: translateX(4px); }
.status-link { display: inline-flex; align-items: center; gap: 9px; margin-top: 28px; padding: 8px 14px; color: #3b434e; background: rgba(255,255,255,.78); border: 1px solid var(--line); border-radius: 999px; font-size: .84rem; font-weight: 700; text-decoration: none; }
.pulse { width: 8px; height: 8px; background: #2cbf83; border-radius: 50%; box-shadow: 0 0 0 6px rgba(44,191,131,.12); }
.hero-stage { position: relative; min-height: 560px; isolation: isolate; }
.hero-stage::before {
  content: "";
  position: absolute;
  width: 470px;
  height: 470px;
  top: 50%; left: 52%;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(255,255,255,.96), rgba(196,232,255,.72) 48%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  z-index: -1;
}
.hero-product { position: absolute; bottom: 26px; object-fit: contain; filter: drop-shadow(0 30px 28px rgba(25,38,60,.19)); }
.hero-product.ik { left: 2%; width: 225px; height: 425px; z-index: 2; transform: rotate(-5deg); }
.hero-product.pro { left: 30%; width: 270px; height: 510px; z-index: 3; }
.hero-product.duke { right: 0; width: 185px; height: 410px; z-index: 1; transform: rotate(5deg); }
.hero-note { position: absolute; right: 28px; top: 55px; max-width: 175px; padding: 14px 16px; color: #42505f; background: rgba(255,255,255,.84); border: 1px solid rgba(255,255,255,.9); border-radius: 18px; box-shadow: 0 15px 40px rgba(36,53,81,.1); font-size: .78rem; line-height: 1.55; backdrop-filter: blur(12px); }

.service-strip { position: relative; z-index: 2; margin-top: -34px; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 24px; box-shadow: var(--shadow); }
.service-item { padding: 25px 28px; }
.service-item + .service-item { border-left: 1px solid var(--line); }
.service-item b { display: block; margin-bottom: 5px; font-size: 1rem; }
.service-item span { color: var(--muted); font-size: .86rem; }

.product-card { position: relative; overflow: hidden; min-height: 530px; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); }
.product-card:nth-child(2) { background: #f7fbff; }
.product-card:nth-child(3) { background: #f6f6f8; }
.product-visual { position: relative; height: 315px; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 50% 50%, #fff 0 20%, rgba(224,244,255,.9) 55%, transparent 78%); }
.product-card:nth-child(2) .product-visual { background: radial-gradient(circle, #fff, #e2f4ff 65%, #dfeeff); }
.product-card:nth-child(3) .product-visual { background: radial-gradient(circle, #fff 5%, #e9ebef 62%, #d9dde4); }
.product-visual::after { content: ""; position: absolute; right: 24px; bottom: 18px; left: 24px; height: 26px; background: radial-gradient(ellipse, rgba(26,33,48,.18), transparent 68%); filter: blur(8px); }
.product-visual img { position: relative; z-index: 1; width: auto; height: 260px; object-fit: contain; filter: drop-shadow(0 24px 19px rgba(20,31,50,.18)); transition: transform .35s ease; }
.product-card:hover .product-visual img { transform: translateY(-7px) scale(1.025); }
.product-card[data-product="duke"] .product-visual img { height: 250px; }
.product-body { flex: 1; display: flex; flex-direction: column; padding: 28px; }
.product-body h3 { font-size: 1.6rem; }
.product-body p { color: var(--muted); }
.product-body .text-link { margin-top: auto; }
.badge-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.badge { display: inline-flex; align-items: center; min-height: 29px; padding: 5px 10px; color: #47515f; background: rgba(255,255,255,.75); border: 1px solid rgba(26,31,43,.1); border-radius: 999px; font-size: .73rem; font-weight: 750; }
.badge.verified { color: #167453; background: #e9f9f2; border-color: #bdebd9; }
.badge.review { color: #8a5c08; background: #fff8e8; border-color: #f1ddb6; }

.channel-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 24px; }
.channel-card { position: relative; min-height: 290px; padding: 34px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); }
.channel-card.amazon { color: #fff; background: #15171c; }
.channel-card.amazon::before { content: "a"; position: absolute; right: 26px; bottom: -66px; color: rgba(255,255,255,.055); font-size: 17rem; font-family: Georgia, serif; line-height: 1; }
.channel-card p { max-width: 590px; color: var(--muted); }
.channel-card.amazon p { color: #c8cbd2; }
.channel-status { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 28px; padding: 7px 11px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); border-radius: 999px; font-size: .74rem; font-weight: 800; }
.channel-status::before { content: ""; width: 7px; height: 7px; background: #ffbf4a; border-radius: 50%; }
.channel-status-live::before { background: #55d49a; box-shadow: 0 0 0 5px rgba(85,212,154,.13); }
.channel-card .btn { margin-top: 20px; }

.trust-layout { display: grid; grid-template-columns: .84fr 1.16fr; gap: 54px; align-items: start; }
.trust-list { display: grid; gap: 14px; counter-reset: trust; }
.trust-step { position: relative; padding: 21px 22px 21px 66px; background: #fff; border: 1px solid var(--line); border-radius: 19px; counter-increment: trust; }
.trust-step::before { content: "0" counter(trust); position: absolute; left: 20px; top: 20px; color: #4c7894; font-size: .8rem; font-weight: 800; letter-spacing: .08em; }
.trust-step b { display: block; margin-bottom: 4px; }
.trust-step span { color: var(--muted); font-size: .88rem; }
.doc-card { display: grid; grid-template-columns: 180px 1fr; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 24px; }
.doc-card img { width: 100%; height: 100%; min-height: 215px; object-fit: cover; object-position: top; border-right: 1px solid var(--line); }
.doc-copy { padding: 26px; }
.doc-copy p { color: var(--muted); font-size: .9rem; }
.landscape-doc { grid-template-columns: minmax(340px, .82fr) 1.18fr; }
.landscape-doc .doc-preview-link { display: flex; align-items: center; padding: 14px; background: #f4f5f7; border-right: 1px solid var(--line); }
.landscape-doc img { height: auto; min-height: 0; object-fit: contain; border-right: 0; }
.document-scope { padding: 12px 14px; background: #f6f7f9; border-radius: 12px; font-size: .8rem !important; }

.store-band { position: relative; overflow: hidden; color: #fff; background: #16181e; }
.store-band::after { content: "OSAKA"; position: absolute; right: -32px; bottom: -85px; color: rgba(255,255,255,.04); font-size: clamp(7rem, 18vw, 15rem); font-weight: 850; letter-spacing: -.07em; line-height: 1; }
.store-grid { position: relative; z-index: 1; display: grid; grid-template-columns: .95fr 1.05fr; gap: 70px; align-items: center; }
.store-grid .lead { color: #c8cdd7; }
.progress-card { padding: 30px; background: linear-gradient(145deg, rgba(255,255,255,.095), rgba(255,255,255,.035)); border: 1px solid rgba(255,255,255,.14); border-radius: 28px; backdrop-filter: blur(12px); }
.progress-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.progress-head strong { font-size: 1.2rem; }
.progress-tag { padding: 7px 11px; color: #bdf4de; background: rgba(44,191,131,.12); border: 1px solid rgba(89,220,168,.27); border-radius: 999px; font-size: .74rem; font-weight: 800; }
.timeline { display: grid; gap: 0; }
.timeline-item { position: relative; display: grid; grid-template-columns: 30px 1fr; gap: 16px; padding-bottom: 24px; color: #bfc5d0; font-size: .9rem; }
.timeline-item::before { content: ""; position: absolute; top: 19px; left: 9px; bottom: 0; width: 1px; background: rgba(255,255,255,.16); }
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item:last-child::before { display: none; }
.timeline-dot { width: 19px; height: 19px; margin-top: 2px; border: 2px solid rgba(255,255,255,.34); border-radius: 50%; }
.timeline-item.done .timeline-dot { background: #2cbf83; border-color: #2cbf83; box-shadow: inset 0 0 0 4px #16181e; }
.timeline-item.active .timeline-dot { background: #9bdcff; border-color: #9bdcff; box-shadow: 0 0 0 6px rgba(155,220,255,.1); }
.timeline-item b { display: block; color: #fff; }

.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 4px; color: var(--ink); background: transparent; border: 0; text-align: left; font-weight: 750; cursor: pointer; }
.faq-question span { flex: 0 0 auto; width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; transition: transform .2s ease; }
.faq-question[aria-expanded="true"] span { transform: rotate(45deg); }
.faq-answer { display: none; max-width: 760px; padding: 0 4px 24px; color: var(--muted); }
.faq-question[aria-expanded="true"] + .faq-answer { display: block; }

.cta-card { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 32px; padding: 48px; color: #fff; background: linear-gradient(110deg, #20232b, #15171c); border-radius: var(--radius-lg); }
.cta-card::before { content: ""; position: absolute; width: 260px; height: 260px; right: 120px; top: -150px; background: radial-gradient(circle, rgba(155,220,255,.35), transparent 70%); }
.cta-card p { margin-bottom: 0; color: #c7cbd3; }
.cta-card .hero-actions { position: relative; z-index: 1; }

.page-hero { position: relative; overflow: hidden; padding: 92px 0 78px; background: linear-gradient(145deg, #fff, #eef8ff); border-bottom: 1px solid var(--line); }
.page-hero::after { content: ""; position: absolute; width: 500px; height: 500px; right: -190px; top: -270px; background: radial-gradient(circle, rgba(236,85,168,.15), transparent 69%); }
.page-hero h1 { max-width: 920px; margin-bottom: 20px; font-size: clamp(2.6rem, 5vw, 5rem); }
.page-hero .lead { max-width: 760px; margin-bottom: 0; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 24px; color: #6d7582; font-size: .8rem; }
.breadcrumb a { text-decoration: none; }
.breadcrumb span + span::before { content: "/"; margin-right: 7px; color: #a9afb8; }

.product-detail-hero { overflow: hidden; padding: 74px 0 90px; background: linear-gradient(145deg, #fff 15%, #ecf8ff); }
.product-detail-grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: 62px; align-items: center; }
.detail-art { position: relative; min-height: 570px; display: grid; place-items: center; background: radial-gradient(circle, #fff, #e5f5ff 62%, #dceeff); border: 1px solid rgba(48,82,109,.09); border-radius: 40px; }
.detail-art::after { content: ""; position: absolute; left: 18%; right: 18%; bottom: 42px; height: 28px; background: radial-gradient(ellipse, rgba(28,42,64,.22), transparent 68%); filter: blur(9px); }
.detail-art img { position: relative; z-index: 1; width: auto; height: 480px; object-fit: contain; filter: drop-shadow(0 34px 24px rgba(28,41,64,.18)); }
.detail-copy h1 { font-size: clamp(3rem, 6vw, 5.4rem); }
.detail-copy .lead { margin-bottom: 28px; }
.fact-panel { display: grid; gap: 0; margin: 30px 0; border-top: 1px solid var(--line); }
.fact-row { display: grid; grid-template-columns: 150px 1fr; gap: 18px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.fact-row dt { color: #747c88; font-size: .84rem; font-weight: 700; }
.fact-row dd { margin: 0; font-weight: 650; }
.evidence-note { padding: 20px 22px; color: #3f4b56; background: #fff; border: 1px solid #cce6d9; border-left: 4px solid #2cbf83; border-radius: 14px; font-size: .88rem; }
.review-note { border-color: #f0dfbc; border-left-color: #df9f2e; }
.scene { overflow: hidden; min-height: 360px; background: #eef6fc; border-radius: var(--radius-lg); }
.scene img { width: 100%; height: 100%; min-height: 360px; object-fit: cover; }
.feature-card { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 22px; }
.feature-number { display: inline-flex; margin-bottom: 22px; color: #688294; font-size: .76rem; font-weight: 800; letter-spacing: .1em; }
.feature-card p { margin-bottom: 0; color: var(--muted); }
.spec-warning { margin-top: 25px; padding: 18px 20px; color: #555f6a; background: #f6f7f9; border-radius: 14px; font-size: .84rem; }

.status-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.status-card { padding: 25px; background: #fff; border: 1px solid var(--line); border-radius: 22px; }
.status-card .badge { margin-bottom: 22px; }
.status-card p { margin-bottom: 0; color: var(--muted); font-size: .9rem; }
.amazon-lock { display: grid; grid-template-columns: 1fr 1fr; gap: 42px; align-items: center; padding: 46px; color: #fff; background: #15171c; border-radius: var(--radius-lg); }
.amazon-lock p { color: #c8cbd2; }
.amazon-product-panel { min-height: 280px; display: grid; place-items: center; padding: 24px; overflow: hidden; background: radial-gradient(circle at 50% 44%, rgba(255,255,255,.2), rgba(155,220,255,.08) 48%, transparent 72%); border: 1px solid rgba(255,255,255,.12); border-radius: 24px; text-decoration: none; }
.amazon-product-panel img { width: auto; height: 250px; object-fit: contain; filter: drop-shadow(0 25px 22px rgba(0,0,0,.35)); transition: transform .25s ease; }
.amazon-product-panel:hover img { transform: translateY(-5px) scale(1.02); }
.lock-panel { display: grid; place-items: center; min-height: 260px; background: radial-gradient(circle, rgba(255,191,74,.18), transparent 65%); border: 1px solid rgba(255,255,255,.1); border-radius: 24px; }
.lock-icon { width: 82px; height: 82px; display: grid; place-items: center; color: #ffbf4a; border: 1px solid rgba(255,191,74,.4); border-radius: 50%; font-size: 2rem; }

.mail-template { padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: 22px; }
.mail-template pre { margin: 0; overflow-x: auto; color: #46505c; white-space: pre-wrap; font-family: inherit; font-size: .9rem; }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid var(--line); border-radius: 24px; overflow: hidden; }
.process-item { min-height: 205px; padding: 26px; background: #fff; }
.process-item + .process-item { border-left: 1px solid var(--line); }
.process-item small { display: block; margin-bottom: 30px; color: #688294; font-weight: 800; }
.process-item p { margin-bottom: 0; color: var(--muted); font-size: .88rem; }

.company-table { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); }
.company-table th, .company-table td { padding: 19px 22px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.company-table th { width: 160px; color: #69717d; background: #f7f8fa; font-size: .84rem; }
.company-table tr:last-child th, .company-table tr:last-child td { border-bottom: 0; }
.legal-note { padding: 24px; color: #505966; background: #f6f7f9; border-radius: 18px; font-size: .86rem; }

.newsletter-band {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 12% 18%, rgba(236,85,168,.17), transparent 29%),
    radial-gradient(circle at 92% 84%, rgba(75,120,255,.22), transparent 31%),
    linear-gradient(145deg, #f9fbff, #e8f7ff 58%, #f6efff);
}
.newsletter-band::before { content: "LETTER"; position: absolute; right: -35px; bottom: -75px; color: rgba(64,87,120,.045); font-size: clamp(7rem, 17vw, 14rem); font-weight: 900; letter-spacing: -.07em; line-height: 1; }
.newsletter-layout { position: relative; z-index: 1; display: grid; grid-template-columns: .86fr 1.14fr; gap: 64px; align-items: start; }
.newsletter-page-layout { grid-template-columns: .9fr 1.1fr; }
.newsletter-copy { padding-top: 28px; }
.plain-list { display: grid; gap: 11px; padding: 0; margin: 32px 0 0; list-style: none; }
.plain-list li { position: relative; padding-left: 28px; color: #495463; font-size: .92rem; }
.plain-list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: #277aa5; font-weight: 900; }
.newsletter-panel { padding: 34px; background: rgba(255,255,255,.9); border: 1px solid rgba(255,255,255,.96); border-radius: 30px; box-shadow: 0 30px 80px rgba(32,57,90,.13); backdrop-filter: blur(18px); }
.newsletter-panel-sticky { position: sticky; top: 132px; }
.newsletter-panel > h2 { margin: 15px 0 8px; font-size: 2rem; }
.newsletter-panel > p { color: var(--muted); }
.newsletter-form { display: grid; gap: 17px; }
.newsletter-form .form-row { display: grid; grid-template-columns: 1fr; gap: 14px; }
.newsletter-form .field { display: grid; gap: 7px; color: #3e4753; font-size: .81rem; font-weight: 750; }
.newsletter-form input[type="email"], .newsletter-form input[type="text"], .newsletter-form select {
  width: 100%; min-height: 50px; padding: 11px 14px; color: #242a33; background: #fff; border: 1px solid #d9dee7; border-radius: 13px; outline: 0;
}
.newsletter-form input:focus, .newsletter-form select:focus { border-color: #6caede; box-shadow: 0 0 0 4px rgba(108,174,222,.14); }
.consent-stack { display: grid; gap: 10px; padding: 15px 0 2px; border-top: 1px solid var(--line); }
.check { display: grid; grid-template-columns: 19px 1fr; gap: 10px; align-items: start; color: #4f5865; font-size: .79rem; line-height: 1.6; cursor: pointer; }
.check input { width: 17px; height: 17px; margin: 3px 0 0; accent-color: #222a35; }
.newsletter-submit { width: 100%; border: 0; cursor: pointer; }
.newsletter-submit[disabled] { opacity: .62; cursor: wait; transform: none; }
.form-note { margin: -2px 0 0; color: #737b87; font-size: .72rem; line-height: 1.65; }
.form-status { display: none; padding: 13px 15px; border-radius: 12px; font-size: .8rem; font-weight: 700; }
.form-status.is-visible { display: block; }
.form-status.is-success { color: #126847; background: #e7f8f0; }
.form-status.is-warning { color: #7a5108; background: #fff5df; }
.form-status.is-error { color: #8b2636; background: #ffedf0; }
.honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.newsletter-hero { background: radial-gradient(circle at 83% 22%, rgba(143,215,255,.5), transparent 28%), linear-gradient(145deg,#fff,#eff9ff 62%,#f8f1ff); }
.policy-body h2 { margin: 54px 0 14px; font-size: 1.55rem; letter-spacing: -.02em; }
.policy-body h2:first-of-type { margin-top: 24px; }
.policy-body p, .policy-body li { color: #555f6d; }
.policy-body li + li { margin-top: 8px; }
.policy-updated { color: #7b8390 !important; font-size: .8rem; }
.source-links { margin-top: 28px; font-size: .82rem; }
.source-links a { margin-left: 4px; }

.site-footer { padding: 64px 0 26px; color: #d0d4db; background: #111318; }
.footer-grid { display: grid; grid-template-columns: 1.3fr repeat(3, .7fr); gap: 38px; }
.footer-brand img { width: 150px; height: auto; margin-bottom: 20px; padding: 7px 9px; background: #fff; border-radius: 9px; }
.footer-brand p { max-width: 340px; color: #9299a5; font-size: .86rem; }
.footer-col b { display: block; margin-bottom: 14px; color: #fff; font-size: .88rem; }
.footer-col a { display: block; margin: 8px 0; color: #aeb4be; font-size: .84rem; text-decoration: none; }
.footer-col a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 46px; padding-top: 22px; color: #777f8b; border-top: 1px solid rgba(255,255,255,.09); font-size: .76rem; }
.mobile-cta { display: none; }

@media (max-width: 1040px) {
  .site-nav { gap: 16px; }
  .site-nav a { font-size: .84rem; }
  .hero-grid { grid-template-columns: .9fr 1.1fr; }
  .hero-product.ik { left: -4%; width: 195px; }
  .hero-product.pro { left: 26%; width: 245px; }
  .hero-product.duke { width: 160px; }
  .trust-layout { grid-template-columns: 1fr; }
  .newsletter-layout { gap: 40px; }
  .footer-grid { grid-template-columns: 1.2fr repeat(3, .8fr); }
}

@media (max-width: 860px) {
  .section { padding: 84px 0; }
  .grid-3, .status-board { grid-template-columns: 1fr; }
  .menu-toggle { display: block; }
  .site-nav {
    position: fixed;
    inset: 111px 0 auto;
    max-height: calc(100vh - 111px);
    display: none;
    align-items: stretch;
    flex-direction: column;
    gap: 0;
    padding: 18px 20px 30px;
    overflow: auto;
    background: rgba(255,255,255,.98);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 26px 60px rgba(30,36,50,.14);
  }
  .nav-open .site-nav { display: flex; }
  .site-nav a { padding: 14px 4px; font-size: 1rem; border-bottom: 1px solid var(--line); }
  .site-nav a:not(.nav-cta)::after { display: none; }
  .site-nav .nav-cta { margin-top: 14px; text-align: center; border-bottom: 0; }
  .hero { min-height: 0; }
  .hero-grid { grid-template-columns: 1fr; padding: 58px 0 50px; }
  .hero-copy { text-align: center; }
  .hero-copy .lead { margin-inline: auto; }
  .hero-actions { justify-content: center; }
  .status-link { margin-inline: auto; }
  .hero-stage { min-height: 455px; }
  .hero-product.ik { left: 7%; width: 180px; height: 355px; }
  .hero-product.pro { left: 34%; width: 210px; height: 410px; }
  .hero-product.duke { right: 6%; width: 135px; height: 330px; }
  .hero-note { right: 8px; top: 24px; }
  .service-strip { margin-top: 0; padding-top: 22px; background: #f6f9fc; }
  .service-grid { grid-template-columns: 1fr; }
  .service-item + .service-item { border-top: 1px solid var(--line); border-left: 0; }
  .product-card { min-height: 0; }
  .product-visual { height: 340px; }
  .product-visual img { height: 285px; }
  .channel-grid, .store-grid, .product-detail-grid, .amazon-lock, .newsletter-layout { grid-template-columns: 1fr; }
  .store-grid { gap: 40px; }
  .detail-copy { order: -1; }
  .detail-art { min-height: 500px; }
  .detail-art img { height: 420px; }
  .process-grid { grid-template-columns: 1fr 1fr; }
  .process-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--line); }
  .process-item:nth-child(4) { border-top: 1px solid var(--line); }
  .cta-card { grid-template-columns: 1fr; text-align: center; }
  .newsletter-panel-sticky { position: static; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 580px) {
  body { padding-bottom: 66px; }
  .container, .narrow { width: min(calc(100% - 28px), var(--container)); }
  .age-notice { min-height: 40px; font-size: .7rem; }
  .header-inner { height: 68px; }
  .brand img { width: 132px; }
  .site-nav { inset: 108px 0 auto; max-height: calc(100vh - 108px); }
  .section { padding: 68px 0; }
  .section-sm { padding: 54px 0; }
  .section-head { align-items: start; flex-direction: column; margin-bottom: 34px; }
  h1 { font-size: clamp(2.45rem, 13vw, 3.8rem); }
  .hero-copy h1 { font-size: clamp(2.7rem, 12vw, 3.7rem); }
  h2 { font-size: clamp(1.9rem, 10vw, 2.8rem); }
  .hero-grid { padding-top: 46px; }
  .hero-stage { min-height: 365px; margin-inline: -5px; }
  .hero-stage::before { width: 360px; height: 360px; }
  .hero-product.ik { left: 1%; width: 136px; height: 285px; bottom: 22px; }
  .hero-product.pro { left: 31%; width: 168px; height: 332px; bottom: 16px; }
  .hero-product.duke { right: 1%; width: 102px; height: 255px; bottom: 25px; }
  .hero-note { display: none; }
  .hero-actions .btn { width: 100%; }
  .service-item { padding: 20px 22px; }
  .product-visual { height: 290px; }
  .product-visual img { height: 240px; }
  .channel-card, .progress-card, .cta-card, .amazon-lock { padding: 28px 24px; border-radius: 24px; }
  .newsletter-panel { padding: 26px 20px; border-radius: 24px; }
  .newsletter-form .form-row { grid-template-columns: 1fr; }
  .doc-card { grid-template-columns: 112px 1fr; }
  .doc-card img { min-height: 190px; }
  .doc-copy { padding: 20px; }
  .landscape-doc { grid-template-columns: 1fr; }
  .landscape-doc .doc-preview-link { padding: 10px; border-right: 0; border-bottom: 1px solid var(--line); }
  .landscape-doc img { min-height: 0; }
  .page-hero { padding: 62px 0 58px; }
  .page-hero h1 { font-size: clamp(2.4rem, 13vw, 3.7rem); }
  .product-detail-hero { padding: 52px 0 66px; }
  .product-detail-grid { gap: 36px; }
  .detail-copy h1 { font-size: clamp(2.6rem, 14vw, 4rem); }
  .detail-art { min-height: 410px; border-radius: 28px; }
  .detail-art img { height: 350px; }
  .fact-row { grid-template-columns: 110px 1fr; gap: 12px; }
  .scene, .scene img { min-height: 280px; }
  .process-grid { grid-template-columns: 1fr; }
  .process-item + .process-item { border-top: 1px solid var(--line); border-left: 0; }
  .company-table, .company-table tbody, .company-table tr, .company-table th, .company-table td { display: block; width: 100%; }
  .company-table th { padding-bottom: 7px; border-bottom: 0; }
  .company-table td { padding-top: 7px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; }
  .mobile-cta { position: fixed; right: 0; bottom: 0; left: 0; z-index: 80; display: grid; grid-template-columns: 1fr 1fr; min-height: 66px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.95); border-top: 1px solid var(--line); backdrop-filter: blur(16px); }
  .mobile-cta a { display: grid; place-items: center; color: #333a45; font-size: .78rem; font-weight: 800; text-decoration: none; }
  .mobile-cta .mobile-amazon { color: #17191e; background: linear-gradient(180deg, #ffd66e, #ffb43e); border-radius: 999px; }
  .mobile-cta a:last-child { color: #fff; background: #17191e; border-radius: 999px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
