/* キノコがり せかい いっしゅう ------------------------------------ */
:root{
  --moss:#173d2c; --moss2:#0d2a1d; --cream:#fdf6e6; --bark:#4a2f1c;
  --gold:#f0b429; --red:#d94f3d; --leaf:#4fa26b; --ink:#26180d;
  --pad: max(16px, env(safe-area-inset-left));
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%}
body{
  background:radial-gradient(120% 80% at 50% 0%, #245240 0%, var(--moss) 45%, var(--moss2) 100%) fixed;
  color:var(--cream);
  font-family:"Hiragino Maru Gothic ProN","ヒラギノ丸ゴ ProN W4","Hiragino Sans",system-ui,sans-serif;
  font-weight:800; -webkit-text-size-adjust:100%;
  overscroll-behavior:none; user-select:none; -webkit-user-select:none;
}
#app[hidden]{display:none}
.screen{
  min-height:100dvh; display:flex; flex-direction:column;
  padding:calc(env(safe-area-inset-top) + 10px) var(--pad) calc(env(safe-area-inset-bottom) + 8px);
  max-width:760px; margin:0 auto;
}
.screen[hidden]{display:none}

/* ---- うえの おび ---- */
.bar{display:flex;align-items:center;gap:10px;min-height:44px}
.tama{display:flex;gap:7px;flex:1}
.tama i{width:15px;height:15px;border-radius:50%;background:#ffffff26;box-shadow:inset 0 2px 3px #0004}
.tama i.on{background:var(--gold);box-shadow:0 0 12px #f0b42980}
.tama i.miss{background:#ffffff4d}
.mini{
  font:inherit;font-size:1.05rem;padding:9px 18px;border:0;border-radius:999px;
  background:#ffffff1f;color:var(--cream);letter-spacing:.06em;
}
.mini:active{transform:scale(.94)}

/* ---- もんだい ---- */
.ask{text-align:center;padding:10px 0 4px}
.lead{margin:0 0 4px;font-size:1rem;opacity:.62;letter-spacing:.14em}
.kuniBox{min-height:1.5em;display:flex;justify-content:center;align-items:flex-end}
.kuni{
  font-size:clamp(2.3rem,12.5vw,4rem); line-height:1.12; letter-spacing:.02em;
  ruby-position:over; text-shadow:0 3px 0 #0006;
}
.kuni rt{
  font-size:.36em; color:var(--gold); opacity:.95; letter-spacing:.04em;
  transition:opacity .35s ease;
}
.kuni.noRuby rt{opacity:0}
.kiku{
  margin-top:12px;font:inherit;font-size:1.15rem;display:inline-flex;align-items:center;gap:8px;
  padding:11px 26px;border:0;border-radius:999px;background:var(--cream);color:var(--bark);
  box-shadow:0 4px 0 #0005;letter-spacing:.1em;
}
.kiku:active{transform:translateY(3px);box-shadow:0 1px 0 #0005}
.kiku svg{width:22px;height:22px;fill:currentColor;stroke:currentColor}
.kiku.talking{background:var(--gold)}

/* ---- はた 4まい ---- */
.hataGrid{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 0;
}
.hataBtn{
  position:relative;padding:0;border:0;background:none;border-radius:16px;
  aspect-ratio:4/3;overflow:hidden;box-shadow:0 5px 0 #0006, inset 0 0 0 3px #ffffff24;
  transition:transform .12s ease, box-shadow .12s ease;
}
.hataBtn img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.hataBtn:active{transform:translateY(4px);box-shadow:0 1px 0 #0006, inset 0 0 0 3px #ffffff24}
.hataBtn[disabled]{pointer-events:none}
.hataBtn.right{animation:pop .45s ease; box-shadow:0 0 0 5px var(--gold), 0 0 26px #f0b429aa}
.hataBtn.dim{opacity:.34;filter:saturate(.35)}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}

/* ---- キノコが にょきっと ---- */
.stage{position:relative;flex:1;min-height:104px;display:flex;align-items:flex-end;justify-content:center}
.ground{
  position:absolute;left:-4vw;right:-4vw;bottom:18px;height:26px;border-radius:50%;
  background:linear-gradient(#2f5c3f,#1d3f2b);box-shadow:0 -2px 0 #ffffff14;
}
.sprout{position:relative;bottom:20px;width:120px;height:120px;display:grid;place-items:center}
.sprout img{
  width:100%;height:100%;object-fit:cover;border-radius:50%;
  box-shadow:0 0 0 5px var(--cream), 0 8px 18px #0007;
  transform-origin:50% 100%;
}
.sprout.grow img{animation:nyoki .62s cubic-bezier(.2,1.5,.4,1) both}
@keyframes nyoki{
  0%{transform:translateY(46px) scaleY(.05) scaleX(.6);opacity:0}
  55%{transform:translateY(0) scaleY(1.14) scaleX(.94);opacity:1}
  75%{transform:translateY(0) scaleY(.94) scaleX(1.05)}
  100%{transform:none;opacity:1}
}
.sprout .yatta{
  position:absolute;top:-6px;font-size:1.25rem;color:var(--gold);
  text-shadow:0 2px 0 #0007;animation:up .9s ease both;
}
@keyframes up{0%{opacity:0;transform:translateY(12px)}30%{opacity:1}100%{opacity:0;transform:translateY(-38px)}}

.warn{
  margin:6px 0 0;text-align:center;font-size:.95rem;letter-spacing:.1em;
  color:#ffd9d2;background:#00000038;border-radius:999px;padding:7px 12px;
}

/* ---- ずかん ---- */
.kazu{
  flex:1;text-align:right;font-size:1.1rem;color:var(--gold);letter-spacing:.04em;
}
.blocks{display:flex;flex-wrap:wrap;gap:6px;margin:12px 2px 4px}
.blocks i{
  width:calc((100% - 54px)/10);aspect-ratio:1;border-radius:6px;
  background:#ffffff1a;box-shadow:inset 0 2px 3px #0004;
}
.blocks i.on{background:var(--gold);box-shadow:0 2px 0 #00000040}
.cards{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px;
  margin:12px 0;overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch;
}
.card{
  background:var(--cream);color:var(--ink);border-radius:18px;padding:10px 10px 12px;
  box-shadow:0 5px 0 #0005;position:relative;text-align:center;
}
.card.yet{background:#ffffff14;box-shadow:none;color:#ffffff59;display:grid;place-items:center;min-height:150px;font-size:2.4rem}
.card .shot{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;background:#e7dcc4;display:block}
.card .nm{margin:8px 0 2px;font-size:1.02rem;line-height:1.25}
.card .nm rt{font-size:.5em;color:#8a6b3f}
.card .foot{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:6px}
.card .foot img{width:30px;height:22px;object-fit:cover;border-radius:4px;box-shadow:0 0 0 1px #0002}
.card .say{
  font:inherit;font-size:.9rem;border:0;border-radius:999px;padding:5px 12px;
  background:var(--bark);color:var(--cream);letter-spacing:.06em;
}
.card .say:active{transform:scale(.93)}
.doku{
  position:absolute;top:6px;left:6px;background:var(--red);color:#fff;
  font-size:.82rem;padding:3px 10px;border-radius:999px;letter-spacing:.14em;
  box-shadow:0 2px 0 #0005;
}

/* ---- 1しゅう おわり ---- */
.veil{
  position:fixed;inset:0;background:#08160fd9;backdrop-filter:blur(3px);
  display:grid;place-items:center;padding:24px;z-index:9;
}
.veil[hidden]{display:none}
.owariBox{text-align:center;max-width:420px;width:100%}
.owariTitle{font-size:1.7rem;margin:0 0 6px;color:var(--gold);letter-spacing:.06em}
.owariKinoko{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:10px 0 22px;min-height:8px}
.owariKinoko img{width:56px;height:56px;object-fit:cover;border-radius:50%;box-shadow:0 0 0 3px var(--cream)}
.owariBtns{display:flex;flex-direction:column;gap:12px}
.big{
  font:inherit;font-size:1.4rem;padding:18px;border:0;border-radius:20px;
  background:var(--gold);color:#3a2a06;box-shadow:0 6px 0 #0006;letter-spacing:.12em;
}
.big.alt{background:var(--cream);color:var(--bark)}
.big:active{transform:translateY(4px);box-shadow:0 2px 0 #0006}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
