@charset "UTF-8";
:root{
  --bg:#f3f7f8;
  --paper:#fff;
  --ink:#17242b;
  --muted:#667780;
  --deep:#12313d;
  --blue:#2378ff;
  --aqua:#16c7c9;
  --lime:#b9e769;
  --sun:#ffbf43;
  --coral:#ff6f59;
  --line:rgba(18,49,61,.14);
  --shadow:0 22px 58px rgba(18,49,61,.13);
}
*{box-sizing:border-box}
body{
  margin:0;
  color:var(--ink);
  background:
    radial-gradient(circle at 0% 0%,rgba(35,120,255,.14),transparent 30%),
    radial-gradient(circle at 100% 10%,rgba(22,199,201,.16),transparent 28%),
    linear-gradient(180deg,#eef4f6 0%,#f8fbf7 100%);
  font-family:"Klee One","Yomogi",-apple-system,"Hiragino Sans",sans-serif;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
button{font:inherit}
.prep-page{width:100%;overflow:hidden}
.prep-kicker{margin:0;display:inline-flex;align-items:center;gap:8px;color:var(--blue);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-family:"Caveat",sans-serif}
.prep-kicker:before{content:"";width:30px;height:3px;background:currentColor}
.prep-section{padding:64px 16px}
.prep-section__head{margin-bottom:26px}
.prep-section__title{margin:10px 0 0;color:var(--deep);font-size:34px;line-height:1.1;letter-spacing:-.06em;font-weight:950}
.prep-section__lead{margin:16px 0 0;color:var(--muted);font-size:14px;line-height:1.9;font-weight:700}
.prep-btn{min-height:54px;padding:0 16px;display:inline-grid;place-items:center;font-size:13px;font-weight:950;letter-spacing:.03em;border:0;cursor:pointer}
.prep-btn--main{background:var(--deep);color:#fff;box-shadow:0 16px 34px rgba(18,49,61,.25)}
.prep-btn--sub{background:#fff;color:var(--deep);border:1px solid var(--line)}

/* SECTION SEPARATOR */
.sep{display:flex;align-items:center;padding:2px 20px;overflow:hidden;background:transparent}
.sep:before,.sep:after{content:"";flex:1;border-top:1.5px dashed rgba(18,49,61,.13)}
.sep-icon{
  flex-shrink:0;margin:0 12px;
  width:34px;height:34px;border-radius:50%;
  background:#fff;border:1.5px dashed rgba(18,49,61,.18);
  display:grid;place-items:center;
  font-size:15px;line-height:1;
}

/* HERO */
.prep-hero{position:relative;overflow:hidden}
.prep-hero-image-wrap{position:relative;width:100%;line-height:0}
.prep-hero-img{width:100%;height:auto;display:block;object-fit:cover}
.prep-hero-btn-wrap{position:absolute;bottom:36px;left:20px;right:20px;display:flex;justify-content:center}

/* Uiverse button */
/* ── Hero Button (from Uiverse.io by StealthWorm) ── */
.uvh-btn{z-index:0;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:4px;width:min(340px,calc(100% - 24px));height:6.2rem;border-top:2px double #ffffff92;border-bottom:none;border-left:2px outset #0000007e;border-right:2px solid #e94fcab3;border-radius:1.8rem;background-origin:border-box;background-clip:content-box,border-box;background:linear-gradient(64.14deg,#b938ff 0%,#daa1f1 10%,#f179ec 15.58%,#fefffe 28.15%,#fc9f9d 45.31%,#ed8664 53.18%,#ff7423 58.79%,#ff875f 65.28%,#fbabae 75.48%,#fcbde5 85.31%,#e94fca 100.29%);position:relative;text-decoration:none;animation:uvhHueLoop 9s linear infinite,uvhBtnFloat 3.2s ease-in-out infinite}
@keyframes uvhHueLoop{
  0%  {filter:hue-rotate(0deg)   saturate(2) drop-shadow(0 6px 8px rgba(0,0,0,.22))}
  100%{filter:hue-rotate(-360deg) saturate(2) drop-shadow(0 6px 8px rgba(0,0,0,.22))}
}
@keyframes uvhBtnFloat{
  0%,100%{transform:translateY(0);box-shadow:0 6px 14px rgba(0,0,0,.22)}
  50%    {transform:translateY(-10px);box-shadow:0 14px 22px rgba(0,0,0,.18)}
}
.uvh-btn:hover{animation:uvhHueLoop 3s linear infinite,uvhBtnFloat .8s ease-in-out infinite;transform:scale(1.07)}
.uvh-glass{z-index:10;display:flex;border:double 2px rgba(255,255,255,.263);backdrop-filter:blur(2px);filter:blur(1px) brightness(1.1) saturate(50%) hue-rotate(30deg);border-radius:1.6rem;width:100%;height:100%;padding:1rem;background-color:#ffffff1c;background-origin:content-box;background-clip:content-box,border-box;box-shadow:inset 0 0 10px #a84fd88d;position:absolute;inset:0}
.uvh-inner-glass{z-index:10;display:flex;border-left:1px solid rgba(255,255,255,.564);border-right:1px solid #fff;backdrop-filter:blur(40px);box-shadow:inset 0 0 20px rgba(246,142,213,.86);-webkit-backdrop-filter:blur(5px);border-radius:.6rem;width:100%;height:100%;background-origin:border-box;background-clip:content-box,border-box;filter:brightness(140%)}
.uvh-title{
  position:absolute;z-index:90;
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:.38rem;
}
.uvh-btn-sub{font-size:.95rem;font-weight:600;letter-spacing:.04em;color:#0d2a55;line-height:1;font-family:-apple-system,"Hiragino Sans","Yu Gothic",sans-serif;text-shadow:0 1px 4px rgba(255,255,255,.5)}
.uvh-btn-main{font-size:1.45rem;font-weight:700;letter-spacing:.02em;line-height:1.15;color:#0d2a55;font-family:-apple-system,"Hiragino Sans","Yu Gothic",sans-serif;text-shadow:0 1px 4px rgba(255,255,255,.5)}
.uvh-smoke{z-index:90;inset:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:absolute}
.uvh-cloud{position:absolute;border-radius:9999px}
.uvh-cloud:nth-of-type(1){filter:blur(3px) drop-shadow(-2px 0 3px #fff);left:1.6rem;top:.2rem;width:10rem;height:1rem;background:linear-gradient(to right,rgba(255,255,255,.868) 30%,transparent 100%)}
.uvh-cloud:nth-of-type(2){left:2.5rem;top:2rem;width:4rem;height:2rem;background:radial-gradient(circle,rgba(255,255,255,1) 0%,rgba(255,255,255,0) 70%);filter:drop-shadow(-10px 10px 3px #d277cc)}
.uvh-cloud:nth-of-type(3){left:10rem;top:.5rem;width:5rem;height:5rem;background:radial-gradient(circle,rgba(255,255,255,1) 0%,rgba(255,255,255,0) 50%);filter:drop-shadow(-5px -5px 7px #ff5500b4)}
.uvh-cloud:nth-of-type(4){left:17rem;top:1rem;width:3.4rem;height:4rem;background:radial-gradient(circle,rgba(255,255,255,1) 0%,transparent 70%);filter:drop-shadow(-1px 0 30px #ff002f)}
.uvh-cloud:nth-of-type(5){top:.5rem;width:100%;height:.7rem;background:radial-gradient(circle,rgba(255,255,255,.293) 30%,rgba(255,181,21,.164) 50%,rgba(234,44,255,.419) 60%,rgba(255,255,255,0) 90%)}
.uvh-cloud:nth-of-type(6){left:17.6rem;top:-.1rem;width:2rem;height:2rem;background:radial-gradient(circle,rgba(255,255,255,1) 0%,rgba(255,255,255,0) 70%)}
.uvh-cloud:nth-of-type(7){left:7.6rem;transform:rotate(-35deg);top:-2rem;width:2rem;height:5rem;background:radial-gradient(circle,rgba(255,255,255,.614) 0%,#fd87602d 60%,rgba(255,255,255,0) 100%)}
.uvh-cloud:nth-of-type(8){left:5.5rem;top:-1rem;width:3rem;height:3rem;background:radial-gradient(circle,rgba(255,255,255,.614) 0%,rgba(255,255,255,0) 80%)}
.uvh-cloud:nth-of-type(9){filter:blur(1px) drop-shadow(0 0 3px #fff);left:.5rem;bottom:1.4rem;width:100%;height:.1rem;background:radial-gradient(circle,rgba(255,255,255,1) 50%,rgba(255,255,255,0) 90%)}
.uvh-cloud:nth-of-type(10){filter:blur(1px) drop-shadow(0 0 3px #fff);left:.3rem;top:1rem;width:1rem;height:3rem;border-top:1px solid #fff;border-right:1px solid #fff;background:linear-gradient(to bottom,rgba(255,255,255,.419) 0%,transparent 50%)}
.uvh-cloud:nth-of-type(11){border-radius:100%;filter:blur(4px) drop-shadow(0 -10px 10px #ff5107fb);left:12rem;top:3.5rem;width:5rem;height:1.8rem;background:radial-gradient(circle,rgba(255,255,255,.773) 10%,rgba(255,255,255,.159) 60%)}
.uvh-cloud:nth-of-type(12){filter:blur(2px) drop-shadow(0 -10px 10px #f36b9d);left:11rem;top:1.1rem;width:6rem;height:.3rem;background:radial-gradient(circle,rgba(255,255,255,.973) 30%,rgba(255,255,255,.159) 100%)}
.uvh-cloud:nth-of-type(13){filter:blur(3px) drop-shadow(-15px 0 5px #f8283d9e);left:8rem;top:3.7rem;width:5.5rem;height:1.7rem;background:radial-gradient(circle,rgba(255,255,255,.762) 10%,rgba(255,255,255,.159) 70%)}
.uvh-cloud:nth-of-type(14){filter:blur(1px) drop-shadow(10px -10px 10px #6f0424);transform:rotate(-35deg);left:.5rem;bottom:.3rem;width:.5rem;height:1.2rem;background:radial-gradient(circle,rgba(255,255,255,.848) 0%,rgba(255,255,255,.159) 60%)}
.prep-board{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:14px;transform:rotate(-1.5deg)}
.prep-board__head{display:flex;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:950;letter-spacing:.12em}
.prep-board__list{display:grid;gap:8px;padding-top:12px}
.prep-board__row{display:grid;grid-template-columns:44px 1fr 50px;gap:10px;align-items:center;padding:12px 10px;background:#f4f8f8;border:1px solid var(--line)}
.prep-board__code{width:34px;height:34px;display:grid;place-items:center;background:var(--deep);color:#fff;font-size:12px;font-weight:950}
.prep-board__main{color:var(--deep);font-size:14px;font-weight:900}
.prep-board__tag{color:var(--blue);font-size:11px;font-weight:950;text-align:right}

/* INTRO */
.prep-intro{background:#f7f4ef;padding:40px 20px 64px}
.prep-intro-inner{display:flex;flex-direction:column}
.prep-intro-img-wrap{position:relative;width:100%;line-height:0;overflow:hidden;aspect-ratio:4/3;border-radius:14px}
.prep-intro-img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.prep-intro-img-tag{
  position:absolute;top:18px;left:18px;z-index:2;
  padding:6px 13px;
  background:rgba(255,255,255,.78);backdrop-filter:blur(10px);
  font-size:9px;font-weight:700;letter-spacing:.22em;color:var(--deep);
}
.prep-intro-body{
  position:relative;z-index:1;
  margin-top:24px;
  padding:0 4px;
}
.prep-intro-eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.prep-intro-eyebrow span{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--coral);white-space:nowrap;font-family:"Caveat",sans-serif}
.prep-intro-eyebrow:after{content:"";flex:1;height:1px;background:var(--coral);opacity:.22}
.prep-intro-title{
  margin:0 0 22px;
  color:var(--deep);font-size:clamp(22px,6.5vw,30px);
  line-height:1.52;letter-spacing:-.04em;font-weight:600;
}
.prep-intro-title em{
  font-style:normal;
  background:linear-gradient(transparent 58%,rgba(255,191,67,.5) 58%);
}
.prep-intro-lead{
  position:relative;
  margin:22px 0 0;padding:22px 20px 20px;
  background:#fffdf8;
  border:1px solid rgba(18,49,61,.14);
  box-shadow:inset 0 0 0 4px #fffdf8,inset 0 0 0 5px rgba(18,49,61,.09);
  font-size:13.5px;line-height:2.05;font-weight:400;color:#5a5040;
  font-family:"Klee One","Yomogi",sans-serif;
}
.prep-intro-lead:before{
  content:"\002709";
  position:absolute;top:-16px;left:50%;transform:translateX(-50%);
  padding:0 10px;background:#f7f4ef;
  font-size:20px;line-height:1;color:var(--coral);
}

/* WORRIES */
.prep-worries{background:#eef4f6;padding:40px 20px 64px}
.prep-worries-img-wrap{position:relative;width:100%;line-height:0;overflow:hidden;aspect-ratio:4/3;border-radius:14px;margin-bottom:36px;box-shadow:0 10px 36px rgba(18,49,61,.11)}
.prep-worries-img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.prep-worries-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.prep-worries-eyebrow:before{content:"";width:22px;height:2px;background:var(--coral);border-radius:2px}
.prep-worries-eyebrow span{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--coral);font-family:"Caveat",sans-serif}
.prep-worries-title{margin:0 0 12px;font-size:clamp(23px,6.5vw,30px);line-height:1.5;letter-spacing:-.04em;font-weight:700;color:var(--deep)}
.prep-worries-title em{font-style:normal;color:var(--coral)}
.prep-worries-lead{
  position:relative;
  margin:32px 0 0;padding:22px 20px 20px;
  background:#fefcf6;
  border:1px solid rgba(18,49,61,.16);
  box-shadow:inset 0 0 0 4px #fefcf6,inset 0 0 0 5px rgba(18,49,61,.1);
  font-size:14px;line-height:1.9;font-weight:400;color:#4a5862;
}
.prep-worries-lead:before{
  content:"\002709";
  position:absolute;top:-16px;left:50%;transform:translateX(-50%);
  padding:0 10px;background:#eef4f6;
  font-size:20px;line-height:1;color:var(--aqua);
}
.prep-worry-list{counter-reset:wc;display:grid;gap:10px}
.prep-worry-item{
  counter-increment:wc;
  display:flex;align-items:center;gap:14px;
  padding:15px 18px;
  background:#fff;border-radius:14px;
  box-shadow:0 2px 12px rgba(18,49,61,.07);
  font-size:14px;font-weight:500;color:var(--ink);line-height:1.55;
}
.prep-worry-item:before{
  content:counter(wc);flex-shrink:0;
  width:32px;height:32px;border-radius:50%;
  display:grid;place-items:center;
  font-size:12px;font-weight:800;color:#fff;
  background:var(--coral);
}
.prep-worry-item:nth-child(2):before{background:var(--blue)}
.prep-worry-item:nth-child(3):before{background:var(--aqua)}
.prep-worry-item:nth-child(4):before{background:var(--sun);color:var(--deep)}
.prep-worry-item:nth-child(5):before{background:var(--coral)}
.prep-worry-item:nth-child(6):before{background:var(--blue)}

/* FIRST READ ── エディトリアル誌面スタイル */
.prep-first-read{background:#faf7f0;padding:40px 20px 64px}
/* 画像：テキストと重ならない独立配置 */
.prep-first-read__img-wrap{
  position:relative;width:100%;line-height:0;
  overflow:hidden;aspect-ratio:3/2;
  border-radius:10px;
  box-shadow:0 8px 28px rgba(18,49,61,.12);
  margin-bottom:28px;
}
.prep-first-read__img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
/* ゴールド帯タグ（画像左下） */
.prep-first-read__img-tag{
  position:absolute;bottom:0;left:0;right:0;z-index:2;
  padding:9px 16px;
  background:linear-gradient(90deg,rgba(18,49,61,.72),rgba(18,49,61,.32) 80%,transparent);
  font-size:9px;font-weight:700;letter-spacing:.28em;color:#fff;
}
/* 本文：完全に画像の下（重なりなし） */
.prep-first-read__body{padding:0}
.prep-first-read__eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.prep-first-read__eyebrow span{font-size:13px;font-weight:700;letter-spacing:.12em;color:#b88730;white-space:nowrap;font-family:"Caveat",sans-serif}
.prep-first-read__eyebrow:after{content:"";flex:1;height:1px;background:#b88730;opacity:.25}
.prep-first-read__title{
  margin:0 0 14px;
  color:var(--deep);font-size:clamp(22px,6.5vw,30px);
  line-height:1.5;letter-spacing:-.04em;font-weight:700;
}
.prep-first-read__title em{font-style:normal;background:linear-gradient(transparent 62%,rgba(255,191,67,.42) 62%)}
.prep-first-read__lead{
  position:relative;
  margin:0 0 24px;padding:22px 20px 20px;
  background:#fffef8;
  border:1px solid rgba(184,135,48,.22);
  box-shadow:inset 0 0 0 4px #fffef8,inset 0 0 0 5px rgba(184,135,48,.18);
  font-size:14px;line-height:2;font-weight:400;color:#5a5040;
  font-family:"Klee One","Yomogi",sans-serif;
}
.prep-first-read__lead:before{
  content:"\002709";
  position:absolute;top:-16px;left:50%;transform:translateX(-50%);
  padding:0 10px;background:#faf7f0;
  font-size:20px;line-height:1;color:#b88730;
}
/* 記事リスト：罫線スタイル（上のセクションと差別化） */
.prep-first-read__list{counter-reset:fr;border-top:1px solid rgba(18,49,61,.1);margin-bottom:20px}
.prep-first-read__item{
  counter-increment:fr;
  display:flex;align-items:center;gap:14px;
  padding:16px 4px;
  border-bottom:1px solid rgba(18,49,61,.1);
  color:var(--ink);
  transition:background .18s ease;
}
.prep-first-read__item:hover{background:rgba(184,135,48,.05)}
.prep-first-read__item:before{
  content:counter(fr,decimal-leading-zero);
  flex-shrink:0;
  font-size:22px;font-weight:950;letter-spacing:-.04em;
  color:rgba(18,49,61,.18);font-family:"Caveat",sans-serif;
  line-height:1;width:30px;text-align:center;
}
.prep-first-read__item-title{margin:0;font-size:13.5px;line-height:1.6;font-weight:500;color:var(--ink);flex:1}
.prep-first-read__item-arrow{font-size:14px;color:#b88730;opacity:.6;flex-shrink:0;transition:transform .18s ease,opacity .18s ease}
.prep-first-read__item:hover .prep-first-read__item-arrow{transform:translateX(3px);opacity:1}
.prep-first-read__more{margin:22px 0 0;text-align:center}
.prep-first-read__link{
  display:inline-flex;align-items:center;gap:8px;
  color:#b88730;font-size:13px;font-weight:700;letter-spacing:.04em;
  border-bottom:1.5px solid currentColor;padding-bottom:2px;
  transition:opacity .2s ease;
}
.prep-first-read__link:hover{opacity:.7}

/* TRIP DOORS パーティクル */
.doors-particles{position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.doors-particles span{position:absolute;bottom:-16px;opacity:0;animation:doorsHiraHira ease-in-out infinite;will-change:transform,opacity}
/* 色：ピンク / スカイブルー / ラベンダー */
.doors-particles span:nth-child(3n+1){color:rgba(245,160,195,.8)}
.doors-particles span:nth-child(3n+2){color:rgba(120,190,230,.8)}
.doors-particles span:nth-child(3n){color:rgba(210,170,235,.8)}
/* 各パーティクルの位置・サイズ・タイミング */
.doors-particles span:nth-child(1){left:5%;font-size:16px;animation-duration:9s;animation-delay:0s}
.doors-particles span:nth-child(2){left:14%;font-size:10px;animation-duration:11s;animation-delay:1.6s}
.doors-particles span:nth-child(3){left:24%;font-size:18px;animation-duration:8s;animation-delay:0.4s}
.doors-particles span:nth-child(4){left:35%;font-size:8px;animation-duration:10s;animation-delay:3.2s}
.doors-particles span:nth-child(5){left:48%;font-size:20px;animation-duration:8.5s;animation-delay:1.1s}
.doors-particles span:nth-child(6){left:60%;font-size:11px;animation-duration:12s;animation-delay:2.3s}
.doors-particles span:nth-child(7){left:70%;font-size:14px;animation-duration:9.5s;animation-delay:4.4s}
.doors-particles span:nth-child(8){left:80%;font-size:9px;animation-duration:10.5s;animation-delay:0.7s}
.doors-particles span:nth-child(9){left:90%;font-size:16px;animation-duration:7.5s;animation-delay:3s}
.doors-particles span:nth-child(10){left:40%;font-size:12px;animation-duration:11s;animation-delay:5.5s}
.doors-particles span:nth-child(11){left:66%;font-size:8px;animation-duration:8.5s;animation-delay:2s}
.doors-particles span:nth-child(12){left:10%;font-size:13px;animation-duration:12s;animation-delay:6.8s}
.doors-particles span:nth-child(13){left:55%;font-size:10px;animation-duration:9s;animation-delay:1.8s}
.doors-particles span:nth-child(14){left:76%;font-size:17px;animation-duration:10s;animation-delay:4s}
.doors-particles span:nth-child(15){left:30%;font-size:9px;animation-duration:11.5s;animation-delay:7.2s}
@keyframes doorsHiraHira{
  0%{transform:translateY(0) rotate(-20deg) scale(.8);opacity:0}
  8%{opacity:.7}
  42%{transform:translateY(-180px) translateX(18px) rotate(140deg) scale(1)}
  58%{transform:translateY(-260px) translateX(-8px) rotate(220deg) scale(.9)}
  92%{opacity:.45}
  100%{transform:translateY(-420px) translateX(12px) rotate(380deg) scale(.5);opacity:0}
}
/* タイトル周辺ヒラヒラ（短距離・近距離フラッター） */
.doors-particles span.t{bottom:auto;animation-name:doorsHiraTitle}
.doors-particles span.t:nth-child(16){left:2%;top:18%;font-size:13px;animation-duration:4.2s;animation-delay:.3s}
.doors-particles span.t:nth-child(17){left:18%;top:6%;font-size:10px;animation-duration:3.5s;animation-delay:1.1s}
.doors-particles span.t:nth-child(18){left:32%;top:22%;font-size:16px;animation-duration:5s;animation-delay:.7s}
.doors-particles span.t:nth-child(19){left:52%;top:4%;font-size:9px;animation-duration:3.8s;animation-delay:2s}
.doors-particles span.t:nth-child(20){left:68%;top:20%;font-size:15px;animation-duration:4.6s;animation-delay:.2s}
.doors-particles span.t:nth-child(21){left:82%;top:8%;font-size:11px;animation-duration:3.2s;animation-delay:1.5s}
.doors-particles span.t:nth-child(22){left:92%;top:26%;font-size:14px;animation-duration:4s;animation-delay:2.8s}
.doors-particles span.t:nth-child(23){left:44%;top:16%;font-size:8px;animation-duration:3.6s;animation-delay:.9s}
@keyframes doorsHiraTitle{
  0%{transform:translateY(0) rotate(-12deg) scale(.6);opacity:0}
  18%{opacity:.75}
  45%{transform:translateY(-22px) translateX(14px) rotate(80deg) scale(1.05);opacity:.6}
  72%{transform:translateY(-42px) translateX(-10px) rotate(160deg) scale(.85);opacity:.5}
  100%{transform:translateY(-68px) translateX(6px) rotate(240deg) scale(.3);opacity:0}
}

/* TRIP DOORS ── 空と扉 */
.prep-doors{background:linear-gradient(150deg,#b8dff6 0%,#daeef8 20%,#ede8f8 50%,#fce5ef 78%,#fdf5f8 100%);color:var(--deep);position:relative;overflow:hidden;padding:22px 16px 28px}
.prep-doors:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 8% 18%,rgba(255,255,255,.8),transparent 36%),radial-gradient(ellipse at 85% 10%,rgba(245,210,228,.65),transparent 32%),radial-gradient(ellipse at 50% 0%,rgba(200,235,255,.5),transparent 48%),radial-gradient(ellipse at 30% 85%,rgba(240,200,218,.38),transparent 36%),radial-gradient(ellipse at 88% 80%,rgba(180,220,248,.4),transparent 32%)}
/* 浮遊する星デコレーション */
.prep-doors:after{content:"\002726";position:absolute;bottom:18px;right:20px;font-size:28px;color:rgba(240,160,195,.35);text-shadow:0 0 18px rgba(240,140,165,.4);pointer-events:none;animation:doorsSecFloat 4.5s ease-in-out infinite;z-index:0}
@keyframes doorsSecFloat{0%,100%{transform:translateY(0) rotate(0deg);opacity:.35}50%{transform:translateY(-6px) rotate(15deg);opacity:.6}}
.prep-doors .prep-section__head{position:relative;z-index:2;margin-bottom:20px;text-align:center}
/* KICKERをグラデーションバッジに */
.prep-doors .prep-kicker{
  display:inline-flex;align-items:center;gap:7px;
  background:linear-gradient(135deg,#f9ccd8 0%,#f090b0 100%);
  color:#fff;padding:6px 22px;border-radius:30px;
  font-size:11px;font-weight:950;letter-spacing:.18em;
  box-shadow:0 4px 18px rgba(240,100,150,.32),0 0 0 2.5px rgba(255,255,255,.7),0 0 28px rgba(240,140,165,.18);
  margin-bottom:14px;text-shadow:0 1px 4px rgba(160,40,80,.2)
}
.prep-doors .prep-kicker:before{
  content:"\002726";width:auto;height:auto;background:transparent;
  border-radius:0;font-size:9px;opacity:.9;display:inline;border:none
}
.prep-doors .prep-kicker:after{content:"\002726";font-size:9px;opacity:.9}
/* タイトル */
.prep-doors .prep-section__title{
  color:var(--deep);font-size:clamp(21px,5.8vw,28px);
  margin-top:0;line-height:1.42;letter-spacing:-.04em;
  position:relative;display:inline-block
}
/* タイトル下：装飾ライン */
.prep-doors .prep-section__title:after{
  content:"";display:block;margin:12px auto 0;
  width:72px;height:2.5px;border-radius:2px;
  background:linear-gradient(90deg,transparent,#f5b8cc 30%,#90c8e8 70%,transparent);
  box-shadow:0 0 10px rgba(240,140,165,.4)
}
/* タイトル下の星列 */
.prep-doors .prep-section__head:after{
  content:"\002726  \0000B7  \002726  \0000B7  \002726";display:block;
  font-size:11px;font-weight:400;letter-spacing:8px;
  color:#e898a8;opacity:.7;margin-top:8px;
  text-shadow:0 0 8px rgba(240,140,165,.4)
}
.prep-doors .prep-section__lead{display:none}

/* ゲームボックス */
.doors-game{position:relative;z-index:2;background:rgba(255,255,255,.82);border:1.5px solid rgba(235,165,195,.35);box-shadow:0 10px 38px rgba(80,150,210,.14),0 0 0 4px rgba(255,255,255,.72),0 0 28px rgba(240,160,195,.14);padding:32px 14px 18px;overflow:visible;border-radius:18px;backdrop-filter:blur(12px);display:block}
/* コーナー星 */
.doors-game:before{display:block;content:"\002726";position:absolute;top:-13px;left:18px;font-size:22px;color:#f5b8cc;text-shadow:0 0 14px rgba(240,140,165,.75),0 0 28px rgba(240,140,165,.3);z-index:10;animation:doorsCornerStar 3.2s ease-in-out infinite}
.doors-game:after{display:block;content:"\002726";position:absolute;top:-13px;right:18px;font-size:22px;color:#88c8e8;text-shadow:0 0 14px rgba(90,171,204,.75),0 0 28px rgba(90,171,204,.3);z-index:10;animation:doorsCornerStar 3.2s ease-in-out infinite;animation-delay:1.4s}
@keyframes doorsCornerStar{0%,100%{transform:scale(1) rotate(0deg);opacity:.85}50%{transform:scale(1.25) rotate(22deg);opacity:1}}

/* ポータル：全幅、高さはコンテンツ次第 */
.doors-portal{position:relative;width:100%;perspective:1100px}

/* 破風アーチ */
.doors-portal:before{content:"";position:absolute;top:-28px;left:18%;right:18%;height:30px;background:linear-gradient(180deg,#f9ccd8,#e898a8);border-radius:50% 50% 0 0/100% 100% 0 0;box-shadow:0 0 20px rgba(240,140,165,.5),0 4px 10px rgba(240,140,165,.25);z-index:8;pointer-events:none}
/* アーチ頂点の花 */
.doors-portal:after{content:"\00273F";position:absolute;top:-42px;left:50%;transform:translateX(-50%);color:#e898a8;font-size:18px;text-shadow:0 0 14px rgba(240,140,165,.75),0 0 28px rgba(240,140,165,.3);z-index:9;pointer-events:none;animation:doorsFlowerPulse 2.8s ease-in-out infinite}
@keyframes doorsFlowerPulse{0%,100%{transform:translateX(-50%) scale(1);opacity:.85}50%{transform:translateX(-50%) scale(1.18);opacity:1}}

/* 光エフェクト */
.doors-portal__rays{position:absolute;left:50%;top:50%;width:110%;height:110%;transform:translate(-50%,-50%) scale(.3);background:repeating-conic-gradient(from 0deg,rgba(120,195,235,0) 0deg,rgba(120,195,235,0) 8deg,rgba(120,195,235,.18) 8deg,rgba(120,195,235,.18) 12deg);opacity:0;transition:opacity .8s ease;pointer-events:none;z-index:0;-webkit-mask:radial-gradient(circle,#000 18%,transparent 64%);mask:radial-gradient(circle,#000 18%,transparent 64%)}
.doors-portal__glow{position:absolute;left:0;top:0;width:100%;height:100%;background:radial-gradient(ellipse at 50% 38%,rgba(255,255,255,.96),rgba(200,235,255,.7) 30%,rgba(160,210,240,.28) 58%,transparent);opacity:0;transition:opacity .5s ease .18s;pointer-events:none;z-index:1;filter:blur(6px)}
/* 扉の内側：relative でコンテンツ高さに追従 */
.doors-portal__inner{position:relative;width:100%;background:linear-gradient(160deg,#e6f5fc 0%,#d8ecf8 55%,#e8e4f8 100%);border:2px solid rgba(180,190,240,.38);box-shadow:0 0 0 1px rgba(255,255,255,.6),inset 0 0 32px rgba(200,235,255,.45),0 4px 20px rgba(100,150,220,.12);z-index:2;overflow:hidden;border-radius:4px;min-height:220px}
/* 鏡板ライン */
.doors-portal__inner:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(180deg,rgba(255,255,255,.18) 0,rgba(255,255,255,.18) 1px,transparent 1px,transparent 22px);pointer-events:none;z-index:0}
/* 扉番号の透かし */
.doors-portal__wm{position:absolute;right:10px;bottom:4px;font-size:80px;font-weight:950;line-height:1;color:rgba(100,180,220,.08);pointer-events:none;z-index:1;user-select:none}
.doors-portal__panels{position:absolute;inset:0;z-index:4;transform-style:preserve-3d}
.doors-portal__panel{position:absolute;top:0;width:50%;height:100%;background:linear-gradient(160deg,#f5faff 0%,#e8f4fc 52%,#d8ecf8 100%);border:1px solid rgba(180,220,240,.45);box-shadow:inset 0 0 22px rgba(200,235,255,.28);transition:transform .92s cubic-bezier(.62,0,.2,1);backface-visibility:hidden}
.doors-portal__panel:before{content:"";position:absolute;inset:10% 12%;border:1px solid rgba(180,220,240,.38);border-radius:2px;pointer-events:none}
.doors-portal__panel i{position:absolute;top:50%;width:6px;height:34px;background:linear-gradient(180deg,rgba(180,215,235,.85),rgba(120,170,205,.55));box-shadow:0 0 6px rgba(100,170,210,.22);transform:translateY(-50%);border-radius:3px}
.doors-portal__panel--left{left:0;transform-origin:left center;border-right:1px solid rgba(180,220,240,.35)}
.doors-portal__panel--left i{right:3px;border-radius:3px 0 0 3px}
.doors-portal__panel--right{right:0;transform-origin:right center}
.doors-portal__panel--right i{left:3px;border-radius:0 3px 3px 0}
.doors-game.is-open .doors-portal__panel--left{transform:rotateY(-122deg)}
.doors-game.is-open .doors-portal__panel--right{transform:rotateY(122deg)}
.doors-game.is-open .doors-portal__panels{pointer-events:none}
.doors-game.is-open .doors-portal__glow{opacity:1}
.doors-game.is-finale .doors-portal__glow{background:radial-gradient(ellipse at 50% 40%,#fff,rgba(210,240,255,.94) 20%,rgba(160,215,240,.5) 50%,rgba(240,190,210,.18) 72%,transparent);filter:blur(3px)}
.doors-game.is-finale .doors-portal__rays{opacity:.8;animation:doorsRaysSpin 22s linear infinite}
@keyframes doorsRaysSpin{to{transform:translate(-50%,-50%) scale(.3) rotate(360deg)}}

/* STARTボタン */
.doors-portal__start{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:92px;height:92px;border-radius:50%;border:0;background:radial-gradient(circle at 50% 34%,#fff0f5,#f5a0b8 55%,#e07090);color:#5a1828;font-weight:950;cursor:pointer;box-shadow:0 10px 30px rgba(240,140,165,.42),0 0 0 2px rgba(240,180,200,.45),inset 0 -4px 12px rgba(0,0,0,.1);transition:opacity .42s ease,transform .42s ease}
.doors-portal__start-ring{position:absolute;inset:-10px;border:1.5px solid rgba(240,140,165,.42);border-radius:50%;animation:doorsStartPulse 2.3s ease-out infinite}
.doors-portal__start-ring:nth-child(2){inset:-20px;animation-delay:.75s;border-color:rgba(240,140,165,.2)}
.doors-portal__start-label{font-size:15px;letter-spacing:.06em}
.doors-portal__start-text{font-size:8px;font-weight:900;opacity:.75;white-space:nowrap}
@keyframes doorsStartPulse{0%{transform:scale(1);opacity:.72}100%{transform:scale(1.6);opacity:0}}
.doors-game:not(.is-start) .doors-portal__start{opacity:0;transform:translate(-50%,-50%) scale(.45);pointer-events:none}

/* 花びらスパーク */
.doors-portal__sparks{position:absolute;left:50%;top:50%;z-index:5;pointer-events:none}
.doors-portal__sparks span{position:absolute;left:0;top:0;width:5px;height:5px;border-radius:50%;background:#f5b8cc;box-shadow:0 0 6px rgba(240,140,165,.8);opacity:0}
.doors-game.is-finale .doors-portal__sparks span{animation:doorsSpark 1.5s ease-out var(--sd,0s) forwards}
@keyframes doorsSpark{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--sx,0),var(--sy,0)) scale(.1)}}

/* コンテンツ（扉の内側） */
.doors-content{position:relative;z-index:3;padding:18px 16px 16px}
.doors-game__stage{display:none;position:relative;z-index:2}
.doors-game__stage.is-active{display:block}
.doors-content .doors-game__stage{opacity:0;transform:translateY(14px);transition:opacity .42s ease .22s,transform .52s cubic-bezier(.16,.84,.34,1) .22s}
.doors-game.is-open .doors-content .doors-game__stage.is-active{opacity:1;transform:none}
.doors-game__stage--start{display:none!important}
.doors-game.is-finale.is-open .doors-game__stage--result.is-active{animation:doorsResultPop .78s cubic-bezier(.16,.84,.34,1) .28s both}
@keyframes doorsResultPop{0%{opacity:0;transform:translateY(16px)}60%{opacity:1}100%{opacity:1;transform:none}}

.doors-game__label{display:inline-flex;margin-bottom:5px;color:#5aabcc;font-size:10px;font-weight:950;letter-spacing:.15em;text-transform:uppercase;font-family:"Caveat",sans-serif}
.doors-game__title{margin:0;color:var(--deep);font-size:clamp(17px,4.8vw,22px);line-height:1.2;letter-spacing:-.03em;font-weight:950}
.doors-game__text{margin:5px 0 9px;color:var(--muted);font-size:12px;line-height:1.6;font-weight:700}
.doors-game__btn{width:100%;min-height:40px;border:0;background:linear-gradient(135deg,#7ac0dc,#5aabcc);color:#fff;font-size:13px;font-weight:950;cursor:pointer;box-shadow:0 6px 18px rgba(90,171,204,.26);border-radius:22px}
.doors-game__btn--reset{margin-top:8px;min-height:36px;background:rgba(90,171,204,.08);color:#5aabcc;border:1px solid rgba(90,171,204,.24);box-shadow:none;border-radius:22px;font-size:12px}
.doors-progress{height:3px;background:rgba(90,171,204,.14);margin-bottom:8px;overflow:hidden;border-radius:2px}
.doors-progress span{display:block;height:100%;background:linear-gradient(90deg,#e898a8,#a8d8f0,#5aabcc);transition:width .35s ease;border-radius:2px}
.doors-options{display:grid;gap:5px}
.doors-options button{position:relative;width:100%;min-height:42px;padding:8px 12px 8px 28px;border:1px solid rgba(100,180,220,.18);background:rgba(255,255,255,.6);color:var(--deep);text-align:left;font-size:12.5px;line-height:1.36;font-weight:900;cursor:pointer;border-radius:8px;transition:background .18s ease,border-color .18s ease,transform .14s ease}
.doors-options button:before{content:"\0025C6";position:absolute;left:9px;top:50%;transform:translateY(-50%);color:rgba(90,171,204,.5);font-size:7px}
.doors-options button:hover{background:rgba(200,232,248,.58);border-color:rgba(90,171,204,.36);transform:translateX(2px)}
/* 結果 */
.doors-keys{display:flex;flex-wrap:wrap;gap:4px;margin:7px 0 9px}
.doors-keys span{display:inline-flex;padding:3px 8px;background:rgba(90,171,204,.1);border:1px solid rgba(90,171,204,.26);color:#2a6a90;font-size:10px;font-weight:950;border-radius:20px}
.doors-unlock{display:grid;gap:5px;margin-top:8px}
.doors-article{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:8px 10px;background:rgba(255,255,255,.7);color:var(--deep);border:1px solid rgba(100,180,220,.18);border-radius:8px;transition:background .18s ease}
.doors-article:hover{background:rgba(200,232,248,.5);border-color:rgba(90,171,204,.36)}
.doors-article span{color:#5aabcc;font-size:9.5px;font-weight:950;letter-spacing:.1em;text-transform:uppercase;font-family:"Caveat",sans-serif;white-space:nowrap}
.doors-article strong{font-size:12px;line-height:1.38;color:var(--deep);font-weight:700}

/* CHECK CARDS */
/* CHECKS */
.prep-checks{background:#fdf8f4;padding:40px 20px 64px}
.prep-checks-img-wrap{position:relative;width:100%;line-height:0;overflow:hidden;aspect-ratio:4/3;border-radius:14px;margin-bottom:36px;box-shadow:0 10px 36px rgba(18,49,61,.1)}
.prep-checks-img-wrap img{width:100%;height:100%;object-fit:cover;display:block}
.prep-checks-eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.prep-checks-eyebrow:before{content:"";width:22px;height:2px;background:var(--blue);border-radius:2px}
.prep-checks-eyebrow span{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--blue);font-family:"Caveat",sans-serif}
.prep-checks-title{margin:0 0 24px;font-size:clamp(22px,6.5vw,29px);line-height:1.52;letter-spacing:-.04em;font-weight:700;color:var(--deep)}
.prep-checks-title em{font-style:normal;color:var(--blue)}
.prep-check-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:12px 8px 14px}
.prep-check-card{
  position:relative;overflow:visible;
  padding:20px 12px 18px;border-radius:22px;
  border:2.5px solid var(--deep);
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;
}
.prep-check-card:nth-child(1){background:#ffe5d9;box-shadow:5px 5px 0 #e8a898,5px 5px 0 2.5px var(--deep);transform:rotate(-2.5deg)}
.prep-check-card:nth-child(2){background:#dce8ff;box-shadow:5px 5px 0 #9fb8e8,5px 5px 0 2.5px var(--deep);transform:rotate(2deg)}
.prep-check-card:nth-child(3){background:#d8f5ee;box-shadow:5px 5px 0 #88c8b8,5px 5px 0 2.5px var(--deep);transform:rotate(-1.8deg)}
.prep-check-card:nth-child(4){background:#fff5d4;box-shadow:5px 5px 0 #e0cc80,5px 5px 0 2.5px var(--deep);transform:rotate(2.2deg)}
/* アイコン */
.prep-check-card:before{font-size:26px;line-height:1;margin-bottom:2px}
.prep-check-card:nth-child(1):before{content:"\002708";color:#c84030}
.prep-check-card:nth-child(2):before{content:"\0025CE";color:#2858c0}
.prep-check-card:nth-child(3):before{content:"\002726";color:#108070}
.prep-check-card:nth-child(4):before{content:"\002605";color:#b07000}
/* ナンバータグ（カードの上に浮かぶ pill） */
.prep-check-card__num{
  position:absolute;top:-13px;left:50%;transform:translateX(-50%);
  padding:3px 12px;border-radius:20px;border:2px solid var(--deep);
  font-size:10px;font-weight:800;letter-spacing:.1em;color:#fff;
  width:auto;height:auto;display:block;font-family:"Caveat",sans-serif;
  white-space:nowrap;
}
.prep-check-card:nth-child(1) .prep-check-card__num{background:#c84030}
.prep-check-card:nth-child(2) .prep-check-card__num{background:#2858c0}
.prep-check-card:nth-child(3) .prep-check-card__num{background:#108070}
.prep-check-card:nth-child(4) .prep-check-card__num{background:#b07000}
.prep-check-card h3{margin:0;color:var(--deep);font-size:14px;line-height:1.4;font-weight:700}
.prep-check-card p{margin:0;color:#5c6870;font-size:11px;line-height:1.85;font-weight:400}

/* RESERVE CHECK */
.prep-reserve-check{background:radial-gradient(circle at 100% 0%,rgba(255,191,67,.2),transparent 32%),#f8fbf7}
.prep-reserve-grid{display:grid;gap:10px}
.prep-reserve-card{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;padding:14px;background:#fff;border:1px solid var(--line);box-shadow:0 12px 28px rgba(18,49,61,.07)}
.prep-reserve-card span{height:48px;display:grid;place-items:center;background:var(--deep);color:#fff;font-size:12px;font-weight:950}
.prep-reserve-card strong{color:var(--deep);font-size:14px;line-height:1.45}


/* TOPIC GUIDE */
.prep-guide{background:#fff}
.prep-topic-list{display:grid;gap:12px}
.prep-topic{display:block;padding:18px;background:#f4f8f8;border:1px solid var(--line)}
.prep-topic__label{color:var(--blue);font-size:10px;font-weight:950;letter-spacing:.14em}
.prep-topic h3{margin:10px 0 8px;color:var(--deep);font-size:21px;line-height:1.3}
.prep-topic p{margin:0;color:var(--muted);font-size:13px;line-height:1.75;font-weight:700}

/* DARK GUIDE */
.prep-guide--dark{background:var(--deep);color:#fff}
.prep-guide--dark .prep-section__title{color:#fff}
.prep-guide--dark .prep-section__lead{color:rgba(255,255,255,.72)}
.prep-guide--dark .prep-kicker{color:var(--lime)}
.prep-airport-board{display:grid;gap:10px}
.prep-airport-row{display:grid;grid-template-columns:82px 1fr;gap:12px;padding:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.prep-airport-row__code{color:var(--lime);font-size:11px;font-weight:950;letter-spacing:.08em}
.prep-airport-row__text strong{display:block;color:#fff;font-size:15px;line-height:1.4}
.prep-airport-row__text em{display:block;margin-top:5px;color:rgba(255,255,255,.66);font-style:normal;font-size:12px;line-height:1.6;font-weight:700}

/* SAVING */
.prep-saving{background:radial-gradient(circle at 100% 0%,rgba(255,191,67,.22),transparent 34%),#f8fbf7}
.prep-saving-flow{display:grid;gap:12px}
.prep-saving-step{background:#fff;border:1px solid var(--line);padding:18px;box-shadow:0 12px 30px rgba(18,49,61,.07)}
.prep-saving-step span{color:var(--coral);font-size:10px;font-weight:950;letter-spacing:.14em}
.prep-saving-step h3{margin:10px 0 8px;color:var(--deep);font-size:21px}
.prep-saving-step p{margin:0;color:var(--muted);font-size:13px;line-height:1.75;font-weight:700}

/* BEFORE */
/* FINAL CTA */


/* FIRST READ */
.prep-first-read{background:var(--bg)}
.prep-first-read .prep-article{background:#fff;border:1px solid var(--line)}
.prep-first-read .prep-article__cat{color:var(--aqua)}
.prep-first-read .prep-article__title{color:var(--deep)}
.prep-first-read .prep-article__more{color:var(--blue)}

/* ARTICLES */
.prep-articles{background:var(--deep);color:#fff}
.prep-articles .prep-section__title{color:#fff}
.prep-articles .prep-section__lead{color:rgba(255,255,255,.72)}
.prep-articles .prep-kicker{color:var(--lime)}
.prep-article-list{display:grid;gap:10px}
.prep-article{display:block;padding:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}
.prep-article__cat{color:var(--lime);font-size:10px;font-weight:950;letter-spacing:.14em}
.prep-article__title{margin:10px 0 12px;color:#fff;font-size:16px;line-height:1.55}
.prep-article__more{color:rgba(255,255,255,.7);font-size:12px;font-weight:900}


/* REGISTER */
/* FINAL CTA */
.prep-cta{display:flex;flex-direction:column;overflow:hidden}
/* ① 画像エリア：自然サイズ表示（引き伸ばしなし） */
.prep-cta__bg{position:relative;width:100%;flex-shrink:0;line-height:0}
.prep-cta__img{width:100%;height:auto;display:block}
/* 画像下端をコンテンツエリアと自然につなぐ */
.prep-cta__overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 50%,#0a1a2e 100%)}
/* スパーク（画像の右端・上半分に限定） */
.prep-cta__deco{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.prep-cta__deco span{position:absolute;opacity:0;color:rgba(255,220,160,.7);text-shadow:0 0 12px rgba(255,200,80,.6);animation:ctaSparkFloat ease-in-out infinite}
.prep-cta__deco span:nth-child(1){left:76%;top:5%;font-size:20px;animation-duration:5s;animation-delay:0s}
.prep-cta__deco span:nth-child(2){left:88%;top:12%;font-size:11px;animation-duration:4s;animation-delay:1.2s;color:rgba(200,230,255,.65)}
.prep-cta__deco span:nth-child(3){left:70%;top:6%;font-size:16px;animation-duration:6s;animation-delay:.4s}
.prep-cta__deco span:nth-child(4){left:94%;top:20%;font-size:10px;animation-duration:4.5s;animation-delay:2s}
.prep-cta__deco span:nth-child(5){left:80%;top:22%;font-size:13px;animation-duration:5.5s;animation-delay:.8s;color:rgba(255,200,200,.65)}
.prep-cta__deco span:nth-child(6){left:86%;top:32%;font-size:9px;animation-duration:4.2s;animation-delay:1.8s}
.prep-cta__deco span:nth-child(7){left:72%;top:28%;font-size:14px;animation-duration:5s;animation-delay:3s}
.prep-cta__deco span:nth-child(8){left:92%;top:38%;font-size:10px;animation-duration:6s;animation-delay:.5s}
.prep-cta__deco span:nth-child(9){left:78%;top:42%;font-size:12px;animation-duration:4.8s;animation-delay:2.5s}
@keyframes ctaSparkFloat{0%{transform:translateY(0) rotate(0deg);opacity:0}20%{opacity:.75}75%{opacity:.5}100%{transform:translateY(-54px) rotate(200deg);opacity:0}}
/* ② コンテンツエリア：サイトカラーで明るく豪華に */
.prep-cta__inner{
  position:relative;
  background:linear-gradient(150deg,#ff5c3e 0%,#ff8c48 40%,#ffb830 100%);
  padding:30px 24px 52px;color:#fff;overflow:hidden;
}
/* 白い光彩（左上） */
.prep-cta__inner:before{
  content:"";position:absolute;top:-60px;left:-40px;
  width:240px;height:240px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.22),transparent 65%);
  pointer-events:none;
}
/* 薄い円（右下） */
.prep-cta__inner:after{
  content:"";position:absolute;bottom:-50px;right:-30px;
  width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.12),transparent 65%);
  pointer-events:none;
}
.prep-cta__kicker{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:950;letter-spacing:.22em;
  color:rgba(255,255,255,.85);font-family:"Caveat",sans-serif;
  margin-bottom:14px;
}
.prep-cta__kicker:before,.prep-cta__kicker:after{content:"\002726";font-size:9px;opacity:.75}
.prep-cta__title{
  margin:0 0 16px;
  font-size:clamp(28px,8vw,36px);
  font-weight:950;line-height:1.22;letter-spacing:-.06em;
  color:#fff;text-shadow:0 2px 12px rgba(200,60,0,.25);
}
/* 特典リスト */
.prep-cta__benefits{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:7px}
.prep-cta__benefits li{
  display:flex;align-items:center;gap:10px;
  font-size:13px;font-weight:700;color:rgba(255,255,255,.92);line-height:1.5;
}
.prep-cta__benefits li span{
  color:#fff;font-size:10px;flex-shrink:0;
  text-shadow:0 0 8px rgba(255,255,255,.6);
}
.prep-cta__sub{
  margin:0 0 26px;font-size:12.5px;color:rgba(255,255,255,.72);
  font-weight:400;letter-spacing:.02em;
}
/* ── Prismatic Button (from Uiverse.io by mamyapro123) ── */
.prismatic-btn-root,.prismatic-btn-root *,.prismatic-btn-root *::before,.prismatic-btn-root *::after{box-sizing:border-box;margin:0;padding:0}
.prismatic-btn-root{min-height:auto;display:flex;align-items:center;justify-content:center;background:transparent;font-family:"Caveat",cursive;padding:0;position:relative;overflow:visible;width:100%;margin-top:22px}
.prismatic-btn-root .prismatic-bg-grid,.doodle-deco{display:none}
.prismatic-btn-root .prismatic-btn-wrap{position:relative;display:inline-block;border-radius:60px;padding:5px;background:conic-gradient(from 200deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c77dff,#ff6b6b,#ffd93d,#6bcb77);box-shadow:5px 5px 0px #1a1a1a,0 0 0 3px #1a1a1a;animation:doodle-border-spin 5s linear infinite,doodle-wobble 4s ease-in-out infinite;transition:transform .15s ease,box-shadow .2s ease;cursor:pointer;width:100%;text-decoration:none}
@keyframes doodle-border-spin{0%{background:conic-gradient(from 0deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c77dff,#ff6b6b,#ffd93d,#6bcb77)}25%{background:conic-gradient(from 90deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c77dff,#ff6b6b,#ffd93d,#6bcb77)}50%{background:conic-gradient(from 180deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c77dff,#ff6b6b,#ffd93d,#6bcb77)}75%{background:conic-gradient(from 270deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c77dff,#ff6b6b,#ffd93d,#6bcb77)}100%{background:conic-gradient(from 360deg,#ff6b6b,#ffd93d,#6bcb77,#4d96ff,#c77dff,#ff6b6b,#ffd93d,#6bcb77)}}
@keyframes doodle-wobble{0%,100%{border-radius:60px;transform:rotate(-.5deg)}25%{border-radius:55px 65px 60px 58px/62px 58px 65px 55px;transform:rotate(.5deg)}50%{border-radius:62px 56px 64px 58px/58px 64px 56px 62px;transform:rotate(-.3deg)}75%{border-radius:58px 62px 58px 64px/64px 56px 62px 58px;transform:rotate(.4deg)}}
.prismatic-btn-root .prismatic-btn-wrap:hover{box-shadow:7px 7px 0px #1a1a1a,0 0 0 3px #1a1a1a;transform:translateY(-3px) scale(1.02) !important;animation:doodle-border-spin 2s linear infinite,doodle-wobble-fast .5s ease-in-out infinite}
@keyframes doodle-wobble-fast{0%,100%{border-radius:60px}50%{border-radius:55px 65px 62px 58px/58px 64px 56px 62px}}
.prismatic-btn-root .prismatic-btn-wrap:active{transform:translateY(3px) scale(.97) !important;box-shadow:2px 2px 0px #1a1a1a,0 0 0 3px #1a1a1a}
.prismatic-btn-root .prismatic-btn{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:66px;border-radius:55px;overflow:hidden;background:radial-gradient(ellipse 80% 50% at 30% 20%,rgba(255,217,61,.55) 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 75% 70%,rgba(107,203,119,.4) 0%,transparent 55%),radial-gradient(ellipse 50% 40% at 60% 20%,rgba(77,150,255,.35) 0%,transparent 55%),#fff8e7;border:none;outline:none;cursor:pointer;user-select:none;filter:url(#sketchy)}
.prismatic-btn-root .prismatic-btn::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent 0px,transparent 10px,rgba(26,26,26,.035) 10px,rgba(26,26,26,.035) 11px);border-radius:55px;pointer-events:none;z-index:1}
.prismatic-btn-root .prismatic-btn::after{content:"";position:absolute;top:0;left:8%;width:84%;height:40%;background:linear-gradient(180deg,rgba(255,255,255,.5) 0%,rgba(255,255,255,.1) 70%,transparent 100%);border-radius:55px 55px 100% 100%;pointer-events:none;z-index:2}
.prismatic-btn-root .prismatic-shimmer{position:absolute;inset:0;border-radius:55px;overflow:hidden;z-index:3;pointer-events:none}
.prismatic-btn-root .prismatic-shimmer::after{content:"";position:absolute;top:-100%;left:-60%;width:35%;height:300%;background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.5) 50%,transparent 75%);transform:skewX(-15deg);animation:doodle-shimmer-sweep 3.5s ease-in-out infinite}
@keyframes doodle-shimmer-sweep{0%{left:-60%;opacity:0}10%{opacity:1}45%{left:130%;opacity:1}55%{opacity:0}100%{left:130%;opacity:0}}
.prismatic-btn-root .prismatic-btn-wrap:hover .prismatic-shimmer::after{animation:doodle-shimmer-sweep-fast 1.2s ease-in-out infinite}
@keyframes doodle-shimmer-sweep-fast{0%{left:-60%;opacity:0}8%{opacity:1}48%{left:130%;opacity:1}58%{opacity:0}100%{left:130%;opacity:0}}
.prismatic-btn-root .prismatic-glow{position:absolute;inset:-10px;border-radius:70px;background:conic-gradient(from 0deg,rgba(255,107,107,.6),rgba(255,217,61,.6),rgba(107,203,119,.6),rgba(77,150,255,.6),rgba(199,125,255,.6),rgba(255,107,107,.6));filter:blur(14px);opacity:0;z-index:-1;animation:doodle-glow-pulse 2.5s ease-in-out infinite;pointer-events:none}
@keyframes doodle-glow-pulse{0%,100%{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}
.prismatic-btn-root .prismatic-btn-wrap:hover .prismatic-glow{opacity:1;animation:doodle-glow-intense 1.2s ease-in-out infinite}
@keyframes doodle-glow-intense{0%,100%{opacity:.8;transform:scale(1);filter:blur(14px)}50%{opacity:1;transform:scale(1.08);filter:blur(20px)}}
.prismatic-btn-root .prismatic-label{position:relative;z-index:10;color:#0d2a55;font-size:1.15rem;font-weight:700;letter-spacing:.03em;text-shadow:0 1px 4px rgba(255,255,255,.5);animation:doodle-ink-pulse 2s ease-in-out infinite;font-family:-apple-system,"Hiragino Sans","Yu Gothic",sans-serif}
@keyframes doodle-ink-pulse{0%,100%{text-shadow:0 1px 4px rgba(255,255,255,.5),0 0 0px transparent}50%{text-shadow:0 1px 4px rgba(255,255,255,.7),0 0 10px rgba(77,150,255,.25)}}
.doodle-underline{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);width:0;height:3px;background:linear-gradient(90deg,#ff6b6b,#ffd93d,#6bcb77);border-radius:2px;z-index:10;animation:doodle-scribble 3s ease-in-out infinite}
@keyframes doodle-scribble{0%,15%{width:0;left:50%}45%,55%{width:120px;left:calc(50% - 60px)}85%,100%{width:0;left:50%}}
.prismatic-btn-root .prismatic-reflection{position:absolute;bottom:0;left:8%;width:84%;height:32%;background:linear-gradient(0deg,rgba(77,150,255,.2) 0%,transparent 100%);border-radius:0 0 55px 55px;z-index:2;pointer-events:none;animation:doodle-ink-wash 4s ease-in-out infinite}
@keyframes doodle-ink-wash{0%,100%{opacity:.6;background:linear-gradient(0deg,rgba(77,150,255,.2) 0%,transparent 100%)}33%{opacity:1;background:linear-gradient(0deg,rgba(255,107,107,.25) 0%,transparent 100%)}66%{opacity:.8;background:linear-gradient(0deg,rgba(107,203,119,.22) 0%,transparent 100%)}}
.prismatic-btn-root .prismatic-btn .feet-doodles{display:none}
.prep-cta__note{margin:14px 0 0;font-size:11px;color:rgba(255,255,255,.55);letter-spacing:.04em;text-align:center}

/* CATEGORY */
.prep-categories{background:#f8fbf7}
.prep-category-list{display:grid;gap:8px}
.prep-category{display:grid;grid-template-columns:48px 1fr 24px;gap:12px;align-items:center;padding:13px 14px;background:#fff;border:1px solid var(--line)}
.prep-category__num{height:42px;display:grid;place-items:center;background:var(--deep);color:#fff;font-size:12px;font-weight:950}
.prep-category__name{color:var(--deep);font-size:14px;font-weight:900}
.prep-category__arrow{color:var(--blue);font-weight:950;text-align:right}
.prep-more{margin:22px 0 0;text-align:center}
.prep-text-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;background:var(--deep);color:#fff;font-size:13px;font-weight:950}

.prep-float-cta{position:fixed;left:16px;right:16px;bottom:14px;z-index:50;transform:translateY(140%);opacity:0;transition:.25s ease}
.prep-float-cta.is-show{transform:translateY(0);opacity:1}
.prep-float-cta__link{min-height:54px;display:grid;place-items:center;background:var(--deep);color:#fff;font-size:14px;font-weight:950;box-shadow:0 16px 34px rgba(18,49,61,.28)}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   MAG SECTIONS — shared head utilities
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
.mag-section-head{margin-bottom:26px}
/* "more" リンク共通 */
.mag-more-link{
  display:flex;justify-content:center;margin-top:22px;
}
.mag-more-link a{
  display:inline-flex;align-items:center;gap:6px;
  padding:12px 26px;
  background:transparent;
  border:1.5px solid var(--deep);
  color:var(--deep);font-size:12px;font-weight:950;letter-spacing:.06em;
  text-decoration:none;
  transition:background .2s ease,color .2s ease;
}
.mag-more-link a::after{content:"\002192";font-size:11px}
.mag-more-link a:hover{background:var(--deep);color:#fff}

/* ── GALLERY (mag-air) ── */
.mag-air{
  padding:56px 20px 48px;
  background:radial-gradient(circle at 0% 50%,rgba(35,120,255,.08),transparent 40%),
             radial-gradient(circle at 100% 50%,rgba(22,199,201,.1),transparent 40%),#eef4f6;
}
.mag-air__head{margin-bottom:22px}
/* ベントー4枚フェードグリッド */
.mag-air__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:120px 120px 90px;
  gap:6px;
}
/* 1枚目：縦長（左2行分） */
.mag-air__cell:nth-child(1){grid-row:span 2}
/* 4枚目：横長（全幅） */
.mag-air__cell:nth-child(4){grid-column:span 2}
.mag-air__cell{
  position:relative;
  border-radius:10px;overflow:hidden;
  background:rgba(18,49,61,.08);
  box-shadow:0 4px 14px rgba(18,49,61,.1);
}
.mag-air__cell a{display:block;width:100%;height:100%;text-decoration:none}
.mag-air__cell img{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  transition:opacity .9s ease,transform .9s ease;
}
.mag-air__cell img.is-out{opacity:0;transform:scale(1.05)}
.mag-air__cell img.is-in{opacity:1;transform:scale(1)}

/* ── SPOTS (mag-pick) ── */
.mag-pick{padding:40px 20px 64px;background:#f7f4ef}
/* 上部：画像フィーチャー */
.mag-pick__img-wrap{
  position:relative;width:100%;line-height:0;
  overflow:hidden;aspect-ratio:3/2;
  border-radius:14px;
  box-shadow:0 10px 36px rgba(18,49,61,.12);
  margin-bottom:32px;
  display:block;text-decoration:none;
}
.mag-pick__img-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.mag-pick__img-wrap:hover img{transform:scale(1.04)}
.mag-pick__img-tag{
  position:absolute;bottom:0;left:0;right:0;z-index:2;
  padding:28px 16px 12px;
  background:linear-gradient(to top,rgba(12,28,38,.82) 0%,transparent 100%);
  font-size:14px;font-weight:900;letter-spacing:-.01em;color:#fff;line-height:1.4;
}
.mag-pick__img-tag small{
  display:block;margin-bottom:5px;
  font-size:8.5px;font-weight:700;letter-spacing:.18em;color:var(--coral);
  font-family:"Caveat",sans-serif;
}
/* eyebrow */
.mag-pick__eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.mag-pick__eyebrow::before{content:"";width:22px;height:2px;background:var(--aqua);border-radius:2px}
.mag-pick__eyebrow span{font-size:13px;font-weight:700;letter-spacing:.12em;color:var(--aqua);font-family:"Caveat",sans-serif}
/* numbered list */
.mag-pick__list{counter-reset:sp;display:grid;gap:8px;margin-bottom:24px}
.mag-pick__item{
  counter-increment:sp;
  display:grid;grid-template-columns:68px 1fr auto;
  align-items:center;gap:13px;
  padding:10px 14px 10px 10px;
  background:#fff;border-radius:12px;
  box-shadow:0 2px 12px rgba(18,49,61,.07);
  text-decoration:none;color:var(--ink);
  transition:transform .18s ease,box-shadow .18s ease;
}
.mag-pick__item:hover{transform:translateX(3px);box-shadow:0 6px 20px rgba(18,49,61,.1)}
/* サムネイル（番号バッジ付き） */
.mag-pick__item-thumb{
  position:relative;flex-shrink:0;
  width:68px;height:52px;border-radius:8px;overflow:hidden;
}
.mag-pick__item-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.mag-pick__item-thumb::after{
  content:counter(sp,decimal-leading-zero);
  position:absolute;top:4px;left:4px;
  padding:1px 6px;border-radius:4px;
  background:var(--coral);color:#fff;
  font-size:9px;font-weight:800;font-family:"Caveat",sans-serif;
  line-height:1.4;
}
.mag-pick__item:nth-child(2) .mag-pick__item-thumb::after{background:var(--blue)}
.mag-pick__item:nth-child(3) .mag-pick__item-thumb::after{background:var(--aqua)}
.mag-pick__item:nth-child(4) .mag-pick__item-thumb::after{background:var(--sun);color:var(--deep)}
.mag-pick__item-title{font-size:13px;font-weight:600;color:var(--ink);line-height:1.5}
.mag-pick__item-arrow{color:var(--coral);font-size:13px;opacity:.5;flex-shrink:0;transition:transform .18s ease,opacity .18s ease}
.mag-pick__item:hover .mag-pick__item-arrow{transform:translateX(3px);opacity:1}

/* ── CATEGORIES (mag-themes / mag-chips) ── */
.mag-themes{padding:56px 20px 64px;background:#faf7f0}
.mag-chips{display:flex;flex-wrap:wrap;gap:10px}
.mag-chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 20px;border-radius:50px;
  font-size:13px;font-weight:700;letter-spacing:.02em;
  text-decoration:none;
  box-shadow:0 3px 12px rgba(0,0,0,.07),inset 0 1px 0 rgba(255,255,255,.55);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.mag-chip:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.13);filter:brightness(.95)}
/* パステルカラーサイクル（5色） */
.mag-chip:nth-child(5n+1){background:#ffe5e0;color:#b03020}
.mag-chip:nth-child(5n+2){background:#dae7ff;color:#1840b0}
.mag-chip:nth-child(5n+3){background:#ccf2f2;color:#086868}
.mag-chip:nth-child(5n+4){background:#fff3cc;color:#7a5000}
.mag-chip:nth-child(5n+0){background:#e2f8d2;color:#2a5800}
/* 右の小アイコン */
.mag-chip::after{content:"\002192";font-size:11px;opacity:.5;margin-left:1px}
.mag-chip:hover::after{opacity:1}
.mag-chip__go,.mag-chip__mark{display:none}

/* ── FOOTER ── */
.prep-footer{
  background:var(--deep);color:rgba(255,255,255,.72);
  font-size:13px;
}
/* グラデーションアクセントライン（ヘッダーと対応） */
.prep-footer::before{
  content:"";display:block;height:2px;
  background:linear-gradient(90deg,var(--coral) 0%,#ff9f6a 30%,var(--blue) 65%,var(--aqua) 100%);
  opacity:.7;
}
.prep-footer__inner{padding:36px 20px 24px}
/* ロゴ行 */
.prep-footer__brand{
  display:flex;align-items:center;gap:10px;
  margin-bottom:28px;
  padding-bottom:20px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.prep-footer__logo{height:26px;width:auto;opacity:.85}
.prep-footer__tagline{
  font-size:10px;letter-spacing:.12em;
  color:rgba(255,255,255,.38);font-family:"Caveat",sans-serif;
}
/* リンクグリッド */
.footer_menu{
  list-style:none;margin:0 0 24px;padding:0;
  display:grid;grid-template-columns:1fr 1fr;gap:0;
}
.footer_menu li a{
  display:flex;align-items:center;gap:6px;
  padding:9px 0;
  color:rgba(255,255,255,.65);
  text-decoration:none;font-size:12px;font-weight:500;
  border-bottom:1px solid rgba(255,255,255,.06);
  transition:color .18s ease;
}
.footer_menu li a::before{
  content:"";width:4px;height:4px;border-radius:50%;
  background:var(--coral);flex-shrink:0;opacity:.7;
}
.footer_menu li a:hover{color:#fff}
.footer_menu li a:hover::before{opacity:1}
/* コピーライト */
#footer{
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.1);
  font-size:10px;letter-spacing:.06em;
  color:rgba(255,255,255,.3);text-align:center;
  line-height:1.8;
}

/* ── HEADER ── */
.prep-header{
  position:sticky;top:0;z-index:200;
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 2px 18px rgba(18,49,61,.08);
}
.prep-header::after{
  content:"";display:block;height:2px;
  background:linear-gradient(90deg,var(--coral) 0%,#ff9f6a 30%,var(--blue) 65%,var(--aqua) 100%);
  opacity:.7;
}
.prep-header__inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 18px;
}
/* logo */
.prep-header__logo{
  display:flex;align-items:center;text-decoration:none;
}
.prep-header__logo img{
  height:32px;width:auto;display:block;
  transition:opacity .2s ease;
}
.prep-header__logo:hover img{opacity:.78}
/* cta（ログイン／ログアウト） */
.prep-header__cta{
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 16px;
  border-radius:50px;
  font-size:12px;font-weight:700;letter-spacing:.05em;
  text-decoration:none;white-space:nowrap;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.prep-header__cta:active{transform:translateY(0)}
/* ログイン */
.prep-header__cta--login{
  background:linear-gradient(135deg,var(--coral) 0%,#ff9f6a 100%);
  color:#fff;
  box-shadow:0 4px 14px rgba(255,111,89,.35);
}
.prep-header__cta--login:hover{transform:translateY(-2px);box-shadow:0 7px 20px rgba(255,111,89,.46)}
/* ログアウト */
.prep-header__cta--logout{
  background:rgba(18,49,61,.08);
  color:var(--deep);
  border:1.5px solid var(--line);
}
.prep-header__cta--logout:hover{background:rgba(18,49,61,.14);transform:translateY(-1px)}

@media(min-width:760px){
  body{background-color:#e9f1f3}
  .prep-page{max-width:430px;margin-inline:auto;box-shadow:0 0 48px rgba(18,49,61,.14)}
}

/* ── FLOAT CTA ── */
.vv-float{
  position:fixed;
  bottom:12px;left:50%;
  transform:translateX(-50%) translateY(80px);
  opacity:0;z-index:150;pointer-events:none;
  transition:transform .42s cubic-bezier(.16,.84,.34,1),opacity .3s ease;
  width:calc(100% - 40px);
  max-width:390px;
}
.vv-float.is-show{
  transform:translateX(-50%) translateY(0);
  opacity:1;pointer-events:auto;
}
.vv-float .uvh-btn{
  width:100%;
}
