
/* =========================================================
   風Camp 2026 — Design layer（水彩・手描きの一日）
   76の構成・機能はそのまま、78のイラスト／デザイン感で一新
   時間切り替え式：昼 / 夕方 / 夜（#fcm-kazecamp-lp.theme-*）
   ========================================================= */

:root{
  /* 2026手描きロゴから採色（ミント→若葉→黄→橙） */
  --kaza-teal:#3FA98C; --kaza-leaf:#6FBE58; --kaza-gold:#EFC61A;
  --kaza-orange:#E88A28; --kaza-burnt:#E2641E;
  --kaza-grad:linear-gradient(100deg,#2E9478 0%,#5CA344 30%,#C9A123 60%,#DD7A1F 84%,#D4551A 100%);
  --fcm-yellow:#f5c800;

  /* 一日の色（A Day タイムライン用・時間で温度が上がる） */
  --t-morning:#3FA98C; --t-noon:#6FBE58; --t-gold:#E6B12A;
  --t-amber:#E8963A; --t-sunset:#E2641E; --t-ember:#D8531E;

  /* fonts（78を踏襲：詩情=明朝、UI=角ゴ） */
  --font-serif:'Shippori Mincho',serif;
  --font-jp:'Zen Kaku Gothic New',sans-serif;
  --font-en:'Shippori Mincho',serif;

  --radius:2px;
  --edge:clamp(20px,5vw,64px);
  --maxw:1120px;
  --transition:.55s cubic-bezier(.4,0,.2,1);
}

/* ── THEMES ─────────────────────────────────────────────── */
/* 昼：78のやわらかな水彩ライト（主役） */
#fcm-kazecamp-lp.theme-day{
  --bg:#FAF7EE; --bg2:#F3EDDD; --bg3:#EBE3CF;
  --text:#2B241B; --text-sub:#6B5B45; --text-muted:#988b72;
  --border:rgba(43,36,27,.12); --border-strong:rgba(43,36,27,.2);
  --card:rgba(255,253,247,.66); --card-solid:#FFFDF7;
  --nav-bg:rgba(255,253,247,.8);
  --accent:#2E9478; --accent-warm:#E2641E; --ink-on-warm:#3a2708;
  --hero-sky:
    radial-gradient(140% 90% at 82% 8%, rgba(246,216,94,.34) 0%, rgba(246,216,94,0) 46%),
    linear-gradient(180deg,#a7d8e4 0%,#c3e5e2 26%,#dcefde 50%,#eef3e7 72%,#FAF7EE 100%);
  --grain:.05;
  --sun-op:1; --moon-op:0; --cloud-op:.9; --star-op:0;
}
/* 夕方：金色の夕暮れ（読みやすい暖色ペーパー） */
#fcm-kazecamp-lp.theme-sunset{
  --bg:#FBEFD6; --bg2:#F6E2BC; --bg3:#EFD3A0;
  --text:#3a2708; --text-sub:#7a5326; --text-muted:#a07c42;
  --border:rgba(120,80,30,.16); --border-strong:rgba(120,80,30,.28);
  --card:rgba(255,250,238,.6); --card-solid:#FFF7E6;
  --nav-bg:rgba(251,239,214,.82);
  --accent:#C24E14; --accent-warm:#E2641E; --ink-on-warm:#3a2708;
  --hero-sky:
    radial-gradient(120% 80% at 78% 16%, rgba(245,208,94,.5) 0%, rgba(245,208,94,0) 50%),
    linear-gradient(180deg,#2f6a5b 0%,#7fb49f 16%,#ecd49b 40%,#f3c074 60%,#f6d573 80%,#FBEFD6 100%);
  --grain:.06;
  --sun-op:1; --moon-op:0; --cloud-op:.7; --star-op:0;
}
/* 夜：深い水彩の夜（焚き火とキャンプの時間） */
#fcm-kazecamp-lp.theme-night{
  --bg:#0C1B22; --bg2:#102530; --bg3:#15303c;
  --text:#F4ECD8; --text-sub:#C4BCA8; --text-muted:#8b8574;
  --border:rgba(244,236,216,.12); --border-strong:rgba(244,236,216,.22);
  --card:rgba(255,247,232,.05); --card-solid:rgba(255,247,232,.07);
  --nav-bg:rgba(12,27,34,.82);
  --accent:#F0CE5A; --accent-warm:#E8752A; --ink-on-warm:#3a2708;
  --hero-sky:
    radial-gradient(120% 70% at 50% -8%, rgba(60,157,160,.2) 0%, rgba(60,157,160,0) 44%),
    linear-gradient(180deg,#04121a 0%,#08202b 34%,#0a1e26 70%,#0C1B22 100%);
  --grain:.08;
  --sun-op:0; --moon-op:0; --cloud-op:.3; --star-op:1;
}

/* ── Base ───────────────────────────────────────────────── */
#fcm-kazecamp-lp,#fcm-kazecamp-lp *,#fcm-kazecamp-lp *::before,#fcm-kazecamp-lp *::after{box-sizing:border-box}
#fcm-kazecamp-lp *,#fcm-kazecamp-lp *::before,#fcm-kazecamp-lp *::after{margin:0;padding:0}
body.fcm-kazecamp-page{scroll-behavior:smooth;scroll-padding-top:76px;margin:0;padding:0;width:100%;overflow-x:hidden}
@media (prefers-reduced-motion:reduce){body.fcm-kazecamp-page{scroll-behavior:auto}}

#fcm-kazecamp-lp{
  width:100%;
  max-width:none;
  min-height:100vh;
  margin:0;
  padding:0;
  background:var(--bg); color:var(--text);
  font-family:var(--font-jp);
  line-height:1.9; letter-spacing:.01em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
  transition:background var(--transition), color var(--transition);
}
/* 紙のかすかな質感（水彩の下地） */
#fcm-kazecamp-lp::before{
  content:""; position:fixed; inset:0; z-index:9999; pointer-events:none;
  opacity:var(--grain); mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.5'/></svg>");
  transition:opacity var(--transition);
}
#fcm-kazecamp-lp.theme-night::before{mix-blend-mode:screen}

#fcm-kazecamp-lp img{max-width:100%;display:block}
#fcm-kazecamp-lp a{color:inherit;text-decoration:none}
#fcm-kazecamp-lp button,
#fcm-kazecamp-lp [role="button"],
#fcm-kazecamp-lp .footer-social{font-family:var(--font-serif)}
#fcm-kazecamp-lp .nw{white-space:nowrap}
#fcm-kazecamp-lp .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#fcm-kazecamp-lp .skip-link{position:absolute;left:-999px;top:0}
#fcm-kazecamp-lp .skip-link:focus{left:12px;top:12px;z-index:100;background:var(--card-solid);padding:.6em 1em;border-radius:var(--radius)}
#fcm-kazecamp-lp :focus-visible{outline:2.5px solid var(--accent-warm);outline-offset:3px;border-radius:var(--radius)}

#fcm-kazecamp-lp #concept,#fcm-kazecamp-lp #activities,#fcm-kazecamp-lp #artists,#fcm-kazecamp-lp #ticket,#fcm-kazecamp-lp #access,#fcm-kazecamp-lp #faq,#fcm-kazecamp-lp #updates{scroll-margin-top:64px}

/* 一日の色をテキストへ */
#fcm-kazecamp-lp .grad-text,#fcm-kazecamp-lp .grad-em{
  background:var(--kaza-grad);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ── Layout primitives ──────────────────────────────────── */
#fcm-kazecamp-lp .section-wrap{max-width:var(--maxw);margin:0 auto;padding:clamp(72px,11vw,124px) var(--edge)}
/* iPhone/アプリのプレビューで確実に塗るため、各帯に背景を明示 */
#fcm-kazecamp-lp #concept{background:var(--bg)}
#fcm-kazecamp-lp .story-arc{background:var(--bg2)}
#fcm-kazecamp-lp #activities{background:var(--bg2)}
#fcm-kazecamp-lp #artists{background:var(--bg)}
#fcm-kazecamp-lp #updates{background:var(--bg2)}
#fcm-kazecamp-lp #ticket{background:var(--bg3)}
#fcm-kazecamp-lp #access{background:var(--bg)}
#fcm-kazecamp-lp #faq{background:var(--bg2)}
#fcm-kazecamp-lp .section-bg,#fcm-kazecamp-lp .section-bg3{transition:background var(--transition)}

