/* =========================================================
   css/board-kingan.css
   金願叶い奉納殿 完全置き換え修正版 v53
   - わくわくモード：本日の福守を右下白枠内へ、猫の手が通帳内で押す
   - シンプルモード：白＋上品ゴールド、立体ボタン、読みやすい通帳
========================================================= */

body.page-kingan main,
.page-kingan main{
  min-height:100vh;
  padding-bottom:calc(140px + env(safe-area-inset-bottom));
}

.kg-page{
  width:min(100%, 1040px);
  margin:0 auto;
  padding:16px 12px calc(120px + env(safe-area-inset-bottom));
  color:#3a2410;
}

/* 上部 */
.kg-hero{
  width:min(100%, 920px);
  margin:0 auto 16px;
  padding:20px 18px 18px;
  text-align:center;
  border-radius:24px;
  border:1px solid rgba(188,145,54,.42);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,245,205,.92), rgba(255,255,255,.74) 45%, rgba(255,247,222,.62) 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.90),
    0 10px 24px rgba(72,45,13,.12);
}

.kg-kicker{
  display:inline-block;
  margin:0 0 8px;
  padding:5px 13px;
  border-radius:999px;
  border:1px solid rgba(188,145,54,.48);
  background:#fff8df;
  color:#6b491c;
  font-weight:900;
  font-size:clamp(13px, 3.2vw, 15px);
  letter-spacing:.05em;
}

.kg-hero h1{
  margin:0 0 10px;
  font-family:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho",serif;
  font-size:clamp(32px, 7vw, 56px);
  line-height:1.18;
  font-weight:900;
  letter-spacing:.06em;
  color:#4a2b08;
  text-shadow:
    0 2px 0 rgba(255,255,255,.78),
    0 6px 16px rgba(117,72,9,.16);
}

.kg-lead{
  margin:0;
  color:#5d3e17;
  font-size:clamp(15px, 3.8vw, 18px);
  line-height:1.8;
  font-weight:800;
}

/* 集計 */
.kg-stats{
  width:min(100%, 920px);
  margin:0 auto 16px;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}

.kg-stats article{
  min-height:98px;
  padding:12px 10px;
  border-radius:18px;
  border:1px solid rgba(188,145,54,.40);
  background:
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,246,219,.92));
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.94),
    0 7px 16px rgba(72,45,13,.10);
  text-align:center;
}

.kg-stats span,
.kg-stats small{
  display:block;
  color:#684815;
  font-size:clamp(13px, 3.2vw, 15px);
  font-weight:900;
  line-height:1.35;
}

.kg-stats strong{
  display:block;
  margin:3px 0;
  color:#2e1a08;
  font-size:clamp(25px, 5vw, 36px);
  line-height:1.12;
  font-weight:900;
}

.kg-guardian-title{
  font-size:clamp(18px, 4.2vw, 25px) !important;
}

/* フォーム */
.kg-form-card{
  width:min(100%, 920px);
  margin:0 auto 20px;
  padding:18px 16px 20px;
  border-radius:24px;
  border:1px solid rgba(188,145,54,.44);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,245,205,.92), transparent 42%),
    rgba(255,253,246,.94);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.92),
    0 10px 24px rgba(72,45,13,.12);
}

.kg-form-card h2,
.kg-passbook-head h2,
.kg-rankings h2{
  margin:0 0 12px;
  font-family:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho",serif;
  color:#3c2409;
  font-size:clamp(25px, 5.5vw, 38px);
  line-height:1.25;
  font-weight:900;
  letter-spacing:.05em;
}

.kg-alert,
.kg-success{
  margin:10px 0 14px;
  padding:12px 14px;
  border-radius:16px;
  font-weight:900;
  line-height:1.65;
}

.kg-alert{
  color:#6d1f1f;
  border:1px solid rgba(176,75,75,.35);
  background:#fff0f0;
}

.kg-success{
  color:#4b330c;
  border:1px solid rgba(188,145,54,.42);
  background:#fff7d4;
}

.kg-success-main{
  font-size:clamp(16px, 3.8vw, 18px);
}

.kg-success-sub{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-top:8px;
}

.kg-form{
  display:grid;
  gap:14px;
  justify-items:stretch;
}

.kg-form label{
  display:grid;
  gap:6px;
  font-weight:900;
  color:#42270c;
}

.kg-form label > span{
  font-size:clamp(15px, 3.4vw, 17px);
}

.kg-two{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.kg-form input,
.kg-form select{
  width:100%;
  min-height:52px;
  padding:11px 12px;
  border-radius:14px;
  border:2px solid rgba(176,139,58,.36);
  background:#fffefa;
  color:#2b180c;
  font-size:16px;
  font-weight:800;
  line-height:1.35;
  box-shadow:inset 0 2px 5px rgba(58,36,10,.06);
}

.kg-form input:focus,
.kg-form select:focus{
  outline:3px solid rgba(205,163,67,.28);
  border-color:#b98a2b;
}

/* 奉納ボタン：中央・立体・ゆっくり深く沈む */
.kg-submit{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  justify-self:center !important;
  align-self:center !important;
  width:min(92%, 390px) !important;
  min-height:64px !important;
  margin:18px auto 0 !important;
  padding:0 26px;
  border:1px solid #c79a2d;
  border-radius:999px;
  color:#2b1d07;
  text-align:center;
  font-weight:900;
  font-size:clamp(22px, 2.4vw, 30px);
  letter-spacing:.06em;
  background:
    radial-gradient(circle at 50% 12%, rgba(255,255,255,.96), rgba(255,255,255,0) 38%),
    linear-gradient(180deg, #fff9dc 0%, #efcb61 52%, #c68d17 100%);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.92),
    inset 0 -7px 0 rgba(120,77,10,.18),
    0 8px 0 #996812,
    0 15px 24px rgba(84,53,8,.16);
  cursor:pointer;
  transition:
    transform .72s cubic-bezier(.18,.78,.18,1),
    box-shadow .72s cubic-bezier(.18,.78,.18,1),
    filter .24s ease;
}

.kg-submit:active,
.kg-submit.is-offering{
  transform:translateY(15px) scale(.96) !important;
  box-shadow:
    inset 0 8px 16px rgba(88,57,8,.22),
    0 1px 0 #996812,
    0 5px 10px rgba(84,53,8,.10) !important;
}

.kg-note{
  margin:0;
  color:#65481b;
  font-size:clamp(13px, 3.2vw, 15px);
  line-height:1.7;
  font-weight:800;
  text-align:center;
}

/* 通帳 */
.kg-passbook{
  width:min(100%, 980px);
  margin:0 auto 22px;
}

.kg-passbook-head{
  width:min(100%, 900px);
  margin:0 auto 12px;
  text-align:center;
}

.kg-passbook-head p{
  margin:0;
  color:#604117;
  font-weight:800;
  line-height:1.65;
}

.kg-svg-wrap{
  position:relative !important;
  width:min(96vw, 760px);
  margin:0 auto;
  border-radius:16px;
  background:#fff8df;
  box-shadow:
    0 14px 30px rgba(72,45,13,.18),
    0 0 0 1px rgba(188,145,54,.34);
  overflow:hidden !important;
}

.kg-passbook-svg{
  display:block;
  width:100%;
  height:auto;
  border-radius:14px;
}

/* SVG文字 */
.kg-svg-date,
.kg-svg-name,
.kg-svg-pref,
.kg-svg-wish,
.kg-svg-empty{
  font-family:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho",serif;
  font-weight:900;
  paint-order:stroke;
  stroke:#fff8e5;
  stroke-width:4px;
  stroke-linejoin:round;
}

.kg-svg-date{ font-size:23px; fill:#3f2b14; }
.kg-svg-name{ font-size:28px; fill:#3f2b14; }
.kg-svg-pref{ font-size:27px; fill:#3f2b14; }
.kg-svg-empty{ font-size:34px; fill:#7b551a; }

.kg-svg-wish{
  font-size:24px;
  stroke-width:3px;
  dominant-baseline:middle !important;
  alignment-baseline:middle !important;
}

/* わくわくモード：本日の福守を右下白枠の下寄り中央へ */
.kg-stamp-area{
  position:absolute !important;
  left:79.7% !important;
  top:91.2% !important;
  width:min(14.2%, 112px) !important;
  aspect-ratio:1/1 !important;
  display:grid !important;
  place-items:center !important;
  opacity:0 !important;
  pointer-events:none !important;
  z-index:90 !important;
  transform:translate(-50%, -50%) scale(.98) rotate(-2deg) !important;
}

.kg-page.is-posted .kg-stamp-area,
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  opacity:1 !important;
}

.kg-page.is-posted .kg-stamp-area{
  transform:translate(-50%, -50%) scale(1) rotate(-2deg) !important;
}

.kg-fuku-img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center bottom !important;
  display:block !important;
  filter:
    drop-shadow(0 3px 0 rgba(103,56,10,.16))
    drop-shadow(0 9px 14px rgba(96,52,8,.20));
}

.kg-stamp-ink-burst{
  position:absolute;
  inset:7%;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,228,108,.52), rgba(255,199,34,.18) 44%, transparent 72%);
  opacity:0;
  transform:scale(.70);
}

.kg-svg-wrap.is-stamping-now .kg-stamp-ink-burst{
  animation:kgInkBurst .58s ease-out .90s forwards;
}

/* 猫の手：通帳の中で、右下の福守枠に向かって押す */
.kg-hanko-realpress{
  position:absolute !important;
  left:73.8% !important;
  top:77.0% !important;
  width:min(23.2%, 170px) !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  z-index:96 !important;
  pointer-events:none !important;
  transform:translate(-50%, -50%) rotate(-18deg) scale(1.02) !important;
  transform-origin:72% 86% !important;
  filter:drop-shadow(0 14px 20px rgba(70,43,7,.26)) !important;
}

.kg-svg-wrap.is-stamping-now .kg-hanko-realpress{
  animation:kgCatPawStampInFrame 1.85s cubic-bezier(.18,.78,.22,1) forwards !important;
}

.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  animation:kgFukuAppearInFrame .22s ease-out .92s both !important;
}

@keyframes kgCatPawStampInFrame{
  0%{
    opacity:0;
    left:73.8%;
    top:77.0%;
    transform:translate(-50%, -50%) rotate(-20deg) scale(1.02);
  }
  10%{ opacity:1; }
  45%{
    opacity:1;
    left:76.2%;
    top:84.4%;
    transform:translate(-50%, -50%) rotate(-9deg) scale(1.01);
  }
  63%{
    opacity:1;
    left:78.2%;
    top:89.8%;
    transform:translate(-50%, -50%) rotate(-2deg) scale(.86);
  }
  76%{
    opacity:1;
    left:78.2%;
    top:89.1%;
    transform:translate(-50%, -50%) rotate(0deg) scale(.92);
  }
  100%{
    opacity:0;
    left:76.8%;
    top:81.8%;
    transform:translate(-50%, -50%) rotate(7deg) scale(.98);
  }
}

@keyframes kgFukuAppearInFrame{
  0%{
    opacity:0;
    transform:translate(-50%, -50%) scale(.78) rotate(-2deg);
  }
  65%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1.08) rotate(-2deg);
  }
  100%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1) rotate(-2deg);
  }
}

