/* 試作(/p/)の写しに足す、マニュアルのサイト共通のヘッダー・パンくず・フッターと、台本の帯の猫(配る ZIP には入らない)。
   「戻る」と「感想を送る」は試作の外の帯(触ってみるページ /t/<ID>/ の viewer.css)。
   中身(class 名)はサイトのページと同じ。試作の CSS に左右されないよう .pb-frame の中を all:revert で戻してから形を付ける。
   形は site.css のヘッダー・フッターと同じ値にそろえる(片方を直したらもう片方も)。2026-10-15 kote2「各ページヘッダーフッターも統一」 */
/* アイコン(svg)の中は戻さない: Chrome では path の形(d)も CSS 扱いで、all:revert をかけると形が消える */
.pb-frame, .pb-frame *:not(svg, svg *) { all: revert; box-sizing: border-box; }
.pb-frame { display: block; font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif; line-height: 1.6; color: #2f3a1c; text-align: left; }
.pb-frame [hidden] { display: none !important; }

/* ヘッダー + パンくず: 下の .page とつないで 1 枚のクリーム色の面に見せる */
#pb-head { background: #f0efe2; margin: 18px 18px 0; padding: 32px 56px 0; }
#pb-head .site-head { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; padding-bottom: 18px; border-bottom: 1px solid #d9dcc3; margin: 0; }
#pb-head .brand { text-decoration: none; display: flex; flex-wrap: wrap; align-items: center; column-gap: 12px; row-gap: 2px; }
#pb-head .brand .name { font-family: "Avenir Next", "Hiragino Sans", "Segoe UI", sans-serif; font-size: 38px; font-weight: 700; letter-spacing: -0.005em; line-height: 1.15; color: #2f3a1c; }
#pb-head .brand .pw { display: inline-flex; align-items: center; gap: 7px; font-family: "Avenir Next", "Hiragino Sans", "Segoe UI", sans-serif; font-size: 12px; font-weight: 700; color: #71804b; letter-spacing: 0.02em; }
#pb-head .brand .mark { width: 24px; height: 24px; display: block; }
#pb-head .brand .tag { flex-basis: 100%; color: #5a6242; font-size: 14px; letter-spacing: 0.16em; margin-top: 2px; }
#pb-head .site-head nav { display: flex; gap: 6px; margin-left: auto; }
#pb-head .site-head nav a { text-decoration: none; font-size: 13px; font-weight: 700; padding: 6px 12px; border-radius: 8px; color: #5a6242; }
#pb-head .site-head nav a.lang { border: 1px solid #d9dcc3; background: #fff; display: inline-flex; align-items: center; gap: 7px; }
#pb-head .site-head nav a.lang .flag { height: 13px; width: auto; display: block; border-radius: 2px; box-shadow: 0 0 0 1px rgba(47, 58, 28, 0.22); }
#pb-head .crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; margin: 0; padding: 14px 0 0; font-size: 13px; color: #5a6242; }
#pb-head .crumb a { color: #71804b; font-weight: 700; text-decoration: none; }
#pb-head .crumb a:hover { text-decoration: underline; }
#pb-head .crumb .sep { color: #9aa07f; }
#pb-head ~ .page { margin-top: 0; margin-bottom: 0; }

/* マニュアル(試し方と説明動画): 面は幅いっぱい、記事は今の幅(本文 868px)で真ん中に寄せる */
#pb-head.pb-doc ~ .page { max-width: none; margin: 0 18px; min-height: 0; padding-top: 28px; padding-left: max(56px, calc((100% - 904px) / 2)); padding-right: max(56px, calc((100% - 904px) / 2)); }

/* フッター(緑の帯。body の緑の上に置く) */
#pb-foot { color: #fff; text-align: center; padding: 22px 24px 20px; }
#pb-foot .foot { display: block; }
#pb-foot .foot-row { display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; }
#pb-foot .foot-brand { font-size: 13px; font-weight: 600; letter-spacing: 0.08em; color: #fff; }
#pb-foot .foot-social { display: flex; align-items: center; gap: 14px; }
#pb-foot .foot-social a { color: #fff; opacity: 0.82; display: inline-flex; align-items: center; }
#pb-foot .foot-social a:hover { opacity: 1; }
#pb-foot .foot-social svg { height: 17px; width: auto; display: block; }
#pb-foot .foot-meta { margin-top: 8px; color: #dce1c8; font-size: 11px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
#pb-foot .foot-meta a { color: #dce1c8; }

@media (max-width: 720px) {
  #pb-head { margin: 10px 10px 0; padding: 20px 18px 0; }
  #pb-head .brand { column-gap: 8px; }
  #pb-head .brand .name { font-size: 25px; }
  #pb-head .brand .pw { font-size: 11px; gap: 5px; }
  #pb-head .brand .mark { width: 17px; height: 17px; }
  #pb-head .brand .tag { font-size: 12px; letter-spacing: 0.1em; }
  #pb-head .site-head { gap: 12px; }
  #pb-head .site-head nav { margin-left: 0; }
  #pb-head ~ .page { margin-left: 10px; margin-right: 10px; }
  #pb-head.pb-doc ~ .page { margin: 0 10px; padding-left: 20px; padding-right: 20px; }
}

/* 台本の帯の左に、説明映像のひまわり猫を立たせる(サイトの写しだけ。猫の絵は kote2 の作品で、画像だけの再配布はできないので
   配る ZIP には入れない: explainer-video/character/TERMS.md)。ポーズは guide.js が帯の data-pose で切り替える
   (smile = 待っている / point = 流している / cheer = 最後まで流れた)。2026-10-17 kote2「下部のナビはどうせなら猫を登場させてもいいかも」 */
.gd-demo { padding-left: 100px; }
.gd-demo .gd-cat { display: block; position: absolute; left: 6px; bottom: -2px; width: 86px; height: 128px; background: url(/assets/cat-smile.webp) left bottom / contain no-repeat; pointer-events: none; }
.gd-demo[data-pose="point"] .gd-cat { background-image: url(/assets/cat-point.webp); }
.gd-demo[data-pose="cheer"] .gd-cat { background-image: url(/assets/cat-cheer.webp); animation: pb-cat-hop .5s ease-out 2; }
@keyframes pb-cat-hop { 50% { transform: translateY(-10px); } }
@media (max-width: 820px) {
  .gd-demo { padding-left: 76px; }
  .gd-demo .gd-cat { left: 4px; width: 66px; height: 98px; }
}
@media (prefers-reduced-motion: reduce) { .gd-demo .gd-cat { animation: none !important; } }