#fcm-kazecamp-lp .section-eyebrow{
  font-family:var(--font-en); font-weight:500;
  font-size:.8rem; letter-spacing:.34em; text-transform:uppercase;
  color:var(--accent); margin:0 0 1em; display:flex; align-items:center; gap:.7em;
}
#fcm-kazecamp-lp .section-eyebrow::before{
  content:""; width:26px; height:1.5px; background:currentColor; opacity:.6; flex:0 0 auto;
}
#fcm-kazecamp-lp .section-title{
  font-family:var(--font-serif); font-weight:600;
  font-size:clamp(1.7rem,5.4vw,2.9rem); line-height:1.32; margin:0 0 .1em;
  color:var(--text); text-wrap:balance; letter-spacing:.01em;
  word-break:keep-all; overflow-wrap:anywhere; line-break:strict;
}

#fcm-kazecamp-lp .divider{height:1px;background:var(--border);max-width:var(--maxw);margin:0 auto;transition:background var(--transition)}
#fcm-kazecamp-lp .grad-divider{height:2px;background:var(--kaza-grad);opacity:.85}

/* ── Buttons ────────────────────────────────────────────── */
#fcm-kazecamp-lp .btn-primary,#fcm-kazecamp-lp .btn-secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--font-serif);font-weight:700;font-size:.98rem;letter-spacing:.02em;
  padding:.92em 1.9em;border-radius:var(--radius);cursor:pointer;border:0;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease;
}
#fcm-kazecamp-lp .btn-primary{
  color:#2b241b; background:#efc61a;
  box-shadow:0 8px 24px rgba(239,198,26,.35);
}
#fcm-kazecamp-lp .btn-primary:hover{transform:translateY(-2px);background:#d4ad12;box-shadow:0 12px 30px rgba(212,173,18,.4)}
#fcm-kazecamp-lp .btn-secondary{
  color:var(--text); background:transparent; border:1.5px solid var(--border-strong);
}
#fcm-kazecamp-lp .btn-secondary:hover{transform:translateY(-1px);border-color:var(--accent);color:var(--accent)}
#fcm-kazecamp-lp .btn-primary svg,#fcm-kazecamp-lp .btn-secondary svg{width:1.15em;height:1.15em}
@media (prefers-reduced-motion:reduce){#fcm-kazecamp-lp .btn-primary:hover,#fcm-kazecamp-lp .btn-secondary:hover{transform:none}}

#fcm-kazecamp-lp .section-cta{margin-top:clamp(40px,7vw,64px);text-align:center}
#fcm-kazecamp-lp .section-cta-caption{
  font-family:var(--font-serif);font-size:clamp(1.05rem,2.7vw,1.3rem);
  color:var(--text);margin:0 0 1.1em;text-wrap:balance;
  word-break:keep-all;overflow-wrap:anywhere;line-break:strict;
}

/* ── Theme switcher（時間切り替え：昼/夕方/夜） ───────────── */
#fcm-kazecamp-lp .theme-switcher{
  position:fixed;top:74px;right:clamp(14px,3vw,26px);z-index:85;
  display:inline-flex;gap:2px;padding:3px;
  background:var(--nav-bg);border:1px solid var(--border);border-radius:999px;
  backdrop-filter:saturate(1.3) blur(10px);-webkit-backdrop-filter:saturate(1.3) blur(10px);
  box-shadow:0 6px 20px rgba(0,0,0,.1);transition:background var(--transition),border-color var(--transition);
}
#fcm-kazecamp-lp .theme-btn{
  font-family:var(--font-serif);font-size:12.5px;font-weight:500;
  color:var(--text-muted);background:transparent;border:0;cursor:pointer;
  padding:6px 15px;border-radius:999px;transition:color .2s,background .2s,transform .1s;
}
#fcm-kazecamp-lp .theme-btn:hover:not(.active){color:var(--text-sub)}
#fcm-kazecamp-lp .theme-btn.active{color:#2b241b;background:#efc61a;box-shadow:0 2px 8px rgba(239,198,26,.35)}
#fcm-kazecamp-lp .theme-btn:active{transform:scale(.94)}
@media (max-width:700px){
  #fcm-kazecamp-lp .theme-switcher{top:auto;bottom:18px;right:16px}
  #fcm-kazecamp-lp .theme-btn{padding:7px 15px;font-size:12px}
}

/* ── Nav ────────────────────────────────────────────────── */
#fcm-kazecamp-lp #main-nav{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.7rem clamp(16px,4vw,40px);
  background:var(--nav-bg);border-bottom:1px solid transparent;
  backdrop-filter:saturate(1.3) blur(10px);-webkit-backdrop-filter:saturate(1.3) blur(10px);
  transition:padding .25s ease,background var(--transition),border-color var(--transition);
}
#fcm-kazecamp-lp #main-nav.scrolled{padding-top:.5rem;padding-bottom:.5rem;border-bottom-color:var(--border)}
#fcm-kazecamp-lp .nav-fcm-logo{display:flex;align-items:center;min-width:0}
#fcm-kazecamp-lp .nav-fcm-img{display:block;height:36px;width:auto;filter:none}
#fcm-kazecamp-lp.theme-night .nav-fcm-img{filter:brightness(0) invert(1) opacity(.9)}
#fcm-kazecamp-lp .nav-fcm-sub{font-family:var(--font-serif);font-weight:600;font-size:.95rem;color:var(--text);white-space:nowrap}
#fcm-kazecamp-lp .nav-links{display:flex;align-items:center;gap:1.5rem;list-style:none}
#fcm-kazecamp-lp .nav-links a{font-family:var(--font-jp);font-size:.9rem;color:var(--text-sub);transition:color .18s;position:relative}
#fcm-kazecamp-lp .nav-links a:hover,#fcm-kazecamp-lp .nav-links a.is-active{color:var(--text)}
#fcm-kazecamp-lp .nav-links a.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1.5px;background:var(--kaza-grad)}
#fcm-kazecamp-lp .nav-ig svg{width:19px;height:19px;display:block}
#fcm-kazecamp-lp .nav-cta{
  font-family:var(--font-serif);font-weight:700;font-size:.86rem;color:#2b241b;
  background:#efc61a;padding:.6em 1.25em;border-radius:999px;
  box-shadow:0 4px 14px rgba(239,198,26,.35);transition:transform .18s,background .18s}
#fcm-kazecamp-lp .nav-cta:hover{transform:translateY(-1px);background:#d4ad12}
#fcm-kazecamp-lp .nav-hamburger{display:none;flex-direction:column;gap:5px;width:44px;height:44px;
  align-items:center;justify-content:center;background:none;border:0;cursor:pointer;
  position:relative;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#fcm-kazecamp-lp .nav-hamburger span{display:block;width:22px;height:2px;background:var(--text);border-radius:2px;transition:transform .3s,opacity .3s;pointer-events:none}
#fcm-kazecamp-lp .nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
#fcm-kazecamp-lp .nav-hamburger.open span:nth-child(2){opacity:0}
#fcm-kazecamp-lp .nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:820px){
  #fcm-kazecamp-lp .nav-links,#fcm-kazecamp-lp .nav-cta{display:none}
  #fcm-kazecamp-lp .nav-hamburger{display:flex}
}
/* Drawer backdrop + panel */
#fcm-kazecamp-lp .nav-drawer-backdrop{
  position:fixed;inset:0;z-index:70;
  background:rgba(0,0,0,.4);opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .3s ease,visibility .3s ease;-webkit-tap-highlight-color:transparent;
}
#fcm-kazecamp-lp .nav-drawer-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}
#fcm-kazecamp-lp .nav-drawer{
  position:fixed;inset:0 0 0 auto;width:min(80vw,320px);z-index:75;
  background:var(--card-solid);border-left:1px solid var(--border);
  transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);
  padding:88px 32px 32px;overflow-y:auto;-webkit-overflow-scrolling:touch;
}
#fcm-kazecamp-lp .nav-drawer.open{transform:none;box-shadow:-16px 0 50px rgba(0,0,0,.16)}
#fcm-kazecamp-lp .nav-drawer-links{list-style:none;display:flex;flex-direction:column;gap:.4rem}
#fcm-kazecamp-lp .nav-drawer-links a{display:block;padding:.9em .2em;font-family:var(--font-serif);font-size:1.15rem;color:var(--text);border-bottom:1px solid var(--border)}
#fcm-kazecamp-lp .drawer-ig{display:inline-flex;align-items:center;gap:.5em}
#fcm-kazecamp-lp .drawer-ig svg{width:20px;height:20px}