@keyframes kgInkBurst{
  0%{ opacity:0; transform:scale(.55); }
  28%{ opacity:.95; transform:scale(1.15); }
  100%{ opacity:0; transform:scale(1.75); }
}

/* ランキング */
.kg-rankings{
  width:min(100%, 920px);
  margin:0 auto;
  padding:16px;
  border-radius:24px;
  border:1px solid rgba(188,145,54,.36);
  background:rgba(255,253,246,.90);
  box-shadow:0 10px 24px rgba(72,45,13,.10);
}

.kg-ranking-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.kg-ranking-grid article{
  padding:14px;
  border-radius:18px;
  border:1px solid rgba(188,145,54,.32);
  background:#fffdf8;
}

.kg-ranking-grid h3{
  margin:0 0 8px;
  color:#3c2409;
  font-size:clamp(17px, 3.5vw, 21px);
  font-weight:900;
}

.kg-ranking-grid ol{
  margin:0;
  padding-left:1.3em;
  display:grid;
  gap:6px;
}

.kg-ranking-grid li{
  font-weight:900;
  line-height:1.55;
}

.kg-ranking-grid li span{ margin-right:8px; }
.kg-ranking-grid li b{ color:#8b611e; }

/* 願意カラー */
.wish-color-inline{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:7.2em;
  padding:3px 10px;
  border-radius:999px;
  border:2px solid #9b7426;
  background:#fff3bf;
  color:#6b491c;
  font-weight:900;
  line-height:1.25;
  text-align:center;
  white-space:nowrap;
}

.wish-saving{ border-color:#9b7426; background:#fff3bf; color:#75520f; }
.wish-business{ border-color:#c8651d; background:#fff0d9; color:#9b4817; }
.wish-debt{ border-color:#9f2334; background:#ffe1e6; color:#8e1e2f; }
.wish-bonus{ border-color:#d69d14; background:#fff0ba; color:#9a6b05; }
.wish-income{ border-color:#7d7765; background:#f4f2ea; color:#5f594b; }
.wish-bloom{ border-color:#c46b87; background:#ffe8ef; color:#9c4864; }
.wish-fortune{ border-color:#8c6d2f; background:#f8edd1; color:#70531f; }
.wish-gamble{ border-color:#7d4dc0; background:#eee3ff; color:#6236a1; }
.wish-lottery{ border-color:#1c8a76; background:#ddfbf5; color:#137363; }
.wish-career{ border-color:#255fb6; background:#e0ecff; color:#1d4f9b; }

/* 金粉 */
.kg-gold-dust{
  position:fixed;
  inset:0;
  z-index:2147483200;
  pointer-events:none;
  overflow:hidden;
}

.kg-gold-dust i{
  position:absolute;
  left:var(--x);
  top:-8vh;
  width:var(--s);
  height:var(--s);
  border-radius:50%;
  background:
    radial-gradient(circle at 35% 25%, #fff9bf, #ffd744 42%, #bb7f09 76%, rgba(187,127,9,0) 78%);
  opacity:0;
  filter:drop-shadow(0 0 8px rgba(255,218,80,.55));
  animation:kgGoldFall var(--dur) ease-in forwards;
  animation-delay:var(--delay);
}

@keyframes kgGoldFall{
  0%{ opacity:0; transform:translate3d(0,-10vh,0) scale(.4); }
  12%{ opacity:1; }
  100%{ opacity:0; transform:translate3d(var(--drift),110vh,0) scale(1.05); }
}

/* スロット */
.kg-slot-overlay{
  position:fixed;
  inset:0;
  z-index:2147483100;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(33,22,8,.45);
  backdrop-filter:blur(2px);
}

.kg-slot-machine{
  width:min(92vw, 520px);
  padding:20px 16px;
  border-radius:24px;
  border:2px solid rgba(255,226,122,.88);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,250,205,.98), rgba(255,241,174,.95) 44%, rgba(143,84,20,.96) 100%);
  box-shadow:
    inset 0 3px 0 rgba(255,255,255,.82),
    0 18px 40px rgba(31,18,4,.34);
  text-align:center;
}

.kg-slot-title{
  margin:0 0 12px;
  color:#3b2108;
  font-size:clamp(24px, 7vw, 38px);
  font-weight:900;
  letter-spacing:.08em;
  text-shadow:0 2px 0 rgba(255,255,255,.6);
}

.kg-slot-reels{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:8px;
}

.kg-slot-reel{
  min-height:74px;
  display:grid;
  place-items:center;
  border-radius:16px;
  border:2px solid rgba(115,65,10,.38);
  background:linear-gradient(180deg, #fffef7, #ffe6a3);
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.8),
    inset 0 -5px 0 rgba(174,105,16,.18);
  overflow:hidden;
}

.kg-slot-reel span{
  display:block;
  color:#6b3e07;
  font-size:clamp(30px, 8vw, 46px);
  font-weight:900;
  animation:kgSlotSpin .42s linear infinite;
}

.kg-slot-overlay.is-finish .kg-slot-reel span{
  animation:none;
}

.kg-slot-message{
  margin:12px 0 0;
  color:#4c2a08;
  font-size:clamp(14px, 3.8vw, 18px);
  font-weight:900;
}

@keyframes kgSlotSpin{
  0%{ transform:translateY(-18px); opacity:.35; }
  50%{ transform:translateY(0); opacity:1; }
  100%{ transform:translateY(18px); opacity:.35; }
}

/* シンプルモード：白＋上品ゴールド */
.kg-simple-passbook{
  display:none;
}

html.mode-simple .kg-page{
  width:min(100%, 920px);
  padding:18px 14px calc(110px + env(safe-area-inset-bottom));
  color:#222;
  font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html.mode-simple .kg-hero,
html.mode-simple .kg-form-card,
html.mode-simple .kg-rankings,
html.mode-simple .kg-stats article{
  background:#fff !important;
  border:1px solid #dfc989 !important;
  border-radius:12px !important;
  box-shadow:0 6px 16px rgba(94,70,18,.08) !important;
}

html.mode-simple .kg-kicker,
html.mode-simple .kg-hero h1,
html.mode-simple .kg-form-card h2,
html.mode-simple .kg-passbook-head h2,
html.mode-simple .kg-rankings h2{
  font-family:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho",serif !important;
  color:#2e2109 !important;
  text-shadow:none !important;
}

html.mode-simple .kg-kicker{
  background:#fffef8 !important;
  border:1px solid #d6bb73 !important;
}

html.mode-simple .kg-stats{
  grid-template-columns:1fr;
}

html.mode-simple .kg-svg-wrap{
  display:none !important;
}

html.mode-simple .kg-simple-passbook{
  display:block !important;
  width:min(100%, 940px) !important;
  margin:18px auto 0 !important;
  padding:22px 16px 24px !important;
  border-radius:18px !important;
  border:2px solid #d4b25d !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.98), rgba(255,255,255,0) 36%),
    linear-gradient(180deg, #fffefb 0%, #fff7dc 48%, #ecd38a 100%) !important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.98),
    inset 0 0 0 3px rgba(255,248,217,.72),
    0 10px 24px rgba(84,59,15,.10) !important;
}

html.mode-simple .kg-simple-passbook h3{
  color:#2e2109 !important;
  font-size:clamp(28px, 4vw, 40px) !important;
  font-weight:900 !important;
  text-align:center !important;
  letter-spacing:.08em !important;
  margin:0 0 16px !important;
  padding-bottom:12px !important;
  border-bottom:3px double #cfa74b !important;
  font-family:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho",serif !important;
}

html.mode-simple .kg-simple-passbook table{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  border:1px solid #d6bb73 !important;
  border-radius:14px !important;
  overflow:hidden !important;
  background:#fffef9 !important;
  box-shadow:0 6px 16px rgba(90,65,18,.08) !important;
}

html.mode-simple .kg-simple-passbook thead th{
  background:
    linear-gradient(180deg, #fffef6 0%, #edd79b 54%, #c79d45 100%) !important;
  color:#4a3310 !important;
  font-size:24px !important;
  font-weight:900 !important;
  text-align:center !important;
  padding:14px 10px !important;
  border-bottom:1px solid #cfae61 !important;
}

html.mode-simple .kg-simple-passbook tbody td{
  background:#fffef8 !important;
  color:#2f230f !important;
  font-size:22px !important;
  font-weight:700 !important;
  text-align:center !important;
  padding:16px 10px !important;
  border-bottom:1px solid #eadcb0 !important;
}

html.mode-simple .kg-simple-passbook tbody tr:nth-child(even) td{
  background:#fcf5df !important;
}

html.mode-simple .kg-simple-passbook .wish-color-inline{
  min-width:7.2em !important;
  padding:5px 10px !important;
  border-width:2px !important;
  border-radius:999px !important;
  font-size:clamp(14px, 3.2vw, 17px) !important;
  font-weight:900 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.86), 0 2px 6px rgba(40,24,5,.10) !important;
}

/* シンプルモードでもボタンは立体・沈む */
html.mode-simple .kg-submit{
  background:
    radial-gradient(circle at 50% 12%, rgba(255,255,255,.96), rgba(255,255,255,0) 38%),
    linear-gradient(180deg, #fff9dc 0%, #efcb61 52%, #c68d17 100%) !important;
  color:#2b1d07 !important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.92),
    inset 0 -7px 0 rgba(120,77,10,.18),
    0 8px 0 #996812,
    0 15px 24px rgba(84,53,8,.16) !important;
}

html.mode-simple .kg-submit:active,
html.mode-simple .kg-submit.is-offering{
  transform:translateY(15px) scale(.96) !important;
  box-shadow:
    inset 0 8px 16px rgba(88,57,8,.22),
    0 1px 0 #996812,
    0 5px 10px rgba(84,53,8,.10) !important;
}

/* レスポンシブ */
@media(max-width:760px){
  .kg-page{
    padding-inline:8px;
  }

  .kg-stats,
  .kg-two,
  .kg-ranking-grid{
    grid-template-columns:1fr;
  }

  .kg-hero,
  .kg-form-card,
  .kg-rankings{
    border-radius:18px;
  }

  .kg-svg-wrap{
    width:min(100vw - 12px, 520px);
  }

  .kg-svg-date{ font-size:25px; }
  .kg-svg-name{ font-size:29px; }
  .kg-svg-pref{ font-size:29px; }
  .kg-svg-wish{ font-size:24px; }

  .kg-stamp-area{
    left:79.7% !important;
    top:91.0% !important;
    width:min(15.2%, 88px) !important;
  }

  .kg-hanko-realpress{
    left:72.8% !important;
    top:77.4% !important;
    width:min(24.5%, 118px) !important;
  }

  html.mode-simple .kg-simple-passbook thead th{
    font-size:19px !important;
  }

  html.mode-simple .kg-simple-passbook tbody td{
    font-size:18px !important;
  }
}

@media(max-width:390px){
  .kg-page{
    padding-inline:5px;
  }

  .kg-hero,
  .kg-form-card,
  .kg-rankings{
    padding:14px 11px;
  }

  .kg-svg-wrap{
    width:calc(100vw - 8px);
  }

  .kg-svg-date{ font-size:26px; }
  .kg-svg-name{ font-size:30px; }
  .kg-svg-wish{ font-size:23px; }
  .kg-svg-pref{ font-size:30px; }

  .kg-slot-reels{
    gap:5px;
  }

  .kg-slot-reel{
    min-height:62px;
    border-radius:12px;
  }

  html.mode-simple .kg-simple-passbook{
    padding:13px 8px 15px !important;
  }

  html.mode-simple .kg-simple-passbook thead th,
  html.mode-simple .kg-simple-passbook tbody td{
    padding:9px 6px !important;
    font-size:16px !important;
  }

  html.mode-simple .kg-simple-passbook .wish-color-inline{
    min-width:6.4em !important;
    padding:4px 7px !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .kg-slot-reel span,
  .kg-gold-dust i,
  .kg-svg-wrap.is-stamping-now .kg-hanko-realpress,
  .kg-svg-wrap.is-stamping-now .kg-stamp-ink-burst,
  .kg-svg-wrap.is-stamping-now .kg-stamp-area{
    animation:none !important;
  }
}
/* =========================================================
   v43 完全置き換え最終指定
   - 猫の手は複製画像 .kg-hanko-clone-v43 で必ず表示
   - 福守スタンプは枠ギリギリ大きく、位置とサイズを固定
   - 全ボタンは立体＋ゆっくり深く沈む
========================================================= */

/* 通帳内演出を外に逃がさない。猫手は通帳内で見せる */
.kg-svg-wrap{
  position:relative !important;
  overflow:visible !important;
}

/* 福守スタンプの置き場：白枠内の下寄り中央。比率固定でバラつきを減らす */
.kg-stamp-area{
  position:absolute !important;
  left:79.55% !important;
  top:88.55% !important;
  width:23.2% !important;
  height:14.8% !important;
  max-width:none !important;
  min-width:0 !important;
  aspect-ratio:auto !important;
  display:grid !important;
  place-items:center !important;
  opacity:0 !important;
  pointer-events:none !important;
  z-index:90 !important;
  transform:translate(-50%, -50%) scale(1) rotate(-2deg) !important;
  transform-origin:center center !important;
}

/* 投稿後・演出中は必ず表示 */
.kg-page.is-posted .kg-stamp-area,
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  opacity:1 !important;
}

/* 福守画像：枠ギリギリまで大きく。ただし必ず収まる */
.kg-fuku-img{
  position:absolute !important;
  left:50% !important;
  top:51% !important;
  width:92% !important;
  height:92% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  transform:translate(-50%, -50%) scale(1.10) !important;
  filter:
    drop-shadow(0 2px 0 rgba(104,58,11,.12))
    drop-shadow(0 8px 12px rgba(90,48,10,.18)) !important;
}

/* 押された光 */
.kg-stamp-ink-burst{
  position:absolute !important;
  inset:7% !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(255,228,122,.50), rgba(255,199,39,.18) 46%, transparent 74%) !important;
  opacity:0 !important;
  transform:scale(.74) !important;
}

.kg-svg-wrap.is-stamping-now .kg-stamp-ink-burst{
  animation:kgInkBurstV43 .46s ease-out .78s forwards !important;
}

/* 元のhankoも保険で出す */
.kg-hanko-realpress{
  position:absolute !important;
  left:82.0% !important;
  top:78.6% !important;
  width:24.5% !important;
  max-width:178px !important;
  min-width:118px !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  z-index:98 !important;
  pointer-events:none !important;
  transform:translate(-50%, -50%) rotate(-12deg) scale(1.04) !important;
  transform-origin:78% 86% !important;
  filter:drop-shadow(0 10px 18px rgba(71,44,8,.24)) !important;
}

.kg-svg-wrap.is-stamping-now .kg-hanko-realpress{
  animation:kgCatPawPressV43 2.35s cubic-bezier(.18,.82,.24,1) both !important;
}

/* JSで複製して出す本命の猫の手 */
.kg-hanko-clone-v43{
  position:absolute !important;
  left:84.5% !important;
  top:76.5% !important;
  width:25.5% !important;
  max-width:188px !important;
  min-width:126px !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  z-index:120 !important;
  pointer-events:none !important;
  transform:translate(-50%, -50%) rotate(-16deg) scale(1.08) !important;
  transform-origin:78% 86% !important;
  filter:drop-shadow(0 12px 20px rgba(71,44,8,.28)) !important;
}

.kg-hanko-clone-v43.is-pressing{
  animation:kgCatPawPressV43 2.35s cubic-bezier(.18,.82,.24,1) both !important;
}

/* スタンプは押される瞬間に出る */
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  animation:kgStampShowV43 .30s ease-out .82s both !important;
}

@keyframes kgStampShowV43{
  0%{
    opacity:0;
    transform:translate(-50%, -50%) scale(.86) rotate(-2deg);
  }
  100%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1) rotate(-2deg);
  }
}

/* 猫の手：右上からではなく、福守枠のすぐ近くから下りて押す */
@keyframes kgCatPawPressV43{
  0%{
    opacity:0;
    left:84.8%;
    top:76.4%;
    transform:translate(-50%, -50%) rotate(-18deg) scale(1.10);
  }
  10%{
    opacity:1;
  }
  38%{
    opacity:1;
    left:83.3%;
    top:82.4%;
    transform:translate(-50%, -50%) rotate(-12deg) scale(1.06);
  }
  58%{
    opacity:1;
    left:81.4%;
    top:87.3%;
    transform:translate(-50%, -50%) rotate(-5deg) scale(.92);
  }
  72%{
    opacity:1;
    left:80.8%;
    top:89.0%;
    transform:translate(-50%, -50%) rotate(-2deg) scale(.84);
  }
  84%{
    opacity:1;
    left:81.1%;
    top:88.1%;
    transform:translate(-50%, -50%) rotate(-3deg) scale(.91);
  }
  100%{
    opacity:0;
    left:83.0%;
    top:80.0%;
    transform:translate(-50%, -50%) rotate(-9deg) scale(.98);
  }
}

@keyframes kgInkBurstV43{
  0%{ opacity:0; transform:scale(.74); }
  35%{ opacity:.88; transform:scale(1); }
  100%{ opacity:0; transform:scale(1.24); }
}

/* 全ボタン：立体＋ゆっくり沈む */
button,
input[type="submit"],
input[type="button"],
.btn,
.nav-link,
.dropdown-item,
.btn-edo,
.mh-feature-link,
.mh-primary-cta,
.pm20-card,
.pm15-card,
.kg-submit{
  transition:
    transform .78s cubic-bezier(.18,.78,.18,1),
    box-shadow .78s cubic-bezier(.18,.78,.18,1),
    filter .24s ease !important;
}

button:active,
input[type="submit"]:active,
input[type="button"]:active,
.btn:active,
.nav-link:active,
.dropdown-item:active,
.btn-edo:active,
.mh-feature-link:active,
.mh-primary-cta:active,
.pm20-card:active,
.pm15-card:active,
.kg-submit:active,
.kg-submit.is-offering{
  transform:translateY(13px) scale(.965) !important;
  filter:brightness(.98) !important;
}

/* 奉納ボタンは特に深く沈む */
.kg-submit{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:min(92%, 390px) !important;
  margin:18px auto 0 !important;
  min-height:66px !important;
  padding:0 24px !important;
  border:1px solid #c9961a !important;
  border-radius:999px !important;
  background:
    radial-gradient(circle at 50% 10%, rgba(255,255,255,.98), rgba(255,255,255,0) 38%),
    linear-gradient(180deg, #fff6d2 0%, #f3c64f 48%, #be7f0a 100%) !important;
  color:#2b1c06 !important;
  font-size:clamp(22px, 2.4vw, 30px) !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.92),
    inset 0 -8px 0 rgba(124,78,9,.18),
    0 8px 0 #97630f,
    0 16px 24px rgba(84,53,8,.18) !important;
}

.kg-submit:active,
.kg-submit.is-offering{
  transform:translateY(15px) scale(.965) !important;
  box-shadow:
    inset 0 9px 14px rgba(88,57,8,.22),
    0 1px 0 #97630f,
    0 5px 10px rgba(84,53,8,.10) !important;
}

/* シンプルモード：白＋上品なゴールド */
html.mode-simple .kg-simple-passbook{
  display:block !important;
  width:min(100%, 940px) !important;
  margin:18px auto 0 !important;
  padding:22px 16px 24px !important;
  border-radius:18px !important;
  border:2px solid #d6bb74 !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.98), rgba(255,255,255,0) 34%),
    linear-gradient(180deg, #ffffff 0%, #fffcf1 42%, #f4e4b5 100%) !important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.98),
    inset 0 0 0 3px rgba(255,247,218,.72),
    0 10px 24px rgba(84,59,15,.10) !important;
}

html.mode-simple .kg-simple-passbook h3{
  color:#37260b !important;
  font-size:clamp(28px, 4vw, 40px) !important;
  font-weight:900 !important;
  text-align:center !important;
  letter-spacing:.08em !important;
  margin:0 0 16px !important;
  padding-bottom:12px !important;
  border-bottom:3px double #cfa74b !important;
  font-family:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho",serif !important;
}

html.mode-simple .kg-simple-passbook table{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  border:1px solid #d8c385 !important;
  border-radius:16px !important;
  overflow:hidden !important;
  background:#fffdfa !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    0 6px 14px rgba(90,65,18,.08) !important;
}

html.mode-simple .kg-simple-passbook thead th{
  background:
    linear-gradient(180deg, #ffffff 0%, #fff9e7 42%, #e9d08e 100%) !important;
  color:#6b4a12 !important;
  font-size:24px !important;
  font-weight:900 !important;
  text-align:center !important;
  padding:14px 10px !important;
  border-bottom:1px solid #dcc685 !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -1px 0 rgba(160,122,36,.14) !important;
}

html.mode-simple .kg-simple-passbook tbody td{
  background:#fffef9 !important;
  color:#2f230f !important;
  font-size:22px !important;
  font-weight:700 !important;
  text-align:center !important;
  padding:16px 10px !important;
  border-bottom:1px solid #eadcb0 !important;
}

html.mode-simple .kg-simple-passbook tbody tr:nth-child(even) td{
  background:#fcf6e4 !important;
}

html.mode-simple .kg-simple-passbook .wish-color-inline{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:7.2em !important;
  padding:6px 12px !important;
  border-width:2px !important;
  border-radius:999px !important;
  font-size:clamp(14px, 3.2vw, 17px) !important;
  line-height:1.1 !important;
  font-weight:900 !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.86),
    0 2px 6px rgba(40,24,5,.10) !important;
}

/* スマホ補正 */
@media (max-width:760px){
  .kg-stamp-area{
    left:79.55% !important;
    top:88.9% !important;
    width:23.8% !important;
    height:15.4% !important;
  }

  .kg-hanko-realpress,
  .kg-hanko-clone-v43{
    width:27.5% !important;
    min-width:112px !important;
    max-width:150px !important;
  }

  html.mode-simple .kg-simple-passbook thead th{
    font-size:19px !important;
  }

  html.mode-simple .kg-simple-passbook tbody td{
    font-size:18px !important;
  }
}

@media (max-width:390px){
  .kg-stamp-area{
    width:24.5% !important;
    height:15.8% !important;
    top:89.2% !important;
  }

  .kg-hanko-realpress,
  .kg-hanko-clone-v43{
    width:28.5% !important;
    min-width:104px !important;
  }

  html.mode-simple .kg-simple-passbook thead th,
  html.mode-simple .kg-simple-passbook tbody td{
    padding:9px 6px !important;
    font-size:16px !important;
  }

  html.mode-simple .kg-simple-passbook .wish-color-inline{
    min-width:6.4em !important;
    padding:4px 7px !important;
  }
}
/* =========================================================
   v44 完全置き換え最終指定
   猫の手 / 福守スタンプ / 2.8秒音 / 全ボタン沈み演出
========================================================= */

.kg-svg-wrap{
  position:relative !important;
  overflow:visible !important;
}

/* 福守スタンプの枠。大きさと位置を固定して画像差のバラつきを減らす */
.kg-stamp-area{
  position:absolute !important;
  left:79.55% !important;
  top:89.25% !important;
  width:22.6% !important;
  height:15.2% !important;
  max-width:none !important;
  min-width:0 !important;
  aspect-ratio:auto !important;
  display:grid !important;
  place-items:center !important;
  opacity:0 !important;
  pointer-events:none !important;
  z-index:90 !important;
  transform:translate(-50%, -50%) scale(1) rotate(-2deg) !important;
  transform-origin:center center !important;
}

.kg-page.is-posted .kg-stamp-area,
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  opacity:1 !important;
}

/* 福守画像は枠ギリギリまで大きく。ただし object-fit で枠内に収める */
.kg-fuku-img{
  position:absolute !important;
  left:50% !important;
  top:52% !important;
  width:94% !important;
  height:94% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  transform:translate(-50%, -50%) scale(1.10) !important;
  filter:
    drop-shadow(0 2px 0 rgba(104,58,11,.12))
    drop-shadow(0 8px 12px rgba(90,48,10,.18)) !important;
}

.kg-stamp-ink-burst{
  position:absolute !important;
  inset:7% !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(255,228,122,.50), rgba(255,199,39,.18) 46%, transparent 74%) !important;
  opacity:0 !important;
  transform:scale(.74) !important;
}

.kg-svg-wrap.is-stamping-now .kg-stamp-ink-burst{
  animation:kgInkBurstV44 .46s ease-out 1.48s forwards !important;
}

/* 元画像の猫の手も保険で表示 */
.kg-hanko-realpress{
  position:absolute !important;
  left:83.5% !important;
  top:78.2% !important;
  width:25.6% !important;
  max-width:190px !important;
  min-width:124px !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  z-index:98 !important;
  pointer-events:none !important;
  transform:translate(-50%, -50%) rotate(-14deg) scale(1.05) !important;
  transform-origin:78% 86% !important;
  filter:drop-shadow(0 10px 18px rgba(71,44,8,.24)) !important;
}

.kg-svg-wrap.is-stamping-now .kg-hanko-realpress{
  animation:kgCatPawPressV44 2.15s cubic-bezier(.18,.82,.24,1) both !important;
}

/* JSで複製して出す本命の猫の手 */
.kg-hanko-clone-v44{
  position:absolute !important;
  left:84.5% !important;
  top:76.8% !important;
  width:26.8% !important;
  max-width:202px !important;
  min-width:132px !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  z-index:140 !important;
  pointer-events:none !important;
  transform:translate(-50%, -50%) rotate(-17deg) scale(1.10) !important;
  transform-origin:78% 86% !important;
  filter:drop-shadow(0 12px 20px rgba(71,44,8,.30)) !important;
}

.kg-hanko-clone-v44.is-pressing{
  animation:kgCatPawPressV44 2.15s cubic-bezier(.18,.82,.24,1) both !important;
}

/* 福守は猫の手が消えた後に押されたように出す */
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  animation:kgStampShowV44 .36s ease-out 1.82s both !important;
}

@keyframes kgStampShowV44{
  0%{
    opacity:0;
    transform:translate(-50%, -50%) scale(.72) rotate(-2deg);
  }
  60%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1.08) rotate(-2deg);
  }
  100%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1) rotate(-2deg);
  }
}

/* 猫の手：福守枠のすぐ近くに出て、押して、消える */
@keyframes kgCatPawPressV44{
  0%{
    opacity:0;
    left:84.8%;
    top:76.4%;
    transform:translate(-50%, -50%) rotate(-18deg) scale(1.10);
  }
  9%{
    opacity:1;
  }
  36%{
    opacity:1;
    left:83.3%;
    top:82.0%;
    transform:translate(-50%, -50%) rotate(-12deg) scale(1.06);
  }
  56%{
    opacity:1;
    left:81.4%;
    top:87.0%;
    transform:translate(-50%, -50%) rotate(-5deg) scale(.92);
  }
  70%{
    opacity:1;
    left:80.8%;
    top:89.2%;
    transform:translate(-50%, -50%) rotate(-2deg) scale(.84);
  }
  82%{
    opacity:1;
    left:81.0%;
    top:88.3%;
    transform:translate(-50%, -50%) rotate(-3deg) scale(.92);
  }
  100%{
    opacity:0;
    left:83.2%;
    top:80.2%;
    transform:translate(-50%, -50%) rotate(-9deg) scale(.98);
  }
}

@keyframes kgInkBurstV44{
  0%{ opacity:0; transform:scale(.74); }
  35%{ opacity:.88; transform:scale(1); }
  100%{ opacity:0; transform:scale(1.24); }
}

/* 全ボタン：立体＋ゆっくり沈む */
button,
input[type="submit"],
input[type="button"],
.btn,
.nav-link,
.dropdown-item,
.btn-edo,
.mh-feature-link,
.mh-primary-cta,
.pm20-card,
.pm15-card,
.kg-submit{
  transition:
    transform .78s cubic-bezier(.18,.78,.18,1),
    box-shadow .78s cubic-bezier(.18,.78,.18,1),
    filter .24s ease !important;
}

button:active,
input[type="submit"]:active,
input[type="button"]:active,
.btn:active,
.nav-link:active,
.dropdown-item:active,
.btn-edo:active,
.mh-feature-link:active,
.mh-primary-cta:active,
.pm20-card:active,
.pm15-card:active,
.kg-submit:active,
.kg-submit.is-offering{
  transform:translateY(13px) scale(.965) !important;
  filter:brightness(.98) !important;
}

/* 奉納ボタンは特に深く沈む */
.kg-submit{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:min(92%, 390px) !important;
  margin:18px auto 0 !important;
  min-height:66px !important;
  padding:0 24px !important;
  border:1px solid #c9961a !important;
  border-radius:999px !important;
  background:
    radial-gradient(circle at 50% 10%, rgba(255,255,255,.98), rgba(255,255,255,0) 38%),
    linear-gradient(180deg, #fff6d2 0%, #f3c64f 48%, #be7f0a 100%) !important;
  color:#2b1c06 !important;
  font-size:clamp(22px, 2.4vw, 30px) !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.92),
    inset 0 -8px 0 rgba(124,78,9,.18),
    0 8px 0 #97630f,
    0 16px 24px rgba(84,53,8,.18) !important;
}

.kg-submit:active,
.kg-submit.is-offering{
  transform:translateY(15px) scale(.965) !important;
  box-shadow:
    inset 0 9px 14px rgba(88,57,8,.22),
    0 1px 0 #97630f,
    0 5px 10px rgba(84,53,8,.10) !important;
}

/* シンプルモード：白＋上品なゴールド */
html.mode-simple .kg-simple-passbook{
  display:block !important;
  width:min(100%, 940px) !important;
  margin:18px auto 0 !important;
  padding:22px 16px 24px !important;
  border-radius:18px !important;
  border:2px solid #d6bb74 !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.98), rgba(255,255,255,0) 34%),
    linear-gradient(180deg, #ffffff 0%, #fffcf1 42%, #f4e4b5 100%) !important;
  box-shadow:
    inset 0 2px 0 rgba(255,255,255,.98),
    inset 0 0 0 3px rgba(255,247,218,.72),
    0 10px 24px rgba(84,59,15,.10) !important;
}

html.mode-simple .kg-simple-passbook h3{
  color:#37260b !important;
  font-size:clamp(28px, 4vw, 40px) !important;
  font-weight:900 !important;
  text-align:center !important;
  letter-spacing:.08em !important;
  margin:0 0 16px !important;
  padding-bottom:12px !important;
  border-bottom:3px double #cfa74b !important;
  font-family:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho",serif !important;
}

html.mode-simple .kg-simple-passbook table{
  width:100% !important;
  border-collapse:separate !important;
  border-spacing:0 !important;
  border:1px solid #d8c385 !important;
  border-radius:16px !important;
  overflow:hidden !important;
  background:#fffdfa !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    0 6px 14px rgba(90,65,18,.08) !important;
}

html.mode-simple .kg-simple-passbook thead th{
  background:
    linear-gradient(180deg, #ffffff 0%, #fff9e7 42%, #e9d08e 100%) !important;
  color:#6b4a12 !important;
  font-size:24px !important;
  font-weight:900 !important;
  text-align:center !important;
  padding:14px 10px !important;
  border-bottom:1px solid #dcc685 !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.96),
    inset 0 -1px 0 rgba(160,122,36,.14) !important;
}

html.mode-simple .kg-simple-passbook tbody td{
  background:#fffef9 !important;
  color:#2f230f !important;
  font-size:22px !important;
  font-weight:700 !important;
  text-align:center !important;
  padding:16px 10px !important;
  border-bottom:1px solid #eadcb0 !important;
}

html.mode-simple .kg-simple-passbook tbody tr:nth-child(even) td{
  background:#fcf6e4 !important;
}

html.mode-simple .kg-simple-passbook .wish-color-inline{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:7.2em !important;
  padding:6px 12px !important;
  border-width:2px !important;
  border-radius:999px !important;
  font-size:clamp(14px, 3.2vw, 17px) !important;
  line-height:1.1 !important;
  font-weight:900 !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.86),
    0 2px 6px rgba(40,24,5,.10) !important;
}

@media (max-width:760px){
  .kg-stamp-area{
    left:79.55% !important;
    top:89.0% !important;
    width:23.8% !important;
    height:15.6% !important;
  }

  .kg-hanko-realpress,
  .kg-hanko-clone-v44{
    width:28.0% !important;
    min-width:116px !important;
    max-width:154px !important;
  }

  html.mode-simple .kg-simple-passbook thead th{
    font-size:19px !important;
  }

  html.mode-simple .kg-simple-passbook tbody td{
    font-size:18px !important;
  }
}

@media (max-width:390px){
  .kg-stamp-area{
    width:24.5% !important;
    height:16.0% !important;
    top:89.15% !important;
  }

  .kg-hanko-realpress,
  .kg-hanko-clone-v44{
    width:29.0% !important;
    min-width:108px !important;
  }

  html.mode-simple .kg-simple-passbook thead th,
  html.mode-simple .kg-simple-passbook tbody td{
    padding:9px 6px !important;
    font-size:16px !important;
  }

  html.mode-simple .kg-simple-passbook .wish-color-inline{
    min-width:6.4em !important;
    padding:4px 7px !important;
  }
}
/* =========================================================
   v45 完全置き換え最終指定
   猫の手が出ない問題への最終対応：
   - 猫の手はJSの fixed 実測配置で必ず表示
   - CSS側は補助と福守スタンプの固定
========================================================= */

.kg-svg-wrap{
  position:relative !important;
  overflow:visible !important;
}

/* 福守スタンプ枠：枠ギリギリ大きめ・位置固定 */
.kg-stamp-area{
  position:absolute !important;
  left:79.55% !important;
  top:89.25% !important;
  width:22.6% !important;
  height:15.2% !important;
  max-width:none !important;
  min-width:0 !important;
  aspect-ratio:auto !important;
  display:grid !important;
  place-items:center !important;
  opacity:0 !important;
  pointer-events:none !important;
  z-index:90 !important;
  transform:translate(-50%, -50%) scale(1) rotate(-2deg) !important;
  transform-origin:center center !important;
}

.kg-page.is-posted .kg-stamp-area,
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  opacity:1 !important;
}

/* 福守画像は枠内いっぱい */
.kg-fuku-img{
  position:absolute !important;
  left:50% !important;
  top:52% !important;
  width:94% !important;
  height:94% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  transform:translate(-50%, -50%) scale(1.10) !important;
  filter:
    drop-shadow(0 2px 0 rgba(104,58,11,.12))
    drop-shadow(0 8px 12px rgba(90,48,10,.18)) !important;
}

/* 元の通帳内猫の手は保険。主役はJS fixed clone */
.kg-hanko-realpress{
  position:absolute !important;
  left:82.0% !important;
  top:78.2% !important;
  width:24.0% !important;
  max-width:180px !important;
  min-width:120px !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  z-index:98 !important;
  pointer-events:none !important;
  transform:translate(-50%, -50%) rotate(-14deg) scale(1.05) !important;
  transform-origin:78% 86% !important;
  filter:drop-shadow(0 10px 18px rgba(71,44,8,.24)) !important;
}

/* JSで出す猫の手。CSSが効けばさらに安定 */
.kg-hanko-clone-v45{
  display:block !important;
  visibility:visible !important;
  opacity:0;
}

/* 福守は猫の手が消える頃に押されたように出る */
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  animation:kgStampShowV45 .36s ease-out both !important;
}

@keyframes kgStampShowV45{
  0%{
    opacity:0;
    transform:translate(-50%, -50%) scale(.72) rotate(-2deg);
  }
  60%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1.08) rotate(-2deg);
  }
  100%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1) rotate(-2deg);
  }
}

