/* ===========================================================
   NORENWAKE OS — アメコミ・ヒーローモード deck (comic.css)
   16:9 / 1280x720px per slide. HTML→PDF (Chromium print).
   and-red-deck パイプライン互換（@page 338.67mm×190.5mm / 背景印刷）。
   インク線＋ハーフトーン＋吹き出し＋スターバースト＋戦力カード。
   =========================================================== */

:root{
  --ink:#16141B;          /* コミックの黒インク */
  --ink-2:#2A2733;
  --paper:#F3E9CF;        /* ヴィンテージ紙（クリーム）*/
  --paper-2:#FBF5E5;      /* 明るい紙（カード地）*/
  --paper-3:#EFE3C4;
  --red:#E11C24;          /* ヒーローレッド（主役）*/
  --red-deep:#9E0B12;
  --red-ink:#5E060A;
  --yellow:#FFCE2E;       /* キャプション/POW 黄 */
  --yellow-deep:#F2A81E;
  --energy:#16BFD6;       /* エネルギー・シアン（差し色）*/
  --energy-deep:#0C8AA0;
  --blue:#1B5FB0;
  --white:#FFFFFF;
  --muted:#7A7264;

  --display:"Impact","Haettenschweiler","Franklin Gothic Heavy","Arial Black",sans-serif;
  --jp:"Hiragino Kaku Gothic StdN","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic","Meiryo",sans-serif;
  --sans:"Helvetica Neue","Arial",sans-serif;

  --bd:4px solid var(--ink);
  --bd-thin:3px solid var(--ink);
  --shadow:8px 8px 0 var(--ink);
  --shadow-sm:5px 5px 0 var(--ink);
  --r:10px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:#3a3a3a;font-family:var(--jp);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}

/* ---------- slide frame ---------- */
.slide{
  position:relative;width:1280px;height:720px;background:var(--paper);
  overflow:hidden;margin:0 auto;
}
.deck .slide{margin:22px auto}
.slide>*{position:relative;z-index:2}

/* ---------- halftone / textures ---------- */
/* ベンデイ・ドット（陰影テクスチャ） */
.ht::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(var(--ink) 1.5px,transparent 1.6px);
  background-size:11px 11px;opacity:.10;
}
.ht-red::before{background-image:radial-gradient(var(--red) 2px,transparent 2.1px);background-size:13px 13px;opacity:.16}
.ht-y::before{background-image:radial-gradient(var(--yellow-deep) 2px,transparent 2.1px);background-size:13px 13px;opacity:.22}
/* スピードライン（集中線）放射 */
.rays::after{
  content:"";position:absolute;inset:-30%;z-index:0;pointer-events:none;
  background:repeating-conic-gradient(from 0deg at 50% 50%,
     rgba(0,0,0,.05) 0deg 1.6deg, transparent 1.6deg 6deg);
}
.rays-light::after{background:repeating-conic-gradient(from 0deg at 50% 45%,
     rgba(255,255,255,.06) 0deg 1.4deg, transparent 1.4deg 6deg)}

/* 暗インク全面（章・締め用） */
.dark{background:var(--ink);color:var(--paper-2)}
.dark .jh{color:var(--white)}

/* ---------- ink panel ---------- */
.panel{background:var(--paper-2);border:var(--bd);border-radius:var(--r);box-shadow:var(--shadow);position:relative}
.panel.flat{box-shadow:var(--shadow-sm)}
.panel.tilt{transform:rotate(-1.1deg)}
.panel.tilt-r{transform:rotate(1.1deg)}

/* ---------- type ---------- */
.kick{font-family:var(--display);font-size:24px;letter-spacing:.06em;color:var(--red);
  text-transform:uppercase;line-height:1;-webkit-text-stroke:.6px var(--ink);paint-order:stroke fill}