/* ── HERO ───────────────────────────────────────────────── */
#fcm-kazecamp-lp .hero{
  position:relative;min-height:100svh;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:clamp(110px,17vh,160px) var(--edge) clamp(60px,10vh,110px);
  background:var(--hero-sky);transition:background var(--transition);
}
#fcm-kazecamp-lp .stars{position:absolute;inset:0;width:100%;height:100%;opacity:var(--star-op);transition:opacity var(--transition);pointer-events:none;z-index:0}
#fcm-kazecamp-lp .sunset-sun{
  position:absolute;top:12%;right:14%;width:clamp(90px,18vw,180px);aspect-ratio:1;border-radius:50%;
  opacity:var(--sun-op);z-index:0;pointer-events:none;transition:opacity var(--transition),background var(--transition);
  background:radial-gradient(circle,rgba(246,216,94,.9) 0%,rgba(246,216,94,.35) 42%,rgba(246,216,94,0) 70%);
  animation:sunbreath 8s ease-in-out infinite;
}
#fcm-kazecamp-lp.theme-sunset .sunset-sun{top:34%;right:16%;background:radial-gradient(circle,rgba(245,190,90,.95) 0%,rgba(240,150,70,.4) 44%,rgba(240,150,70,0) 72%)}
@keyframes sunbreath{0%,100%{transform:scale(1);opacity:calc(var(--sun-op)*.85)}50%{transform:scale(1.06);opacity:var(--sun-op)}}
/* 月（夜のみ・sunset-sunと別orb） */
#fcm-kazecamp-lp .hero::after{
  content:"";position:absolute;top:13%;right:15%;width:clamp(58px,11vw,104px);aspect-ratio:1;border-radius:50%;
  opacity:var(--moon-op);z-index:0;pointer-events:none;transition:opacity var(--transition);
  background:radial-gradient(circle at 62% 40%,#FFF7E8 0%,#f4e6bf 58%,#d9c896 100%);
  box-shadow:0 0 46px rgba(255,247,232,.5);
}
#fcm-kazecamp-lp .clouds{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:var(--cloud-op);transition:opacity var(--transition)}
#fcm-kazecamp-lp .cloud{position:absolute;height:auto;border-radius:50%;
  background:radial-gradient(ellipse at 50% 60%,rgba(255,255,255,.85) 0%,rgba(255,255,255,.4) 55%,rgba(255,255,255,0) 75%);
  filter:blur(4px);animation:drift 46s linear infinite}
#fcm-kazecamp-lp.theme-sunset .cloud{background:radial-gradient(ellipse at 50% 60%,rgba(255,240,214,.8) 0%,rgba(255,224,180,.35) 55%,rgba(255,224,180,0) 75%)}
#fcm-kazecamp-lp .cloud-1{top:16%;left:-12%;width:280px;height:110px;animation-duration:58s}
#fcm-kazecamp-lp .cloud-2{top:30%;left:-20%;width:200px;height:80px;animation-duration:72s;animation-delay:-20s}
#fcm-kazecamp-lp .cloud-3{top:9%;left:-18%;width:340px;height:120px;animation-duration:80s;animation-delay:-40s;opacity:.7}
#fcm-kazecamp-lp .cloud-4{top:44%;left:-14%;width:180px;height:70px;animation-duration:64s;animation-delay:-10s;opacity:.6}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(135vw)}}
@media (prefers-reduced-motion:reduce){#fcm-kazecamp-lp .cloud,#fcm-kazecamp-lp .sunset-sun{animation:none}}

#fcm-kazecamp-lp .hero-presents{position:relative;z-index:1;margin:0 0 clamp(24px,4vw,36px)}
#fcm-kazecamp-lp .hero-presents-text{
  font-family:var(--font-serif);font-size:clamp(.82rem,2.4vw,1rem);letter-spacing:.14em;
  color:var(--text-sub);
}
#fcm-kazecamp-lp .hero-logo-wrap{position:relative;z-index:1;display:inline-block;margin:0 0 clamp(26px,5vw,40px)}
#fcm-kazecamp-lp .hero-kaza-logo{width:min(78vw,460px);height:auto;filter:drop-shadow(0 6px 20px rgba(120,90,40,.14))}
#fcm-kazecamp-lp.theme-night .hero-kaza-logo{filter:drop-shadow(0 6px 24px rgba(0,0,0,.4))}
#fcm-kazecamp-lp .hero-sparkle{position:absolute;width:16px;height:16px;pointer-events:none;
  background:radial-gradient(circle,#fff 0%,rgba(255,240,180,.9) 30%,transparent 65%);
  clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);
  animation:twinkle 3.4s ease-in-out infinite}
#fcm-kazecamp-lp .hero-sparkle-1{top:-6%;left:8%;animation-delay:0s}
#fcm-kazecamp-lp .hero-sparkle-2{top:22%;right:2%;width:12px;height:12px;animation-delay:1.1s}
#fcm-kazecamp-lp .hero-sparkle-3{bottom:-2%;left:24%;width:10px;height:10px;animation-delay:2s}
@keyframes twinkle{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}}
@media (prefers-reduced-motion:reduce){#fcm-kazecamp-lp .hero-sparkle{animation:none;opacity:.7}}

#fcm-kazecamp-lp .hero-date{position:relative;z-index:1;margin:0 0 clamp(24px,4vw,34px)}
#fcm-kazecamp-lp .hero-date-main{font-family:var(--font-en);font-size:clamp(1.3rem,4.4vw,1.85rem);letter-spacing:.05em;color:var(--text);font-weight:600}
#fcm-kazecamp-lp .hero-date-sub{font-family:var(--font-jp);font-size:clamp(.86rem,2.4vw,1rem);color:var(--text-sub);margin-top:.5em}
#fcm-kazecamp-lp .hero-cta{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center}
#fcm-kazecamp-lp .scroll-indicator{position:relative;z-index:1;margin-top:clamp(30px,6vh,54px);display:flex;flex-direction:column;align-items:center;gap:.6em}
#fcm-kazecamp-lp .scroll-line{width:1.5px;height:44px;background:linear-gradient(180deg,var(--text-sub),transparent);animation:scrolldrop 2.2s ease-in-out infinite}
#fcm-kazecamp-lp .scroll-indicator span{font-family:var(--font-en);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--text-muted)}
@keyframes scrolldrop{0%{transform:scaleY(.4);transform-origin:top;opacity:.4}50%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.4);transform-origin:bottom;opacity:.4}}
@media (prefers-reduced-motion:reduce){#fcm-kazecamp-lp .scroll-line{animation:none}}

/* ── CONCEPT ────────────────────────────────────────────── */
#fcm-kazecamp-lp .concept-title{margin-bottom:clamp(28px,5vw,44px)}
#fcm-kazecamp-lp .concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,72px);align-items:center}
#fcm-kazecamp-lp .concept-lead{font-family:var(--font-serif);font-size:clamp(1.02rem,2.5vw,1.2rem);line-height:2.15;color:var(--text);text-wrap:pretty;line-break:strict;word-break:keep-all;overflow-wrap:anywhere}
#fcm-kazecamp-lp .concept-quote{color:var(--accent-warm);font-weight:600}
#fcm-kazecamp-lp .concept-more{max-height:0;overflow:hidden;opacity:0;transition:max-height .5s ease,opacity .4s ease,margin .4s ease;margin-top:0}
#fcm-kazecamp-lp .concept-more.open{max-height:600px;opacity:1;margin-top:1.3em}
#fcm-kazecamp-lp .concept-more p{font-family:var(--font-serif);font-size:clamp(.98rem,2.3vw,1.1rem);line-height:2.15;color:var(--text-sub);margin-bottom:1em;text-wrap:pretty;line-break:strict;word-break:keep-all;overflow-wrap:anywhere}
#fcm-kazecamp-lp .concept-more-toggle{
  display:inline-flex;align-items:center;gap:.4em;margin-top:1.1em;
  font-family:var(--font-jp);font-size:.9rem;color:var(--accent);background:none;border:0;cursor:pointer;padding:.3em 0}