.kg-stamp-ink-burst{
  position:absolute !important;
  inset:7% !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(255,228,122,.50), rgba(255,199,39,.18) 46%, transparent 74%) !important;
  opacity:0 !important;
  transform:scale(.74) !important;
}

.kg-svg-wrap.is-stamping-now .kg-stamp-ink-burst{
  animation:kgInkBurstV45 .46s ease-out forwards !important;
}

@keyframes kgInkBurstV45{
  0%{ opacity:0; transform:scale(.74); }
  35%{ opacity:.88; transform:scale(1); }
  100%{ opacity:0; transform:scale(1.24); }
}

/* スマホ補正 */
@media (max-width:760px){
  .kg-stamp-area{
    left:79.55% !important;
    top:89.0% !important;
    width:23.8% !important;
    height:15.6% !important;
  }

  .kg-hanko-realpress{
    width:26.0% !important;
    min-width:114px !important;
    max-width:150px !important;
  }
}

@media (max-width:390px){
  .kg-stamp-area{
    width:24.5% !important;
    height:16.0% !important;
    top:89.15% !important;
  }

  .kg-hanko-realpress{
    width:27.0% !important;
    min-width:104px !important;
  }
}
/* =========================================================
   v46 完全置き換え最終指定
   - 最初に福守を出さない
   - 猫の手が出る
   - 猫の手が消えた後に福守スタンプを表示
========================================================= */

