/* VSL01 redesign 2026-11-11: LP01承認基準（黒台紙＋金枠・赤CTA・金は見出しの一部と数字だけ）に統一 */
@font-face{font-family:"Noto Sans JP";src:url("/assets/noto-sans-jp-vsl.woff") format("woff");font-weight:100 900;font-display:swap}
@font-face{font-family:"Noto Serif JP";src:url("/assets/noto-serif-jp-vsl.woff") format("woff");font-weight:500 900;font-display:swap}
:root{
 --bg:#060606;--panel:#0f0e0c;--panel2:#15130f;--line:#3a3021;
 --white:#f5f2ea;--muted:#bdb6a8;--gold:#e6c67e;--gold-deep:#a8823c;
 --metal:linear-gradient(115deg,#8c6a2c 0%,#e9cf8c 22%,#fff3cf 38%,#c9a254 55%,#f2dc9d 75%,#9b7632 100%);
 --red:#c8172a;--red-deep:#8e0b19;
 --serif:"Noto Serif JP",serif;--sans:"Noto Sans JP",sans-serif;
 --gutter:20px;--col:390px;
}
*{box-sizing:border-box}
html{scroll-padding-top:16px}
body{margin:0;background:#020202 url("/assets/footer-black-marble.webp") center/600px;color:var(--white);font:16px/1.9 var(--sans);overflow-wrap:anywhere;-webkit-text-size-adjust:100%}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:700}
img{max-width:100%;height:auto;display:block}
em{font-style:normal}
a{color:inherit}
button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible{outline:3px solid #fff;outline-offset:4px}
.skip{position:absolute;left:10px;top:-100px;z-index:30;background:#fff;color:#111;padding:12px}
.skip:focus{top:10px}
.brand-rail,.contents{display:none}
.copy p+p,.microcopy p+p,.flow-copy p+p,.notice p+p,.invitation p+p,.rotation-note p+p,.risk-note p+p{margin-top:1em}

main{position:relative;max-width:var(--col);margin:0 auto;background:var(--bg);box-shadow:0 0 0 1px #1d1912,0 0 90px #000}

/* ---------- FV ---------- */
.hero{position:relative;background:var(--bg);overflow:hidden}
.target{position:relative;z-index:2;padding:12px 14px 13px;background:#000;text-align:center;font-size:13px;font-weight:700;line-height:1.7;border-bottom:2px solid transparent;border-image:var(--metal) 1}
.target em{font-size:15px;font-weight:900;background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.hero-visual{position:relative;aspect-ratio:4/4.5;overflow:hidden}
.hero-photo{width:100%;height:100%;object-fit:cover;object-position:50% 8%}
.hero-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;background:linear-gradient(180deg,#0000 0%,#0000 48%,#060606b3 72%,var(--bg) 100%)}
.hero-logo{position:absolute;left:0;right:0;bottom:6px;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center}
.hero-logo img{width:112px;height:auto;margin-bottom:-6px;filter:drop-shadow(0 3px 10px #000)}
.hero-brand{font-family:var(--serif);font-weight:900;font-size:46px;letter-spacing:.14em;line-height:1.05;padding-left:.14em;background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 2px #000) drop-shadow(0 0 14px #000)}
.hero-brand span{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:6px;font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.5em;padding-left:.5em;-webkit-text-fill-color:var(--gold);color:var(--gold)}
.hero-brand span:before,.hero-brand span:after{content:"";width:34px;height:1px;background:var(--gold)}
.hero-copy{position:relative;z-index:1;padding:30px var(--gutter) 6px;text-align:center}
.hero-copy h1{font-size:34px;line-height:1.5;font-weight:900;letter-spacing:-.02em;text-shadow:0 2px 12px #000}
.hero-copy h1 em{display:inline-block;margin-top:4px;font-size:1.06em;background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;filter:drop-shadow(0 2px 6px #000)}
.hero-description{margin:20px auto 0;display:inline-block;padding:10px 18px;font-family:var(--serif);font-size:15px;font-weight:700;line-height:1.7;color:#111;background:var(--metal);clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%)}

/* ---------- 動画 ---------- */
.video-section{padding:14px var(--gutter) 0}
.video-frame{position:relative;padding:2px;background:var(--metal);box-shadow:0 14px 40px #000c}
.video-poster{position:relative;aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:#000 url("/assets/campaign-hero.webp") 50% 78%/cover}
.video-poster:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;background:radial-gradient(ellipse at 50% 55%,#0000 0,#0007 70%)}
.video-poster[hidden]{display:none}
.cinema-orbit,.movie-wordmark,.movie-subtitle{display:none}
.movie-wordmark{position:relative;font-family:var(--serif);font-weight:700;font-size:28px;letter-spacing:.22em;line-height:1.2;color:#fff3cf}
.movie-subtitle{position:relative;font-size:11px;letter-spacing:.3em;color:var(--gold);margin-top:4px}
.play{position:relative;width:72px;height:72px;margin:0 0 8px;padding:0;border:3px solid #fff;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;box-shadow:0 0 0 6px #ffffff26,0 6px 20px #000}
.play span{font-size:22px;margin-left:4px;line-height:1}
.video-poster>p{position:relative;font-size:12px;font-weight:500;color:#fff}
.video-status{margin:0;padding:7px;text-align:center;font-size:12px;color:var(--muted);background:#0b0a08}
video{width:100%;aspect-ratio:16/9;display:block;background:#000}
video[hidden]{display:none}

/* ---------- 冒頭 ---------- */
.opening{padding:30px var(--gutter) 44px}
.opening-lead{font-family:var(--serif);font-size:19px;font-weight:700;line-height:1.85;text-align:center;margin-bottom:26px}
.takeaway{padding:22px 18px 8px;border:2px solid transparent;background:linear-gradient(var(--panel),var(--panel)) padding-box,var(--metal) border-box}
.takeaway h2{margin:-38px auto 14px;width:max-content;max-width:100%;padding:6px 16px;font-size:18px;line-height:1.5;color:#111;background:var(--metal)}

/* チェックリスト共通 */
.takeaway ul,.eligibility{list-style:none;padding:0;margin:0}
.takeaway li,.eligibility li{display:grid;grid-template-columns:24px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.8}
.takeaway li:last-child,.eligibility li:last-child{border-bottom:0}
.takeaway li>span,.eligibility li>span{width:24px;height:24px;margin-top:3px;display:grid;place-items:center;font-size:14px;font-weight:900;line-height:1;color:#111;background:var(--metal)}

/* ---------- CTA（LP01型：吹き出し＋赤ボタン） ---------- */
.cta-group{margin:34px 0 0}
.cta-copy{position:relative;padding-top:4px}
.bubble{position:relative;z-index:1;display:block;width:calc(100% - 28px);margin:0 auto -2px;padding:8px 12px;background:var(--metal);color:#111;font-size:13px;font-weight:900;line-height:1.6;text-align:center;border:1px solid #fff0c4;box-shadow:0 2px 0 #7a5a22}
.bubble:after{content:"";position:absolute;left:50%;bottom:-10px;transform:translateX(-50%);border:9px solid transparent;border-bottom:0;border-top:10px solid #d4ad60}
.cta{position:relative;overflow:hidden;width:100%;min-height:74px;padding:18px 54px 18px 24px;border:2px solid #f08a92;border-radius:0;color:#fff;font-size:22px;font-weight:900;line-height:1.4;letter-spacing:.04em;background:linear-gradient(180deg,#e1293c,var(--red) 55%,#a50f20);box-shadow:0 6px 0 var(--red-deep),0 12px 24px #c8172a59;text-shadow:0 1px 2px #0006;transition:transform .08s ease-out,box-shadow .08s ease-out;-webkit-user-select:none;user-select:none;touch-action:manipulation}
/* 押し込み：ボタン（光のリングごと）と吹き出しが一緒に沈む */
.cta-glow,.bubble{transition:transform .1s ease-out}
.cta-copy.is-pressed .cta-glow,.cta-copy.is-pressed .bubble{transform:translateY(6px)}.cta-copy:has(.cta:active) .cta-glow{transform:translateY(6px)}.cta-copy:has(.cta:active) .bubble{transform:translateY(6px)}
.cta-copy.is-pressed .cta{box-shadow:0 0 0 var(--red-deep),0 0 24px #ff2a3d99}.cta-copy:has(.cta:active) .cta{box-shadow:0 0 0 var(--red-deep),0 0 24px #ff2a3d99}
@media (hover:hover){.cta-copy:has(.cta:hover) .cta-glow{transform:translateY(6px)}.cta-copy:has(.cta:hover) .bubble{transform:translateY(6px)}.cta-copy:has(.cta:hover) .cta{box-shadow:0 0 0 var(--red-deep),0 0 24px #ff2a3d99}}
.cta>span{position:relative;z-index:1}
.cta>i{position:absolute;z-index:1;right:16px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:0}
.cta>i:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-38%,-50%);border-left:9px solid var(--red);border-top:6px solid transparent;border-bottom:6px solid transparent}
.cta:after{content:"";position:absolute;top:-20%;bottom:-20%;left:-40%;width:22%;background:linear-gradient(90deg,transparent,#ffffff59,transparent);transform:skewX(-20deg);pointer-events:none}
.microcopy{margin-top:16px;font-size:12px;line-height:1.85;color:var(--muted)}

/* ---------- セクション見出し ---------- */
.section{padding:56px var(--gutter);border-top:1px solid #241e15}
.section-head{margin-bottom:34px;text-align:center}
.section-head .eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--gold)}
.section-head .eyebrow:before,.section-head .eyebrow:after{content:"";width:22px;height:1px;background:var(--gold-deep)}
.section-head h2{padding:22px 14px;font-size:25px;line-height:1.6;border:2px solid transparent;background:linear-gradient(#000000b3,#000000b3) padding-box,url("/assets/footer-black-marble.webp") center/320px padding-box,var(--metal) border-box;box-shadow:0 10px 30px #000a}
.section-head h2 small{display:block;font-family:var(--sans);font-size:14px;font-weight:500;line-height:1.8;color:var(--white)}
.section-head h2 small:first-child{margin-bottom:8px}
.section-head h2 small:last-child{margin-top:8px}
.section-head h2 strong{display:block;font-weight:900;background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.separator{font-size:.6em}

/* ---------- 章（1〜3） ---------- */
.chapter{margin-top:40px;background:var(--panel);border:1px solid #2f281c}
.chapter-title{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:start;padding:20px 18px;background:linear-gradient(180deg,#1b1812,#0f0e0c);border-bottom:2px solid transparent;border-image:var(--metal) 1}
.num{display:grid;place-items:center;width:52px;height:52px;font-family:var(--serif);font-size:28px;font-weight:900;line-height:1;color:#111;background:var(--metal)}
.chapter h3{font-size:19px;line-height:1.65}
.chapter>.copy,.chapter>.records,.chapter>.rotation-note,.chapter>.source-notes,.chapter>.environment-tags{margin-left:18px;margin-right:18px}
.chapter>.copy{padding:22px 0 26px;font-size:16px}

.strategy-scene{position:relative;background:#000}
.strategy-scene img{width:100%;aspect-ratio:1200/955;object-fit:cover}
.strategy-scene figcaption{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #3a3021}
.strategy-scene figcaption span{padding:10px 4px 12px;text-align:center;font:700 19px/1.3 var(--serif);color:var(--gold)}
.strategy-scene figcaption span+span{border-left:1px solid #3a3021}
.strategy-scene small{display:block;margin-bottom:4px;font:500 11px/1.6 var(--sans);letter-spacing:.12em;color:var(--white)}

.proof-band{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#000}
.proof-band figure{margin:0}
.proof-band img{width:100%;aspect-ratio:1;object-fit:cover}

/* 実績カード：LP01型（金の帯＋黒地＋大きい数字） */
.records{display:grid;gap:20px;margin-top:22px}
.record{background:#070706;border:2px solid transparent;background:linear-gradient(#070706,#070706) padding-box,var(--metal) border-box}
.record-medal{display:none}
.record-top{padding:0}
.record-top>span{display:block;padding:10px 14px;text-align:center;font:900 17px/1.5 var(--serif);color:#141008;background:var(--metal)}
.record-top>p{padding:18px 14px 6px;text-align:center;font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--white)}
.record-top strong{display:block;margin-top:2px;font-family:var(--serif);font-size:22px;font-weight:900;line-height:1.2;letter-spacing:0;background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.record-top strong span{font-size:62px;letter-spacing:-.03em}
.record-facts{display:grid;grid-template-columns:1fr 1fr;margin:12px 14px 0;border:1px solid #3a3021}
.record-facts>span{padding:10px 8px;text-align:center;font-size:12px;line-height:1.7;color:var(--muted)}
.record-facts>span+span{border-left:1px solid #3a3021;display:grid;place-content:center;color:var(--white);font-size:13px}
.record-facts b{display:block;font-family:var(--serif);font-size:22px;font-weight:900;color:var(--white)}
.record .copy{padding:18px 14px 20px;font-size:15px}
.rotation-note{margin-top:20px;padding:16px;font-size:15px;background:#000;border:1px solid #3a3021;border-left:4px solid var(--gold)}
.source-notes{padding:20px 0 26px;font-size:11px;line-height:1.9;color:#a9a294}
.source-notes>.copy+.copy{margin-top:12px}

.environment-photo{width:100%;aspect-ratio:16/9;object-fit:cover}
.env-extra{margin:2px 0 0}
.env-extra img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:50% 35%}
.environment-tags{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}
.environment-tags span{padding:8px 0;text-align:center;font-size:13px;font-weight:700;color:var(--gold);border:1px solid var(--gold-deep);background:#000}
.chapter.environment>.copy{padding-top:18px}

/* ---------- 個別面談 ---------- */
.consult-photo{width:100%;aspect-ratio:16/9;object-fit:cover}
.consult-intro{background:var(--panel);border:1px solid #2f281c}
.consult-intro .copy{padding:20px 18px 22px;font-size:16px}
.consult-items{counter-reset:none;margin-top:22px;display:grid;gap:16px}
.consult-item{padding:20px 18px 22px;background:var(--panel);border:1px solid #2f281c;border-top:3px solid var(--gold)}
.consult-item h3{margin-bottom:14px;font-size:19px;line-height:1.6;color:var(--gold)}
.consult-item .copy{font-size:15px}
.invitation{margin-top:26px;padding:24px 20px;font-family:var(--serif);font-size:16px;font-weight:600;line-height:1.95;border:2px solid transparent;background:linear-gradient(#000000c7,#000000c7) padding-box,url("/assets/footer-black-marble.webp") center/320px padding-box,var(--metal) border-box}
.invitation p:first-child{color:var(--gold);font-weight:700}

/* ---------- 導入の流れ ---------- */
.flow-diagram{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;list-style:none;margin:0 0 26px;padding:0}
.flow-diagram li{position:relative;padding:12px 4px 14px;text-align:center;color:var(--gold);background:var(--panel);border:1px solid var(--gold-deep)}
.flow-diagram li+li:before{content:"";position:absolute;left:-11px;top:50%;transform:translateY(-50%);border-left:7px solid var(--gold);border-top:6px solid transparent;border-bottom:6px solid transparent}
.step-no{display:block;font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--muted)}
.flow-diagram svg{display:block;width:70%;margin:6px auto 4px}
.flow-diagram strong{font:900 17px/1.4 var(--serif);color:var(--white)}
.flow-details{background:var(--panel);border:1px solid #2f281c;padding:4px 18px}
.flow-copy{padding:18px 0;font-size:15px}
.flow-copy+.flow-copy{border-top:1px solid var(--line)}
.notice{margin-top:16px;padding:14px 16px;font-size:13px;background:#000;border-left:4px solid var(--gold)}

/* ---------- 向いている方・クロージング ---------- */
.future-band{background:var(--panel);border:2px solid transparent;background:linear-gradient(var(--panel),var(--panel)) padding-box,var(--metal) border-box}
.future-band>img{width:100%;aspect-ratio:16/9;object-fit:cover}
.future-band .eligibility{padding:6px 18px 10px}
.stock-grade{filter:saturate(.85) contrast(1.04)}
.closing-visual{position:relative;margin:40px calc(var(--gutter) * -1) 24px}
.closing-visual img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:55% 40%;-webkit-mask-image:linear-gradient(180deg,#0000 0%,#000 22%,#000 70%,#0000 100%),linear-gradient(90deg,#0000 0%,#000 14%,#000 86%,#0000 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,#0000 0%,#000 22%,#000 70%,#0000 100%),linear-gradient(90deg,#0000 0%,#000 14%,#000 86%,#0000 100%);mask-composite:intersect}
.closing-visual:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;background:linear-gradient(180deg,#0000 35%,#060606f2 88%,var(--bg))}
.closing-visual h2{position:absolute;left:0;right:0;bottom:6px;z-index:1;padding:0 var(--gutter);text-align:center;font-size:27px;font-weight:900;line-height:1.55;text-shadow:0 2px 12px #000}
.closing>.copy{text-align:center;font-size:16px}

/* ---------- フッター ---------- */
footer{padding:44px var(--gutter) 50px;text-align:center;border-top:2px solid transparent;border-image:var(--metal) 1;background:#000000b0 url("/assets/footer-black-marble.webp") center/400px;background-blend-mode:multiply}
footer .brand{font-family:var(--serif);font-size:34px;font-weight:700;letter-spacing:.14em;line-height:1.3;background:var(--metal);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
footer .brand span{display:block;margin-top:4px;font-family:var(--sans);font-size:11px;letter-spacing:.3em;-webkit-text-fill-color:var(--gold)}
.risk-note{max-width:520px;margin:24px auto;text-align:left;font-size:12px;line-height:1.85;color:var(--muted)}
.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:22px}
.legal-links button{padding:0;border:0;background:none;color:#d9d3c6;font-size:12px;text-decoration:underline;text-underline-offset:3px}
.copyright{margin-top:22px;font-size:11px;color:#8d877a}

/* ---------- ダイアログ ---------- */
dialog{width:calc(100% - 40px);max-width:420px;padding:36px 24px 26px;color:var(--white);background:#0f0e0c;border:2px solid var(--gold-deep)}
dialog::backdrop{background:#000c}
dialog h2{margin:6px 0 12px;font-size:21px;color:var(--gold)}
dialog p{font-size:14px}
.dialog-close{position:absolute;right:8px;top:6px;padding:0 8px;font-size:26px;color:#fff;background:none;border:0}
.dialog-ok{width:100%;margin-top:22px;padding:10px;color:#fff;background:var(--red);border:1px solid #f08a92}

/* ---------- 実績の比較バー（LP01と同じ型） ---------- */
.comparison-bars{margin:16px 14px 0;padding:14px 12px 16px;border:1px solid #3a3021;background:repeating-linear-gradient(90deg,#121110 0,#121110 calc(25% - 1px),#2a251c calc(25% - 1px),#2a251c 25%)}
.comparison-bars>div{display:grid;grid-template-columns:1fr auto;gap:6px 9px;margin-bottom:14px}
.comparison-bars>div:last-child{margin-bottom:0}
.comparison-bars span{grid-column:1;grid-row:1;font-size:12px;font-weight:700;color:var(--muted)}
.comparison-bars b{grid-column:2;grid-row:1;font-size:14px;font-weight:900;color:var(--white)}
.comparison-bars>div:last-child b{color:var(--gold)}
.bar-track{grid-column:1/-1;grid-row:2;height:18px;background:#050505;box-shadow:inset 0 2px 4px #000}
.bar-track i{display:block;height:100%;width:var(--bar);transform-origin:left;background:linear-gradient(#f9e5b4,#d4ad60 45%,#987033 50%,#ddba73);box-shadow:0 3px 0 #5a411e}
.comparison-bars>div:first-child .bar-track i{background:linear-gradient(#e2ded4,#8d887d);box-shadow:0 3px 0 #45423b}
.bar-note{margin-top:10px;font-size:11px;line-height:1.8;color:#a9a294}

/* ---------- 動き（OS設定を尊重。本文は隠さない） ---------- */
@media (prefers-reduced-motion:no-preference){
 /* FV */
 .target{animation:mv-drop .7s cubic-bezier(.16,1,.3,1) both}
 .hero-photo{animation:mv-kv 2.6s cubic-bezier(.16,1,.3,1) both}
 .hero-logo{animation:mv-rise 1s .35s cubic-bezier(.16,1,.3,1) both}
 .hero-brand,.hero-copy h1 em,.section-head h2 strong,.record-top strong,.hero-description{background-size:220% 100%;animation:mv-shine 5.5s 1.2s ease-in-out infinite}
 .hero-copy h1{animation:vsl-in .8s ease-out both}
 /* 動画の再生ボタン */
 .play:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;inset:-3px;border-radius:50%;border:2px solid #fff;animation:mv-ripple 2s ease-out infinite;pointer-events:none}
 /* CTA：ゆっくり拡大縮小＋光（押し込みは transform 側なので干渉しない） */
 .cta-copy{animation:mv-breathe 2.4s ease-in-out infinite;transform-origin:50% 100%}
 .cta-copy.is-pressed,.cta-copy:has(.cta:active){animation:none;scale:1}
 @media (hover:hover){.cta-copy:has(.cta:hover){animation:none;scale:1}}
 .cta:after{animation:vsl-sheen 3.6s 1s ease-in-out infinite}
 /* 比較バー・数字 */
 .comparison-bars .bar-track i{transform:scaleX(0);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
 .record.is-counted .bar-track i{transform:scaleX(1)}
 .record.is-counted .comparison-bars>div:last-child .bar-track i{transition-delay:.25s}
 .record.is-counted{animation:mv-glow 1.6s ease-out}
 /* スクロールで出てくるもの（見出し・画像・アイコン。本文は対象外） */
 .motion .rv{transition:opacity .7s cubic-bezier(.16,1,.3,1) var(--d,0s),transform .9s cubic-bezier(.16,1,.3,1) var(--d,0s)}
 .motion .rv-up:not(.in){opacity:0;transform:translateY(22px)}
 .motion .rv-img{transition-duration:.9s,1.6s}
 .motion .rv-img:not(.in){opacity:0;transform:scale(1.12)}
 .strategy-scene,.proof-band figure,.env-extra,.consult-intro,.future-band,.closing-visual,.chapter.environment{overflow:hidden}
 .motion .rv-pop:not(.in){opacity:0;transform:scale(.3) rotate(-25deg)}
 .motion .rv-pop.in{transition-timing-function:cubic-bezier(.34,1.56,.64,1)}
 .motion .rv-line:before,.motion .rv-line:after{transition:width .8s cubic-bezier(.16,1,.3,1) .2s}
 .motion .rv-line:not(.in):before,.motion .rv-line:not(.in):after{width:0}
 .motion .section-head h2.rv-up:not(.in){transform:translateY(16px) scale(.96)}
 @keyframes vsl-in{from{opacity:.2;transform:translateY(14px)}to{opacity:1;transform:none}}
 @keyframes vsl-sheen{0%{left:-40%}35%,100%{left:130%}}
 @keyframes mv-drop{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:none}}
 @keyframes mv-kv{from{transform:scale(1.12);filter:brightness(.6)}to{transform:none;filter:none}}
 @keyframes mv-rise{from{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:none}}
 @keyframes mv-shine{0%,55%{background-position:100% 0}85%,100%{background-position:0 0}}
 @keyframes mv-ripple{from{transform:scale(1);opacity:.8}to{transform:scale(1.6);opacity:0}}
 @keyframes mv-breathe{0%,100%{scale:1}50%{scale:1.035}}
 @keyframes mv-glow{0%{box-shadow:0 0 0 #e6c67e00}35%{box-shadow:0 0 28px #e6c67e88}100%{box-shadow:0 0 0 #e6c67e00}}
}

/* ---------- 幅別 ---------- */
@media (max-width:359px){
 :root{--gutter:16px}
 .hero-copy h1{font-size:28px}
 .hero-brand{font-size:38px}
 .target{font-size:12px}
 .target em{font-size:13px}
 .hero-description{font-size:13px}
 .section-head h2{font-size:21px}
 .chapter h3,.consult-item h3{font-size:17px}
 .record-top strong span{font-size:50px}
 .cta{font-size:19px;padding-left:16px}
 .bubble{font-size:12px}
 .strategy-scene figcaption span{font-size:16px}
 .flow-diagram strong{font-size:15px}
 .closing-visual h2{font-size:23px}
}

.bubble,.chapter h3,.consult-item h3,.section-head h2,.opening-lead{text-wrap:balance}


/* ---------- FV：タイトルは頭のあたり、動画は画像の下部に重ねる（2026-11-11） ---------- */
.hero-visual{isolation:isolate;aspect-ratio:4/4.9}
.hero-photo{object-position:50% 30%}
.hero-visual:after{z-index:1;background:linear-gradient(180deg,#000c 0%,#0006 16%,#0000 32%,#0000 62%,#060606d9 86%,var(--bg) 100%)}
#hero-fx{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;mix-blend-mode:screen}
.hero-logo{top:14px;bottom:auto;z-index:3}
.hero-logo img{width:92px;filter:drop-shadow(0 0 12px #ffcf6a) drop-shadow(0 3px 10px #000)}
.hero-brand{font-size:44px}
.hero-lead{position:relative;z-index:4;margin-top:-132px}
.hero-lead .hero-copy{padding:0 var(--gutter) 22px}
.hero-lead .hero-copy h1{text-shadow:0 2px 10px #000,0 0 26px #000,0 0 46px #000}
.hero-visual:after{background:linear-gradient(180deg,#000c 0%,#0006 16%,#0000 32%,#0000 50%,#060606b3 70%,#060606f2 86%,var(--bg) 100%)}
.video-section{position:relative;z-index:4;padding-top:6px}
/* CTA：回転する光のリング＋強い発光 */
@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}
.cta-glow{position:relative;isolation:isolate}
.cta-glow:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;inset:-4px;z-index:-1;background:conic-gradient(from var(--ang),#ff2238,#ffd77a,#fff6dc,#ff2238,#7d0010,#ffd77a,#ff2238)}
.cta-glow:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;inset:-14px;z-index:-2;background:conic-gradient(from var(--ang),#ff2238,#ffd77a,#ff2238,#ffb347,#ff2238);filter:blur(16px);opacity:.85}
.cta-glow .cta{box-shadow:0 6px 0 var(--red-deep),0 0 30px #ff2a3daa,0 0 60px #ffcf6a66}
.cta-copy.is-pressed .cta-glow .cta{box-shadow:0 0 0 var(--red-deep),0 0 24px #ff2a3d99}.cta-copy:has(.cta:active) .cta-glow .cta{box-shadow:0 0 0 var(--red-deep),0 0 24px #ff2a3d99}
@media (hover:hover){.cta-copy:has(.cta:hover) .cta-glow .cta{box-shadow:0 0 0 var(--red-deep),0 0 24px #ff2a3d99}}
@media (prefers-reduced-motion:no-preference){
 .hero-logo{animation:mv-rise 1s .35s cubic-bezier(.16,1,.3,1) both}
 .hero-logo img{animation:mv-logo 2.8s ease-in-out infinite}
 .hero-brand{animation:mv-shine 3.2s .6s ease-in-out infinite,mv-brand-glow 2.8s ease-in-out infinite}
 .target{animation:mv-drop .7s cubic-bezier(.16,1,.3,1) both,mv-border 2.4s 1s ease-in-out infinite}
 .video-frame{animation:mv-frame 2.6s ease-in-out infinite}
 .cta-glow:before{animation:mv-ang 2.2s linear infinite}
 .cta-glow:after{animation:mv-ang 2.2s linear infinite,mv-halo 1.4s ease-in-out infinite}
 @keyframes mv-ang{to{--ang:360deg}}
 @keyframes mv-halo{0%,100%{opacity:.7;top:-12px;right:-12px;bottom:-12px;left:-12px;inset:-12px}50%{opacity:1;top:-24px;right:-24px;bottom:-24px;left:-24px;inset:-24px}}
 @keyframes mv-logo{0%,100%{filter:drop-shadow(0 0 10px #ffcf6a) drop-shadow(0 3px 10px #000)}50%{filter:drop-shadow(0 0 26px #ffe39a) drop-shadow(0 3px 10px #000)}}
 @keyframes mv-brand-glow{0%,100%{filter:drop-shadow(0 2px 2px #000) drop-shadow(0 0 10px #000)}50%{filter:drop-shadow(0 2px 2px #000) drop-shadow(0 0 18px #ffcf6a99)}}
 @keyframes mv-border{0%,100%{box-shadow:0 0 0 #ffd77a00}50%{box-shadow:0 4px 22px #ffd77a55}}
 @keyframes mv-frame{0%,100%{box-shadow:0 14px 40px #000c,0 0 0 #ffd77a00}50%{box-shadow:0 14px 40px #000c,0 0 26px #ffd77a77}}
}

/* ---------- 2026-11-11 ロゴ（LP01と同じ）・FV詰め・選択色・下線演出 ---------- */
::selection{background:#d81f33;color:#fff}
::-moz-selection{background:#d81f33;color:#fff}
.hero-logo{top:12px;right:12px;left:auto;bottom:auto;width:132px;display:block}
.hero-logo img{width:100%;height:auto;margin:0;filter:drop-shadow(0 2px 6px #000) drop-shadow(0 0 10px #000a)}
.hero-copy h1{line-height:1.3}
.hero-copy h1 em{margin-top:2px}
.hero-lead{margin-top:-150px}
.hero-lead .hero-copy{padding-bottom:14px}
.hero-description{margin-top:14px}
.video-section{padding-top:0}
footer .brand{background:none;-webkit-text-fill-color:initial}
footer .brand img{display:block;width:210px;height:auto;margin:0 auto}
footer .brand span{margin-top:8px}
/* 重要部分の下線：セクションに入ると左から一気に引かれる */
.hl{background:linear-gradient(transparent 66%,#d81f33d9 66%,#d81f33d9 92%,transparent 92%) no-repeat 0 0/100% 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-weight:700}
@media (prefers-reduced-motion:no-preference){
 .motion .hl{background-size:0% 100%;transition:background-size .45s cubic-bezier(.2,.9,.2,1) var(--d,0s)}
 .motion .hl.in{background-size:100% 100%}
 .hero-logo{animation:mv-fade 1s .3s ease-out both}
 .hero-logo img{animation:mv-logo2 3s ease-in-out infinite}
 @keyframes mv-fade{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
 @keyframes mv-logo2{0%,100%{filter:drop-shadow(0 2px 6px #000) drop-shadow(0 0 6px #ffcf6a55)}50%{filter:drop-shadow(0 2px 6px #000) drop-shadow(0 0 16px #ffd77acc)}}
}

/* 背景（大理石）の上を走る雷。ページの列（不透明）の後ろ */
#bolt-bg{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none;mix-blend-mode:screen}
main{z-index:1}

/* FV：見出し・説明・動画をさらに上へ（2026-11-11） */
.hero-visual{aspect-ratio:4/4.6}
.hero-photo{object-position:50% 22%}
.hero-visual:after{background:linear-gradient(180deg,#000c 0%,#0006 14%,#0000 28%,#0000 42%,#060606b3 62%,#060606f2 80%,var(--bg) 100%)}
.hero-lead{margin-top:max(-200px,-51vw)}
.hero-lead .hero-copy{padding-bottom:12px}
.hero-description{margin-top:12px}

/* ---------- PC：左右の空きに VSL動画（左）と予約ボタン（右）。動画はメインと連動 ---------- */
.side-rail{display:none}
@media (min-width:1100px){
 .side-rail{display:block;position:fixed;top:50%;transform:translateY(-50%);z-index:2;width:min(320px,calc(50vw - 195px - 60px));padding:20px 18px 22px;text-align:center;border:2px solid transparent;background:linear-gradient(#000000c7,#000000c7) padding-box,url("/assets/footer-black-marble.webp") center/320px padding-box,var(--metal) border-box;box-shadow:0 20px 50px #000c}
 .side-left{right:calc(50% + 195px + 30px)}
 .side-cta{left:calc(50% + 195px + 30px)}
 .rail-logo{width:170px;height:auto;margin:0 auto 10px;filter:drop-shadow(0 2px 6px #000)}
 .rail-label{margin-bottom:10px;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--gold)}
 .side-rail .play{width:58px;height:58px}
 .side-rail .cta-group{margin:8px 0 0}
 .side-rail .cta{min-height:64px;padding:14px 48px 14px 16px;font-size:19px}
 .side-rail .bubble{font-size:12px}
 .side-rail .microcopy{text-align:left;font-size:11px}
}

/* スマホだけ：見出し・説明・動画をさらに上へ（PCは据え置き） */
@media (max-width:767px){
 .hero-visual{aspect-ratio:4/4.25}
 .hero-photo{object-position:50% 16%}
 .hero-lead{margin-top:max(-215px,-55vw)}
 .hero-copy h1{font-size:31px}
 .hero-description{margin-top:10px;padding:8px 16px;font-size:14px}
 .target{padding:9px 12px 10px}
}
@media (max-width:359px){.hero-description{font-size:12px;padding:8px 12px}}

.rail-player[hidden]{display:none}
@media (min-width:1100px){.rail-player{margin-bottom:14px}}

/* スマホの横揺れ防止：はみ出した光・演出を列の中で切り、横スクロールを出さない（2026-11-11） */
html,body{max-width:100%;overflow-x:hidden}
@supports (overflow:clip){html,body{overflow-x:clip}main{overflow-x:clip}}
html{touch-action:pan-y pinch-zoom}
#bolt-bg{width:100%}

/* 吹き出し・ボタンの文字は明朝。吹き出しは普通の太さ（2026-11-11） */
.bubble{font-family:var(--serif);font-weight:500}
.cta{font-family:var(--serif);font-weight:700}

/* スマホだけ：下部追従ボタン（PCの左側に箱があるときは出さない）。拡大縮小なし、光のみ */
.sticky-cta{display:none}
@media (max-width:1099px){
 .sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:20;max-width:var(--col);margin:0 auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px));background:#060606eb;border-top:1px solid #6b5326;transform:translateY(110%);transition:transform .35s cubic-bezier(.16,1,.3,1)}
 .sticky-cta.is-shown{transform:none}
 .sticky-cta .cta{min-height:56px;padding:12px 48px 12px 16px;font-size:19px;border-radius:0;box-shadow:0 4px 0 var(--red-deep)}
 .sticky-cta .cta.is-pressed,.sticky-cta .cta:active{transform:translateY(4px);box-shadow:0 0 0 var(--red-deep)}
 body{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}
}

/* PC：右側に目次（LP01と同じ型）。現在のセクションを金色で表示 */
.desktop-toc{display:none}
@media (min-width:1100px){
 .desktop-toc{display:block;position:fixed;top:50%;transform:translateY(-50%);left:calc(50% + 195px + 40px);z-index:2;width:min(220px,calc(50vw - 195px - 60px));max-height:calc(100vh - 60px);overflow:auto}
 .desktop-toc>p{font:11px/1.5 Arial,sans-serif;letter-spacing:.2em;color:#d3b578;text-shadow:0 1px 3px #000}
 .desktop-toc>p span{display:block;margin-top:9px;font:600 12px/1.8 var(--sans);letter-spacing:.06em;color:#b7aa92}
 .desktop-toc ol{list-style:none;padding:0;margin:22px 0 0;border-left:1px solid #4a3d2b}
 .desktop-toc a{position:relative;display:flex;align-items:center;gap:11px;padding:10px 0 10px 17px;color:#b6afa2;font-size:13px;line-height:1.5;text-decoration:none;text-shadow:0 1px 3px #000;transition:color .15s}
 .desktop-toc a span{font:10px/1 Arial,sans-serif;color:#837765}
 .desktop-toc a:before{content:"";position:absolute;left:-4px;width:5px;height:5px;border-radius:50%;border:1px solid #786447;background:#141310}
 .desktop-toc a:hover,.desktop-toc a[aria-current]{color:#f0ce87;font-weight:700}
 .desktop-toc a[aria-current]:before{background:#d3b578;border-color:#d3b578;box-shadow:0 0 0 4px #d3b57822}
}

/* PCの左の箱と右の目次をLP01と同じ位置へ（本文から離す）。左のボタンは拡大縮小なし・光が流れるだけ（2026-11-11） */
@media (min-width:1100px){
 .side-left{right:auto;left:calc(50% - 565px);width:270px}
 .desktop-toc{left:auto;right:18px;width:180px}
 .side-rail .cta-copy{animation:none!important;scale:1}
 .side-rail .cta-glow:before,.side-rail .cta-glow:after{display:none}
 .side-rail .cta-glow .cta{box-shadow:0 6px 0 var(--red-deep),0 8px 18px #c8172a55}
}
@media (min-width:1100px) and (max-width:1190px){.side-left{left:24px;width:240px}}
/* 目次は左の箱と左右対称に（本文から約100px） */
@media (min-width:1100px){.desktop-toc{right:auto;left:calc(50% + 295px);width:220px}}
@media (min-width:1100px) and (max-width:1190px){.desktop-toc{left:auto;right:24px;width:200px}}