#fcm-kazecamp-lp .concept-more-toggle .arrow{transition:transform .3s}
#fcm-kazecamp-lp .concept-more-toggle.open .arrow{transform:rotate(180deg)}
#fcm-kazecamp-lp .concept-keywords{display:flex;flex-wrap:wrap;gap:.5em;margin-top:1.8em}
#fcm-kazecamp-lp .keyword{
  font-family:var(--font-jp);font-size:.82rem;color:var(--text-sub);
  padding:.35em .95em;border:1px solid var(--border);border-radius:999px;background:var(--card)}
#fcm-kazecamp-lp .concept-visual{position:relative;max-width:min(100%,420px);margin-inline:auto}
#fcm-kazecamp-lp .concept-main-img{width:100%;height:auto;max-height:min(70vh,640px);object-fit:contain;object-position:center top;border-radius:var(--radius);box-shadow:0 18px 50px rgba(120,90,40,.16);background:var(--card-solid)}
#fcm-kazecamp-lp.theme-night .concept-main-img{box-shadow:0 18px 50px rgba(0,0,0,.4)}
#fcm-kazecamp-lp .info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,28px)}
#fcm-kazecamp-lp .info-cell-label{font-family:var(--font-en);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:.5em}
#fcm-kazecamp-lp .info-cell-value{font-family:var(--font-serif);font-size:clamp(1rem,2.4vw,1.2rem);line-height:1.6;color:var(--text)}
#fcm-kazecamp-lp .info-cell-value.grad-text{font-size:clamp(1.3rem,3.4vw,1.7rem);font-weight:600}
@media (max-width:760px){
  #fcm-kazecamp-lp .concept-grid{grid-template-columns:1fr;gap:34px}
  #fcm-kazecamp-lp .concept-visual{order:0;max-width:min(100%,380px);margin:0 auto}
}

/* ── STORY ARC 2021→2026 ────────────────────────────────── */
#fcm-kazecamp-lp .story-arc-inner{
  max-width:820px;margin:0 auto;padding:clamp(64px,10vw,104px) var(--edge) clamp(28px,5vw,40px);text-align:center
}
#fcm-kazecamp-lp .story-arc-foot{
  max-width:var(--maxw);margin:0 auto;padding:0 var(--edge) clamp(64px,10vw,104px)
}
#fcm-kazecamp-lp .story-arc .info-grid{
  margin-top:0;padding-top:clamp(32px,5vw,44px);border-top:1px solid var(--border)
}
#fcm-kazecamp-lp .story-arc .info-cell{
  padding:clamp(12px,2vw,20px) 0;background:transparent;border:0;border-radius:0;
  box-shadow:none;text-align:left
}
#fcm-kazecamp-lp.theme-night .story-arc .info-cell{box-shadow:none}
#fcm-kazecamp-lp .story-arc .info-cell-value{word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
#fcm-kazecamp-lp .story-arc .section-cta{margin-top:clamp(32px,5vw,48px)}
#fcm-kazecamp-lp .story-arc-row{display:flex;align-items:center;justify-content:center;gap:clamp(18px,5vw,44px);margin:1.6em 0}
#fcm-kazecamp-lp .story-year{font-family:var(--font-en);font-size:clamp(1.6rem,6vw,2.6rem);font-weight:600;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:.3em}
#fcm-kazecamp-lp .story-year-label{font-family:var(--font-jp);font-size:.72rem;letter-spacing:.14em;color:var(--text-muted);text-transform:uppercase}
#fcm-kazecamp-lp .story-year.is-now{color:var(--text)}
#fcm-kazecamp-lp .story-year.is-now .num{background:var(--kaza-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#fcm-kazecamp-lp .story-arc-line{flex:1;max-width:220px;height:2px;position:relative;background:linear-gradient(90deg,var(--border-strong),var(--kaza-orange))}
#fcm-kazecamp-lp .story-arc-line::after{content:"";position:absolute;right:-2px;top:50%;transform:translateY(-50%);border-left:8px solid var(--kaza-burnt);border-top:5px solid transparent;border-bottom:5px solid transparent}
#fcm-kazecamp-lp .story-arc-copy{font-family:var(--font-serif);font-size:clamp(1rem,2.5vw,1.2rem);line-height:2.1;color:var(--text-sub);text-wrap:pretty;margin-top:1.4em}
#fcm-kazecamp-lp .story-arc-copy strong{color:var(--text);font-weight:600}
@media (max-width:760px){
  #fcm-kazecamp-lp .story-arc .info-grid{grid-template-columns:1fr;gap:1rem}
  #fcm-kazecamp-lp .story-arc .info-cell{text-align:left}
  #fcm-kazecamp-lp .story-arc-row{flex-wrap:wrap;gap:12px 18px}
  #fcm-kazecamp-lp .story-arc-line{order:3;flex:1 1 100%;max-width:none;margin-top:.4em}
}

/* ── A DAY（78のイラスト式・蛇行する一日の線） ──────────── */
#fcm-kazecamp-lp .day-lead{font-family:var(--font-serif);font-size:clamp(1rem,2.4vw,1.16rem);line-height:2.1;color:var(--text-sub);text-wrap:pretty;margin:.4em 0 0;word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
#fcm-kazecamp-lp .day-lead-cue{display:block;margin-top:1em;font-size:.92rem;color:var(--accent);letter-spacing:.04em}
#fcm-kazecamp-lp .day-timeline{
  position:relative;max-width:640px;margin:clamp(40px,7vw,64px) auto 0;
  padding-left:clamp(46px,10vw,66px);
}
/* 一日の流れ：ふらふら歩いてたどり着く点線の軌跡（一輪車の足跡のように） */
#fcm-kazecamp-lp .day-trail{
  position:absolute;left:0;top:4px;bottom:38px;
  width:clamp(46px,10vw,66px);z-index:0;pointer-events:none;overflow:visible;
}
#fcm-kazecamp-lp .day-trail path{fill:none;stroke-width:3;stroke-linecap:round;stroke-dasharray:.01 10.5}
#fcm-kazecamp-lp.theme-night .day-trail{opacity:.9}
#fcm-kazecamp-lp .day-step{position:relative;z-index:1;padding:0 0 clamp(30px,5vw,42px)}
#fcm-kazecamp-lp .day-step-last{padding-bottom:0}
#fcm-kazecamp-lp .day-illust{
  position:absolute;left:calc(-1 * clamp(46px,10vw,66px));top:-4px;z-index:1;
  width:clamp(38px,9vw,46px);height:clamp(38px,9vw,46px);
  padding:6px;border-radius:50%;background:var(--card-solid);
  border:1.5px solid var(--slot,var(--t-noon));color:var(--slot,var(--t-noon));
  box-shadow:0 3px 12px rgba(120,80,30,.14);
}
#fcm-kazecamp-lp.theme-night .day-illust{box-shadow:0 3px 14px rgba(0,0,0,.4)}
/* ふらふら感：アイコンを一列に並べず、少しずつ左右へずらして傾ける */
#fcm-kazecamp-lp .day-step:nth-child(1) .day-illust{transform:translateX(4px) rotate(3deg)}
#fcm-kazecamp-lp .day-step:nth-child(2) .day-illust{transform:translateX(-5px) rotate(-4deg)}
#fcm-kazecamp-lp .day-step:nth-child(3) .day-illust{transform:translateX(6px) rotate(2.5deg)}
#fcm-kazecamp-lp .day-step:nth-child(4) .day-illust{transform:translateX(-4px) rotate(-2.5deg)}
#fcm-kazecamp-lp .day-step:nth-child(5) .day-illust{transform:translateX(5px) rotate(3.5deg)}
#fcm-kazecamp-lp .day-step:nth-child(6) .day-illust{transform:translateX(-6px) rotate(-3deg)}
#fcm-kazecamp-lp .day-step:nth-child(7) .day-illust{transform:translateX(3px) rotate(2deg)}
#fcm-kazecamp-lp .day-step:nth-child(8) .day-illust{transform:translateX(-3px) rotate(-2.5deg)}
#fcm-kazecamp-lp .day-step-right{padding-top:1px}
#fcm-kazecamp-lp .day-time{font-family:var(--font-en);font-size:1.08rem;font-weight:600;letter-spacing:.05em;color:var(--text)}
#fcm-kazecamp-lp .day-label{display:inline-block;margin-left:.6em;font-family:var(--font-en);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--slot,var(--accent))}
#fcm-kazecamp-lp .day-desc{font-family:var(--font-serif);font-size:clamp(.98rem,2.3vw,1.06rem);line-height:2;color:var(--text-sub);margin-top:.35em;text-wrap:pretty}
/* 各スロットの色（朝→夜へ温度が上がる） */
#fcm-kazecamp-lp .day-step:nth-child(1){--slot:var(--t-morning)}
#fcm-kazecamp-lp .day-step:nth-child(2){--slot:var(--t-noon)}
#fcm-kazecamp-lp .day-step:nth-child(3){--slot:#7EA33C}
#fcm-kazecamp-lp .day-step:nth-child(4){--slot:var(--t-gold)}
#fcm-kazecamp-lp .day-step:nth-child(5){--slot:var(--t-amber)}
#fcm-kazecamp-lp .day-step:nth-child(6){--slot:var(--t-sunset)}
#fcm-kazecamp-lp .day-step:nth-child(7){--slot:var(--t-ember)}
#fcm-kazecamp-lp .day-step:nth-child(8){--slot:var(--t-ember)}