.kg-svg-wrap{
  position:relative !important;
  overflow:visible !important;
}

/* 福守スタンプ枠：大きめ、枠内固定 */
.kg-stamp-area{
  position:absolute !important;
  left:79.55% !important;
  top:89.25% !important;
  width:22.6% !important;
  height:15.2% !important;
  max-width:none !important;
  min-width:0 !important;
  aspect-ratio:auto !important;
  display:grid !important;
  place-items:center !important;
  opacity:0 !important;
  pointer-events:none !important;
  z-index:90 !important;
  transform:translate(-50%, -50%) scale(1) rotate(-2deg) !important;
  transform-origin:center center !important;
}

/* 投稿後でも最初は非表示。kg-fuku-revealed が付いてから表示 */
.kg-page.is-posted .kg-stamp-area,
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  opacity:0 !important;
}

.kg-page.kg-fuku-revealed .kg-stamp-area,
.kg-svg-wrap.kg-show-fuku .kg-stamp-area{
  opacity:1 !important;
  animation:kgStampShowV46 .38s ease-out both !important;
}

.kg-fuku-img{
  position:absolute !important;
  left:50% !important;
  top:52% !important;
  width:94% !important;
  height:94% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  transform:translate(-50%, -50%) scale(1.10) !important;
  filter:
    drop-shadow(0 2px 0 rgba(104,58,11,.12))
    drop-shadow(0 8px 12px rgba(90,48,10,.18)) !important;
}

