/* Himika and the Frost Castle: an ice-magic castle adventure. */
.fc-wrap{max-width:min(1140px,max(560px,calc((100vh - 112px) * 1.6)));margin:0 auto}
.fc-tip{display:none;margin:8px 0 0;text-align:center;font-size:12.5px;font-weight:700;color:var(--faint)}
.fc-stage{position:relative;overflow:hidden;border-radius:14px;background:#050a1c;aspect-ratio:960/600;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.fc-canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:manipulation}
.fc-stage.is-paused .fc-canvas{filter:brightness(.55)}
.fc-hud{position:absolute;left:10px;right:10px;top:8px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;pointer-events:none;color:#eaf6ff}
.fc-hud[hidden],.fc-book[hidden],.fc-help[hidden],.fc-card[hidden]{display:none}
.fc-left{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.fc-hearts{display:flex;gap:3px;background:rgba(6,14,36,.6);border-radius:99px;padding:3px 10px;font-size:22px;line-height:1.1}
.fc-hearts i{font-style:normal;color:#ff6f8f;text-shadow:0 0 10px rgba(255,111,143,.6)}.fc-hearts i.lost{color:rgba(255,255,255,.2);text-shadow:none}
.fc-room{font:600 13px var(--display);background:rgba(6,14,36,.6);border-radius:99px;padding:3px 12px;letter-spacing:.02em}
.fc-mid{flex:1;max-width:460px;display:flex;justify-content:center}
.fc-msg{display:none;font:700 14px/1.4 'Public Sans',sans-serif;color:#2a2008;background:linear-gradient(#fff3cf,#f2dca0);border-radius:12px;padding:7px 14px;text-align:center;box-shadow:0 3px 14px rgba(0,0,0,.45),inset 0 0 0 2px #c9a24a}
.fc-msg.on{display:block}.fc-msg.vox{pointer-events:auto;cursor:pointer}.fc-msg.vox::after{content:' \1F50A';font-size:13px}.fc-msg b{color:#7a2a2a}
.fc-btns{display:flex;gap:6px;pointer-events:auto}
.fc-btn{border:0;border-radius:999px;padding:7px 13px;background:rgba(6,14,36,.62);color:#fff;font-weight:700;font-size:12.5px}
.fc-btn:hover{background:rgba(40,70,120,.85)}
.fc-book{position:absolute;left:10px;right:10px;bottom:8px;display:flex;gap:6px;justify-content:center}
.fc-sp{position:relative;flex:1;max-width:132px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:14px;padding:7px 8px;background:rgba(8,18,44,.82);color:#fff;font:600 14px var(--display);box-shadow:inset 0 0 0 2px rgba(var(--c),.55);transition:transform .08s,background .15s}
.fc-sp i{font-style:normal;font-size:22px;line-height:1}
.fc-sp u{position:absolute;top:2px;right:7px;text-decoration:none;font:800 9px 'Public Sans',sans-serif;opacity:.55}
.fc-sp:hover{background:rgba(24,48,96,.9)}.fc-sp:active{transform:scale(.94)}
.fc-sp.on{background:rgba(24,52,104,.92);box-shadow:inset 0 0 0 2.5px rgb(var(--c)),0 0 14px rgba(var(--c),.5)}
.fc-sp.hint{animation:fcHint .7s ease-in-out infinite alternate}
@keyframes fcHint{from{box-shadow:inset 0 0 0 2.5px rgb(var(--c)),0 0 6px rgba(var(--c),.4)}to{box-shadow:inset 0 0 0 3px #fff,0 0 22px rgba(var(--c),1)}}
.fc-book.cooling .fc-sp{opacity:.78}
.fc-help{position:absolute;right:16px;bottom:84px;border:0;border-radius:999px;padding:12px 28px;font:800 18px var(--display);background:linear-gradient(#ffd1de,#f48aa8);color:#4a1226;box-shadow:0 6px 20px rgba(0,0,0,.5);animation:fcPulse .8s ease-in-out infinite alternate}
@keyframes fcPulse{from{transform:scale(1)}to{transform:scale(1.07)}}
.fc-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(620px,94%);max-height:94%;overflow:auto;padding:22px 26px;border-radius:20px;background:rgba(8,16,40,.94);box-shadow:0 12px 40px rgba(0,0,0,.6),inset 0 0 0 1.5px rgba(143,224,255,.32);text-align:center;color:#e6f0ff}
.fc-card h2{margin:0 0 6px;font-size:36px;line-height:1.05;color:#bfeeff;text-shadow:0 0 18px rgba(143,224,255,.55)}
.fc-sub{margin:0 0 12px;font-size:14.5px;line-height:1.55;color:#c8d8ee}.fc-sub em{font-style:normal;color:#ffe36a}
.fc-field{margin:10px 0}
.fc-field>span,.fc-howh{display:block;font:800 11px 'Public Sans',sans-serif;letter-spacing:.09em;text-transform:uppercase;color:#8fb0d8;margin-bottom:6px}
.fc-howh{margin:14px 0 6px;text-align:left}
.fc-rooms{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.fc-rbtn{border:0;border-radius:12px;padding:6px 12px;background:rgba(255,255,255,.08);color:#fff;line-height:1.15;min-width:84px}
.fc-rbtn b{display:block;font:800 17px var(--display)}.fc-rbtn small{display:block;font-size:10.5px;color:#9db6d6;font-weight:700}
.fc-rbtn[aria-pressed="true"]{background:rgba(143,224,255,.2);box-shadow:inset 0 0 0 2px #8fe0ff}
.fc-bestline{margin:2px 0 6px;font-weight:700;font-size:12.5px;color:#ffe36a;min-height:0}.fc-bestline:empty{display:none}
.fc-go{font-size:19px;padding:12px 30px;margin-top:4px}
.fc-list,.fc-how{list-style:none;margin:0;padding:0;text-align:left;font-size:13.5px;line-height:1.5;color:#c8d8ee}
.fc-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}
.fc-list li{display:flex;gap:8px;align-items:flex-start;background:rgba(255,255,255,.05);border-radius:10px;padding:6px 8px;box-shadow:inset 0 0 0 1.5px rgba(var(--c),.4)}
.fc-list i{font-style:normal;font-size:20px;line-height:1.2}.fc-list b{color:#fff}.fc-list em{font-style:normal;color:#b6c8e4;font-size:12.5px}
.fc-how li{position:relative;padding-left:20px;margin-bottom:4px}.fc-how li::before{content:'\2744';position:absolute;left:0;color:#8fe0ff}.fc-how b{color:#fff}
.fc-stars{font-size:44px;letter-spacing:6px;margin:4px 0 8px;line-height:1}
.fc-star{color:rgba(255,255,255,.18)}.fc-star.on{color:#ffd24a;text-shadow:0 0 14px rgba(255,210,74,.7)}
.fc-btnrow{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:6px}
.fc-btnrow .g-btn.ghost{color:#8fe0ff;box-shadow:inset 0 0 0 2px #8fe0ff}.fc-btnrow .g-btn.ghost:hover{background:rgba(143,224,255,.12)}
.fc-lang{display:flex;gap:6px;justify-content:center;margin:0 0 10px}
.fc-lang button{border:0;border-radius:999px;padding:5px 14px;background:rgba(255,255,255,.08);color:#fff;font-weight:700;font-size:13px}
.fc-lang button[aria-pressed="true"]{background:rgba(143,224,255,.2);box-shadow:inset 0 0 0 2px #8fe0ff}
.fc-wrap.bn *{font-family:'Noto Sans Bengali','Public Sans',sans-serif}
.fc-wrap.bn .fc-card h2{font-weight:600;letter-spacing:0}
.fc-wrap.bn .fc-field>span,.fc-wrap.bn .fc-howh{letter-spacing:0;text-transform:none;font-size:13px}
.fc-wrap.bn .fc-how{font-size:14px;line-height:1.7}.fc-wrap.bn .fc-msg{font-size:15px}

@media (max-width:640px) and (orientation:portrait){.fc-tip{display:block}}
@media (max-width:640px){
  .fc-stage{aspect-ratio:auto;display:flex;flex-direction:column}
  .fc-canvas{height:auto}
  .fc-hud{position:static;order:-1;padding:6px 6px 4px;gap:6px;flex-wrap:wrap;align-items:center}
  .fc-left{flex-direction:row;align-items:center;gap:6px;flex-wrap:wrap}
  .fc-hearts{font-size:15px;padding:2px 8px}.fc-room{font-size:10.5px;padding:2px 8px}.fc-btn{padding:5px 9px;font-size:11px}
  .fc-mid{order:3;flex-basis:100%;max-width:none}.fc-msg{display:block;visibility:hidden;min-height:44px;box-sizing:border-box;display:flex;align-items:center;justify-content:center}.fc-msg.on{visibility:visible}.fc-msg{font-size:12px;padding:5px 10px}
  .fc-book{position:static;flex-wrap:wrap;padding:8px;gap:6px}.fc-sp{max-width:none;flex:1 1 30%;padding:8px 6px;font-size:13px}
  .fc-help{position:static;transform:none;display:block;margin:6px auto 0;animation:none}
  .fc-card{position:relative;left:auto;top:auto;transform:none;width:auto;max-height:none;margin:8px;border-radius:14px;padding:12px 14px}
  .fc-card h2{font-size:26px}.fc-sub{font-size:12.5px}.fc-list{grid-template-columns:1fr}.fc-how{font-size:12px}.fc-go{font-size:16px;padding:9px 22px}.fc-stars{font-size:32px}
}

/* fit to the window: the stage also shrinks to the height of the window, and the Fullscreen button fills the whole screen */
.fc-fsrow{display:flex;justify-content:center;margin:-2px 0 10px}.fc-fsrow[hidden],.fc-btn[hidden]{display:none}
.fc-fsbtn{border:0;border-radius:999px;padding:5px 14px;background:rgba(255,255,255,.08);color:#fff;font-weight:700;font-size:13px}
.fc-fsbtn:hover{background:rgba(255,255,255,.16)}
.fc-wrap:fullscreen{max-width:none;width:100vw;height:100vh;margin:0;display:flex;align-items:center;justify-content:center;background:#050a1c}
.fc-wrap:fullscreen .fc-stage{width:min(100vw,160vh);border-radius:0}.fc-wrap:fullscreen .fc-tip{display:none}
.fc-wrap:-webkit-full-screen{max-width:none;width:100vw;height:100vh;margin:0;display:flex;align-items:center;justify-content:center;background:#050a1c}
.fc-wrap:-webkit-full-screen .fc-stage{width:min(100vw,160vh);border-radius:0}.fc-wrap:-webkit-full-screen .fc-tip{display:none}

/* the spellbook list and the how-to fold away in the start card */
.fc-det{margin:10px 0 0;text-align:left}
.fc-det>summary{cursor:pointer;margin:0;padding:8px 2px;list-style:none;display:flex;align-items:center;gap:8px;user-select:none}
.fc-det>summary::-webkit-details-marker{display:none}
.fc-det>summary::before{content:'\25B8';font-size:12px;color:#8fe0ff;transition:transform .15s}
.fc-det[open]>summary::before{transform:rotate(90deg)}
.fc-det>summary:hover{color:#bfeeff}
.fc-det[open]{padding-bottom:6px}

/* a compact start card: language and fullscreen share one line and the Begin button stays in view */
.fc-card{padding:16px 22px 0}
.fc-lang,.fc-fsrow{display:inline-flex;margin:0 3px 8px;vertical-align:middle}
.fc-lang button{padding:4px 12px;font-size:12px}.fc-fsbtn{padding:4px 12px;font-size:12px}
.fc-card h2{font-size:30px;margin-bottom:4px}
.fc-sub{font-size:13px;line-height:1.45;margin-bottom:8px}
.fc-field{margin:6px 0}
.fc-foot{position:sticky;bottom:0;z-index:3;margin:10px -22px 0;padding:12px 22px 14px;background:linear-gradient(180deg,rgba(8,16,40,0),rgba(8,16,40,.97) 34%)}
.fc-foot .fc-go{width:100%;margin:0;font-size:18px;padding:11px 20px}
@media (max-width:640px){.fc-card{padding:12px 14px 0}.fc-foot{margin:8px -14px 0;padding:10px 14px 12px}}