.kick.cy{color:var(--energy)}
.kick.dk{color:var(--ink)}
.jh{font-weight:900;font-size:52px;line-height:1.18;color:var(--ink);letter-spacing:.005em}
.jh .em{color:var(--red)}
.jh .emy{color:var(--ink);background:var(--yellow);padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.jh .emc{color:var(--energy-deep)}
.lead{font-weight:600;font-size:21px;line-height:1.75;color:var(--ink-2)}
.body{font-weight:500;font-size:18px;line-height:1.7;color:var(--ink-2)}
.small{font-size:13px;color:var(--muted);font-weight:600}

/* 英語SFX（特大・縁取り） */
.sfx{font-family:var(--display);text-transform:uppercase;line-height:.86;
  color:var(--yellow);-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;
  text-shadow:9px 9px 0 var(--red-deep);letter-spacing:.005em}
.sfx.red{color:var(--red);text-shadow:8px 8px 0 var(--ink)}
.sfx.cy{color:var(--energy);text-shadow:8px 8px 0 var(--ink)}
.sfx.wt{color:var(--white);text-shadow:8px 8px 0 var(--red-deep)}
/* 効果音バースト（要所） */
.sfxpop{position:absolute;z-index:7;font-family:var(--jp);font-weight:900;color:var(--yellow);
  -webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:6px 6px 0 var(--red);
  font-size:54px;line-height:.85;letter-spacing:.02em;transform:rotate(-8deg)}
.sfxpop.red{color:var(--red);text-shadow:6px 6px 0 var(--ink)}
.sfxpop.tr{top:18px;right:26px}

/* キャプションボックス（黄・ナレーション） */
.cap{display:inline-block;background:var(--yellow);border:var(--bd-thin);
  box-shadow:var(--shadow-sm);padding:12px 18px;font-weight:800;font-size:18px;
  line-height:1.5;color:var(--ink);max-width:560px}
.cap .em{color:var(--red-deep)}
.cap.lg{font-size:21px;padding:16px 22px}

/* 吹き出し */
.bubble{position:relative;display:inline-block;background:var(--white);border:var(--bd);
  border-radius:24px;padding:16px 22px;font-weight:800;font-size:19px;color:var(--ink);box-shadow:var(--shadow-sm)}
.bubble::after{content:"";position:absolute;left:42px;bottom:-22px;
  border-width:24px 18px 0 0;border-style:solid;border-color:var(--ink) transparent transparent transparent}
.bubble::before{content:"";position:absolute;left:46px;bottom:-13px;z-index:1;
  border-width:16px 12px 0 0;border-style:solid;border-color:var(--white) transparent transparent transparent}

/* スターバースト（POW） */
.star{--w:170px;width:var(--w);height:var(--w);display:flex;align-items:center;justify-content:center;
  background:var(--red);
  clip-path:polygon(50% 0,61% 22%,86% 12%,79% 38%,100% 50%,79% 62%,86% 88%,61% 78%,50% 100%,39% 78%,14% 88%,21% 62%,0 50%,21% 38%,14% 12%,39% 22%);
  text-align:center}
.star.y{background:var(--yellow)}
.star.cy{background:var(--energy)}
.star__in{font-family:var(--display);text-transform:uppercase;color:var(--white);line-height:.9;
  -webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}
.star.y .star__in{color:var(--ink);-webkit-text-stroke:0}

/* 番号バッジ（コマ番号・丸） */
.coin{width:54px;height:54px;border-radius:50%;background:var(--ink);color:var(--yellow);
  font-family:var(--display);font-size:30px;display:flex;align-items:center;justify-content:center;
  border:3px solid var(--ink);box-shadow:3px 3px 0 rgba(0,0,0,.25);flex:none}
.coin.red{background:var(--red);color:var(--white)}
.coin.cy{background:var(--energy);color:var(--ink)}

/* 章/コーナーのコミックタグ */
.corner{position:absolute;top:0;left:0;z-index:5;background:var(--ink);color:var(--yellow);
  font-family:var(--display);font-size:20px;letter-spacing:.05em;padding:8px 18px 8px 22px;
  clip-path:polygon(0 0,100% 0,calc(100% - 16px) 100%,0 100%)}
.issue{position:absolute;top:26px;right:26px;z-index:5;background:var(--yellow);border:var(--bd-thin);
  box-shadow:var(--shadow-sm);padding:8px 14px;font-family:var(--display);font-size:18px;color:var(--ink);
  letter-spacing:.04em;transform:rotate(3deg)}

/* フッター（号・ページ） */
.foot{position:absolute;left:46px;right:46px;bottom:18px;z-index:6;display:flex;
  justify-content:space-between;align-items:center;font-family:var(--display);font-size:14px;
  letter-spacing:.05em;color:var(--ink)}
.foot .pg{background:var(--ink);color:var(--paper);padding:3px 12px;border-radius:12px}
.dark .foot{color:var(--paper)} .dark .foot .pg{background:var(--yellow);color:var(--ink)}

.pad{position:absolute;inset:0;padding:54px 60px 56px}

/* ============================================================
   COVER（表紙＝コミックの表紙）
   ============================================================ */
.cover{background:
  radial-gradient(120% 90% at 78% 18%,#2c2937 0%,var(--ink) 60%);}
.cover .logo{position:absolute;top:34px;left:46px;height:42px;z-index:6;filter:brightness(0) invert(1)}
.cover__noren{position:absolute;top:12px;left:38px;width:386px;height:auto;z-index:4;
  filter:drop-shadow(7px 9px 0 rgba(0,0,0,.42))}
/* 暖簾モチーフの世界観統一 */
.origin-noren{position:absolute;top:12px;right:22px;width:150px;height:auto;z-index:2;opacity:.95;
  filter:drop-shadow(4px 5px 0 rgba(0,0,0,.16))}
.closing-noren{position:absolute;top:14px;left:50%;transform:translateX(-50%);width:240px;height:auto;z-index:4;
  filter:drop-shadow(0 7px 16px rgba(0,0,0,.55))}
/* AI社長 = 利点リスト */
.vlist2{display:flex;flex-direction:column;gap:12px}
.bn{display:flex;gap:14px;align-items:flex-start;background:var(--paper-2);border:var(--bd-thin);
  border-radius:10px;box-shadow:3px 3px 0 var(--ink);padding:13px 16px;font-size:15.5px;font-weight:500;
  color:var(--ink-2);line-height:1.5}
.bn b{color:var(--ink)}
.bn__n{flex:none;width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;
  font-family:var(--display);font-size:18px;display:flex;align-items:center;justify-content:center;border:2px solid var(--ink)}
/* 共同開発 = タッグ図 */
.tag{display:grid;grid-template-columns:1fr 110px 1fr;align-items:stretch;margin-top:12px}
.tag__side{background:var(--paper-2);border:var(--bd);border-radius:12px;box-shadow:var(--shadow-sm);padding:18px 24px}
.tag__side.r{background:var(--red);border-color:var(--ink)}
.tag__h{font-weight:900;font-size:28px;color:var(--ink);line-height:1}
.tag__side.r .tag__h{color:#fff}
.tag__d{font-weight:600;font-size:14.5px;color:var(--ink-2);margin-top:8px;line-height:1.55}
.tag__side.r .tag__d{color:rgba(255,255,255,.92)}
.tag__badge{display:flex;align-items:center;justify-content:center}
.tag__out{text-align:center;font-weight:900;font-size:23px;color:var(--ink);margin-top:14px}
.dark .tag__out{color:#fff}
.cover__band{position:absolute;left:0;right:0;top:0;height:8px;background:var(--red);z-index:6}
.cover__grid{position:absolute;inset:0;z-index:1;
  background-image:radial-gradient(rgba(255,255,255,.08) 1.4px,transparent 1.5px);background-size:14px 14px}
.cover__title{position:absolute;left:60px;top:280px;right:60px;z-index:4}
.cover .mast{font-family:var(--display);font-size:95px;line-height:.9;letter-spacing:.01em;color:var(--yellow);
  -webkit-text-stroke:5px var(--ink);paint-order:stroke fill;text-shadow:11px 11px 0 var(--red-deep);white-space:nowrap}
.cover .mast .jp{font-family:var(--jp);font-weight:900;-webkit-text-stroke:3.5px var(--ink);letter-spacing:.02em;margin-right:.05em}
.cover .mast .os{color:var(--energy);text-shadow:11px 11px 0 var(--ink)}
.cover .mast__sub{font-family:var(--display);font-size:25px;letter-spacing:.2em;color:rgba(255,255,255,.7);
  margin-top:12px;-webkit-text-stroke:.5px var(--ink);paint-order:stroke fill}
.cover__jp{position:absolute;left:62px;top:396px;z-index:4;font-weight:900;font-size:39px;color:var(--white);
  line-height:1.3;text-shadow:3px 3px 0 var(--red-deep)}
.cover__jp .em{color:var(--yellow)}
.cover__strap{position:absolute;left:64px;top:514px;z-index:4}
.cover__by{position:absolute;left:64px;bottom:30px;z-index:6;color:rgba(255,255,255,.85);font-weight:700;font-size:14px}
.cover__by b{color:var(--white)}
/* THE LEAGUE 紋章コイン列 */
.emwrap{position:absolute;left:62px;right:420px;bottom:86px;z-index:6;display:flex;align-items:center;gap:15px;flex-wrap:nowrap}
.emwrap .lab{font-family:var(--display);font-size:16px;color:var(--energy);letter-spacing:.05em;flex:none;line-height:1.3}
.emwrap .lab b{color:var(--yellow)}
.emrow{display:flex;gap:9px;align-items:center;flex-wrap:nowrap;flex:none}
.emrow .coin{width:44px;height:44px;font-size:20px;box-shadow:3px 3px 0 rgba(0,0,0,.45)}
.cover__issue{position:absolute;left:684px;right:auto;top:116px;z-index:5;--w:176px;transform:rotate(8deg)}
.cover__bg{position:absolute;inset:0;z-index:0;background:radial-gradient(120% 90% at 78% 18%,#2c2937,var(--ink) 62%)}
.cover__hero{position:absolute;right:44px;bottom:40px;width:352px;height:436px;z-index:3;
  object-fit:cover;object-position:center top;border:5px solid var(--ink);border-radius:6px;
  box-shadow:12px 12px 0 var(--red-deep),0 0 0 3px var(--yellow)}
.cover__herotag{position:absolute;right:60px;bottom:54px;z-index:4;background:var(--ink);color:var(--yellow);
  font-family:var(--display);font-size:18px;letter-spacing:.04em;padding:5px 14px;border:3px solid var(--yellow);
  transform:rotate(-2deg);box-shadow:3px 3px 0 var(--red-deep)}
.cover__herotag b{color:#fff}
/* 表紙ヒーロー・シルエット群（CSS作画・抽象） */
.heroes{position:absolute;right:-10px;bottom:0;z-index:2;width:560px;height:560px}
.heroes .h{position:absolute;bottom:0;width:120px;border-radius:60px 60px 0 0;
  background:linear-gradient(180deg,var(--ink-2),var(--ink));border:3px solid #000;
  box-shadow:inset 0 30px 0 rgba(255,255,255,.04)}
.heroes .cape{position:absolute;bottom:0;width:150px;background:var(--red-deep);border:3px solid #000;
  clip-path:polygon(0 0,100% 0,86% 100%,50% 80%,14% 100%);opacity:.9}
.heroes .em{position:absolute;width:46px;height:46px;border-radius:50%;background:var(--energy);
  border:3px solid #000;box-shadow:0 0 22px var(--energy)}

/* ============================================================
   STATEMENT（中扉・視点転換・一文）
   ============================================================ */
.stmt{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 86px}
.stmt__b{font-weight:900;font-size:50px;line-height:1.4;letter-spacing:.005em}
.stmt__b .em{color:var(--red)}
.stmt__b .emy{color:var(--ink);background:var(--yellow);padding:0 .1em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.stmt.dark .stmt__b{color:var(--white)} .stmt.dark .stmt__b .em{color:var(--yellow)}
.stmt__sub{margin-top:22px;font-weight:600;font-size:21px;line-height:1.8;color:var(--ink-2);max-width:880px}
.stmt.dark .stmt__sub{color:rgba(255,255,255,.82)}
.stmt__bar{width:120px;height:9px;background:var(--red);margin-bottom:26px;box-shadow:var(--shadow-sm)}

/* ============================================================
   HEAD（スライド見出しブロック）
   ============================================================ */
.head{display:flex;align-items:flex-start;gap:16px;margin-bottom:22px}
.head__txt .jh{font-size:42px;line-height:1.16}
.head__txt .kick{margin-bottom:8px;display:block}

/* ============================================================
   VILLAIN CARDS / 3-up panels（敵・課題）
   ============================================================ */
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px}
.vcard{background:var(--paper-2);border:var(--bd);border-radius:var(--r);box-shadow:var(--shadow);
  padding:24px 22px 22px;position:relative;min-height:300px}
.vcard__no{position:absolute;top:-20px;left:-12px}
.vcard__t{font-weight:900;font-size:23px;color:var(--ink);margin:8px 0 10px;line-height:1.25}
.vcard__t .em{color:var(--red)}
.vcard__d{font-weight:500;font-size:16px;line-height:1.66;color:var(--ink-2)}
.vcard__tag{display:inline-block;margin-top:14px;background:var(--ink);color:var(--paper);
  font-family:var(--display);font-size:14px;letter-spacing:.04em;padding:4px 12px;border-radius:4px}

/* ============================================================
   STEPS（のれん分け＝オリジン）
   ============================================================ */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:14px;align-items:stretch}
.step{background:var(--paper-2);border:var(--bd);border-radius:var(--r);box-shadow:var(--shadow-sm);
  padding:20px 18px;position:relative;display:flex;flex-direction:column}
.step__n{font-family:var(--display);font-size:40px;color:var(--red);line-height:1;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}
.step__h{font-weight:900;font-size:20px;color:var(--ink);margin:6px 0 8px}
.step__d{font-weight:500;font-size:14.5px;line-height:1.6;color:var(--ink-2)}
.step__ar{position:absolute;right:-13px;top:46%;z-index:4;font-family:var(--display);font-size:34px;color:var(--ink)}
.step:last-child .step__ar{display:none}
.step.boom{background:var(--yellow);border-color:var(--ink)}
.step.boom .step__n{color:var(--red-deep)}

/* ============================================================
   HERO ROSTER（チーム集合スプラッシュ）
   ============================================================ */
.roster{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:12px}
.rbadge{background:var(--paper-2);border:var(--bd-thin);border-radius:10px;box-shadow:3px 3px 0 var(--ink);
  padding:12px 10px 12px;text-align:center;position:relative;overflow:hidden}
.rbadge::before{content:"";position:absolute;inset:0;z-index:0;
  background-image:radial-gradient(var(--red) 1.4px,transparent 1.5px);background-size:9px 9px;opacity:.10}
.rbadge>*{position:relative;z-index:1}
.rbadge__ic{width:46px;height:46px;border-radius:50%;margin:0 auto 8px;background:var(--ink);color:var(--yellow);
  font-family:var(--display);font-size:22px;display:flex;align-items:center;justify-content:center;border:3px solid var(--ink)}
.rbadge.red .rbadge__ic{background:var(--red);color:var(--white)}
.rbadge.cy .rbadge__ic{background:var(--energy);color:var(--ink)}
.rbadge__nm{font-weight:900;font-size:18px;color:var(--ink);line-height:1}
.rbadge__dp{font-size:12px;color:var(--muted);font-weight:700;margin-top:4px}
.rbadge__ps{font-size:11.5px;color:var(--red-deep);font-weight:800;margin-top:3px}
.rbadge.cap-badge{background:var(--ink);}
.rbadge.cap-badge::before{opacity:.18}
.rbadge.cap-badge .rbadge__nm{color:var(--white)} .rbadge.cap-badge .rbadge__dp{color:rgba(255,255,255,.7)}
.rbadge.cap-badge .rbadge__ps{color:var(--yellow)}
.rbadge.cap-badge .rbadge__ic{background:var(--yellow);color:var(--ink)}

/* ============================================================
   HERO STAT CARDS（戦力スカウター）
   ============================================================ */
.hcards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:14px}
.hcard{background:var(--paper-2);border:var(--bd);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;position:relative}
.hcard__top{background:var(--ink);color:var(--white);padding:13px 16px 12px;position:relative;overflow:hidden}
.hcard__top::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.12) 1.3px,transparent 1.4px);background-size:9px 9px}
.hcard__role{position:relative;font-family:var(--display);font-size:13px;letter-spacing:.05em;color:var(--energy)}
.hcard__nm{position:relative;font-weight:900;font-size:26px;line-height:1;margin-top:3px}
.hcard__dp{position:relative;font-size:12.5px;color:rgba(255,255,255,.72);font-weight:700;margin-top:5px}
.hcard__bd{padding:14px 16px 16px}
.hcard__ps{font-size:13.5px;font-weight:700;color:var(--ink-2);min-height:38px;line-height:1.45}
.scout{display:flex;align-items:baseline;gap:8px;margin:8px 0 12px;border-top:2px dashed var(--ink);padding-top:10px}
.scout__lab{font-family:var(--display);font-size:13px;color:var(--ink);letter-spacing:.04em}
.scout__fig{font-family:var(--display);font-size:46px;color:var(--red);line-height:.9;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill}
.scout__u{font-weight:800;font-size:14px;color:var(--ink-2)}
.pips{display:flex;gap:6px;flex-wrap:wrap}
.pip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;color:var(--ink)}
.pip i{width:13px;height:13px;border-radius:50%;border:2px solid var(--ink);display:inline-block}
.pip .g{background:#34C759} .pip .y{background:var(--yellow)} .pip .r{background:var(--red)}

/* === HERO PORTRAITS（gpt-image-2 生成立ち絵の埋め込み） === */
.rbadge__ic{width:66px;height:66px;border-radius:50%;margin:0 auto 8px;overflow:hidden;
  background:var(--paper);border:3px solid var(--ink);display:block;padding:0;box-shadow:2px 2px 0 var(--ink)}
.rbadge__ic img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.rbadge.red .rbadge__ic{border-color:var(--red)} .rbadge.cy .rbadge__ic{border-color:var(--energy-deep)}
.rbadge.cap-badge .rbadge__ic{border-color:var(--yellow);background:var(--paper)}
/* scouter card に丸アバター */
.hcard__top{display:flex;align-items:center;gap:13px}
.hcard__meta{position:relative;flex:1}
.hcard__av{width:62px;height:62px;border-radius:50%;border:3px solid var(--energy);overflow:hidden;
  background:#23202a;flex:none;box-shadow:2px 2px 0 #000;position:relative}
.hcard__av img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
/* 表紙コイン＝ミニ顔 */
.emrow .coin{overflow:hidden;padding:0;background:var(--paper)}
.emrow .coin img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
/* 敵スライド＝対峙ヒーロー（バストを右下に） */
.villain-hero{position:absolute;right:18px;bottom:8px;height:226px;width:auto;z-index:5;
  filter:drop-shadow(-7px 0 0 rgba(0,0,0,.35)) drop-shadow(0 6px 10px rgba(0,0,0,.55))}
/* 締め＝チーム集結ライン */
.closing__team{position:absolute;left:0;right:0;bottom:0;height:158px;display:flex;
  align-items:flex-end;justify-content:center;z-index:2;pointer-events:none}
.closing__team img{height:146px;width:auto;margin:0 -16px;object-fit:contain;object-position:bottom;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.6))}
.closing__team img:nth-child(2n){height:130px}
.closing .tobe,.closing h2,.closing p,.closing .cta,.closing .by{position:relative;z-index:4}
/* 堀カードのヒーロー・アバター（右下） */
.moat>.moat__av{position:absolute;right:16px;bottom:16px;width:66px;height:66px;border-radius:50%;
  border:3px solid var(--energy);overflow:hidden;background:#23202a;box-shadow:2px 2px 0 #000;z-index:3}
.moat__av img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
/* 必殺技カードのヒーロー（右端・縦中央） */
.power__txt{flex:1}
.power__av{width:58px;height:58px;border-radius:50%;border:3px solid var(--ink);overflow:hidden;
  background:var(--paper);box-shadow:2px 2px 0 var(--ink);flex:none;align-self:center}
.power__av img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
/* === PR動画ページ（活動記録→アメコミ動画→PR） === */
.cols2{display:grid;grid-template-columns:1.02fr 1fr;gap:32px;align-items:center;margin-top:8px}
.prflow{display:flex;flex-direction:column;gap:12px}
.prstep{display:flex;gap:14px;align-items:flex-start;background:var(--paper-2);border:var(--bd-thin);
  border-radius:10px;box-shadow:3px 3px 0 var(--ink);padding:12px 16px}
.prn{font-family:var(--display);font-size:23px;color:#fff;background:var(--red);width:40px;height:40px;
  border:3px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.prstep .pt{flex:1}
.prstep b{display:block;font-weight:900;font-size:16.5px;color:var(--ink);margin-bottom:2px}
.prstep .pd{font-weight:600;font-size:13.5px;color:var(--ink-2);line-height:1.5}
.tube{border:var(--bd);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);background:#fff}
.tube__screen{position:relative;aspect-ratio:16/9;background:var(--ink);overflow:hidden}
.tube__screen>img,.tube__vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.tube__vid{display:block;background:var(--ink)}
.tube__poster{display:none}
.tube__grad,.tube__tag,.tube__dur,.tube__play{pointer-events:none}
@media screen{.tube__play{display:none}}
@media print{.tube__vid{display:none}.tube__poster{display:block}.tube__play{display:block}}
.tube__link{position:absolute;inset:0;z-index:7;display:block}
@media screen{.tube__link{display:none}}
.prqr{display:flex;align-items:center;gap:11px;text-decoration:none;flex:none}
.prqr img{width:76px;height:76px;border:3px solid var(--ink);border-radius:8px;box-shadow:2px 2px 0 var(--ink);background:#fff;display:block}
.prqr .t{font-weight:900;font-size:14px;color:var(--ink);line-height:1.35}
.prqr .t .em{color:var(--red)}
.prqr .t u{font-family:var(--display);font-size:12.5px;color:var(--ink-2);letter-spacing:.02em;text-decoration:none}
.tube__grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 36%,rgba(0,0,0,.74))}
.tube__play{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:70px;height:70px;border-radius:50%;
  background:var(--red);border:4px solid #fff;box-shadow:0 6px 18px rgba(0,0,0,.45)}
.tube__play::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-40%,-50%);
  border-left:22px solid #fff;border-top:14px solid transparent;border-bottom:14px solid transparent}
.tube__tag{position:absolute;left:12px;top:12px;background:var(--red);color:#fff;font-family:var(--display);
  font-size:14px;letter-spacing:.03em;padding:4px 10px;border-radius:5px;border:2px solid #fff}
.tube__dur{position:absolute;right:10px;bottom:10px;background:rgba(0,0,0,.82);color:#fff;font-weight:800;
  font-size:12px;padding:2px 8px;border-radius:4px}
.tube__title{position:absolute;left:14px;right:14px;bottom:12px;color:#fff;font-weight:900;font-size:19px;
  line-height:1.28;text-shadow:0 2px 6px rgba(0,0,0,.85)}
.tube__bar{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--paper-2)}
.tube__ch{width:36px;height:36px;border-radius:50%;background:var(--red);flex:none;display:flex;align-items:center;
  justify-content:center;color:#fff;font-family:var(--display);font-size:18px;border:2px solid var(--ink)}
.tube__meta b{font-weight:900;font-size:14px;color:var(--ink);display:block;line-height:1.2}
.tube__meta span{font-size:12px;color:var(--muted);font-weight:700}

/* ============================================================
   POWERS（4反則＝必殺技）
   ============================================================ */
.powers{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px}
.power{background:var(--paper-2);border:var(--bd);border-radius:12px;box-shadow:var(--shadow-sm);
  padding:20px 22px;display:flex;gap:16px;align-items:flex-start}
.power__no{font-family:var(--display);font-size:50px;color:var(--white);line-height:.8;flex:none;
  background:var(--red);width:74px;height:74px;border:3px solid var(--ink);border-radius:50%;
  display:flex;align-items:center;justify-content:center;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}
.power__t{font-weight:900;font-size:21px;color:var(--ink);margin-bottom:6px;line-height:1.2}
.power__t .em{color:var(--red)}
.power__d{font-weight:500;font-size:15px;line-height:1.6;color:var(--ink-2)}

/* ============================================================
   LOOP / 共育ループ＋裁量
   ============================================================ */
.loopwrap{display:grid;grid-template-columns:1.15fr .85fr;gap:30px;margin-top:14px;align-items:center}
.loop{position:relative;background:var(--paper-2);border:var(--bd);border-radius:14px;box-shadow:var(--shadow-sm);padding:24px}
.loop__row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.lnode{flex:1;text-align:center;background:var(--white);border:3px solid var(--ink);border-radius:10px;padding:12px 6px;box-shadow:3px 3px 0 var(--ink)}
.lnode b{display:block;font-weight:900;font-size:16px;color:var(--ink)}
.lnode span{font-size:11.5px;color:var(--muted);font-weight:700}
.lnode.red{background:var(--red);color:#fff} .lnode.red b{color:#fff} .lnode.red span{color:rgba(255,255,255,.8)}
.lnode.y{background:var(--yellow)}
.larrow{font-family:var(--display);font-size:26px;color:var(--ink);flex:none}
.loop__back{text-align:center;margin-top:14px;font-weight:800;font-size:14px;color:var(--energy-deep)}
.tiers{display:flex;flex-direction:column;gap:12px}
.tier{display:flex;align-items:center;gap:14px;background:var(--paper-2);border:var(--bd-thin);border-radius:10px;
  box-shadow:3px 3px 0 var(--ink);padding:12px 16px}
.tier__dot{width:30px;height:30px;border-radius:50%;border:3px solid var(--ink);flex:none}
.tier__dot.g{background:#34C759} .tier__dot.y{background:var(--yellow)} .tier__dot.r{background:var(--red)}
.tier__n{font-family:var(--display);font-size:30px;color:var(--ink);min-width:42px}
.tier__b{font-weight:900;font-size:16px;color:var(--ink)}
.tier__s{font-size:12.5px;color:var(--ink-2);font-weight:600}

/* ============================================================
   MOAT（3重の堀）
   ============================================================ */
.moats{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:10px}
.moat{background:var(--ink);color:var(--paper-2);border:var(--bd);border-radius:12px;box-shadow:var(--shadow);
  padding:24px 22px;position:relative;overflow:hidden;min-height:300px}
.moat::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.10) 1.4px,transparent 1.5px);background-size:11px 11px}
.moat>*{position:relative}
.moat__k{font-family:var(--display);font-size:15px;letter-spacing:.06em;color:var(--energy)}
.moat__t{font-weight:900;font-size:30px;color:var(--white);margin:6px 0 12px}
.moat__t .em{color:var(--yellow)}
.moat__d{font-weight:500;font-size:15px;line-height:1.66;color:rgba(255,255,255,.82)}
.moat__no{position:absolute;right:16px;top:10px;font-family:var(--display);font-size:78px;color:rgba(255,255,255,.10);line-height:1}

/* ============================================================
   KPI（戦力・数字）
   ============================================================ */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:16px}
.kpi{background:var(--paper-2);border:var(--bd);border-radius:12px;box-shadow:var(--shadow-sm);
  padding:20px 16px;text-align:center}
.kpi__cap{font-weight:800;font-size:14px;color:var(--ink-2);min-height:40px;display:flex;align-items:center;justify-content:center;line-height:1.4}
.kpi__fig{font-family:var(--display);font-size:64px;color:var(--red);line-height:.92;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}
.kpi__fig .u{font-family:var(--jp);font-size:20px;font-weight:900;color:var(--ink);-webkit-text-stroke:0;margin-left:3px}
.kpi__sub{font-size:12.5px;color:var(--muted);font-weight:700;margin-top:8px}
.kpi.dark{background:var(--ink)} .kpi.dark .kpi__cap{color:rgba(255,255,255,.8)} .kpi.dark .kpi__fig{color:var(--yellow)}
.kpi.dark .kpi__fig .u{color:#fff} .kpi.dark .kpi__sub{color:rgba(255,255,255,.6)}

/* ============================================================
   PLANS（出向プラン）
   ============================================================ */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:18px}
.plan{background:var(--paper-2);border:var(--bd);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;position:relative}
.plan__h{background:var(--ink);color:#fff;text-align:center;font-family:var(--display);font-size:24px;letter-spacing:.05em;padding:13px}
.plan--feat{box-shadow:var(--shadow);transform:translateY(-8px)}
.plan--feat .plan__h{background:var(--red)}
.plan__tag{position:absolute;top:12px;right:-34px;background:var(--yellow);color:var(--ink);font-family:var(--display);
  font-size:14px;padding:5px 38px;transform:rotate(38deg);border:2px solid var(--ink);z-index:3}
.plan__price{text-align:center;padding:18px 12px 8px;font-family:var(--display);font-size:46px;color:var(--ink);line-height:1}
.plan__price small{font-family:var(--jp);font-size:15px;font-weight:800;color:var(--ink-2);display:block;margin-top:4px}
.plan__sq{text-align:center;font-weight:800;font-size:13.5px;color:var(--red-deep);padding-bottom:10px}
.plan__bd{padding:6px 20px 22px}
.plan__li{display:flex;gap:9px;font-size:14.5px;color:var(--ink-2);font-weight:600;padding:7px 0;border-top:2px dotted var(--ink);line-height:1.4}
.plan__li::before{content:"";width:13px;height:13px;margin-top:3px;flex:none;background:var(--red);border:2px solid var(--ink);border-radius:50%}

/* PRICING v2（基本＋従量・意外と安い） */
.price2{display:grid;grid-template-columns:1fr 70px 1fr;align-items:stretch;margin-top:16px}
.pcard{background:var(--paper-2);border:var(--bd);border-radius:14px;box-shadow:var(--shadow-sm);padding:24px 28px;position:relative;overflow:hidden}
.pcard.dk{background:var(--ink);color:#fff}
.pcard.dk::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.10) 1.3px,transparent 1.4px);background-size:10px 10px}
.pcard>*{position:relative}
.pcard__lab{display:inline-block;background:var(--ink);color:var(--yellow);font-family:var(--display);font-size:15px;letter-spacing:.05em;padding:4px 14px;border-radius:6px}
.pcard.dk .pcard__lab{background:var(--yellow);color:var(--ink)}
.pcard__big{font-family:var(--display);font-size:66px;color:var(--ink);line-height:.95;margin-top:14px;-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill}
.pcard__big small{font-family:var(--jp);font-size:19px;font-weight:900;-webkit-text-stroke:0;color:var(--ink-2);margin-left:4px}
.pcard.dk .pcard__big{color:var(--yellow);-webkit-text-stroke:1.5px #000}
.pcard.dk .pcard__big small{color:#fff}
.pcard__sub{font-weight:600;font-size:15px;color:var(--ink-2);margin-top:12px;line-height:1.62}
.pcard.dk .pcard__sub{color:rgba(255,255,255,.86)}
.pcard__sub .em{color:var(--red);font-weight:800} .pcard.dk .pcard__sub .em{color:var(--yellow)}
.pplus{display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:56px;color:var(--red);-webkit-text-stroke:2.5px var(--ink);paint-order:stroke fill}
.pcard.camp{border-color:var(--red);box-shadow:6px 6px 0 var(--red-deep)}
.pcard__camp{position:absolute;top:14px;right:-36px;background:var(--red);color:#fff;font-family:var(--display);
  font-size:15px;letter-spacing:.03em;padding:6px 40px;transform:rotate(38deg);border:2px solid var(--ink);z-index:4}
.cbadge{display:inline-flex;align-items:center;gap:8px;background:var(--yellow);border:var(--bd-thin);
  box-shadow:var(--shadow-sm);border-radius:8px;padding:6px 14px;font-family:var(--display);font-size:17px;
  letter-spacing:.03em;color:var(--ink);margin-left:14px}
.cbadge b{color:var(--red-deep)}
.pstrike{font-family:var(--jp);font-weight:800;font-size:20px;color:var(--muted);margin-top:8px;
  text-decoration:line-through;text-decoration-color:var(--red);text-decoration-thickness:3px}

/* ============================================================
   TIMELINE（サーガ）
   ============================================================ */
.saga{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}
.ep{background:var(--paper-2);border:var(--bd);border-radius:12px;box-shadow:var(--shadow-sm);padding:18px 16px;position:relative}
.ep__no{font-family:var(--display);font-size:16px;color:#fff;background:var(--ink);display:inline-block;
  padding:3px 12px;border-radius:6px;letter-spacing:.04em}
.ep__yr{font-family:var(--display);font-size:14px;color:var(--red);margin-left:6px}
.ep__t{font-weight:900;font-size:18px;color:var(--ink);margin:10px 0 8px;line-height:1.25}
.ep__d{font-weight:500;font-size:13.5px;line-height:1.55;color:var(--ink-2)}
.ep.feat{background:var(--yellow)} .ep.feat .ep__no{background:var(--red)}

/* ============================================================
   PARTNER（按分・代理店供給網）
   ============================================================ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:18px;border:var(--bd);border-radius:14px;
  overflow:hidden;box-shadow:var(--shadow);background:var(--paper-2)}
.split__half{padding:30px 30px;position:relative}
.split__half.l{background:var(--paper-2)}
.split__half.r{background:var(--red);color:#fff}
.split__pct{font-family:var(--display);font-size:74px;line-height:.9;color:var(--ink);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill}
.split__half.r .split__pct{color:#fff;-webkit-text-stroke:2px var(--red-ink)}
.split__who{font-weight:900;font-size:22px;margin:4px 0 8px}
.split__d{font-weight:600;font-size:15px;line-height:1.6;color:var(--ink-2)}
.split__half.r .split__d{color:rgba(255,255,255,.9)}
.split__vs{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;
  width:60px;height:60px;background:var(--yellow);border:var(--bd);border-radius:50%;
  font-family:var(--display);font-size:22px;display:flex;align-items:center;justify-content:center;color:var(--ink)}

/* SUPPLY NETWORK（供給網フロー＋還流） */
.netflow{display:grid;grid-template-columns:1fr 56px 1fr 56px 1fr;align-items:stretch;margin-top:16px}
.nnode{background:var(--paper-2);border:var(--bd);border-radius:12px;box-shadow:var(--shadow-sm);padding:18px 16px;text-align:center;position:relative;overflow:hidden}
.nnode.ink{background:var(--ink);color:#fff}
.nnode.ink::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.10) 1.2px,transparent 1.3px);background-size:9px 9px}
.nnode.red{background:var(--red);color:#fff;border-color:var(--ink)}
.nnode>*{position:relative}
.nnode__k{font-family:var(--display);font-size:13px;letter-spacing:.04em;color:var(--red)}
.nnode.ink .nnode__k{color:var(--energy)} .nnode.red .nnode__k{color:var(--yellow)}
.nnode__t{font-weight:900;font-size:21px;color:var(--ink);margin:7px 0;line-height:1.2}
.nnode.ink .nnode__t,.nnode.red .nnode__t{color:#fff}
.nnode__d{font-size:13px;font-weight:600;color:var(--ink-2);line-height:1.55}
.nnode.ink .nnode__d{color:rgba(255,255,255,.84)} .nnode.red .nnode__d{color:rgba(255,255,255,.92)}
.narrow{display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--display);font-size:30px;color:var(--ink)}
.narrow span{font-size:10.5px;font-weight:800;color:var(--muted);margin-top:3px;font-family:var(--jp);line-height:1.2}
.reflux{margin-top:16px;background:var(--yellow);border:var(--bd-thin);box-shadow:var(--shadow-sm);border-radius:10px;
  padding:13px 20px;font-weight:700;font-size:15.5px;color:var(--ink);line-height:1.55}
.reflux b{font-family:var(--display);color:var(--red-deep);font-size:19px;letter-spacing:.03em;margin-right:8px}
/* OEM条件カードの強調 */
.vcard.deal{background:var(--red);border-color:var(--ink)}
.vcard.deal .vcard__t{color:#fff}
.vcard.deal .vcard__d{color:rgba(255,255,255,.92)}
.vcard.deal .vcard__d b{color:var(--yellow)}
.vcard.deal .vcard__tag{background:var(--yellow);color:var(--ink)}

/* === PARTNER TIERS（2階層パートナー＋面談） === */
.ptiers{display:grid;grid-template-columns:1.06fr 1fr;gap:22px;margin-top:14px;align-items:stretch}
.ptier{background:var(--paper-2);border:var(--bd);border-radius:14px;box-shadow:var(--shadow-sm);
  padding:22px 24px;position:relative;overflow:hidden;display:flex;flex-direction:column}
.ptier.feat{background:var(--ink);color:#fff;box-shadow:var(--shadow)}
.ptier.feat::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.10) 1.3px,transparent 1.4px);background-size:11px 11px}
.ptier>*{position:relative}
.ptier__tag{position:absolute;top:15px;right:-36px;background:var(--yellow);color:var(--ink);font-family:var(--display);
  font-size:14px;padding:5px 42px;transform:rotate(38deg);border:2px solid var(--ink);z-index:4}
.ptier__lv{font-family:var(--display);font-size:15px;letter-spacing:.04em;color:var(--red)}
.ptier.feat .ptier__lv{color:var(--yellow)}
.ptier__nm{font-weight:900;font-size:20px;color:var(--ink);margin:4px 0 10px}
.ptier.feat .ptier__nm{color:#fff}
.ptier__fig{font-family:var(--display);font-size:56px;line-height:.9;color:var(--red);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;margin-bottom:6px}
.ptier.feat .ptier__fig{color:var(--yellow);-webkit-text-stroke:1.5px #000}
.ptier__fig small{font-family:var(--jp);font-size:17px;font-weight:900;color:var(--ink-2);-webkit-text-stroke:0;margin-left:4px}
.ptier.feat .ptier__fig small{color:rgba(255,255,255,.85)}
.ptier__li{display:flex;gap:9px;font-size:14px;font-weight:600;color:var(--ink-2);padding:6px 0;border-top:2px dotted var(--ink);line-height:1.45}
.ptier.feat .ptier__li{color:rgba(255,255,255,.88);border-top-color:rgba(255,255,255,.25)}
.ptier__li b{color:var(--ink);font-weight:900} .ptier.feat .ptier__li b{color:var(--yellow)}
.ptier__li::before{content:"";width:12px;height:12px;margin-top:3px;flex:none;background:var(--red);border:2px solid var(--ink);border-radius:50%}
.ptier.feat .ptier__li::before{background:var(--yellow);border-color:#000}
.ptier__cond{margin-top:auto;padding-top:10px;font-size:12px;font-weight:800;color:var(--red-deep);line-height:1.4}
.ptier.feat .ptier__cond{color:var(--yellow)}
.pmtg{margin-top:20px;background:var(--red);border:var(--bd);border-radius:30px;box-shadow:var(--shadow-sm);
  display:flex;align-items:center;justify-content:center;gap:12px;padding:14px;color:#fff;font-weight:900;font-size:19px}
.pmtg .arr{font-family:var(--display);font-size:23px;color:var(--yellow)}
.pmtg .em{color:var(--yellow)}

/* ============================================================
   COMPANY PROFILE（会社概要）
   ============================================================ */
.prof{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center}
.prof__logo{height:46px;margin-bottom:18px}
.itable{border:var(--bd-thin);border-radius:10px;overflow:hidden;background:var(--paper-2);box-shadow:var(--shadow-sm)}
.irow{display:grid;grid-template-columns:130px 1fr;gap:0;border-bottom:2px solid var(--ink)}
.irow:last-child{border-bottom:0}
.irow dt{background:var(--ink);color:var(--paper);font-weight:800;font-size:13.5px;padding:11px 14px}
.irow dd{padding:11px 16px;font-weight:600;font-size:14.5px;color:var(--ink);line-height:1.5}
.prof__card{background:var(--ink);border-radius:14px;padding:30px;color:#fff;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.prof__card::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.1) 1.3px,transparent 1.4px);background-size:10px 10px}
.prof__card>*{position:relative}
.prof__motto{font-weight:900;font-size:26px;line-height:1.4;color:#fff}
.prof__motto .em{color:var(--yellow)}
.prof__cta{margin-top:18px;background:var(--red);border:3px solid var(--paper);border-radius:30px;
  text-align:center;font-weight:900;font-size:17px;padding:12px;color:#fff}

/* ============================================================
   CLOSING（次号予告・締め）
   ============================================================ */
.closing{position:absolute;inset:0;background:radial-gradient(120% 100% at 50% 0%,#2c2937,var(--ink) 65%);
  color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:0 80px}
.closing .tobe{font-family:var(--display);font-size:30px;color:var(--energy);letter-spacing:.08em;text-transform:uppercase}
.closing h2{font-weight:900;font-size:52px;line-height:1.34;margin:14px 0 18px}
.closing h2 .em{color:var(--yellow)}
.closing p{font-weight:500;font-size:19px;line-height:1.8;color:rgba(255,255,255,.85);max-width:840px}
.closing .cta{margin-top:26px;background:var(--red);border:4px solid #fff;border-radius:36px;
  font-family:var(--display);font-size:24px;letter-spacing:.04em;padding:15px 44px;color:#fff;box-shadow:8px 8px 0 var(--red-deep)}
.closing .by{margin-top:24px;font-weight:700;font-size:15px;color:rgba(255,255,255,.8)}

/* ============================================================
   PRINT → PDF
   ============================================================ */
@page{size:338.67mm 190.5mm;margin:0}
@media print{
  html,body{background:#fff}
  .deck .slide{margin:0}
  .slide{break-after:page}
  .slide:last-child{break-after:auto}
}