@keyframes kgStampShowV46{
  0%{
    opacity:0;
    transform:translate(-50%, -50%) scale(.72) rotate(-2deg);
  }
  60%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1.08) rotate(-2deg);
  }
  100%{
    opacity:1;
    transform:translate(-50%, -50%) scale(1) rotate(-2deg);
  }
}

/* JS fixed で出す猫の手。CSSは保険 */
.kg-hanko-clone-v46{
  display:block !important;
  visibility:visible !important;
  opacity:0;
  z-index:2147483600 !important;
}

/* 元の猫の手は保険で非表示初期化 */
.kg-hanko-realpress{
  opacity:0 !important;
  visibility:visible !important;
  display:block !important;
}

/* 光 */
.kg-stamp-ink-burst{
  position:absolute !important;
  inset:7% !important;
  border-radius:50% !important;
  background:radial-gradient(circle, rgba(255,228,122,.50), rgba(255,199,39,.18) 46%, transparent 74%) !important;
  opacity:0 !important;
  transform:scale(.74) !important;
}

.kg-svg-wrap.kg-show-fuku .kg-stamp-ink-burst{
  animation:kgInkBurstV46 .46s ease-out forwards !important;
}

@keyframes kgInkBurstV46{
  0%{ opacity:0; transform:scale(.74); }
  35%{ opacity:.88; transform:scale(1); }
  100%{ opacity:0; transform:scale(1.24); }
}

