:root{
  --bg:#FBFDFE;
  --paper:#ffffff;
  --cyan:#5EBCD9;
  --cyan-d:#3FA2C7;
  --cyan-l:#DDF1F8;
  --cyan-ll:#EFF8FB;
  --cyan-band:#5EBCD9;
  --cyan-band-d:#4FB0CE;
  --ink:#3D4F5C;
  --sub:#7B8E9B;
  --line:#E1ECF2;
  --orange:#F5A672;
  --yellow:#F8C966;
  --coral:#E47878;
  --pink:#F5B6CC;
  --green:#8BC79A;
  --gold:#E5C16A;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg);color:var(--ink);
  font-family:"Noto Sans JP",system-ui,sans-serif;font-weight:500;line-height:1.95;letter-spacing:.02em;
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;background:transparent;border:0;cursor:pointer}

/* ============ ヘッダー（ミニマル） ============ */
header.top{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:stretch;justify-content:space-between;
  height:64px;
  background:linear-gradient(180deg,var(--cyan) 0%,var(--cyan-d) 100%);
}
header.top::after{
  content:"";position:absolute;left:0;right:0;bottom:-24px;height:24px;pointer-events:none;
  background:linear-gradient(180deg,rgba(94,188,217,.25),rgba(94,188,217,0));
}
.top .brand{display:flex;align-items:center;gap:10px;padding-left:30px}
.top .brand .name{font-family:"Kaisei Decol",serif;font-weight:700;font-size:24px;color:#fff;letter-spacing:.06em;line-height:1;text-shadow:0 2px 0 rgba(0,0,0,.08)}
.top .brand .name small{display:block;font-family:"Cormorant Garamond";font-size:9px;letter-spacing:.5em;color:rgba(255,255,255,.85);margin-top:5px;font-weight:500}
.top .menu{display:flex;gap:22px;align-items:center;margin-left:auto;margin-right:6px}
.top .menu > a, .top .menu .has-drop > a{display:inline-flex;flex-direction:column;align-items:center;gap:3px;font-family:"Klee One",serif;font-weight:700;color:#fff;font-size:14px;letter-spacing:.14em;padding:4px 2px;position:relative;line-height:1.1}
.top .menu a small{font-family:"Klee One",serif;font-weight:500;font-size:10px;letter-spacing:.08em;color:rgba(255,255,255,.85)}
.top .menu > a::after, .top .menu .has-drop > a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:#fff;transform:scaleX(0);transition:transform .2s}
.top .menu > a:hover::after, .top .menu .has-drop:hover > a::after{transform:scaleX(1)}
.top .buy{
  align-self:center;margin:0 16px;
  background:linear-gradient(180deg,#F8C966 0%,#F09B57 100%);
  color:#fff;padding:11px 28px;display:grid;place-items:center;border-radius:10px;
  font-family:"Klee One",serif;font-weight:700;font-size:15px;letter-spacing:.18em;
  text-shadow:0 1px 2px rgba(0,0,0,.18);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.75), 0 3px 8px rgba(240,155,87,.3);
  line-height:1.15;text-align:center;
}
.top .buy small{display:block;font-family:"Cormorant Garamond";font-size:9px;letter-spacing:.4em;color:rgba(255,255,255,.95);margin-top:3px;font-weight:500}
.top .buy:hover{filter:brightness(.96)}
@media(max-width:1080px){.top .menu{display:none}}

/* ============ 左サイド：縦書きCTAボタン ============ */
aside.sidetag{
  position:fixed;left:0;top:50%;translate:0 -50%;z-index:75;
  background:linear-gradient(180deg,#EF901F,#F6B53E);
  color:#fff;
  font-family:"Klee One",serif;font-weight:700;font-size:15px;letter-spacing:.22em;
  padding:20px 10px 16px;border-radius:0 14px 14px 0;
  box-shadow:0 5px 14px rgba(232,130,30,.32);
  display:flex;flex-direction:column;align-items:center;gap:12px;
  line-height:1.4;overflow:hidden;transition:filter .2s,transform .2s;
}
aside.sidetag .vtext{position:relative;z-index:2;writing-mode:vertical-rl;text-orientation:upright;text-align:center;text-shadow:0 1px 2px rgba(170,85,0,.35)}
aside.sidetag .burst{position:relative;width:18px;height:18px;flex:0 0 auto}
aside.sidetag .burst::after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.92);font-size:16px}
aside.sidetag:hover{filter:brightness(1.04);transform:translate(2px,-50%)}
@media(max-width:740px){aside.sidetag{font-size:13px;padding:16px 8px 12px}}


/* ============ 下部固定ナビ ============ */
nav.bottombar{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:linear-gradient(180deg,var(--cyan) 0%, var(--cyan-d) 100%);
  padding:12px 20px;display:flex;align-items:center;gap:20px;
  box-shadow:0 -6px 18px rgba(94,188,217,.25);
}
nav.bottombar .blogo{font-family:"Kaisei Decol",serif;font-weight:700;font-size:16px;color:#fff;letter-spacing:.06em}
nav.bottombar .blogo small{display:block;font-family:"Cormorant Garamond";font-size:9px;letter-spacing:.4em;color:rgba(255,255,255,.85);margin-top:2px;font-weight:500}
nav.bottombar ul{list-style:none;display:flex;gap:18px;align-items:center;margin:0 auto}
nav.bottombar ul li a{font-family:"Klee One",serif;font-weight:600;color:#fff;font-size:13px;letter-spacing:.18em;padding:6px 2px;border-bottom:2px solid transparent;transition:border-color .2s}
nav.bottombar ul li a:hover{border-bottom-color:#fff}
nav.bottombar .buy{background:#fff;color:var(--cyan-d);padding:10px 22px;border-radius:6px;font-family:"Klee One",serif;font-weight:700;font-size:13px;letter-spacing:.16em;box-shadow:0 4px 12px rgba(0,0,0,.12)}
nav.bottombar .buy small{display:block;font-family:"Cormorant Garamond";font-size:8px;letter-spacing:.4em;color:var(--cyan-d);margin-top:2px}
nav.bottombar .buy:hover{background:var(--ink);color:#fff}
nav.bottombar .buy:hover small{color:#fff}
@media(max-width:1080px){nav.bottombar ul{display:none}nav.bottombar{justify-content:space-between}}

/* ============ デコ：雲・花・葉 ============ */
.dec-cloud{position:absolute;opacity:.7;pointer-events:none}
.dec-cloud svg{width:100%;height:100%}
.dec-leaf{position:absolute;opacity:.6;pointer-events:none}
.dec-leaf svg{width:100%;height:100%}
.dec-flower{position:absolute;opacity:.85;pointer-events:none}
.dec-flower svg{width:100%;height:100%}

/* ============ HERO / KV ============ */
.kv{position:relative;padding:80px 0 0;background:var(--bg);overflow:hidden}
.kv::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    radial-gradient(circle at 8% 16%, rgba(255,184,209,.22), transparent 38%),
    radial-gradient(circle at 92% 12%, rgba(94,188,217,.20), transparent 40%),
    radial-gradient(circle at 50% 96%, rgba(248,201,102,.16), transparent 42%),
    radial-gradient(circle, rgba(94,188,217,.16) 1.4px, transparent 1.8px);
  background-size:auto,auto,auto,20px 20px;}
.kv > *{position:relative;z-index:1}
.kv-stage{
  position:relative;width:100%;max-width:1480px;margin:0 auto;
  aspect-ratio:16/9;
  background:url("../img/character/illustration-anime-city.jpg") center/cover no-repeat;
  border-radius:0 0 24px 24px;overflow:hidden;
  box-shadow:0 14px 40px rgba(94,188,217,.18);
}
.kv-stage::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.25) 100%);pointer-events:none}
.kv-stage .placard{position:absolute;top:18px;left:18px;background:rgba(255,255,255,.95);border:1.5px dashed var(--cyan-d);padding:6px 12px;border-radius:6px;font-family:"Klee One";font-size:11px;color:var(--cyan-d);letter-spacing:.1em;z-index:5}
.kv-stage .placard::before{content:"✎ ";color:var(--cyan)}
/* KV 下部 キャスト並び（透過PNG・地面に立つ） */
.kv-cast{position:absolute;left:0;right:0;bottom:0;height:100%;z-index:4;display:flex;align-items:flex-end;justify-content:space-evenly;gap:0;padding:0 1.5%}
/* 全員 同じ身長に統一・足元を地面ラインで揃える */
.kv-cast figure{margin:0;height:84%;display:flex;align-items:flex-end;justify-content:center;transition:transform .25s}
.kv-cast figure img{height:100%;width:auto;object-fit:contain;object-position:bottom center;
  filter:drop-shadow(0 12px 12px rgba(0,0,0,.3));display:block}
.kv-cast figure:hover{transform:translateY(-12px)}
@media(max-width:760px){.kv-cast{padding:0}}
.kv-stage .platforms{position:absolute;top:18px;right:18px;display:flex;gap:10px;align-items:center;z-index:5}
.kv-stage .platforms .pf{background:rgba(255,255,255,.95);padding:6px 12px;border-radius:6px;font-family:"Cormorant Garamond";font-size:10px;letter-spacing:.3em;color:var(--ink)}
.kv-stage .start{position:absolute;bottom:24px;right:24px;background:var(--cyan);color:#fff;border-radius:6px;padding:12px 22px;font-family:"Klee One",serif;font-weight:700;font-size:13px;letter-spacing:.2em;box-shadow:0 6px 18px rgba(94,188,217,.5);z-index:5}
.kv-stage .start small{display:block;font-family:"Cormorant Garamond";font-size:9px;letter-spacing:.4em;margin-top:2px;color:rgba(255,255,255,.9)}

/* シルエット（差し替え予定の人物） */
.kv-stage .silhrow{position:absolute;left:6%;right:6%;bottom:0;top:14%;display:flex;align-items:flex-end;justify-content:center;gap:.4%}
.kv-stage .silh{flex:1;height:100%;max-width:13%;
  background:linear-gradient(180deg, rgba(63,162,199,.55) 0%, rgba(63,162,199,.7) 100%);
  -webkit-mask:radial-gradient(ellipse 32% 11% at 50% 11%, #000 99%, transparent 100%) 0 0/100% 24% no-repeat,
              radial-gradient(ellipse 60% 90% at 50% 90%, #000 70%, transparent 71%) 0 24%/100% 76% no-repeat;
          mask:radial-gradient(ellipse 32% 11% at 50% 11%, #000 99%, transparent 100%) 0 0/100% 24% no-repeat,
              radial-gradient(ellipse 60% 90% at 50% 90%, #000 70%, transparent 71%) 0 24%/100% 76% no-repeat;
  transition:transform .25s;
}
.kv-stage .silh:nth-child(1){height:70%}
.kv-stage .silh:nth-child(2){height:86%}
.kv-stage .silh:nth-child(3){height:76%}
.kv-stage .silh:nth-child(4){height:92%}
.kv-stage .silh:nth-child(5){height:90%}
.kv-stage .silh:nth-child(6){height:80%}
.kv-stage .silh:nth-child(7){height:74%}
.kv-stage .silh:nth-child(8){height:82%}
.kv-stage .silh:hover{transform:translateY(-6px)}

/* タイトルロゴ */
.kv-stage .titlewrap{position:absolute;left:50%;bottom:8%;translate:-50% 0;text-align:center;z-index:6}
.kv-stage .titlewrap h1{
  font-family:"Kaisei Decol",serif;font-weight:700;
  font-size:clamp(56px,9vw,140px);line-height:.95;
  color:#fff;letter-spacing:.06em;
  text-shadow:0 4px 0 var(--cyan-d), 0 8px 30px rgba(63,162,199,.5), 0 0 26px rgba(255,255,255,.5);
}
.kv-stage .titlewrap h1 .num{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:700;color:var(--coral);font-size:.7em;vertical-align:.05em;text-shadow:0 4px 0 #c45e5e}
.kv-stage .titlewrap .sub{font-family:"Cormorant Garamond";letter-spacing:.7em;color:#fff;font-size:13px;margin-top:14px;font-weight:500;text-shadow:0 2px 8px rgba(63,162,199,.5)}
.kv-stage .titlewrap .jp-sub{display:block;font-family:"Klee One",serif;font-weight:600;font-size:14px;color:#fff;letter-spacing:.4em;margin-top:8px;text-shadow:0 2px 6px rgba(63,162,199,.5)}

/* ============ セクション共通 ============ */
section.sec{position:relative;padding:120px 5vw 100px;overflow:hidden}
.sec-title{text-align:center;margin-bottom:18px;position:relative;display:flex;flex-direction:column;align-items:center;gap:6px}
.sec-title h2{
  font-family:"Kaisei Decol",serif;font-weight:700;
  font-size:clamp(56px,9vw,120px);line-height:1;letter-spacing:.06em;
  color:var(--cyan);position:relative;
}
.sec-title h2::before,.sec-title h2::after{
  content:"";position:absolute;top:48%;width:50px;height:24px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 24'><path d='M4 12 Q12 2 24 8 Q36 14 46 6 M4 12 Q14 22 26 16 Q38 10 46 18' stroke='%235EBCD9' stroke-width='1.5' fill='none' opacity='.65'/></svg>");
  background-repeat:no-repeat;background-size:contain;opacity:.85;
}
.sec-title h2::before{left:-72px;transform:scaleX(-1)}
.sec-title h2::after{right:-72px}
.sec-title .jp{font-family:"Klee One",serif;font-weight:600;color:var(--sub);font-size:14px;letter-spacing:.5em}
.sec-title .en{font-family:"Cormorant Garamond";font-style:italic;color:var(--cyan-d);font-size:14px;letter-spacing:.2em;font-weight:500;margin-top:2px}

/* ============ NEWS（白背景） ============ */
.news{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding-top:80px}
.news .catch{text-align:center;font-family:"Yusei Magic","Klee One",serif;font-size:clamp(28px,4.2vw,52px);line-height:1.4;letter-spacing:.06em;margin-bottom:18px}
.news .catch .a{color:var(--orange)}
.news .catch .b{color:var(--yellow)}
.news .catch .c{color:var(--coral)}
.news .catch .mark{font-family:"Yusei Magic";color:var(--coral)}
.news .subcatch{text-align:center;font-family:"Klee One",serif;font-weight:600;color:var(--sub);font-size:15px;letter-spacing:.4em;margin-bottom:26px}
/* 3キーワード トライアド（企画×制作×集客） */
.triad{display:flex;align-items:center;justify-content:center;gap:clamp(8px,2vw,26px);flex-wrap:wrap;margin:6px auto 50px}
.triad .kw{position:relative;display:inline-flex;flex-direction:column;align-items:center;
  font-family:"Yusei Magic",serif;font-size:clamp(34px,5.6vw,70px);line-height:1;color:#fff;
  padding:.2em .42em .26em;border-radius:18px;background:var(--c);
  box-shadow:0 8px 0 var(--cs), 0 16px 22px rgba(0,0,0,.14);border:3px solid #fff}
.triad .kw small{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;font-size:.26em;letter-spacing:.12em;opacity:.95;margin-top:.18em}
.triad .k1{--c:#F5A672;--cs:#dd864e;transform:rotate(-3deg)}
.triad .k2{--c:#E47878;--cs:#c85b5b;transform:rotate(2deg)}
.triad .k3{--c:#5EBCD9;--cs:#3f9cbb;transform:rotate(-2deg)}
.triad .kw.wide{font-size:clamp(26px,4vw,50px)}
.triad .x{font-family:"Yusei Magic",serif;font-size:clamp(22px,3vw,42px);color:var(--orange);line-height:1}
/* ABOUT（シアン背景）に置くとき：3つ目を緑に・×を白に */
.about .triad{margin-top:30px}
.about .triad .k3{--c:#7fc06a;--cs:#5e9b50}
.about .triad .x{color:#fff;opacity:.9}
.about-pillars-label{text-align:center;font-family:"Klee One",serif;font-weight:600;font-size:15px;color:#fff;letter-spacing:.16em;margin:36px 0 14px}
.about-pillars-label b{color:var(--yellow);font-weight:700}
@media(max-width:560px){.triad{gap:8px}.triad .kw{font-size:32px}.triad .kw.wide{font-size:26px}}

.news-frame{max-width:980px;margin:0 auto;padding-top:30px;border-top:1px solid var(--line)}
.news-head{display:flex;align-items:flex-end;gap:18px;margin-bottom:18px}
.news-head h3{font-family:"Cormorant Garamond";font-style:italic;font-weight:500;color:var(--cyan);font-size:34px;line-height:1;letter-spacing:.06em}
.news-head .jp{font-family:"Klee One",serif;color:var(--sub);font-size:13px;letter-spacing:.4em;padding-bottom:4px}
.news-head .viewall{margin-left:auto;font-family:"Cormorant Garamond";font-size:11px;letter-spacing:.4em;color:var(--cyan-d);border-bottom:1px solid var(--cyan-d);padding:2px 0}

.news-list{list-style:none;display:grid;gap:0;background:#fff;border-radius:14px;box-shadow:0 6px 20px rgba(94,188,217,.08);padding:14px 26px}
.news-list li{border-bottom:1px dashed var(--line)}
.news-list li:last-child{border-bottom:0}
.news-list li a{display:grid;grid-template-columns:110px 84px 1fr 40px 18px;gap:14px;align-items:center;padding:14px 6px;text-decoration:none;color:inherit;border-radius:8px;transition:background .15s}
.news-list li a:hover{background:var(--cyan-l)}
.news-list li a:hover .ttl{color:var(--cyan-d)}
.news-list .date{font-family:"Cormorant Garamond";font-weight:500;font-size:14px;color:var(--ink);letter-spacing:.06em}
.news-list .tag{font-family:"Klee One",serif;font-size:11px;text-align:center;padding:4px 0;border-radius:4px;background:var(--cyan-l);color:var(--cyan-d);letter-spacing:.1em}
.news-list .tag.b{background:#FEF2E0;color:#C28534}
.news-list .tag.c{background:#FDE6E6;color:#C25555}
.news-list .ttl{font-family:"Klee One",serif;font-weight:500;color:var(--ink);font-size:14px;transition:color .15s}
.news-list .badge{font-family:"Yusei Magic";color:var(--coral);font-size:13px;text-align:center;transform:rotate(-8deg);font-weight:700}
.news-list .arw{font-family:"Cormorant Garamond";color:var(--cyan-d);font-size:18px;text-align:center;opacity:.4;transition:opacity .15s,transform .15s}
.news-list li a:hover .arw{opacity:1;transform:translateX(3px)}
@media(max-width:680px){.news-list li a{grid-template-columns:1fr;gap:4px;padding:14px 8px}.news-list .badge,.news-list .arw{display:none}}

/* news 背景の雲デコ */
.news .cloud-l{top:120px;left:5%;width:140px;height:50px}
.news .cloud-r{top:60px;right:8%;width:170px;height:60px}
.news .cloud-m{top:200px;left:50%;translate:-50% 0;width:120px;height:40px;opacity:.5}

/* ============ ABOUT（シアン背景） ============ */
.about{background:linear-gradient(180deg, var(--cyan) 0%, var(--cyan-band-d) 100%);color:#fff;padding:140px 5vw 130px;position:relative;overflow:hidden}
.about::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle, rgba(255,255,255,.32) 1.5px, transparent 2px);
  background-size:22px 22px;z-index:0}
.about > *{position:relative;z-index:1}
.about > .dec-leaf,.about > .dec-flower,.about > .dec-cloud{position:absolute;z-index:0}
.about .watermark{position:absolute;font-family:"Outfit",sans-serif;font-weight:700;font-size:clamp(80px,14vw,200px);line-height:.85;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.45);letter-spacing:.15em;pointer-events:none;z-index:0;white-space:nowrap}
.about .watermark.wm1{top:34%;right:-3%}
.about .watermark.wm2{bottom:8%;left:-2%}
.about .sec-title h2{font-family:"Outfit",sans-serif;font-weight:700;color:transparent;-webkit-text-stroke:3px #fff;text-shadow:0 8px 0 rgba(63,162,199,.55);letter-spacing:.04em}
.about .sec-title h2::before,.about .sec-title h2::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 24'><path d='M4 12 Q12 2 24 8 Q36 14 46 6 M4 12 Q14 22 26 16 Q38 10 46 18' stroke='white' stroke-width='1.5' fill='none' opacity='.85'/></svg>")}
.about .sec-title .jp{color:rgba(255,255,255,.85)}
.about .sec-title .en{color:rgba(255,255,255,.95)}

.about-catch{text-align:center;margin:50px auto 40px;max-width:900px}
.about-catch .magical{font-family:"Yusei Magic",serif;font-size:clamp(34px,4.6vw,56px);color:#fff;letter-spacing:.04em;line-height:1.3;text-shadow:0 4px 0 var(--cyan-d)}
.about-catch .magical em{font-style:normal;color:var(--yellow)}
.about-catch .magical .or{color:var(--orange)}
.about-catch .lead{font-family:"Klee One",serif;font-weight:600;font-size:16px;color:#fff;letter-spacing:.06em;margin-top:14px;line-height:2}

.about-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:18px;max-width:1200px;margin:30px auto 0;position:relative}
@media(max-width:920px){.about-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.about-grid{grid-template-columns:1fr}}
.about-cell{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg, #B3E2EF 0%, #E8F4F9 100%);border:3px solid #fff;border-radius:14px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.12);display:grid;place-items:center}
.about-cell.tall{aspect-ratio:3/4}
.about-cell::before{content:"差し替え予定";font-family:"Klee One";font-size:13px;color:var(--cyan-d);background:#fff;padding:6px 14px;border-radius:6px;border:1px dashed var(--cyan)}
.about-cell .lbl{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.95);color:var(--cyan-d);font-family:"Cormorant Garamond";font-size:10px;letter-spacing:.3em;padding:4px 10px;border-radius:4px}

.about-stamp{position:absolute;right:-10px;top:-30px;width:120px;height:120px;border-radius:50%;background:#fff;display:grid;place-items:center;font-family:"Yusei Magic",serif;color:var(--coral);font-size:18px;text-align:center;line-height:1.4;transform:rotate(-12deg);box-shadow:0 6px 18px rgba(0,0,0,.18);border:2px solid var(--coral)}

.about .leaf-l{top:50%;left:2%;width:120px;height:200px;translate:0 -50%;opacity:.4}
.about .leaf-r{top:50%;right:2%;width:120px;height:200px;translate:0 -50%;opacity:.4}
.about .flower-tl{top:90px;left:8%;width:50px;height:50px}
.about .flower-tr{top:60px;right:12%;width:60px;height:60px}
.about .flower-bl{bottom:80px;left:6%;width:55px;height:55px}
.about .flower-br{bottom:60px;right:10%;width:50px;height:50px}

/* ============ STORY ============ */
.story{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding:140px 5vw 130px}
.story-wrap{max-width:1100px;margin:60px auto 0;display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center}
@media(max-width:900px){.story-wrap{grid-template-columns:1fr}}
.story-img{aspect-ratio:4/3;background:linear-gradient(135deg, var(--cyan-l) 0%, #fff 100%);border:2px solid var(--cyan);border-radius:14px;display:grid;place-items:center;position:relative;box-shadow:0 10px 28px rgba(94,188,217,.18)}
.story-img::before{content:"差し替え予定 ／ story_main.webp";font-family:"Klee One";font-size:12px;color:var(--cyan-d);background:#fff;padding:6px 14px;border:1px dashed var(--cyan-d);border-radius:6px}
.story-img .lbl{position:absolute;top:14px;left:14px;background:var(--cyan);color:#fff;font-family:"Cormorant Garamond";font-size:11px;letter-spacing:.3em;padding:5px 12px;border-radius:6px}
.story-text h3{font-family:"Kaisei Decol",serif;font-weight:700;font-size:clamp(20px,2.4vw,30px);color:var(--ink);line-height:1.7;margin-bottom:24px;letter-spacing:.06em}
.story-text h3 em{font-style:normal;color:var(--cyan-d);background:linear-gradient(transparent 62%, var(--cyan-l) 62%);padding:0 4px}
.story-text p{font-family:"Klee One",serif;font-weight:500;font-size:15px;color:var(--ink);line-height:2.2;letter-spacing:.05em}
.story-text p+p{margin-top:14px}
.story-text .red{color:var(--coral);font-weight:600}

.story .cloud-l{top:90px;left:6%;width:120px;height:45px}
.story .cloud-r{top:160px;right:10%;width:150px;height:50px}

/* ============ POINT ============ */
.point{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding:140px 5vw 130px}
.point-list{max-width:1200px;margin:60px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:980px){.point-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.point-list{grid-template-columns:1fr}}
.point-item{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 22px rgba(94,188,217,.12);transition:transform .25s, box-shadow .25s}
.point-item:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(94,188,217,.22)}
.point-item .ph{aspect-ratio:4/3;background:linear-gradient(135deg, var(--cyan-l) 0%, #fff 60%, #FFF7E8 100%);display:grid;place-items:center;position:relative}
.point-item .ph::before{content:"差し替え予定";font-family:"Klee One";font-size:11px;color:var(--cyan-d);background:#fff;padding:4px 10px;border:1px dashed var(--cyan-d);border-radius:6px}
.point-item .ph .badge{position:absolute;top:10px;left:10px;background:var(--coral);color:#fff;font-family:"Yusei Magic";font-size:14px;padding:5px 12px;border-radius:6px;transform:rotate(-6deg)}
.point-item .ph .badge.b{background:var(--cyan);transform:rotate(4deg)}
.point-item .ph .badge.c{background:var(--orange);transform:rotate(-3deg)}
.point-item .ph .badge.d{background:var(--green);transform:rotate(2deg)}
.point-item .body{padding:18px 18px 22px}
.point-item .body .no{font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--cyan-d);font-size:11px;letter-spacing:.4em;margin-bottom:4px;font-weight:500}
.point-item .body h4{font-family:"Kaisei Decol",serif;font-weight:700;font-size:18px;color:var(--ink);letter-spacing:.04em;margin-bottom:8px}
.point-item .body p{font-family:"Klee One",serif;font-weight:500;font-size:13px;color:var(--sub);line-height:1.95}

.point .flower-tl{top:80px;left:5%;width:50px;height:50px}
.point .flower-tr{top:60px;right:8%;width:55px;height:55px}

/* ============ CHARACTER ============ */
.character{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding:140px 5vw 130px}
.character .sec-title h2{font-family:"Yusei Magic",serif}
.char-grid{max-width:1180px;margin:60px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;position:relative}
@media(max-width:900px){.char-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.char-grid{grid-template-columns:1fr}}
.char .portrait img.photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:bottom center;display:block;z-index:1;filter:drop-shadow(0 6px 8px rgba(0,0,0,.12))}

.char{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 8px 22px rgba(94,188,217,.12);transition:transform .25s, box-shadow .25s}
.char:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(94,188,217,.22)}
.char .portrait{aspect-ratio:3/4;position:relative;display:grid;place-items:end center;overflow:hidden}
.char.c-cyan .portrait{background:linear-gradient(180deg, #B3E2EF 0%, #E8F4F9 100%)}
.char.c-coral .portrait{background:linear-gradient(180deg, #F5C8C8 0%, #FBE8E8 100%)}
.char.c-yellow .portrait{background:linear-gradient(180deg, #FBE6A1 0%, #FBF5DB 100%)}
.char.c-orange .portrait{background:linear-gradient(180deg, #FBD3B8 0%, #FBEDDE 100%)}
.char.c-pink .portrait{background:linear-gradient(180deg, #F5C8DC 0%, #FBE8EF 100%)}
.char.c-green .portrait{background:linear-gradient(180deg, #C5E0BD 0%, #E6F1E2 100%)}
.char.c-navy .portrait{background:linear-gradient(180deg, #B8C8DC 0%, #DBE3EE 100%)}
.char.c-red .portrait{background:linear-gradient(180deg, #F0AAAA 0%, #FBDADA 100%)}

.char .portrait .silh{position:relative;width:74%;height:90%;
  background:linear-gradient(180deg, currentColor 0%, currentColor 88%, transparent 100%);
  -webkit-mask:radial-gradient(ellipse 32% 11% at 50% 11%, #000 99%, transparent 100%) 0 0/100% 24% no-repeat,
              radial-gradient(ellipse 60% 90% at 50% 90%, #000 70%, transparent 71%) 0 24%/100% 76% no-repeat;
          mask:radial-gradient(ellipse 32% 11% at 50% 11%, #000 99%, transparent 100%) 0 0/100% 24% no-repeat,
              radial-gradient(ellipse 60% 90% at 50% 90%, #000 70%, transparent 71%) 0 24%/100% 76% no-repeat;
  opacity:.55;
}
.char.c-cyan .portrait .silh{color:#3FA2C7}
.char.c-coral .portrait .silh{color:#C25555}
.char.c-yellow .portrait .silh{color:#C2974A}
.char.c-orange .portrait .silh{color:#C27A4A}
.char.c-pink .portrait .silh{color:#C25984}
.char.c-green .portrait .silh{color:#5E9450}
.char.c-navy .portrait .silh{color:#3D5577}
.char.c-red .portrait .silh{color:#A02A22}

.char .portrait .placard{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.95);color:var(--cyan-d);font-family:"Klee One";font-size:10px;padding:4px 8px;border:1px dashed var(--cyan-d);border-radius:4px}
.char .portrait .filename{position:absolute;bottom:8px;right:8px;background:rgba(255,255,255,.95);font-family:"Cormorant Garamond";font-size:9px;color:var(--sub);padding:3px 7px;border-radius:3px;letter-spacing:.1em}
.char .portrait .star{position:absolute;top:12px;right:12px;background:var(--coral);color:#fff;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-family:"Yusei Magic";font-size:15px;box-shadow:0 4px 10px rgba(228,120,120,.4);transform:rotate(8deg)}

.char .name{padding:18px 16px 16px;text-align:center;background:#fff;position:relative}
.char .name::before{content:"";position:absolute;left:50%;top:-10px;translate:-50% 0;width:20px;height:20px;background:#fff;rotate:45deg;border-radius:4px;box-shadow:-2px -2px 4px rgba(94,188,217,.05)}
.char .name .en{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:700;font-size:28px;color:var(--cyan);line-height:1;letter-spacing:.04em}
.char.c-coral .name .en{color:#C25555}
.char.c-yellow .name .en{color:#C2974A}
.char.c-orange .name .en{color:#C27A4A}
.char.c-pink .name .en{color:#C25984}
.char.c-green .name .en{color:#5E9450}
.char.c-navy .name .en{color:#3D5577}
.char.c-red .name .en{color:#A02A22}
.char .name .jp{font-family:"Klee One",serif;font-weight:600;font-size:14px;color:var(--ink);margin-top:6px;letter-spacing:.1em}
.char .name .role{font-family:"Klee One",serif;font-weight:600;font-size:11px;color:var(--sub);margin-top:6px;letter-spacing:.1em;padding-top:8px;border-top:1px dashed var(--line)}

.character .leaf-l{top:80px;left:2%;width:90px;height:160px;opacity:.4}
.character .leaf-r{top:80px;right:2%;width:90px;height:160px;opacity:.4;transform:scaleX(-1)}

/* ============ SYSTEM（シアン背景） ============ */
.system{background:linear-gradient(180deg, var(--cyan) 0%, var(--cyan-band-d) 100%);color:#fff;padding:140px 5vw 130px;position:relative;overflow:hidden}
.system::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle, rgba(255,255,255,.32) 1.5px, transparent 2px);
  background-size:22px 22px;z-index:0}
.system > *{position:relative;z-index:1}
.system > .dec-leaf,.system > .dec-flower,.system > .dec-cloud{position:absolute;z-index:0}
.system .watermark{position:absolute;font-family:"Outfit",sans-serif;font-weight:700;font-size:clamp(80px,14vw,200px);line-height:.85;color:transparent;-webkit-text-stroke:2px rgba(255,255,255,.45);letter-spacing:.15em;pointer-events:none;z-index:0;white-space:nowrap}
.system .watermark.wm1{top:30%;left:-3%}
.system .watermark.wm2{bottom:10%;right:-2%}
.system .sec-title h2{font-family:"Outfit",sans-serif;font-weight:700;color:transparent;-webkit-text-stroke:3px #fff;text-shadow:0 8px 0 rgba(63,162,199,.55);letter-spacing:.04em}
.system .sec-title h2::before,.system .sec-title h2::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 24'><path d='M4 12 Q12 2 24 8 Q36 14 46 6 M4 12 Q14 22 26 16 Q38 10 46 18' stroke='white' stroke-width='1.5' fill='none' opacity='.85'/></svg>")}
.system .sec-title .jp{color:rgba(255,255,255,.85)}
.system .sec-title .en{color:rgba(255,255,255,.95)}

.sys-list{max-width:1100px;margin:60px auto 0;display:grid;gap:24px}
.sys-item{background:#fff;color:var(--ink);border-radius:18px;overflow:hidden;display:grid;grid-template-columns:280px 1fr;gap:0;box-shadow:0 14px 36px rgba(0,0,0,.15)}
@media(max-width:760px){.sys-item{grid-template-columns:1fr}}
.sys-item .ph{aspect-ratio:4/3;background:linear-gradient(135deg, var(--cyan-l) 0%, var(--cyan-ll) 100%);display:grid;place-items:center;position:relative}
.sys-item .ph::before{content:"差し替え予定";font-family:"Klee One";font-size:12px;color:var(--cyan-d);background:#fff;padding:5px 12px;border:1px dashed var(--cyan-d);border-radius:6px}
.sys-item .ph .lbl{position:absolute;top:12px;left:12px;background:var(--cyan);color:#fff;font-family:"Cormorant Garamond";font-size:11px;letter-spacing:.3em;padding:5px 12px;border-radius:6px}
.sys-item .body{padding:30px 32px;display:flex;flex-direction:column;gap:10px}
.sys-item .body .pick{display:flex;align-items:baseline;gap:14px;color:var(--cyan-d);margin-bottom:4px}
.sys-item .body .pick .pickno{font-family:"Cormorant Garamond";font-style:italic;font-size:12px;letter-spacing:.4em}
.sys-item .body .pick .pickb{font-family:"Outfit",sans-serif;font-weight:200;font-size:72px;line-height:.85;color:var(--cyan-l);letter-spacing:-.02em}
.sys-item .body h4{font-family:"Kaisei Decol",serif;font-weight:700;font-size:22px;color:var(--ink);letter-spacing:.04em;line-height:1.6}
.sys-item .body h4 em{font-style:normal;color:var(--cyan-d)}
.sys-item .body .en{font-family:"Cormorant Garamond",serif;color:var(--sub);font-size:13px;letter-spacing:.06em;font-style:italic;margin:-4px 0 8px}
.sys-item .body p{font-family:"Klee One",serif;font-weight:500;font-size:14px;color:var(--ink);line-height:2;letter-spacing:.04em}
.sys-item .body ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.sys-item .body ul li{background:var(--cyan-l);color:var(--cyan-d);font-family:"Klee One";font-size:12px;padding:4px 12px;border-radius:999px;letter-spacing:.06em}
.sys-item.featured{box-shadow:0 14px 36px rgba(0,0,0,.22)}
.sys-item.featured .body{position:relative}
.sys-item.featured .body::before{content:"★ RECOMMENDED";position:absolute;top:-12px;right:20px;background:var(--coral);color:#fff;font-family:"Klee One";font-weight:700;font-size:11px;letter-spacing:.2em;padding:6px 14px;border-radius:6px}

.system .leaf-l{top:60%;left:2%;width:120px;height:200px;translate:0 -50%;opacity:.4}
.system .leaf-r{top:60%;right:2%;width:120px;height:200px;translate:0 -50%;opacity:.4;transform:scaleX(-1)}

/* ============ GALLERY ============ */
.gallery{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding:140px 5vw 130px}
.gal-grid{max-width:1280px;margin:60px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:780px){.gal-grid{grid-template-columns:repeat(2,1fr)}}
.cg{position:relative;aspect-ratio:16/10;background:linear-gradient(135deg, var(--cyan-l) 0%, #fff 50%, #FFF7E8 100%);border-radius:14px;overflow:hidden;display:grid;place-items:center;box-shadow:0 6px 18px rgba(94,188,217,.12);transition:transform .25s}
.cg:hover{transform:translateY(-4px)}
.cg::before{content:"差し替え予定";font-family:"Klee One";font-size:12px;color:var(--cyan-d);background:#fff;padding:5px 12px;border:1px dashed var(--cyan-d);border-radius:6px}
.cg .lbl{position:absolute;top:10px;left:10px;background:var(--cyan);color:#fff;font-family:"Cormorant Garamond";font-size:11px;letter-spacing:.3em;padding:5px 12px;border-radius:6px}
.cg .lbl.c{background:var(--coral)}
.cg .lbl.y{background:var(--orange)}
.cg .meta{position:absolute;bottom:8px;right:8px;font-family:"Cormorant Garamond";font-size:9px;color:var(--sub);background:rgba(255,255,255,.95);padding:3px 7px;border-radius:3px;letter-spacing:.1em}

/* ============ PRODUCT ============ */
.product{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding:140px 5vw 130px}
.prod-frame{max-width:980px;margin:60px auto 0;padding:50px;background:#fff;border-radius:18px;border:2px solid var(--cyan-l);box-shadow:0 14px 38px rgba(94,188,217,.16);text-align:center;position:relative}
.prod-frame::before{content:"";position:absolute;top:-2px;left:50%;translate:-50% 0;background:var(--bg);padding:0 16px;color:var(--cyan);font-family:"Yusei Magic";font-size:18px}
.prod-frame .package{display:grid;grid-template-columns:1fr 1.5fr;gap:36px;align-items:center;text-align:left}
@media(max-width:760px){.prod-frame .package{grid-template-columns:1fr}}
.prod-frame .ph{aspect-ratio:3/4;background:linear-gradient(135deg, var(--cyan-l) 0%, #fff 100%);border:2px solid var(--cyan);border-radius:14px;display:grid;place-items:center;position:relative}
.prod-frame .ph::before{content:"差し替え予定 ／ package.webp";font-family:"Klee One";font-size:12px;color:var(--cyan-d);background:#fff;padding:5px 12px;border:1px dashed var(--cyan-d);border-radius:6px;text-align:center}
.prod-frame .info h4{font-family:"Yusei Magic",serif;font-size:clamp(22px,3vw,32px);color:var(--cyan-d);margin-bottom:14px;letter-spacing:.04em;line-height:1.4}
.prod-frame .info h4 em{font-style:normal;color:var(--coral)}
.prod-frame .info table{width:100%;border-collapse:collapse;font-family:"Klee One";font-size:13px}
.prod-frame .info table th{background:var(--cyan-l);color:var(--cyan-d);padding:8px 12px;text-align:left;font-weight:600;width:120px;letter-spacing:.04em}
.prod-frame .info table td{padding:8px 12px;border-bottom:1px dashed var(--line);color:var(--ink)}
.prod-frame .info .order{display:inline-flex;align-items:center;gap:10px;margin-top:22px;background:var(--cyan);color:#fff;padding:14px 28px;border-radius:8px;font-family:"Klee One";font-weight:700;font-size:14px;letter-spacing:.15em;box-shadow:0 6px 16px rgba(94,188,217,.4)}
.prod-frame .info .order:hover{background:var(--cyan-d)}
.prod-frame .info .order small{font-family:"Cormorant Garamond";font-size:9px;letter-spacing:.4em;color:rgba(255,255,255,.85);display:block;margin-top:2px}

/* ============ SPEC + CAST ============ */
.specblock{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding:120px 5vw 100px}
.spec-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px}
@media(max-width:780px){.spec-grid{grid-template-columns:1fr;gap:40px}}
.spec-col h3{text-align:center;font-family:"Cormorant Garamond";font-style:italic;font-size:34px;color:var(--cyan);letter-spacing:.05em;font-weight:500;margin-bottom:6px;line-height:1}
.spec-col h3 small{display:block;font-family:"Klee One",serif;font-size:12px;color:var(--sub);letter-spacing:.4em;margin-top:6px;font-weight:600}
.spec-col table{width:100%;border-collapse:collapse;margin-top:24px;font-family:"Klee One",serif;font-size:13px}
.spec-col table th{padding:10px 8px;text-align:left;color:var(--cyan-d);font-weight:600;border-bottom:1px solid var(--line);width:140px;letter-spacing:.04em}
.spec-col table td{padding:10px 8px;border-bottom:1px solid var(--line);color:var(--ink);letter-spacing:.04em}

/* ============ FOOTER ============ */
footer{background:linear-gradient(180deg, var(--cyan) 0%, var(--cyan-d) 100%);color:#fff;padding:40px 5vw 30px;text-align:center}
.foot-logo{font-family:"Kaisei Decol",serif;font-weight:700;font-size:28px;letter-spacing:.06em}
.foot-logo small{display:block;font-family:"Cormorant Garamond";font-size:10px;letter-spacing:.5em;color:rgba(255,255,255,.85);margin-top:6px;font-weight:500}
.foot p{font-family:"Klee One",serif;font-size:12px;line-height:2;margin-top:14px;color:rgba(255,255,255,.95)}
.foot .copy{margin-top:18px;font-family:"Cormorant Garamond";font-size:10px;letter-spacing:.4em;color:rgba(255,255,255,.85)}

/* ============ 追加：実コンテンツ用 ============ */
/* ABOUT 強み */
.about-lead{max-width:880px;margin:36px auto 0;text-align:center;font-family:"Klee One",serif;font-weight:600;font-size:17px;line-height:2.1;color:#fff;letter-spacing:.04em}
.about-lead em{font-style:normal;color:var(--yellow);font-weight:700}
.strength-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;max-width:1100px;margin:46px auto 0}
@media(max-width:860px){.strength-row{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.strength-row{grid-template-columns:1fr}}
.strength{background:rgba(255,255,255,.95);border-radius:16px;padding:26px 20px;text-align:center;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.strength .no{font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--cyan-d);font-size:13px;letter-spacing:.3em;font-weight:700}
.strength h4{font-family:"Kaisei Decol",serif;font-weight:700;font-size:18px;color:var(--ink);margin:8px 0 10px;letter-spacing:.03em}
.strength p{font-family:"Klee One",serif;font-weight:500;font-size:13px;color:var(--sub);line-height:1.85}

/* SERVICE */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1180px;margin:0 auto}
@media(max-width:920px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.svc-grid{grid-template-columns:1fr}}
.svc{position:relative;background:#fff;border:2px solid var(--cyan-l);border-radius:16px;padding:26px 24px;transition:transform .2s,box-shadow .2s,border-color .2s}
.svc:hover{transform:translateY(-6px);box-shadow:0 14px 28px rgba(94,188,217,.18);border-color:var(--cyan)}
.svc .no{font-family:"Cormorant Garamond",serif;font-style:italic;color:var(--cyan);font-size:30px;font-weight:700;line-height:1}
.svc h4{font-family:"Kaisei Decol",serif;font-weight:700;font-size:19px;color:var(--ink);margin:6px 0 4px;letter-spacing:.03em}
.svc .price{font-family:"Klee One",serif;font-weight:700;font-size:14px;color:var(--cyan-d);margin-bottom:10px}
.svc p{font-family:"Klee One",serif;font-weight:500;font-size:13px;color:var(--sub);line-height:1.85}
.svc-note{text-align:center;margin-top:30px;font-family:"Klee One",serif;font-size:14px;color:var(--sub)}
.svc-note b{color:var(--cyan-d)}

/* MEMBER 準備中枠 */
.char .portrait .prep{position:absolute;inset:0;display:grid;place-items:center;z-index:3;font-family:"Klee One",serif;font-size:13px;color:var(--cyan-d);letter-spacing:.1em}
.char .bio{font-family:"Klee One",serif;font-weight:500;font-size:12px;color:var(--sub);line-height:1.8;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line);text-align:left;letter-spacing:.02em}

/* VOICE */
.voice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1180px;margin:0 auto}
@media(max-width:860px){.voice-grid{grid-template-columns:1fr;max-width:640px}}
.voice{background:#fff;border-radius:16px;padding:28px 26px;box-shadow:0 8px 22px rgba(94,188,217,.12);position:relative;border:2px solid var(--cyan-l)}
.voice .q{font-family:"Cormorant Garamond",serif;font-size:46px;color:var(--cyan-l);line-height:.6;height:24px}
.voice p{font-family:"Klee One",serif;font-weight:500;font-size:14px;color:var(--ink);line-height:1.95}
.voice .who{margin-top:16px;padding-top:12px;border-top:1px dashed var(--line);font-family:"Klee One",serif;font-weight:600;font-size:13px;color:var(--cyan-d)}
.voice .who small{display:block;color:var(--sub);font-weight:500;font-size:11px;margin-top:2px}
.voice .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.voice .tags span{font-family:"Klee One";font-size:11px;background:var(--cyan-l);color:var(--cyan-d);padding:3px 10px;border-radius:999px}

/* CONTACT 実情報 */
.contact-real{max-width:760px;margin:0 auto;text-align:center;background:#fff;border:2px solid var(--cyan);border-radius:20px;padding:46px 40px;box-shadow:0 12px 30px rgba(94,188,217,.16)}
.contact-real p.lead{font-family:"Klee One",serif;font-weight:600;font-size:16px;color:var(--ink);line-height:2;margin-bottom:24px}
.contact-real .tel{font-family:"Cormorant Garamond",serif;font-weight:700;font-size:40px;color:var(--cyan-d);letter-spacing:.04em;line-height:1.1}
.contact-real .tel small{display:block;font-family:"Klee One",serif;font-size:12px;color:var(--sub);letter-spacing:.3em;margin-bottom:4px;font-weight:600}
.contact-real .mail{margin-top:14px;font-family:"Klee One",serif;font-size:15px;color:var(--ink)}
.contact-real .mail a{color:var(--cyan-d);border-bottom:1px solid var(--cyan-d)}
.contact-real .hours{margin-top:10px;font-family:"Klee One",serif;font-size:13px;color:var(--sub)}
.contact-real .btn-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.contact-real .order{display:inline-flex;align-items:center;gap:10px;background:var(--cyan);color:#fff;padding:14px 30px;border-radius:8px;font-family:"Klee One";font-weight:700;font-size:14px;letter-spacing:.12em;box-shadow:0 6px 16px rgba(94,188,217,.4)}
.contact-real .order:hover{background:var(--cyan-d)}
.contact-real .order.line{background:#06C755;box-shadow:0 6px 16px rgba(6,199,85,.35)}
.contact-real .order.line:hover{background:#05a647}

/* ============ SERVICE ドロップダウン ============ */
.menu .has-drop{position:relative;display:inline-flex;align-items:center;align-self:stretch}
.menu .drop{position:absolute;top:100%;left:50%;min-width:240px;background:#fff;border-radius:12px;
  box-shadow:0 14px 32px rgba(94,188,217,.3);padding:8px;opacity:0;visibility:hidden;
  transform:translate(-50%,4px);transition:opacity .2s,transform .2s,visibility .2s;z-index:90}
.menu .has-drop:hover .drop{opacity:1;visibility:visible;transform:translate(-50%,10px)}
.menu .drop::before{content:"";position:absolute;top:-7px;left:50%;translate:-50% 0;border:7px solid transparent;border-bottom-color:#fff;border-top:0}
.menu .drop a{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:10px 14px;border-radius:8px;color:var(--ink);font-family:"Klee One",serif;font-weight:600;font-size:13px;letter-spacing:.03em;border-bottom:0}
.menu .drop a small{font-family:"Cormorant Garamond";font-size:10px;color:var(--sub);letter-spacing:.06em}
.menu .drop a::before,.menu .drop a::after{display:none}
.menu .drop a:hover{background:var(--cyan-l);color:var(--cyan-d)}
.menu .drop a:hover small{color:var(--cyan-d)}

/* ============ PORTFOLIO ============ */
.portfolio{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding:140px 5vw 130px}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1180px;margin:0 auto}
@media(max-width:880px){.pf-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pf-grid{grid-template-columns:1fr}}
.pf-card{display:block;background:#fff;border:2px solid var(--cyan-l);border-radius:16px;overflow:hidden;box-shadow:0 8px 22px rgba(94,188,217,.12);transition:transform .25s,box-shadow .25s,border-color .25s}
.pf-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(94,188,217,.22);border-color:var(--cyan)}
.pf-card .top{height:110px;display:grid;place-items:center;text-align:center;position:relative;overflow:hidden}
.pf-card .top span{font-family:"Kaisei Decol",serif;font-weight:700;font-size:22px;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.18);padding:0 14px;z-index:2}
.pf-card.t1 .top{background:linear-gradient(135deg,#5EBCD9,#3FA2C7)}
.pf-card.t2 .top{background:linear-gradient(135deg,#F5A672,#E47878)}
.pf-card.t3 .top{background:linear-gradient(135deg,#8BC79A,#5E9450)}
.pf-card.t4 .top{background:linear-gradient(135deg,#B8A6E0,#7A5BC0)}
.pf-card.t5 .top{background:linear-gradient(135deg,#F8C966,#E5A93C)}
.pf-card.t6 .top{background:linear-gradient(135deg,#7DCEE3,#4F8FB0)}
.pf-card .body{padding:18px 20px 22px}
.pf-card .cat{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:12px;color:var(--cyan-d);letter-spacing:.06em}
.pf-card h4{font-family:"Kaisei Decol",serif;font-weight:700;font-size:17px;color:var(--ink);margin:4px 0 8px;letter-spacing:.02em}
.pf-card p{font-family:"Klee One",serif;font-weight:500;font-size:13px;color:var(--sub);line-height:1.85;min-height:62px}
.pf-card .link{margin-top:10px;font-family:"Cormorant Garamond";font-size:12px;letter-spacing:.2em;color:var(--sub)}
.pf-card .price{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line);font-family:"Klee One",serif;font-weight:700;font-size:13px;color:var(--cyan-d)}
.pf-card .price small{font-family:"Noto Sans JP",sans-serif;font-weight:500;font-size:11px;color:var(--sub);margin-left:4px}

/* ============ MECHA AUTH ============ */
.mauth{background:linear-gradient(180deg, var(--cyan) 0%, var(--cyan-band-d) 100%);color:#fff;padding:140px 5vw 130px;position:relative;overflow:hidden}
.mauth .sec-title h2{color:#fff;text-shadow:0 4px 0 var(--cyan-d), 0 0 28px rgba(255,255,255,.3)}
.mauth .sec-title h2::before,.mauth .sec-title h2::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 24'><path d='M4 12 Q12 2 24 8 Q36 14 46 6 M4 12 Q14 22 26 16 Q38 10 46 18' stroke='white' stroke-width='1.5' fill='none' opacity='.85'/></svg>")}
.mauth .sec-title .jp{color:rgba(255,255,255,.85)}
.mauth .sec-title .en{color:rgba(255,255,255,.95)}
.mauth-intro{max-width:860px;margin:30px auto 46px;text-align:center;font-family:"Klee One",serif;font-weight:600;font-size:16px;line-height:2;color:#fff}
.mauth-intro b{color:var(--yellow)}
.mauth-wrap{max-width:1080px;margin:0 auto;display:grid;gap:24px}
.mauth-block{background:#fff;color:var(--ink);border-radius:18px;padding:30px 32px;box-shadow:0 12px 30px rgba(0,0,0,.14)}
.mauth-block h3{font-family:"Kaisei Decol",serif;font-weight:700;font-size:19px;color:var(--cyan-d);margin-bottom:18px;display:flex;align-items:center;gap:10px}
.mauth-block h3::before{content:"";width:11px;height:11px;background:var(--cyan);border-radius:3px;transform:rotate(45deg)}
.mauth-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:760px){.mauth-plans{grid-template-columns:1fr}}
.mauth-plan{border:2px solid var(--cyan-l);border-radius:14px;padding:22px 20px;text-align:center}
.mauth-plan.feat{border-color:var(--cyan);background:var(--cyan-ll)}
.mauth-plan .nm{font-family:"Kaisei Decol",serif;font-weight:700;font-size:17px;color:var(--ink)}
.mauth-plan .pr{font-family:"Cormorant Garamond",serif;font-weight:700;font-size:30px;color:var(--cyan-d);margin:6px 0;line-height:1.1}
.mauth-plan .pr small{font-family:"Klee One";font-size:12px;color:var(--sub);font-weight:600}
.mauth-plan ul{list-style:none;text-align:left;display:grid;gap:6px;margin-top:10px}
.mauth-plan ul li{font-family:"Klee One";font-size:12px;color:var(--sub);line-height:1.7;padding-left:16px;position:relative}
.mauth-plan ul li::before{content:"・";position:absolute;left:0;color:var(--cyan)}
.mauth table{width:100%;border-collapse:collapse;font-family:"Klee One";font-size:13px}
.mauth table th,.mauth table td{border:1px solid var(--line);padding:9px 12px;text-align:left;color:var(--ink)}
.mauth table thead th{background:var(--cyan-l);color:var(--cyan-d);font-weight:700}
.mauth table td.p{font-weight:700;color:var(--cyan-d)}
.mauth-equip{display:flex;flex-wrap:wrap;gap:8px}
.mauth-equip span{font-family:"Klee One";font-size:12px;background:var(--cyan-l);color:var(--cyan-d);padding:5px 12px;border-radius:999px}
.mauth-seats{font-family:"Kaisei Decol",serif;font-weight:700;font-size:18px;color:var(--ink);text-align:center;margin-top:4px}
.mauth-seats b{color:var(--cyan-d);font-size:26px}
.mauth-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:36px}
.mauth-cta a{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--cyan-d);padding:15px 30px;border-radius:8px;font-family:"Klee One";font-weight:700;font-size:14px;letter-spacing:.1em;box-shadow:0 6px 16px rgba(0,0,0,.16)}
.mauth-cta a.ghost{background:transparent;color:#fff;border:2px solid #fff;box-shadow:none}
.mauth-cta a:hover{transform:translateY(-2px)}
.mauth-note{text-align:center;margin-top:18px;font-family:"Klee One";font-size:12px;color:rgba(255,255,255,.9)}

/* ============ reveal ============ */
.fx{opacity:0;transform:translateY(36px);transition:opacity .9s ease, transform .9s cubic-bezier(.2,.8,.2,1)}
.fx.in{opacity:1;transform:translateY(0)}
.fx.d1{transition-delay:.12s}.fx.d2{transition-delay:.24s}.fx.d3{transition-delay:.36s}.fx.d4{transition-delay:.48s}

/* ============ 右側 追従ソーシャル ============ */
aside.socials{position:fixed;right:16px;top:50%;translate:0 -50%;z-index:78;display:flex;flex-direction:column;gap:12px}
aside.socials a{width:44px;height:44px;border-radius:50%;background:#fff;border:1.5px solid var(--cyan-l);display:grid;place-items:center;color:var(--cyan-d);box-shadow:0 5px 14px rgba(94,188,217,.2);transition:transform .2s,background .2s,color .2s,border-color .2s}
aside.socials a:hover{transform:translateY(-3px)}
aside.socials a.yt:hover{background:#FF0000;color:#fff;border-color:#FF0000}
aside.socials a.ig:hover{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF);color:#fff;border-color:transparent}
aside.socials a svg{width:21px;height:21px;fill:currentColor}
@media(max-width:740px){aside.socials{right:8px;gap:9px}aside.socials a{width:38px;height:38px}aside.socials a svg{width:18px;height:18px}}

/* ============ 下層ページ ヒーロー ============ */
.page-hero{position:relative;padding:150px 5vw 64px;text-align:center;overflow:hidden;
  background:linear-gradient(180deg,#A2DFF3 0%, #C8ECF7 55%, var(--bg) 100%)}
.page-hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle, rgba(255,255,255,.4) 1.5px, transparent 2px);background-size:22px 22px}
.page-hero > *{position:relative;z-index:1}
.page-hero h1{font-family:"Kaisei Decol",serif;font-weight:700;font-size:clamp(40px,7vw,78px);color:#fff;letter-spacing:.08em;line-height:1;text-shadow:0 4px 0 var(--cyan-d), 0 8px 24px rgba(63,162,199,.4)}
.page-hero .jp{font-family:"Klee One",serif;font-weight:600;font-size:14px;color:var(--cyan-d);letter-spacing:.4em;margin-top:14px}
.page-hero .crumb{margin-top:16px;font-family:"Cormorant Garamond";font-size:12px;letter-spacing:.2em;color:var(--cyan-d)}
.page-hero .crumb a:hover{text-decoration:underline}
/* 下層ページの各セクションは上余白を詰める */
.subpage .sec{padding-top:90px}

/* ============ 下層ページ パンくず ============ */
.crumbbar{padding:88px 5vw 0;max-width:1400px;margin:0 auto;font-family:"Cormorant Garamond",serif;font-size:13px;letter-spacing:.2em;color:var(--sub)}
.crumbbar a{color:var(--cyan-d)}
.crumbbar a:hover{text-decoration:underline}
.crumbbar span{color:var(--ink);font-weight:600}
.subpage .sec{padding-top:46px}

/* ============ NEWS 絞り込みフィルタ（セグメント切替） ============ */
.news-filterwrap{text-align:center;margin-bottom:30px}
.news-filterlabel{display:block;font-family:"Klee One",serif;font-weight:600;font-size:12px;color:var(--sub);letter-spacing:.2em;margin-bottom:10px}
.news-filter{display:inline-flex;margin:0;padding:5px;background:var(--cyan-l);border-radius:999px;gap:4px}
.news-filter button{font-family:"Klee One",serif;font-weight:700;font-size:14px;padding:10px 28px;border-radius:999px;border:0;color:var(--cyan-d);background:transparent;cursor:pointer;transition:background .25s,color .25s,box-shadow .25s;letter-spacing:.08em;white-space:nowrap}
.news-filter button:hover{color:var(--ink)}
.news-filter button.on{background:#fff;color:var(--cyan-d);box-shadow:0 4px 12px rgba(94,188,217,.3)}
@media(max-width:560px){.news-filter button{padding:9px 18px;font-size:13px}}

/* ============ BLOG ============ */
.blog{background-color:var(--bg);background-image:linear-gradient(rgba(94,188,217,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(94,188,217,.06) 1px,transparent 1px);background-size:46px 46px;padding:46px 5vw 130px}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1180px;margin:0 auto}
@media(max-width:880px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.blog-grid{grid-template-columns:1fr}}
.blog-card{display:block;background:#fff;border:2px solid var(--cyan-l);border-radius:16px;overflow:hidden;box-shadow:0 8px 22px rgba(94,188,217,.12);transition:transform .25s,box-shadow .25s,border-color .25s}
.blog-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px rgba(94,188,217,.22);border-color:var(--cyan)}
.blog-card .thumb{aspect-ratio:16/10;display:grid;place-items:center;position:relative;color:#fff;font-family:"Kaisei Decol",serif;font-weight:700;font-size:18px;text-shadow:0 2px 6px rgba(0,0,0,.2)}
.blog-card .thumb::after{content:"準備中";position:absolute;bottom:8px;right:8px;font-family:"Klee One";font-size:10px;color:var(--cyan-d);background:rgba(255,255,255,.92);padding:3px 8px;border-radius:6px;text-shadow:none}
.blog-card.b1 .thumb{background:linear-gradient(135deg,#5EBCD9,#3FA2C7)}
.blog-card.b2 .thumb{background:linear-gradient(135deg,#F5A672,#E47878)}
.blog-card.b3 .thumb{background:linear-gradient(135deg,#8BC79A,#5E9450)}
.blog-card.b4 .thumb{background:linear-gradient(135deg,#B8A6E0,#7A5BC0)}
.blog-card.b5 .thumb{background:linear-gradient(135deg,#F8C966,#E5A93C)}
.blog-card.b6 .thumb{background:linear-gradient(135deg,#7DCEE3,#4F8FB0)}
.blog-card .body{padding:18px 20px 22px}
.blog-card .meta{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.blog-card .cate{font-family:"Klee One";font-size:11px;background:var(--cyan-l);color:var(--cyan-d);padding:3px 10px;border-radius:999px}
.blog-card .date{font-family:"Cormorant Garamond",serif;font-size:12px;color:var(--sub);letter-spacing:.06em}
.blog-card h4{font-family:"Kaisei Decol",serif;font-weight:700;font-size:16px;color:var(--ink);line-height:1.6;margin-bottom:8px}
.blog-card p{font-family:"Klee One",serif;font-weight:500;font-size:13px;color:var(--sub);line-height:1.85}
.blog-note{text-align:center;margin:0 auto 36px;max-width:720px;font-family:"Klee One",serif;font-size:14px;color:var(--sub)}

/* ============ MEMBER（代表フィーチャー＋グリッド） ============ */
.member-photo-ph{position:relative;border-radius:14px;overflow:hidden;display:grid;place-items:center}
.member-photo-ph.c1{background:linear-gradient(135deg,#6a8fb8,#3D5577)}
.member-photo-ph.c2{background:linear-gradient(135deg,#5EBCD9,#3FA2C7)}
.member-photo-ph.c3{background:linear-gradient(135deg,#F5A672,#E47878)}
.member-photo-ph.c4{background:linear-gradient(135deg,#8BC79A,#5E9450)}
.member-photo-ph .ic{position:absolute;bottom:-6%;width:60%;height:80%;opacity:.5}
.member-photo-ph .ic svg{width:100%;height:100%;fill:#fff}
.member-photo-ph .prep{position:relative;z-index:2;font-family:"Klee One",serif;font-size:11px;color:#fff;letter-spacing:.12em;text-shadow:0 1px 4px rgba(0,0,0,.25)}

/* 代表フィーチャー */
.member-feature{max-width:360px;margin:0 auto 0;border:1px solid var(--line);padding:34px 30px 30px;text-align:center;position:relative}
.member-feature .member-photo-ph{width:230px;height:230px;margin:0 auto 18px}
.member-feature .role{font-family:"Klee One",serif;font-size:13px;color:var(--sub);letter-spacing:.08em}
.member-feature h3{font-family:"Kaisei Decol",serif;font-weight:700;font-size:24px;color:var(--ink);letter-spacing:.05em;margin-top:6px}
.member-feature h3 .en{display:block;font-family:"Cormorant Garamond",serif;font-style:italic;font-size:13px;color:var(--sub);margin-top:6px;letter-spacing:.08em}
.member-feature .sns{display:flex;gap:14px;justify-content:center;margin-top:16px}
.member-feature .sns a{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--cyan-d);transition:background .2s,color .2s,border-color .2s}
.member-feature .sns a svg{width:17px;height:17px;fill:currentColor}
.member-feature .sns a.yt:hover{background:#FF0000;color:#fff;border-color:#FF0000}
.member-feature .sns a.ig:hover{background:linear-gradient(45deg,#F58529,#DD2A7B,#8134AF);color:#fff;border-color:transparent}

/* メンバーグリッド */
.member-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1100px;margin:0 auto;border-top:1px solid var(--line);border-left:1px solid var(--line)}
@media(max-width:760px){.member-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.member-grid{grid-template-columns:1fr}}
.member-card{position:relative;padding:34px 26px 40px;text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;background:#fff}
.member-card .member-photo-ph{width:170px;height:170px;margin:0 auto 16px}
.member-card .role{font-family:"Klee One",serif;font-size:12px;color:var(--sub);letter-spacing:.06em}
.member-card h4{font-family:"Kaisei Decol",serif;font-weight:700;font-size:19px;color:var(--ink);letter-spacing:.04em;margin-top:4px}
.member-card .plus{position:absolute;right:14px;bottom:12px;font-family:"Cormorant Garamond",serif;font-size:22px;color:var(--cyan);line-height:1}
.member-card .bio-overlay{position:absolute;inset:0;background:var(--cyan-d);color:#fff;padding:30px 28px;display:flex;align-items:center;justify-content:center;text-align:left;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:3}
.member-card .bio-overlay p{font-family:"Noto Sans JP",sans-serif;font-weight:500;font-size:13.5px;line-height:1.95}
.member-card:hover .bio-overlay{opacity:1;visibility:visible}

/* ============ MECHAURU WORLD マップ（東海3県） ============ */
.werun-hint{text-align:center;font-family:"Klee One",serif;font-weight:600;font-size:13px;color:var(--cyan-d);letter-spacing:.08em;margin:-18px 0 22px}
.werun-map{position:relative;max-width:1180px;margin:0 auto;aspect-ratio:6/5;border-radius:24px;overflow:hidden;
  background:linear-gradient(180deg,#f3faf0 0%, #eaf6fb 100%);
  border:5px solid #fff;box-shadow:0 22px 50px rgba(63,162,199,.2), 0 0 0 2px #e0ecdc;}
.werun-map .mapsvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block}

/* 事業所スポット（マップピン） */
.spot{position:absolute;transform:translate(-50%,-100%);text-decoration:none;cursor:pointer;z-index:3;transition:transform .2s cubic-bezier(.34,1.6,.5,1);text-align:center}
.spot::after{content:"";position:absolute;left:50%;bottom:-3px;width:22px;height:7px;translate:-50% 0;background:rgba(40,60,30,.22);border-radius:50%;filter:blur(2px);z-index:-1}
.spot .pin{position:relative;width:34px;height:34px;margin:0 auto;background:var(--c);border:3px solid #fff;
  border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 6px 12px rgba(0,0,0,.28);display:grid;place-items:center;
  animation:pinbob 3.4s ease-in-out infinite}
.spot:nth-of-type(2n) .pin{animation-delay:-1.1s}
.spot:nth-of-type(3n) .pin{animation-delay:-2.1s}
@keyframes pinbob{0%,100%{transform:rotate(-45deg) translate(0,0)}50%{transform:rotate(-45deg) translate(3px,-3px)}}
.spot .pin svg{width:16px;height:16px;fill:#fff;transform:rotate(45deg)}
.spot .sign{display:inline-block;margin-top:7px;background:#fff;border:2px solid var(--c);border-radius:8px;padding:2px 11px;
  font-family:"Kaisei Decol",serif;font-weight:700;font-size:11.5px;color:var(--ink);white-space:nowrap;box-shadow:0 4px 8px rgba(0,0,0,.14);
  opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s}
.spot:hover .sign{opacity:1;visibility:visible}
.spot:hover{transform:translate(-50%,-100%) translateY(-6px);z-index:6}
.spot:hover .pin{animation:pinpop .5s ease}
@keyframes pinpop{0%,100%{transform:rotate(-45deg) scale(1)}40%{transform:rotate(-45deg) scale(1.22)}}
/* ツールチップ */
.spot .tip{position:absolute;left:50%;bottom:calc(100% + 14px);translate:-50% 0;width:200px;background:var(--cyan-d);color:#fff;border-radius:14px;padding:13px 15px;opacity:0;visibility:hidden;transition:opacity .2s,transform .2s;transform:translate(-50%,6px);box-shadow:0 12px 28px rgba(0,0,0,.28);z-index:7}
.spot .tip::after{content:"";position:absolute;top:100%;left:50%;translate:-50% 0;border:9px solid transparent;border-top-color:var(--cyan-d)}
.spot .tip .cat{font-family:"Cormorant Garamond",serif;font-style:italic;font-size:11px;color:var(--cyan-l);letter-spacing:.06em}
.spot .tip .nm{display:block;font-family:"Kaisei Decol",serif;font-weight:700;font-size:14px;margin:2px 0 4px}
.spot .tip p{font-family:"Noto Sans JP",sans-serif;font-weight:500;font-size:11.5px;line-height:1.7}
.spot .tip .go{display:inline-block;margin-top:7px;font-family:"Klee One",serif;font-weight:700;font-size:11px;color:#fff;border-bottom:1px solid rgba(255,255,255,.6)}
.spot:hover .tip{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:760px){.spot .pin{width:32px;height:32px}.spot .pin svg{width:15px;height:15px}.spot .sign{font-size:10px;padding:2px 8px}.spot .tip{width:160px}}

/* ============ 装飾＆全体の動き ============ */
/* 雲：ゆっくり大きく流れる */
@keyframes cloudDrift{0%{transform:translateX(0)}50%{transform:translateX(70px)}100%{transform:translateX(0)}}
.dec-cloud{animation:cloudDrift 14s ease-in-out infinite}
.dec-cloud.cloud-r{animation-duration:18s;animation-direction:reverse}
.dec-cloud.cloud-m{animation-duration:16s;animation-delay:-4s}
.story .cloud-l{animation-duration:15s}
.story .cloud-r{animation-duration:19s;animation-direction:reverse}
/* キラキラ星：くるくる＆瞬く */
@keyframes twinkle2{0%,100%{transform:scale(.55) rotate(0deg);opacity:.5}50%{transform:scale(1.15) rotate(90deg);opacity:1}}
.dec-flower{transform-origin:center;animation:twinkle2 3.4s ease-in-out infinite}
.dec-flower.flower-tr{animation-duration:4.2s;animation-delay:-0.9s}
.dec-flower.flower-bl{animation-duration:3.8s;animation-delay:-1.9s}
.dec-flower.flower-br{animation-duration:4.6s;animation-delay:-2.7s}
/* 葉っぱ：ゆらゆら（反転は維持） */
@keyframes leafSwayL{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
@keyframes leafSwayR{0%,100%{transform:scaleX(-1) rotate(-3deg)}50%{transform:scaleX(-1) rotate(4deg)}}
.dec-leaf{transform-origin:top center}
.about .leaf-l,.system .leaf-l{animation:leafSwayL 6s ease-in-out infinite}
.about .leaf-r{animation:leafSwayL 6.6s ease-in-out infinite;animation-delay:-2s}
.character .leaf-r,.system .leaf-r{animation:leafSwayR 6.6s ease-in-out infinite;animation-delay:-2s}
.character .leaf-l{animation:leafSwayL 6s ease-in-out infinite}

/* トライアドのチップが常にふわふわ＆ホバーで跳ねる */
@keyframes kwFloat{0%,100%{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-9px) rotate(var(--rot,0deg))}}
.triad .kw{animation:kwFloat 2.8s ease-in-out infinite;cursor:default;transition:filter .2s}
.triad .k1{--rot:-3deg}
.triad .k2{--rot:2deg;animation-delay:-.9s}
.triad .k3{--rot:-2deg;animation-delay:-1.8s}
.triad .kw:hover{animation-play-state:paused;filter:brightness(1.06)}

/* KVの人物が呼吸するように揺れる */
@keyframes kvBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.kv-cast figure img{animation:kvBob 4s ease-in-out infinite}
.kv-cast figure.s2 img{animation-duration:4.6s;animation-delay:-.8s}
.kv-cast figure.lead-a img{animation-duration:5s;animation-delay:-1.6s}
.kv-cast figure.lead-b img{animation-duration:4.3s;animation-delay:-2.2s}
.kv-cast figure.s3 img{animation-duration:4.8s;animation-delay:-3s}

/* セクション大見出しがふわっと呼吸 */
@keyframes titleBreath{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.sec-title h2{animation:titleBreath 5s ease-in-out infinite}

/* スクロール出現を“ぽよん”と弾むカーブに */
.fx{transition:opacity .7s ease, transform .7s cubic-bezier(.34,1.56,.4,1)}

@media(prefers-reduced-motion:reduce){
  .dec-cloud,.dec-flower,.dec-leaf,.triad .kw,.kv-cast figure img,.sec-title h2{animation:none}
}

/* ============ シャボン玉（ふわふわ浮上） ============ */
.bubble{position:absolute;border-radius:50%;pointer-events:none;z-index:0;
  background:radial-gradient(circle at 32% 28%, rgba(255,255,255,.9), rgba(255,255,255,.15) 42%, rgba(255,255,255,.05) 70%);
  border:1px solid rgba(255,255,255,.5);box-shadow:inset 0 0 8px rgba(255,255,255,.4);
  animation:bubbleRise linear infinite}
.bubble::after{content:"";position:absolute;top:16%;left:22%;width:26%;height:26%;border-radius:50%;background:rgba(255,255,255,.85)}
@keyframes bubbleRise{
  0%{transform:translateY(20px) translateX(0) scale(.9);opacity:0}
  12%{opacity:.9}
  88%{opacity:.9}
  100%{transform:translateY(-120px) translateX(14px) scale(1.05);opacity:0}
}
/* 配置（サイド中心に散らす・サイズと速度を変える） */
.bubble.bl1{left:3%;top:60%;width:34px;height:34px;animation-duration:9s}
.bubble.bl2{left:7%;top:38%;width:18px;height:18px;animation-duration:7s;animation-delay:-2s}
.bubble.bl3{left:2%;top:78%;width:24px;height:24px;animation-duration:11s;animation-delay:-4s}
.bubble.br1{right:4%;top:52%;width:30px;height:30px;animation-duration:10s;animation-delay:-1s}
.bubble.br2{right:8%;top:30%;width:16px;height:16px;animation-duration:8s;animation-delay:-3s}
.bubble.br3{right:3%;top:72%;width:22px;height:22px;animation-duration:12s;animation-delay:-5s}
/* 白背景セクション用：水色シャボン玉 */
.bubble.c{background:radial-gradient(circle at 32% 28%, rgba(94,188,217,.5), rgba(94,188,217,.12) 45%, rgba(94,188,217,.04) 72%);border-color:rgba(94,188,217,.35);box-shadow:inset 0 0 8px rgba(94,188,217,.22)}
.bubble.c::after{background:rgba(255,255,255,.8)}
@media(max-width:760px){.bubble.bl2,.bubble.br2{display:none}}
@media(prefers-reduced-motion:reduce){.bubble{animation:none;opacity:.5}}