/* ── CAMP SESSION（夜の帯・常に焚き火の時間） ───────────── */
#fcm-kazecamp-lp .campsession{
  position:relative;overflow:hidden;text-align:center;
  padding:clamp(80px,13vw,140px) var(--edge);
  background:
    radial-gradient(120% 80% at 50% 120%,rgba(232,120,40,.28) 0%,rgba(232,120,40,0) 55%),
    linear-gradient(180deg,#0b1c17 0%,#0e241c 46%,#0a1913 100%);
  color:#F4ECD8;
}
#fcm-kazecamp-lp .campsession::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(2px 2px at 20% 24%,rgba(255,247,232,.7),transparent),
            radial-gradient(1.6px 1.6px at 74% 16%,rgba(255,247,232,.6),transparent),
            radial-gradient(1.8px 1.8px at 46% 34%,rgba(255,247,232,.5),transparent),
            radial-gradient(1.4px 1.4px at 86% 42%,rgba(255,247,232,.55),transparent),
            radial-gradient(1.5px 1.5px at 12% 46%,rgba(255,247,232,.5),transparent);
}
#fcm-kazecamp-lp .campsession-inner{position:relative;z-index:1;max-width:640px;margin:0 auto}
#fcm-kazecamp-lp .campsession-fire{width:clamp(56px,13vw,84px);height:auto;margin:0 auto clamp(20px,4vw,30px);color:#F6C64A}
#fcm-kazecamp-lp .campsession-fire path:first-of-type{animation:none}
#fcm-kazecamp-lp .campsession-eyebrow{font-family:var(--font-en);font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:#E8963A;margin-bottom:1em}
#fcm-kazecamp-lp .campsession-title{font-family:var(--font-serif);font-weight:600;font-size:clamp(1.7rem,5.4vw,2.7rem);line-height:1.4;color:#F7EFDC;text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere;line-break:strict}
#fcm-kazecamp-lp .campsession-title .grad-em{background:linear-gradient(100deg,#F6D573,#E8963A 60%,#E2641E);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
#fcm-kazecamp-lp .campsession-lines{margin:clamp(28px,5vw,40px) 0}
#fcm-kazecamp-lp .campsession-lines p{font-family:var(--font-serif);font-size:clamp(1rem,2.6vw,1.2rem);line-height:2.3;color:#E7DECB;margin:0;text-wrap:balance}
#fcm-kazecamp-lp .campsession-coda{font-family:var(--font-serif);font-size:clamp(1rem,2.5vw,1.16rem);line-height:2.1;color:#F6C64A;text-wrap:balance}

/* ── ARTISTS ────────────────────────────────────────────── */
#fcm-kazecamp-lp .artist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.6vw,24px)}
#fcm-kazecamp-lp .artist-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:0 8px 26px rgba(120,80,30,.1);transition:transform .2s,box-shadow .2s}
#fcm-kazecamp-lp.theme-night .artist-card{box-shadow:0 8px 26px rgba(0,0,0,.3)}
#fcm-kazecamp-lp .artist-card:hover{transform:translateY(-3px)}
#fcm-kazecamp-lp .artist-placeholder,
#fcm-kazecamp-lp .artist-photo{
  position:relative;aspect-ratio:4/5;display:grid;place-items:center;overflow:hidden;
  font-family:var(--font-en);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7);
  background:linear-gradient(160deg,#7CC0A6 0%,#E6B84C 46%,#E2641E 100%);
}
#fcm-kazecamp-lp .artist-card .photo-fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
#fcm-kazecamp-lp .artist-info{padding:1em 1.1em;text-align:center}
#fcm-kazecamp-lp .artist-name{font-family:var(--font-serif);font-weight:600;font-size:1.05rem;color:var(--text)}
#fcm-kazecamp-lp .artist-role{font-family:var(--font-en);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-top:.4em}
#fcm-kazecamp-lp .artist-tba .artist-role{color:var(--accent-warm)}
#fcm-kazecamp-lp .artist-link{display:inline-block;margin-top:.5em;font-size:.8rem;color:var(--accent)}
@media (max-width:620px){#fcm-kazecamp-lp .artist-grid{grid-template-columns:repeat(2,1fr)}}

/* ── UPDATES ────────────────────────────────────────────── */
#fcm-kazecamp-lp .updates-wrap{text-align:center;max-width:680px}
#fcm-kazecamp-lp .updates-icon{width:38px;height:38px;margin:0 auto 1em;color:var(--accent)}
#fcm-kazecamp-lp .updates-lead{font-family:var(--font-serif);font-size:clamp(1rem,2.4vw,1.14rem);line-height:2.1;color:var(--text-sub);margin:.4em auto 1.8em;text-wrap:pretty}
#fcm-kazecamp-lp .updates-btn{margin-top:.4em}

/* ── TICKETS ────────────────────────────────────────────── */
#fcm-kazecamp-lp .ticket-note-top{
  font-family:var(--font-jp);font-size:.94rem;color:var(--text-sub);
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:.9em 1.2em;margin:1.4em 0 clamp(28px,4vw,40px);text-align:center}
#fcm-kazecamp-lp .ticket-note-top strong{color:var(--accent-warm)}
#fcm-kazecamp-lp .kaza-ticket-member-gate{
  margin:0 0 clamp(28px,4vw,40px);padding:1.2em 1.4em;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-align:center}
#fcm-kazecamp-lp .kaza-ticket-member-gate .c-note{
  font-family:var(--font-jp);font-size:.94rem;color:var(--text-sub);margin:0 0 .7em}
#fcm-kazecamp-lp .kaza-ticket-member-gate .fcm-eventApplyCta__gateActions{
  display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1em}
#fcm-kazecamp-lp .kaza-ticket-member-gate .btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-jp);font-size:.9rem;padding:.85em 1.4em;
  border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text);text-decoration:none}