/* スマホ補正 */
@media (max-width:760px){
  .kg-stamp-area{
    left:79.55% !important;
    top:89.0% !important;
    width:23.8% !important;
    height:15.6% !important;
  }
}

@media (max-width:390px){
  .kg-stamp-area{
    width:24.5% !important;
    height:16.0% !important;
    top:89.15% !important;
  }
}


/* ================= v47 final override: 猫の手を少し上、福守は枠内いっぱい ================= */
.kg-stamp-area{
  left:79.55% !important;
  top:88.75% !important;
  width:20.8% !important;
  height:14.3% !important;
  transform:translate(-50%, -50%) scale(1) rotate(0deg) !important;
}
.kg-fuku-img{
  left:50% !important;
  top:56% !important;
  width:96% !important;
  height:96% !important;
  transform:translate(-50%, -50%) scale(1.14) !important;
  object-fit:contain !important;
}
.kg-hanko-clone-v46{
  display:block !important;
  visibility:visible !important;
  opacity:0;
  z-index:2147483600 !important;
}
@media (max-width:760px){
  .kg-stamp-area{
    top:88.55% !important;
    width:21.7% !important;
    height:14.9% !important;
  }
  .kg-fuku-img{
    top:57% !important;
    transform:translate(-50%, -50%) scale(1.12) !important;
  }
}
@media (max-width:390px){
  .kg-stamp-area{
    top:88.7% !important;
    width:22.4% !important;
    height:15.2% !important;
  }
}


