/* A quiet paper interval between the pixel-art chapters. */
.minigame-overlay[hidden], .minigame-overlay [hidden] { display:none !important; }
.minigame-mode .app-shell { visibility:hidden; }
.minigame-overlay { position:fixed; inset:0; z-index:150; display:grid; place-items:center; overflow:auto; padding:clamp(16px,4vw,54px); color:#342b30; background:#f5f1ed; font-family:'DM Sans',system-ui,sans-serif; }
.minigame-paper { width:min(100%,960px); margin:auto; border:1px solid #e9ded8; border-radius:20px; background:#fffcfa; box-shadow:0 24px 100px #6046380b; }
.minigame-top,.minigame-bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:22px 32px; }
.minigame-top { border-bottom:1px solid #efe6e0; }
.minigame-top > span { color:#8a6267; font-size:9px; font-weight:700; letter-spacing:1.7px; }
.minigame-top > div { display:flex; gap:8px; }
.minigame-top button { min-height:40px; border:1px solid #e9ded8; padding:8px 14px; border-radius:24px; color:#65535b; background:transparent; cursor:pointer; font-size:12px; }
.minigame-content { display:grid; grid-template-columns:.9fr 1.1fr; gap:40px; padding:40px 36px 28px; align-items:center; }
.minigame-eyebrow { margin:0 0 20px; color:#987079; font-size:9px; line-height:1.7; letter-spacing:1.6px; font-weight:700; }
.minigame-copy h2 { margin:0 0 20px; color:#3c2e35; font:400 clamp(32px,3.5vw,46px)/1.09 Georgia,serif; letter-spacing:-1.3px; text-wrap:balance; outline:none; }
.minigame-intro { margin:0 0 20px; color:#78666c; font:16px/1.7 Georgia,serif; }
.minigame-instructions { color:#74676b; font-size:12px; line-height:1.7; }
.minigame-progress { margin:26px 0 10px; color:#a06670; font-size:11px; font-weight:700; letter-spacing:.4px; }
.minigame-note { min-height:76px; margin:0; color:#755c65; font:italic 16px/1.6 Georgia,serif; }
.minigame-playarea { position:relative; min-width:0; }
.memory-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.memory-card { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; width:100%; aspect-ratio:.8; min-height:100px; border:1px solid #e7d7d2; border-radius:12px; padding:12px 4px; background:repeating-linear-gradient(45deg,#f4e9e400 0 7px,#f4e9e470 7px 8px),#f9f1ec; color:#b58c8b; box-shadow:0 4px 0 #ecddd580; cursor:pointer; transition:background .2s,border-color .2s,translate .2s; }
.memory-card:not(.matched):hover { translate:0 -3px; border-color:#b58c8b; }
.memory-card.revealed { background:#fffdfa; color:#a36974; border-color:#c7969d; }
.memory-card.matched { background:#eef4ee; border-color:#bccfbd; color:#53745c; cursor:default; box-shadow:none; }
.memory-symbol { font:36px/1 Georgia,serif; }
.memory-name { font-size:10px; line-height:1.4; text-align:center; }
.memory-check { position:absolute; right:10px; top:6px; opacity:0; font-size:12px; }
.matched .memory-check { opacity:1; }
.minigame-overlay button:focus-visible,.minigame-overlay input:focus-visible { outline:3px solid #9b6d7c; outline-offset:4px; }
.mini-primary { display:inline-flex; gap:18px; align-items:center; justify-content:center; min-height:46px; padding:14px 20px; border:0; border-radius:7px; color:#fff9f2; background:#55404b; cursor:pointer; font:600 12px/1.4 'DM Sans',system-ui,sans-serif; }
.mini-primary:hover { background:#775465; }
.mini-primary:disabled { opacity:.6; cursor:default; }
.minigame-bottom { border-top:1px solid #efe6e0; min-height:78px; }
.minigame-bottom > span { color:#8b7a80; font-size:10px; }
.wish-sky { position:relative; height:230px; border-radius:12px; overflow:hidden; background:linear-gradient(#1c21385e,#2f1d3560),url('assets/disney-eiffel.png') center/cover; }
.wish-star { position:absolute; top:24%; color:#fff0c7; font-size:52px; opacity:0; transform:scale(.2); transition:opacity .7s,transform .9s; text-shadow:0 0 24px #efc89e; }
.star-one { left:14%; top:28%; }.star-two { left:42%; top:9%; }.star-three { left:72%; top:30%; }
.wish-star.lit { opacity:1; transform:scale(1); }
.wish-sky-caption { position:absolute; bottom:14px; left:0; width:100%; text-align:center; color:#fff3d8; font-size:8px; letter-spacing:2px; }
.wish-track { position:relative; height:22px; margin:26px 12px 10px; border-radius:20px; background:#efe2db; }
.wish-target { position:absolute; left:32%; width:36%; inset-block:0; border:1px solid #b77988; border-radius:6px; background:#d8acb4; }
.wish-marker { position:absolute; top:-7px; left:0; transform:translateX(-50%); font:30px/1 Georgia,serif; color:#6f364c; text-shadow:0 1px 0 #fff; }
.wish-timing p { color:#816d75; text-align:center; font-size:10px; line-height:1.5; }
.wish-game > .mini-primary { width:100%; margin-top:10px; }
.wish-gentle { display:flex; gap:8px; align-items:center; justify-content:center; padding-top:14px; color:#7b6870; font-size:10px; cursor:pointer; line-height:1.5; }
.wish-gentle input { accent-color:#9b6d7c; width:17px; height:17px; flex-shrink:0; }
.gentle-mode .wish-timing { visibility:hidden; }
.minigame-paused { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; border:1px solid #e6d9d3; border-radius:12px; background:#fffcfaee; backdrop-filter:blur(8px); text-align:center; }
.minigame-paused > span { color:#ba9299; font-size:30px; }
.minigame-paused p { font:italic 20px/1.5 Georgia,serif; color:#80636d; }
.asset-status { max-width:480px; margin:16px auto 0; color:#ead9cd; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.ready-button:disabled { cursor:wait; opacity:.65; }
@media(max-width:680px) {
  .minigame-overlay { padding:14px; align-items:start; }
  .minigame-content { grid-template-columns:1fr; gap:20px; padding:24px; }
  .minigame-top,.minigame-bottom { padding:16px 20px; }
  .minigame-copy h2 { font-size:34px; }
  .minigame-eyebrow { margin-bottom:12px; }
  .minigame-note { min-height:48px; font-size:15px; }
  .minigame-progress { margin-top:14px; }
  .memory-card { aspect-ratio:1; gap:10px; }
  .wish-sky { height:180px; }
}
@media(max-height:620px) and (min-width:681px) {
  .minigame-overlay { padding:12px; }
  .minigame-content { padding:20px 28px; gap:24px; }
  .minigame-top,.minigame-bottom { padding:12px 24px; min-height:54px; }
  .minigame-copy h2 { font-size:32px; }
  .minigame-note { min-height:52px; font-size:14px; }
  .wish-sky { height:150px; }
}
@media(prefers-reduced-motion:reduce) {
  .memory-card,.wish-star { transition:none; }
  .memory-card:not(.matched):hover { translate:none; }
}
