/* ============================================================
   AI SHOWCASE ケースページ共通スタイル
   白・黒・コバルト青の3色だけ／角丸ゼロ／±1度の回転
   新しいケースを作るときは、このCSSを読み込んで本文だけ書けばよい。
   ============================================================ */
  /* パターンD「グラフィック」＝白地×斜めカラーテープ×極太黒ゴシック。角丸ゼロ、±1度回転 */
  :root{
    --white:#FCFBF8;
    --ink:#141414;
    --blue:#1D4ED8;   /* コバルト＝正しいデータが置いてある場所 */
    --deep:#112D7D;   /* 濃い青＝帯・注記 */
    --tint:#DFE6FA;   /* 薄い青＝人が入力する側・背景ベタ */
    --onblue:#FFFFFF; /* 青ベタの上の文字 */
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  body{
    font-family:"Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
    font-weight:500;background:var(--white);color:var(--ink);
    line-height:1.9;overflow-x:hidden;line-break:strict;
  }
  ::selection{background:var(--tint);}
  img,svg{max-width:100%;}

  /* ============ 上部バー ============ */
  .topbar{
    position:sticky;top:0;z-index:60;
    background:var(--ink);color:var(--white);
    display:flex;justify-content:space-between;align-items:center;
    padding:9px 18px;font-size:12.5px;font-weight:900;letter-spacing:.08em;
  }
  .topbar a{color:var(--white);text-decoration:none;}
  .topbar a:hover{background:var(--blue);color:var(--onblue);}
  .topbar .brand{letter-spacing:.2em;}

  /* ============ ヒーロー ============ */
  .hero{
    position:relative;overflow:hidden;
    padding:82px 24px 74px;
    display:flex;flex-direction:column;align-items:center;text-align:center;
  }
  .tape{
    position:absolute;font-weight:900;color:var(--ink);
    padding:6px 20px;white-space:nowrap;
    font-size:clamp(12px,1.8vw,18px);letter-spacing:.08em;
    pointer-events:none;user-select:none;
  }
  .hero .kicker{
    position:relative;z-index:2;
    background:var(--ink);color:var(--white);
    font-size:12.5px;font-weight:900;letter-spacing:.24em;
    padding:6px 20px;transform:rotate(-1.5deg);
  }
  .hero h1{
    position:relative;z-index:2;display:inline-block;
    background:var(--blue);color:var(--onblue);
    font-size:clamp(27px,5.6vw,52px);font-weight:900;letter-spacing:.02em;line-height:1.45;
    padding:12px 28px 16px;margin:20px 0 6px;transform:rotate(-1.2deg);
  }
  .hero h1 .l2{display:block;}
  .hero .arrowdown{
    position:relative;z-index:2;font-size:26px;font-weight:900;margin:12px 0 2px;color:var(--blue);
  }
  .hero .appname{
    position:relative;z-index:2;display:inline-block;
    background:var(--ink);color:var(--white);
    font-size:clamp(19px,3.4vw,28px);font-weight:900;letter-spacing:.06em;
    padding:8px 26px 11px;transform:rotate(1deg);
  }
  .hero .meta{
    position:relative;z-index:2;margin-top:26px;
    display:flex;gap:8px;flex-wrap:wrap;justify-content:center;
  }
  .hero .meta span{
    background:var(--white);border:2.5px solid var(--ink);
    font-size:12px;font-weight:900;padding:4px 14px;
  }

  /* ============ 共通 ============ */
  .section{max-width:920px;margin:0 auto;padding:76px 24px;position:relative;}
  .section-label{
    display:inline-block;font-size:12.5px;font-weight:900;letter-spacing:.3em;text-indent:.3em;
    color:var(--white);background:var(--ink);padding:5px 18px;margin-bottom:16px;
    transform:rotate(-1deg);
  }
  h2{
    display:inline-block;
    font-size:clamp(23px,4.4vw,36px);font-weight:900;letter-spacing:.02em;line-height:1.5;
    margin-bottom:18px;padding:4px 18px 7px;transform:rotate(-1.2deg);
    background:var(--band,var(--blue));color:var(--bandink,var(--onblue));
  }
  .lede{font-size:15px;font-weight:700;max-width:660px;margin-bottom:36px;}
  p{font-size:15px;}
  .sep{height:5px;background:var(--ink);max-width:920px;margin:0 auto;}

  /* ============ 01 こまりごと ============ */
  .before{
    background:var(--tint);padding:32px 30px;transform:rotate(-0.5deg);
  }
  .before>*{transform:rotate(0.5deg);}
  .before h3{font-size:18px;font-weight:900;margin-bottom:14px;}
  .before ol{list-style:none;counter-reset:s;}
  .before li{
    position:relative;padding:11px 0 11px 44px;font-size:14.5px;font-weight:500;
    border-bottom:2px solid rgba(20,20,20,.2);counter-increment:s;
  }
  .before li:last-child{border-bottom:none;}
  .before li::before{
    content:counter(s);position:absolute;left:0;top:9px;
    width:28px;height:28px;background:var(--ink);color:var(--white);
    font-size:13px;font-weight:900;display:flex;align-items:center;justify-content:center;
  }
  .before li b{font-weight:900;}
  .pain{
    margin-top:22px;background:var(--ink);color:var(--white);
    padding:18px 22px;font-size:15px;font-weight:700;line-height:1.9;
  }
  .pain em{font-style:normal;background:var(--tint);color:var(--ink);padding:1px 8px;font-weight:900;}

  /* ============ 02 構造図 ============ */
  .figwrap{
    border:4px solid var(--ink);background:var(--white);padding:24px 18px 18px;margin-bottom:26px;
  }
  .figwrap .figtitle{
    display:inline-block;background:var(--ink);color:var(--white);
    font-size:12px;font-weight:900;letter-spacing:.16em;padding:4px 14px;margin-bottom:14px;
  }
  .figscroll{overflow-x:auto;}
  .figscroll svg{display:block;min-width:640px;}
  /* 幅の狭い図（PC・スマホ共通で1枚だけ使う場合） */
  .figscroll.fig-narrow{overflow-x:visible;}
  .figscroll.fig-narrow svg{min-width:0;width:100%;max-width:430px;margin:0 auto;}
  .fig-v{display:none;}
  @media(max-width:768px){
    .fig-h{display:none;}
    .fig-v{display:block;overflow-x:visible;}
    .fig-v svg{min-width:0;width:100%;}
  }
  .figcap{font-size:13px;font-weight:700;margin-top:12px;line-height:1.85;}

  /* ============ 03 画面 ============ */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
  @media(max-width:720px){.steps{grid-template-columns:1fr;}}
  .step{padding:22px 20px;}
  .step:nth-child(1){background:var(--tint);transform:rotate(-0.8deg);}
  .step:nth-child(2){background:var(--blue);color:var(--onblue);transform:rotate(0.6deg);}
  .step:nth-child(2) .n{background:var(--white);color:var(--ink);}
  .step:nth-child(3){background:var(--white);border:4px solid var(--ink);transform:rotate(-0.5deg);}
  .step .n{
    display:inline-block;background:var(--ink);color:var(--white);
    font-size:12px;font-weight:900;letter-spacing:.14em;padding:3px 12px;margin-bottom:10px;
  }
  .step h4{font-size:17px;font-weight:900;margin-bottom:6px;line-height:1.6;}
  .step p{font-size:13.5px;font-weight:500;}
  .shots{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;}
  @media(max-width:760px){.shots{grid-template-columns:1fr;}}
  .shots figure{border:4px solid var(--ink);background:var(--white);}
  .shots img{display:block;width:100%;height:auto;}
  .shots a{display:block;position:relative;}
  .shots a::after{
    content:"⤢ 大きく見る";position:absolute;right:0;bottom:0;
    background:var(--ink);color:var(--white);font-size:11px;font-weight:900;padding:4px 10px;
    opacity:0;transition:opacity .2s ease;
  }
  .shots a:hover::after{opacity:1;}
  .shots figcaption{
    background:var(--ink);color:var(--white);font-size:12.5px;font-weight:700;
    padding:9px 13px;line-height:1.7;
  }
  .shots figcaption b{font-weight:900;background:var(--blue);color:var(--onblue);padding:1px 8px;margin-right:6px;}
  .demo-slot{
    margin-top:22px;border:4px solid var(--ink);padding:20px 22px;background:var(--tint);
  }
  .demo-slot b{display:block;font-size:15.5px;font-weight:900;margin-bottom:6px;}
  .demo-slot p{font-size:13.5px;font-weight:500;}

  /* ============ 04 つまずき ============ */
  .trouble-sec{background:var(--ink);color:var(--white);}
  .trouble-sec .section-label{background:var(--tint);color:var(--ink);}
  .trouble-sec h2{background:var(--blue);color:var(--onblue);}
  .trouble-sec .lede{color:#EDEBE6;}
  .trouble{
    background:var(--white);color:var(--ink);padding:30px 28px;margin-bottom:24px;
  }
  .trouble:nth-of-type(odd){transform:rotate(-0.4deg);}
  .trouble:nth-of-type(even){transform:rotate(0.4deg);}
  .trouble .tag{
    display:inline-block;background:var(--blue);color:var(--onblue);
    font-size:12px;font-weight:900;letter-spacing:.1em;padding:3px 13px;margin-bottom:12px;
  }
  .trouble h3{font-size:21px;font-weight:900;line-height:1.55;margin-bottom:12px;}
  .trouble p{font-size:14.5px;font-weight:500;margin-bottom:12px;}
  .trouble .why{
    background:var(--tint);padding:14px 18px;font-size:14px;font-weight:700;line-height:1.9;
    border-left:7px solid var(--blue);margin-bottom:14px;
  }
  .rule{
    background:var(--ink);color:var(--white);padding:16px 20px;
  }
  .rule .rl{
    display:inline-block;background:var(--tint);color:var(--ink);
    font-size:11.5px;font-weight:900;letter-spacing:.14em;padding:2px 10px;margin-bottom:8px;
  }
  .rule p{font-size:14.5px;font-weight:700;margin:0;line-height:1.9;}
  .rule p+p{margin-top:8px;}

  /* ============ 05 いま ============ */
  .stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:18px;margin-bottom:30px;}
  .stat{padding:26px 18px;text-align:center;}
  .stat:nth-child(1){background:var(--blue);transform:rotate(-1.2deg);}
  .stat:nth-child(1) .num,.stat:nth-child(1) .label{color:var(--onblue);}
  .stat:nth-child(2){background:var(--tint);transform:rotate(1deg);}
  .stat:nth-child(3){background:var(--ink);transform:rotate(-0.8deg);}
  .stat:nth-child(3) .num,.stat:nth-child(3) .label{color:var(--white);}
  .stat:nth-child(4){background:var(--white);border:4px solid var(--ink);transform:rotate(1.2deg);}
  .stat .num{font-size:44px;font-weight:900;line-height:1.2;letter-spacing:-.02em;}
  .stat .num small{font-size:19px;font-weight:900;}
  .stat .label{font-size:13.5px;font-weight:900;margin-top:4px;line-height:1.6;}
  .nowlist{list-style:none;}
  .nowlist li{
    font-size:15px;font-weight:500;padding:13px 0 13px 36px;position:relative;
    border-bottom:3px solid var(--ink);
  }
  .nowlist li::before{
    content:"→";position:absolute;left:0;top:13px;font-weight:900;color:var(--blue);font-size:17px;
  }
  .nowlist li b{font-weight:900;background:linear-gradient(transparent 58%,var(--tint) 58%);padding:0 3px;}

  /* ============ 06 つかっているもの ============ */
  .stack{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px;}
  .stack span{
    border:3px solid var(--ink);background:var(--white);
    font-size:13px;font-weight:900;padding:6px 16px;
  }
  .note{
    background:var(--tint);padding:22px 24px;font-size:14px;font-weight:500;line-height:1.95;
    transform:rotate(-0.4deg);
  }
  .note b{font-weight:900;}

  footer{
    background:var(--ink);color:var(--white);text-align:center;
    padding:40px 20px 46px;font-size:12.5px;font-weight:700;line-height:2;
  }
  footer .big{font-size:15px;font-weight:900;letter-spacing:.1em;margin-bottom:8px;}

  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1);}
  .reveal.on{opacity:1;transform:translateY(0);}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}