/* ================= v48 final override: 猫の手をさらに上、自然な位置に ================= */
.kg-stamp-area{
  left:79.55% !important;
  top:88.65% !important;
  width:20.8% !important;
  height:14.3% !important;
}
.kg-fuku-img{
  left:50% !important;
  top:58% !important;
  width:98% !important;
  height:98% !important;
  transform:translate(-50%, -50%) scale(1.12) !important;
}
@media (max-width:760px){
  .kg-stamp-area{ top:88.45% !important; width:21.7% !important; height:14.9% !important; }
  .kg-fuku-img{ top:59% !important; transform:translate(-50%, -50%) scale(1.10) !important; }
}
@media (max-width:390px){
  .kg-stamp-area{ top:88.55% !important; width:22.4% !important; height:15.2% !important; }
}


/* ================= v50 final override : 位置とサイズを機種別に最適化 ================= */
.kg-stamp-area{
  left:79.45% !important;
  top:87.55% !important;
  width:20.1% !important;
  height:13.7% !important;
}
.kg-fuku-img{
  left:50% !important;
  top:60.2% !important;
  width:99% !important;
  height:99% !important;
  transform:translate(-50%, -50%) scale(1.14) !important;
  object-position:center 62% !important;
}
.kg-hanko-clone-v51{
  position:fixed !important;
  z-index:2147483600 !important;
  pointer-events:none !important;
  display:block !important;
  will-change:left, top, transform, opacity !important;
}
@media (max-width:1100px){
  .kg-stamp-area{
    top:87.10% !important;
    width:20.7% !important;
    height:14.1% !important;
  }
  .kg-fuku-img{
    top:60.0% !important;
    transform:translate(-50%, -50%) scale(1.12) !important;
  }
}
@media (max-width:760px){
  .kg-stamp-area{
    left:79.25% !important;
    top:86.55% !important;
    width:21.2% !important;
    height:14.2% !important;
  }
  .kg-fuku-img{
    top:59.8% !important;
    width:98% !important;
    height:98% !important;
    transform:translate(-50%, -50%) scale(1.08) !important;
  }
}
@media (max-width:430px){
  .kg-stamp-area{
    left:79.15% !important;
    top:86.15% !important;
    width:21.8% !important;
    height:14.6% !important;
  }
}


/* =========================================================
   v50 最終上書き
   - 福守ランダムスタンプ画像を 75% に統一
   - 画像ごとの余白差で上下がバラつきにくいよう中央固定
========================================================= */
.kg-stamp-area{
  left:79.45% !important;
  top:87.55% !important;
  width:20.1% !important;
  height:13.7% !important;
  transform:translate(-50%, -50%) scale(1) rotate(0deg) !important;
}

.kg-fuku-img{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:75% !important;
  height:75% !important;
  max-width:75% !important;
  max-height:75% !important;
  transform:translate(-50%, -50%) scale(1) !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
}

.kg-page.kg-fuku-revealed .kg-stamp-area,
.kg-svg-wrap.kg-show-fuku .kg-stamp-area,
.kg-page.is-posted.kg-fuku-revealed .kg-stamp-area{
  opacity:1 !important;
}

.kg-hanko-clone-v51{
  position:fixed !important;
  z-index:2147483600 !important;
  pointer-events:none !important;
  display:block !important;
  will-change:left, top, transform, opacity !important;
}

@media (max-width:1100px){
  .kg-stamp-area{
    top:87.10% !important;
    width:20.7% !important;
    height:14.1% !important;
  }
  .kg-fuku-img{
    width:75% !important;
    height:75% !important;
    max-width:75% !important;
    max-height:75% !important;
  }
}

@media (max-width:760px){
  .kg-stamp-area{
    left:79.25% !important;
    top:86.55% !important;
    width:21.2% !important;
    height:14.2% !important;
  }
  .kg-fuku-img{
    width:75% !important;
    height:75% !important;
    max-width:75% !important;
    max-height:75% !important;
  }
}

@media (max-width:430px){
  .kg-stamp-area{
    left:79.15% !important;
    top:86.15% !important;
    width:21.8% !important;
    height:14.6% !important;
  }
}
/* =========================================================
   v51 最終上書き
   - PCは80%表示に戻す前提
   - 福守は最初は非表示、猫の手の後に表示
   - PCの福守ランダム判子は75%
   - スマホの福守ランダム判子は倍の大きさ
========================================================= */

.kg-svg-wrap{
  position:relative !important;
  overflow:visible !important;
}

/* 重要：投稿後でも最初からランダム判子を出さない */
.kg-page.is-posted .kg-stamp-area,
.kg-svg-wrap.is-stamping-now .kg-stamp-area,
.kg-stamp-area{
  opacity:0 !important;
}

/* JSが kg-fuku-revealed / kg-show-fuku を付けた時だけ表示 */
.kg-page.kg-fuku-revealed .kg-stamp-area,
.kg-svg-wrap.kg-show-fuku .kg-stamp-area,
.kg-page.is-posted.kg-fuku-revealed .kg-stamp-area{
  opacity:1 !important;
}

/* 福守枠の位置は固定 */
.kg-stamp-area{
  position:absolute !important;
  left:79.45% !important;
  top:87.55% !important;
  width:20.1% !important;
  height:13.7% !important;
  max-width:none !important;
  min-width:0 !important;
  aspect-ratio:auto !important;
  display:grid !important;
  place-items:center !important;
  pointer-events:none !important;
  z-index:90 !important;
  transform:translate(-50%, -50%) scale(1) rotate(0deg) !important;
  transform-origin:center center !important;
}

/* PC・タブレット基準：福守ランダム判子は75% */
.kg-fuku-img{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  width:75% !important;
  height:75% !important;
  max-width:75% !important;
  max-height:75% !important;
  transform:translate(-50%, -50%) scale(1) !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
}

.kg-hanko-clone-v51{
  position:fixed !important;
  z-index:2147483600 !important;
  pointer-events:none !important;
  display:block !important;
  visibility:visible !important;
  will-change:left, top, transform, opacity !important;
}

/* スマホ：福守ランダム判子を倍サイズ、少し下へ */
@media (max-width:760px){
  .kg-stamp-area{
    left:79.25% !important;
    top:86.90% !important;
    width:21.2% !important;
    height:14.2% !important;
  }
  .kg-fuku-img{
    top:63% !important;
    width:150% !important;
    height:150% !important;
    max-width:150% !important;
    max-height:150% !important;
    transform:translate(-50%, -50%) scale(1) !important;
    object-position:center center !important;
  }
}