#fcm-kazecamp-lp .ticket-tabs{display:flex;gap:6px;margin-bottom:24px;max-width:520px}
#fcm-kazecamp-lp .ticket-tab{
  flex:1;font-family:var(--font-en);font-size:.8rem;letter-spacing:.08em;font-weight:600;
  padding:.85em .6em;border:1px solid var(--border);border-radius:var(--radius);
  background:var(--card);color:var(--text-sub);cursor:pointer;transition:all .2s}
#fcm-kazecamp-lp .ticket-tab.active{background:#efc61a;color:#2b241b;border-color:transparent}
#fcm-kazecamp-lp .ticket-panel{display:none;animation:fadein .4s ease}
#fcm-kazecamp-lp .ticket-panel.active{display:block}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
#fcm-kazecamp-lp .ticket-group-label{font-family:var(--font-en);font-size:1.3rem;font-weight:700;color:var(--text);margin-bottom:1.2em;display:flex;align-items:baseline;gap:.7em;flex-wrap:wrap}
#fcm-kazecamp-lp .ticket-group-sub{font-family:var(--font-jp);font-size:.86rem;font-weight:400;color:var(--text-sub);letter-spacing:.02em}

#fcm-kazecamp-lp .ticket-camp-alert,#fcm-kazecamp-lp .ticket-camp-cta{border-radius:var(--radius)}
#fcm-kazecamp-lp .ticket-camp-alert{
  font-size:.92rem;color:var(--text);background:rgba(232,120,40,.1);border:1px solid rgba(232,120,40,.3);
  border-radius:var(--radius);padding:.9em 1.2em;margin-bottom:1.6em}
#fcm-kazecamp-lp .ticket-camp-alert strong{color:var(--accent-warm)}

/* schedule timeline */
#fcm-kazecamp-lp .ticket-schedule{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(20px,4vw,30px);margin-bottom:1.8em}
#fcm-kazecamp-lp .schedule-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 14px;margin-bottom:1.3em}
#fcm-kazecamp-lp .schedule-badge{font-family:var(--font-jp);font-size:.76rem;font-weight:700;color:#fff;background:var(--accent);padding:.3em .9em;border-radius:999px}
#fcm-kazecamp-lp .schedule-span{font-family:var(--font-en);font-size:1.02rem;font-weight:600;color:var(--text)}
#fcm-kazecamp-lp .schedule-caption{flex:1 1 100%;font-size:.9rem;color:var(--text-sub);line-height:1.8;margin-top:.2em}
#fcm-kazecamp-lp .schedule-timeline{list-style:none;display:flex;flex-direction:column;gap:.1em;position:relative;padding-left:16px}
#fcm-kazecamp-lp .schedule-timeline::before{content:"";position:absolute;left:3px;top:12px;bottom:12px;width:1.5px;background:var(--border-strong)}
#fcm-kazecamp-lp .schedule-day{font-family:var(--font-en);font-size:.78rem;letter-spacing:.14em;color:var(--accent);font-weight:600;margin:.8em 0 .3em}
#fcm-kazecamp-lp .schedule-stop{position:relative;display:flex;align-items:baseline;gap:1em;padding:.35em 0}
#fcm-kazecamp-lp .schedule-stop::before{content:"";position:absolute;left:-16px;top:.7em;width:8px;height:8px;border-radius:50%;background:var(--accent);transform:translateX(-1px)}
#fcm-kazecamp-lp .schedule-stop .t{font-family:var(--font-en);font-size:.92rem;font-weight:600;color:var(--text);min-width:56px}
#fcm-kazecamp-lp .schedule-stop .e{font-family:var(--font-jp);font-size:.92rem;color:var(--text-sub)}
#fcm-kazecamp-lp .schedule-stop .e small{display:block;font-size:.78rem;color:var(--text-muted);margin-top:.2em}
#fcm-kazecamp-lp .schedule-stay::before,#fcm-kazecamp-lp .schedule-secret::before{background:var(--accent-warm)}
#fcm-kazecamp-lp .schedule-secret .e{color:var(--accent-warm)}
#fcm-kazecamp-lp .schedule-end::before{background:var(--text-muted)}

#fcm-kazecamp-lp .ticket-grid{display:grid;gap:clamp(14px,2.4vw,20px)}
#fcm-kazecamp-lp .ticket-grid-4{grid-template-columns:repeat(4,1fr)}
#fcm-kazecamp-lp .ticket-grid-3{grid-template-columns:repeat(3,1fr)}
#fcm-kazecamp-lp .ticket-card{
  display:flex;flex-direction:column;gap:.15em;background:var(--card-solid);border:1px solid var(--border);
  border-radius:var(--radius);padding:clamp(18px,3vw,24px);box-shadow:0 8px 24px rgba(120,80,30,.1)}
#fcm-kazecamp-lp.theme-night .ticket-card{box-shadow:0 8px 24px rgba(0,0,0,.25)}
#fcm-kazecamp-lp .ticket-card.featured{border-color:var(--accent);box-shadow:0 10px 30px rgba(46,148,120,.14);background:linear-gradient(180deg,rgba(46,148,120,.06) 0%,var(--card-solid) 42%)}
#fcm-kazecamp-lp .ticket-card.ticket-offline{background:var(--card);border-style:dashed}
#fcm-kazecamp-lp .ticket-offline-badge,#fcm-kazecamp-lp .spec-badge,#fcm-kazecamp-lp .schedule-badge{white-space:nowrap}
#fcm-kazecamp-lp .ticket-offline-badge{align-self:flex-start;font-family:var(--font-jp);font-size:.72rem;font-weight:700;color:var(--text-sub);background:var(--bg3);padding:.3em .8em;border-radius:999px;margin-bottom:.8em}
#fcm-kazecamp-lp .ticket-type{font-family:var(--font-jp);font-size:.78rem;color:var(--accent);font-weight:700;margin:0 0 .45em;letter-spacing:.04em}
#fcm-kazecamp-lp .ticket-name{font-family:var(--font-en);font-size:1.05rem;letter-spacing:.06em;font-weight:700;color:var(--text);line-height:1.35;margin:0 0 .65em;padding-bottom:.55em;border-bottom:1px solid var(--border)}
#fcm-kazecamp-lp .ticket-price{font-family:var(--font-en);font-size:1.85rem;font-weight:700;color:var(--text);line-height:1.1}
#fcm-kazecamp-lp .ticket-price-note{font-family:var(--font-jp);font-size:.8rem;color:var(--text-sub);margin:.4em 0 1.05em;line-height:1.6}
#fcm-kazecamp-lp .ticket-offline-note{font-size:.82rem;color:var(--text-sub);line-height:1.75;margin-top:auto}
#fcm-kazecamp-lp .ticket-card .btn-primary{margin-top:auto;width:100%;font-size:.86rem;padding:.85em 1em}
#fcm-kazecamp-lp .ticket-camp-cta{margin-top:1.6em;background:var(--card);border:1px solid var(--accent);padding:clamp(20px,4vw,28px)}
#fcm-kazecamp-lp .camp-cta-inner{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
#fcm-kazecamp-lp .camp-cta-detail{font-family:var(--font-en);font-size:1.05rem;font-weight:600;color:var(--text);margin:.3em 0}
#fcm-kazecamp-lp .camp-cta-sub{font-size:.88rem;color:var(--text-sub);line-height:1.8}