@media (max-width:430px){
  .kg-stamp-area{
    left:79.15% !important;
    top:86.55% !important;
    width:21.8% !important;
    height:14.6% !important;
  }
  .kg-fuku-img{
    top:64% !important;
    width:150% !important;
    height:150% !important;
    max-width:150% !important;
    max-height:150% !important;
  }
}


/* =========================================================
   v53 最終上書き
   1) 猫の手は右下「本日の福守」枠の位置に固定
   2) 猫の手 → 効果音 → ランダム福守 の順番
   3) PC縮小・transformの座標ズレを避けるため fixed を使わない
========================================================= */
.kg-svg-wrap{
  position:relative !important;
  overflow:visible !important;
}

/* 本日の福守の白枠中央。kinkanai.png の実寸位置に合わせる */
.kg-stamp-area{
  position:absolute !important;
  left:76.05% !important;
  top:87.35% !important;
  width:25.8% !important;
  height:15.8% !important;
  max-width:none !important;
  min-width:0 !important;
  aspect-ratio:auto !important;
  display:grid !important;
  place-items:center !important;
  opacity:0 !important;
  pointer-events:none !important;
  z-index:90 !important;
  transform:translate(-50%, -50%) scale(1) rotate(0deg) !important;
  transform-origin:center center !important;
}

.kg-page.is-posted .kg-stamp-area,
.kg-svg-wrap.is-stamping-now .kg-stamp-area{
  opacity:0 !important;
}

.kg-page.kg-fuku-revealed .kg-stamp-area,
.kg-svg-wrap.kg-show-fuku .kg-stamp-area,
.kg-page.is-posted.kg-fuku-revealed .kg-stamp-area{
  opacity:1 !important;
  animation:kgStampShowV52 .36s ease-out both !important;
}

/* PC基準：ランダム福守は75%。スマホは下で拡大 */
.kg-fuku-img{
  position:absolute !important;
  left:50% !important;
  top:52% !important;
  width:75% !important;
  height:75% !important;
  max-width:75% !important;
  max-height:75% !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  transform:translate(-50%, -50%) scale(1) !important;
  filter:drop-shadow(0 2px 0 rgba(104,58,11,.12)) drop-shadow(0 8px 12px rgba(90,48,10,.18)) !important;
}

/* JSで作る猫の手。通帳内 absolute なのでPC80%でもズレない */
.kg-hanko-clone-v53{
  position:absolute !important;
  left:77.5% !important;
  top:73.0% !important;
  width:25.0% !important;
  max-width:210px !important;
  min-width:116px !important;
  height:auto !important;
  display:block !important;
  visibility:visible !important;
  opacity:0 !important;
  z-index:220 !important;
  pointer-events:none !important;
  transform:translate(-50%, -50%) rotate(-8deg) scale(1) !important;
  transform-origin:58% 22% !important;
  filter:drop-shadow(0 10px 16px rgba(71,44,8,.23)) !important;
  will-change:left, top, transform, opacity !important;
}

.kg-hanko-clone-v53.is-pressing{
  animation:kgCatPawPressV52 2.55s cubic-bezier(.18,.80,.22,1) both !important;
}

@keyframes kgCatPawPressV52{
  0%{
    opacity:0;
    left:77.5%;
    top:73.0%;
    transform:translate(-50%, -50%) rotate(-8deg) scale(1.00);
  }
  8%{ opacity:1; }
  42%{
    opacity:1;
    left:76.7%;
    top:78.7%;
    transform:translate(-50%, -50%) rotate(-5deg) scale(.99);
  }
  62%{
    opacity:1;
    left:76.2%;
    top:84.8%;
    transform:translate(-50%, -50%) rotate(-2deg) scale(.91);
  }
  75%{
    opacity:1;
    left:76.1%;
    top:86.9%;
    transform:translate(-50%, -50%) rotate(-1deg) scale(.86);
  }
  86%{
    opacity:1;
    left:76.25%;
    top:85.9%;
    transform:translate(-50%, -50%) rotate(-2deg) scale(.92);
  }
  100%{
    opacity:0;
    left:76.8%;
    top:78.4%;
    transform:translate(-50%, -50%) rotate(-5deg) scale(.98);
  }
}

@keyframes kgStampShowV52{
  0%{ opacity:0; transform:translate(-50%, -50%) scale(.70) rotate(0deg); }
  60%{ opacity:1; transform:translate(-50%, -50%) scale(1.06) rotate(0deg); }
  100%{ opacity:1; transform:translate(-50%, -50%) scale(1) rotate(0deg); }
}

@media (max-width:1100px){
  .kg-stamp-area{
    left:76.0% !important;
    top:87.15% !important;
    width:27.5% !important;
    height:16.5% !important;
  }
  .kg-hanko-clone-v53{
    left:77.2% !important;
    top:72.0% !important;
    width:25.5% !important;
    max-width:180px !important;
  }
}

@media (max-width:760px){
  .kg-stamp-area{
    left:76.0% !important;
    top:87.0% !important;
    width:29.0% !important;
    height:17.0% !important;
  }
  .kg-fuku-img{
    top:61% !important;
    width:150% !important;
    height:150% !important;
    max-width:150% !important;
    max-height:150% !important;
  }
  .kg-hanko-clone-v53{
    left:77.0% !important;
    top:71.0% !important;
    width:27.0% !important;
    max-width:145px !important;
    min-width:88px !important;
  }
}

@media (max-width:430px){
  .kg-stamp-area{
    left:76.0% !important;
    top:86.8% !important;
    width:30.0% !important;
    height:17.4% !important;
  }
  .kg-hanko-clone-v53{
    top:70.8% !important;
    width:28.0% !important;
    min-width:82px !important;
  }
}


/* =========================================================
   v53 最終指定：猫の手はJS固定座標。本日の福守だけCSSで固定。
   順番：猫の手 → 効果音 → ランダム福守
========================================================= */
.kg-svg-wrap{
  position:relative !important;
  overflow:visible !important;
}
.kg-page.is-posted .kg-stamp-area,
.kg-svg-wrap.is-stamping-now .kg-stamp-area,
.kg-stamp-area{
  opacity:0 !important;
  visibility:hidden !important;
}
.kg-page.kg-fuku-revealed .kg-stamp-area,
.kg-svg-wrap.kg-show-fuku .kg-stamp-area,
.kg-page.is-posted.kg-fuku-revealed .kg-stamp-area{
  opacity:1 !important;
  visibility:visible !important;
  animation:kgStampShowV53 .38s ease-out both !important;
}
.kg-stamp-area{
  position:absolute !important;
  left:77.8% !important;
  top:78.5% !important;
  width:22.5% !important;
  height:18.0% !important;
  max-width:none !important;
  min-width:0 !important;
  aspect-ratio:auto !important;
  display:grid !important;
  place-items:center !important;
  pointer-events:none !important;
  z-index:90 !important;
  transform:translate(-50%, -50%) scale(1) rotate(0deg) !important;
  transform-origin:center center !important;
}
.kg-fuku-img{
  position:absolute !important;
  left:50% !important;
  top:54% !important;
  width:75% !important;
  height:75% !important;
  max-width:75% !important;
  max-height:75% !important;
  object-fit:contain !important;
  object-position:center center !important;
  display:block !important;
  transform:translate(-50%, -50%) scale(1) !important;
  filter:drop-shadow(0 2px 0 rgba(104,58,11,.12)) drop-shadow(0 8px 12px rgba(90,48,10,.18)) !important;
}
.kg-hanko-clone-v53{
  display:block !important;
  visibility:visible !important;
  will-change:left, top, transform, opacity !important;
}
@keyframes kgStampShowV53{
  0%{ opacity:0; transform:translate(-50%, -50%) scale(.70) rotate(0deg); }
  60%{ opacity:1; transform:translate(-50%, -50%) scale(1.06) rotate(0deg); }
  100%{ opacity:1; transform:translate(-50%, -50%) scale(1) rotate(0deg); }
}
@media (max-width:1100px){
  .kg-stamp-area{
    left:77.5% !important;
    top:78.8% !important;
    width:24.0% !important;
    height:18.8% !important;
  }
}
@media (max-width:760px){
  .kg-stamp-area{
    left:77.0% !important;
    top:79.2% !important;
    width:28.0% !important;
    height:20.0% !important;
  }
  .kg-fuku-img{
    top:60% !important;
    width:150% !important;
    height:150% !important;
    max-width:150% !important;
    max-height:150% !important;
  }
}
@media (max-width:430px){
  .kg-stamp-area{
    left:77.0% !important;
    top:79.0% !important;
    width:29.0% !important;
    height:20.5% !important;
  }
}