/* spec */
#fcm-kazecamp-lp .ticket-spec{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(20px,4vw,30px);margin-bottom:1.8em}
#fcm-kazecamp-lp .spec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 16px;margin-bottom:1.2em}
#fcm-kazecamp-lp .spec-badge{font-family:var(--font-jp);font-size:.76rem;font-weight:700;color:#fff;background:var(--accent);padding:.3em .9em;border-radius:999px}
#fcm-kazecamp-lp .spec-title{font-family:var(--font-serif);font-size:1.4rem;font-weight:600;color:var(--text)}
#fcm-kazecamp-lp .spec-title-sub{font-size:.86rem;color:var(--text-sub);margin-left:.4em}
#fcm-kazecamp-lp .spec-price{font-family:var(--font-en);font-size:1.3rem;font-weight:700;color:var(--text);margin-left:auto}
#fcm-kazecamp-lp .spec-price span{display:block;font-family:var(--font-jp);font-size:.74rem;font-weight:400;color:var(--text-muted)}
#fcm-kazecamp-lp .spec-list{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:1em 0}
#fcm-kazecamp-lp .spec-list li{display:flex;flex-direction:column;align-items:center;gap:.5em;text-align:center;font-size:.86rem;color:var(--text-sub)}
#fcm-kazecamp-lp .spec-list svg{width:30px;height:30px;fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round}
#fcm-kazecamp-lp .spec-note{font-size:.86rem;color:var(--text-sub);line-height:1.85;padding-top:1em;border-top:1px solid var(--border)}
#fcm-kazecamp-lp .spec-note strong{color:var(--accent-warm)}

/* camp selector */
#fcm-kazecamp-lp .ticket-camp-selector{background:var(--card-solid);border:1px solid var(--border-strong);border-radius:var(--radius);padding:clamp(22px,4vw,32px)}
#fcm-kazecamp-lp .camp-selector-title{font-family:var(--font-serif);font-size:1.2rem;font-weight:600;color:var(--text);margin-bottom:1.2em}
#fcm-kazecamp-lp .camp-selector-subhead{font-family:var(--font-jp);font-size:.86rem;font-weight:700;color:var(--text-sub);margin:1.6em 0 .3em;padding-top:1.2em;border-top:1px solid var(--border)}
#fcm-kazecamp-lp .camp-selector-row{display:flex;align-items:center;gap:14px;padding:.7em 0}
#fcm-kazecamp-lp .camp-selector-label{flex:1;font-family:var(--font-jp);font-size:.98rem;color:var(--text);display:flex;flex-direction:column;gap:.2em}
#fcm-kazecamp-lp .camp-selector-price{font-family:var(--font-en);font-size:.82rem;color:var(--text-muted)}
#fcm-kazecamp-lp .camp-selector-control{display:flex;align-items:center;gap:6px}
#fcm-kazecamp-lp .camp-qty-btn{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--card);color:var(--text);font-size:1.1rem;cursor:pointer;display:grid;place-items:center;transition:all .15s}
#fcm-kazecamp-lp .camp-qty-btn:hover{border-color:var(--accent);color:var(--accent)}
#fcm-kazecamp-lp .camp-qty-btn:active{transform:scale(.94)}
#fcm-kazecamp-lp .camp-qty-val{min-width:28px;text-align:center;font-family:var(--font-en);font-size:1.1rem;font-weight:600;color:var(--text)}
#fcm-kazecamp-lp .camp-selector-unit{font-size:.82rem;color:var(--text-muted);min-width:24px}
#fcm-kazecamp-lp .camp-selector-warning{font-size:.86rem;color:var(--accent-warm);line-height:1.7;margin:.6em 0;min-height:1px}
#fcm-kazecamp-lp .camp-selector-warning:empty{margin:0}
#fcm-kazecamp-lp .camp-price-summary{margin-top:1em;padding-top:1.2em;border-top:1px solid var(--border)}
#fcm-kazecamp-lp .camp-price-row{display:flex;justify-content:space-between;gap:12px;font-size:.92rem;color:var(--text-sub);padding:.3em 0}
#fcm-kazecamp-lp .camp-price-row span:last-child{font-family:var(--font-en);color:var(--text)}
#fcm-kazecamp-lp .camp-price-divider{height:1px;background:var(--border);margin:.6em 0}
#fcm-kazecamp-lp .camp-price-grand{font-family:var(--font-serif);font-weight:600}
#fcm-kazecamp-lp .camp-price-grand span{font-size:1.15rem;color:var(--text)!important}
#fcm-kazecamp-lp .camp-price-grand span:last-child{font-family:var(--font-en);color:var(--accent-warm)!important}
#fcm-kazecamp-lp .camp-purchase-btn{width:100%;margin-top:1.4em}
#fcm-kazecamp-lp .camp-purchase-note{font-size:.78rem;color:var(--text-muted);line-height:1.75;margin-top:1em}

#fcm-kazecamp-lp .ticket-note{font-size:.82rem;color:var(--text-muted);line-height:1.9;margin-top:1.8em;text-align:center}
@media (max-width:820px){#fcm-kazecamp-lp .ticket-grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){#fcm-kazecamp-lp .ticket-grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){
  #fcm-kazecamp-lp .ticket-grid-4{grid-template-columns:1fr}
  #fcm-kazecamp-lp .ticket-grid-3{grid-template-columns:1fr}
  #fcm-kazecamp-lp .spec-list{grid-template-columns:1fr}
  #fcm-kazecamp-lp .camp-cta-inner{flex-direction:column;align-items:stretch}
}

/* ── ACCESS ─────────────────────────────────────────────── */
#fcm-kazecamp-lp .access-place-lead,#fcm-kazecamp-lp .access-lead{font-family:var(--font-serif);font-size:clamp(1rem,2.4vw,1.14rem);line-height:2.1;color:var(--text-sub);text-wrap:pretty;margin:.4em 0}
#fcm-kazecamp-lp .access-lead{font-size:.98rem;margin-top:1.6em}
#fcm-kazecamp-lp .access-proximity{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,3vw,28px);margin:clamp(32px,5vw,48px) 0;text-align:center}
#fcm-kazecamp-lp .access-prox-num{font-family:var(--font-en);font-size:clamp(1.8rem,6vw,2.7rem);font-weight:700;line-height:1}
#fcm-kazecamp-lp .access-prox-num .unit{font-size:.5em;font-weight:600;margin-left:.15em}
#fcm-kazecamp-lp .access-prox-label{font-family:var(--font-en);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);margin-top:.5em}
#fcm-kazecamp-lp .access-prox-sub{font-size:.86rem;color:var(--text-sub);margin-top:.3em}
#fcm-kazecamp-lp .venue-card{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(20px,4vw,36px);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(24px,4vw,38px);margin-top:1.4em}
#fcm-kazecamp-lp .venue-card-eyebrow{font-family:var(--font-en);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:.5em}
#fcm-kazecamp-lp .venue-card-name{font-family:var(--font-serif);font-size:clamp(1.3rem,3.4vw,1.6rem);font-weight:600;color:var(--text)}
#fcm-kazecamp-lp .venue-card-tagline{font-size:.92rem;color:var(--text-sub);line-height:1.9;margin:.8em 0 1.2em}
#fcm-kazecamp-lp .venue-card-meta{display:grid;grid-template-columns:auto 1fr;gap:.4em 1.2em;font-size:.9rem}
#fcm-kazecamp-lp .venue-card-meta dt{font-family:var(--font-en);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);align-self:center}
#fcm-kazecamp-lp .venue-card-meta dd{color:var(--text)}
#fcm-kazecamp-lp .venue-card-links{display:flex;flex-direction:column;gap:.5em}
#fcm-kazecamp-lp .venue-card-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:.85em 1em;border:1px solid var(--border);border-radius:var(--radius);background:var(--card-solid);transition:all .2s}
#fcm-kazecamp-lp .venue-card-link:hover{border-color:var(--accent);transform:translateX(2px)}
#fcm-kazecamp-lp .venue-card-link-sub{display:block;font-family:var(--font-en);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.2em}
#fcm-kazecamp-lp .venue-card-link>span:first-child{font-size:.92rem;color:var(--text)}
#fcm-kazecamp-lp .venue-card-link-arrow{color:var(--accent);font-size:1.1rem}

#fcm-kazecamp-lp .access-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.6vw,22px);margin-top:clamp(32px,5vw,44px)}
#fcm-kazecamp-lp .access-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(22px,4vw,28px)}
#fcm-kazecamp-lp .access-card-illust{width:52px;height:52px;color:var(--accent);margin-bottom:1em}
#fcm-kazecamp-lp .access-card-type{font-family:var(--font-en);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.4em}
#fcm-kazecamp-lp .access-card-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:600;color:var(--text);line-height:1.4;margin-bottom:.8em}
#fcm-kazecamp-lp .access-card-desc p{font-size:.9rem;color:var(--text-sub);line-height:1.85}
#fcm-kazecamp-lp .access-time-badge{display:inline-block;font-family:var(--font-en);font-size:.78rem;font-weight:600;color:var(--accent);background:var(--card-solid);border:1px solid var(--border);padding:.3em .8em;border-radius:999px;margin:.8em 0}
#fcm-kazecamp-lp .access-card-list{list-style:none;display:grid;gap:.4em;margin-top:.6em}
#fcm-kazecamp-lp .access-card-list li{position:relative;padding-left:1.2em;font-size:.88rem;color:var(--text-sub);line-height:1.7}
#fcm-kazecamp-lp .access-card-list li::before{content:"";position:absolute;left:0;top:.62em;width:.4em;height:.4em;border-radius:50%;background:var(--accent)}
#fcm-kazecamp-lp .access-card-note{font-size:.8rem;color:var(--text-muted);line-height:1.75;margin-top:1em;padding-top:.9em;border-top:1px solid var(--border)}
#fcm-kazecamp-lp .shuttle-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:1em}
#fcm-kazecamp-lp .shuttle-cell{background:var(--card-solid);border:1px solid var(--border);border-radius:var(--radius);padding:.9em}
#fcm-kazecamp-lp .shuttle-cell-label{font-family:var(--font-en);font-size:.78rem;font-weight:600;color:var(--accent);margin-bottom:.3em}
#fcm-kazecamp-lp .shuttle-cell-time{font-family:var(--font-en);font-size:.98rem;font-weight:600;color:var(--text)}
#fcm-kazecamp-lp .shuttle-cell-desc{font-size:.78rem;color:var(--text-muted);margin-top:.2em}

/* route */
#fcm-kazecamp-lp .access-route-section{margin-top:clamp(32px,5vw,48px)}
#fcm-kazecamp-lp .access-route-head{margin-bottom:1.6em}
#fcm-kazecamp-lp .access-route-title{font-family:var(--font-en);font-size:1.1rem;font-weight:700;letter-spacing:.06em;color:var(--text)}
#fcm-kazecamp-lp .access-route-note{font-size:.88rem;color:var(--text-sub);line-height:1.8;margin-top:.4em}
#fcm-kazecamp-lp .access-route{display:flex;flex-direction:column;gap:0}
#fcm-kazecamp-lp .access-route-card{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:clamp(16px,3vw,22px);transition:all .2s}
#fcm-kazecamp-lp .access-route-card:hover{border-color:var(--accent);transform:translateX(3px)}
#fcm-kazecamp-lp .access-route-card.is-goal{border-color:var(--accent-warm);background:rgba(232,120,40,.06)}
#fcm-kazecamp-lp .access-route-node-icon{flex:0 0 auto;width:44px;height:44px;color:var(--accent)}
#fcm-kazecamp-lp .access-route-node-icon svg{width:100%;height:100%}
#fcm-kazecamp-lp .access-route-card.is-goal .access-route-node-icon{color:var(--accent-warm)}
#fcm-kazecamp-lp .access-route-card-body{display:flex;flex-direction:column;gap:.15em;flex:1;min-width:0}
#fcm-kazecamp-lp .access-route-card-tag{font-family:var(--font-en);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
#fcm-kazecamp-lp .access-route-node-name{font-family:var(--font-serif);font-size:1.1rem;font-weight:600;color:var(--text)}
#fcm-kazecamp-lp .access-route-node-sub{font-size:.82rem;color:var(--text-sub)}
#fcm-kazecamp-lp .access-route-card-maps{display:inline-flex;align-items:center;gap:.35em;font-family:var(--font-en);font-size:.74rem;color:var(--accent);margin-top:.3em}
#fcm-kazecamp-lp .access-route-card-maps svg{width:14px;height:14px}
#fcm-kazecamp-lp .access-route-connector{display:flex;align-items:center;gap:8px;padding:8px 0 8px 30px;position:relative}
#fcm-kazecamp-lp .route-seg-track{flex:1;height:0;border-top:2px dotted var(--border-strong)}
#fcm-kazecamp-lp .route-seg-badge{display:inline-flex;align-items:center;gap:.4em;font-family:var(--font-jp);font-size:.8rem;color:var(--text-sub);white-space:nowrap}
#fcm-kazecamp-lp .route-seg-badge svg{width:18px;height:18px}
#fcm-kazecamp-lp .route-seg-badge b{font-family:var(--font-en);color:var(--accent);margin-left:.2em}
#fcm-kazecamp-lp .route-seg-arrow{display:none}

#fcm-kazecamp-lp .access-map-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,2.4vw,20px);margin-top:clamp(28px,4vw,40px)}
#fcm-kazecamp-lp .access-map-slot{aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4em;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--card)}
#fcm-kazecamp-lp .access-map-slot-label{font-family:var(--font-en);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
#fcm-kazecamp-lp .access-map-slot-note{font-size:.8rem;color:var(--text-sub)}
@media (max-width:760px){
  #fcm-kazecamp-lp .access-proximity,#fcm-kazecamp-lp .access-cards,#fcm-kazecamp-lp .access-map-slots{grid-template-columns:1fr}
  #fcm-kazecamp-lp .venue-card{grid-template-columns:1fr}
}

/* ── FAQ ────────────────────────────────────────────────── */
#fcm-kazecamp-lp .faq-list{max-width:760px;border-top:1px solid var(--border);margin-top:clamp(24px,4vw,36px)}
#fcm-kazecamp-lp .faq-item{padding:clamp(18px,3vw,24px) .2em;border-bottom:1px solid var(--border)}
#fcm-kazecamp-lp .faq-q{font-family:var(--font-jp);font-weight:700;font-size:1.02rem;color:var(--text);margin-bottom:.6em}
#fcm-kazecamp-lp .faq-a{font-family:var(--font-jp);font-size:.94rem;color:var(--text-sub);line-height:1.95}

/* ── FOOTER ─────────────────────────────────────────────── */
#fcm-kazecamp-lp footer{
  text-align:center;padding:clamp(64px,10vw,100px) var(--edge);
  background:linear-gradient(180deg,#0b1c17 0%,#0a1913 100%);color:#E7DECB;
}
#fcm-kazecamp-lp .footer-presented{font-family:var(--font-en);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:#8fae9c;margin-bottom:1em}
#fcm-kazecamp-lp .footer-fcm{display:inline-flex;align-items:center;gap:.7em;margin-bottom:1.2em;text-decoration:none}
#fcm-kazecamp-lp .footer-fcm-img{height:34px;width:auto;filter:brightness(0) invert(1) opacity(.92)}
#fcm-kazecamp-lp .footer-fcm-name{font-family:var(--font-serif);font-size:1.15rem;color:#F4ECD8}
#fcm-kazecamp-lp .footer-fcm-intro{max-width:560px;margin:0 auto 1.8em}
#fcm-kazecamp-lp .footer-fcm-intro p{font-size:.9rem;color:#B7B09E;line-height:1.95;margin-bottom:.5em}
#fcm-kazecamp-lp .footer-social{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-jp);font-size:.9rem;color:#E7DECB;border:1px solid rgba(231,222,203,.28);border-radius:999px;padding:.7em 1.4em;transition:all .2s}
#fcm-kazecamp-lp .footer-social:hover{border-color:#E8963A;color:#F6C64A}
#fcm-kazecamp-lp .footer-social svg{width:19px;height:19px}
#fcm-kazecamp-lp .footer-copy{font-family:var(--font-en);font-size:.72rem;letter-spacing:.08em;color:#6f7d72;margin-top:2em}

/* ── Reveal（JSが .reveal-tgt / .is-in を付与） ──────────── */
#fcm-kazecamp-lp .reveal-tgt{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}
#fcm-kazecamp-lp .reveal-tgt.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){#fcm-kazecamp-lp .reveal-tgt{opacity:1;transform:none;transition:none}}

