:root{color-scheme:light;--text:#162d50;--muted:#58718e;--stroke:#d4e4f6;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none}
*{box-sizing:border-box}
html,body{height:100%;margin:0;overflow:hidden}
body{color:var(--text);background:radial-gradient(circle at 10% 14%,#9bdfff88 0 14%,transparent 34%),radial-gradient(circle at 92% 82%,#ffd2ab99 0 13%,transparent 33%),linear-gradient(125deg,#bceafa,#adc5ff 48%,#efb8de)}
button,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #326fdf;outline-offset:3px}
[hidden]{display:none!important}
.fc-shell{width:min(960px,calc(100% - 24px));height:calc(100dvh - var(--games-header-height,64px) - 16px);margin:8px auto;min-height:0;display:flex;flex-direction:column;padding:clamp(12px,2vw,24px);border:1px solid #ffffffb8;border-radius:26px;background:linear-gradient(145deg,#ffffffec,#f7f5ffec 60%,#fff3e5ee);box-shadow:0 18px 65px #364b8a27;overflow:hidden}
.fc-menu-screen,.fc-game-screen{height:100%;min-height:0;display:flex;flex-direction:column;position:relative}
.fc-menu-screen{gap:14px}
.fc-settings{z-index:1;display:grid;grid-template-columns:1fr 1.8fr;gap:12px;flex:none}
.fc-settings label{display:grid;gap:4px;color:#395b7c;font-size:clamp(.85rem,1.4vw,1rem);font-weight:750}
.fc-settings select{width:100%;height:clamp(37px,5.8vh,48px);min-width:0;padding:0 12px;color:var(--text);font-size:clamp(.9rem,1.5vw,1.08rem);font-weight:700;background:#fff;border:1px solid var(--stroke);border-radius:13px}
.fc-badge-field{position:relative;flex:1;min-height:0;overflow:hidden;border-radius:20px;background:radial-gradient(ellipse at 40% 45%,#eef5ff,#f6eafa88 65%,transparent)}
.fc-vocab-badge{position:absolute;display:flex;align-items:center;justify-content:center;min-height:0;padding:12px 9px 15px;text-align:center;line-height:1.2;overflow-wrap:anywhere;white-space:normal;transform:rotate(var(--angle));border:1px solid hsl(var(--hue) 55% 77%);border-radius:2px 2px 8px 2px;color:hsl(var(--hue) 30% 28%);background:linear-gradient(155deg,hsl(var(--hue) 94% 89%),hsl(var(--hue) 94% 84%));box-shadow:2px 5px 3px #213a5b20,4px 12px 18px #213a5b14;font-weight:750;pointer-events:none}
.fc-vocab-badge::after{content:"";position:absolute;right:0;bottom:0;width:17px;height:17px;background:linear-gradient(135deg,#00000012 0 49%,#ffffffb0 50% 100%);border-radius:0 0 7px 0;box-shadow:-2px -2px 4px #00000009}
.fc-menu-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:1}
.fc-menu-options{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.fc-menu-options select{min-width:148px;max-width:100%;padding:12px;border:1px solid #d5e2f5;border-radius:12px;background:#fff;color:var(--text);font-weight:750}
.fc-menu-start{margin-bottom:12px;min-width:190px;padding:14px 23px;border:0;border-radius:14px;color:#fff;background:linear-gradient(110deg,#4a80f4,#865ee0);font-weight:850;font-size:1.05rem}
.fc-empty{flex:1;display:grid;place-content:center;text-align:center;gap:10px;color:var(--muted)}
.fc-game-screen{justify-content:center}
.fc-study-panel{position:relative;flex:1;min-height:0;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:clamp(7px,1.4vh,13px);padding:12px;border-radius:20px;background:#ffffff7d;border:1px solid #d9e5fa}
.fc-study-heading{position:relative;width:min(100%,560px);display:block;flex:none}
.fc-stats{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:clamp(3px,.8vw,7px);color:#234fab;font-size:clamp(.59rem,1.25vw,.85rem);font-weight:750}
.fc-stats>span{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;padding:7px 3px;border-radius:11px;background:#e3edff;color:#234fab;white-space:nowrap;text-align:center;line-height:1.15}.fc-stats strong{color:#1c3560;font-weight:900;font-variant-numeric:tabular-nums}
.fc-card{display:block;flex:1;min-height:110px;max-height:400px;width:min(100%,560px);height:auto;padding:0;border:0;border-radius:3px;background:transparent;text-align:inherit;color:inherit;perspective:1600px;position:relative;aspect-ratio:1.7/1}
.fc-card-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.75,.22,1)}
.fc-card.is-flipped .fc-card-inner{transform:rotateX(180deg)}
.fc-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px clamp(12px,3vw,36px);gap:12px;border:1px solid #e5ca71;border-radius:2px 2px 12px 2px;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:3px 5px 1px #26364d13,7px 14px 21px #26364d25;overflow:hidden}
.fc-face::before{content:"";position:absolute;inset:0 0 auto;height:12px;background:linear-gradient(180deg,#ffffff72,transparent);pointer-events:none}.fc-face::after{content:"";position:absolute;right:0;bottom:0;width:29px;height:29px;background:linear-gradient(135deg,#00000012 0 48%,#ffffffbd 50% 100%);clip-path:polygon(0 100%,100% 0,100% 100%);pointer-events:none}.fc-front{background:linear-gradient(148deg,#fff9c9,#ffe98b);color:#4f431e;border-color:#e5ca71}
.fc-back{transform:rotateX(180deg);background:linear-gradient(148deg,#e2f5ff,#addfff);color:#224c70;border-color:#8fc9e8}
.fc-card-type{position:absolute;top:clamp(9px,2.4vh,19px);left:clamp(12px,3vw,27px);right:clamp(12px,3vw,27px);display:flex;align-items:center;justify-content:space-between;color:#76602c;font-size:clamp(.73rem,1.25vw,.96rem);letter-spacing:.1em;font-weight:850}.fc-back .fc-card-type{color:#386e99}
.fc-card-word{width:100%;text-align:center;font-size:clamp(1.45rem,4.8vw,3.6rem);line-height:1.12;letter-spacing:-.03em;font-weight:850;overflow-wrap:anywhere;white-space:normal;text-wrap:balance}
.fc-card-hint{position:absolute;bottom:clamp(8px,2vh,19px);left:12px;right:12px;text-align:center;color:#577296;font-size:clamp(.7rem,1.35vw,.95rem);font-weight:650}
.fc-progress{width:min(100%,560px);align-self:center;height:9px;flex:none;border-radius:30px;background:#dce8fb;overflow:hidden}.fc-progress>div{height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#5487ff,#a26af5);transition:width .25s ease}
.fc-timer{align-self:center;text-align:center;color:#a64726;font-weight:850;font-size:.88rem;line-height:1}
.fc-nav-row{width:min(100%,560px);align-self:center;display:grid;grid-template-columns:minmax(0,1fr) 40px 40px minmax(0,1fr);gap:7px;flex:none}
.fc-nav{display:flex;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:clamp(39px,5.8vh,52px);padding:7px 10px;border:1px solid #d9e5fc;border-radius:13px;background:#fff;color:#4665a7;font-weight:800;font-size:clamp(.83rem,1.6vw,1.05rem)}
.fc-nav:hover:not(:disabled){color:#305fdb;background:#f1f6ff}.fc-nav-row .fc-listen{background:#deedff;color:#245d9d}.fc-icon-only{display:inline-flex;align-items:center;justify-content:center;padding:5px}
.fc-actions{width:min(100%,560px);align-self:center;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;flex:none;margin-top:clamp(22px,6vh,68px)}
.fc-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:clamp(40px,6vh,57px);padding:7px 13px;border-radius:13px;border:1px solid transparent;font-size:clamp(.93rem,1.8vw,1.18rem);font-weight:800;transition:transform .16s,filter .16s}.fc-button:not(:disabled):active{transform:scale(.98)}
.fc-button-outline{color:#7248a6;background:#ece0ff;border-color:#d8c4fa}.fc-button-success{color:#096c55;background:#a3efd6;border-color:#7adfbd}.fc-button-danger{color:#991e33;background:#ffd5de;border-color:#f5a3b5}.fc-button-main{color:#fff;background:linear-gradient(120deg,#4a7ded,#865be1)}.fc-button:hover:not(:disabled){filter:brightness(.97)}
.fc-study-finish{position:absolute;inset:12% 8%;z-index:3;border:1px solid #c7d8f5;border-radius:20px;background:#f8fafff5;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:18px;gap:12px;box-shadow:0 12px 30px #4c6db329}.fc-study-finish h3,.fc-study-finish p{margin:0}.fc-finish-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.fc-paused{position:absolute;inset:0;z-index:6;border-radius:20px;background:#eff5fff4;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px}.fc-paused button{border:0;border-radius:12px;background:#4e79df;color:#fff;padding:12px 22px;font-weight:800}
/* Pause overlay includes the former information dialog content. */
.fc-paused[hidden]{display:none}
.fc-paused{padding:clamp(12px,3vw,28px);overflow:hidden}
.fc-pause-content{width:min(100%,520px);max-height:100%;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:clamp(10px,2vh,17px);padding:clamp(16px,3vw,26px);border:1px solid #cbdaf4;border-radius:20px;background:#ffffffed;box-shadow:0 12px 32px #17385b19;color:#1b365a}
.fc-pause-content h2,.fc-pause-content h3,.fc-pause-content p{margin:0}
.fc-pause-content h2{text-align:center;font-size:clamp(1.22rem,3vw,1.7rem)}
.fc-pause-content h3{font-size:clamp(.97rem,2vw,1.13rem)}
.fc-pause-content p{align-self:stretch;font-size:clamp(.83rem,1.7vw,.98rem);line-height:1.55}
.fc-pause-content button{flex:none;min-height:42px}
@media(max-width:700px){.fc-study-panel{justify-content:flex-start;padding-bottom:clamp(38px,7dvh,60px)}.fc-actions{margin-top:auto}}
@media(max-height:640px) and (max-width:700px){.fc-study-panel{padding-bottom:clamp(24px,5dvh,36px)}}
.fc-info-dialog{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 40px);padding:26px;border:1px solid #cbdaf4;border-radius:20px;background:#fff;color:#1b365a;box-shadow:0 24px 80px #17385b40;font:inherit}.fc-info-dialog::backdrop{background:#172d4a99}.fc-info-dialog h2{margin:0 0 16px;font-size:1.45rem}.fc-info-dialog p{margin:0 0 16px;line-height:1.6}.fc-info-dialog form{text-align:right}.fc-info-dialog form button,.fc-confirm-actions button{border:0;border-radius:12px;background:#4c73e5;color:#fff;padding:11px 22px;font:inherit;font-weight:700;cursor:pointer}.fc-confirm-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.fc-confirm-actions #fcCancelConfirm{background:#e7edf8;color:#315274}
.fc-result-dialog{width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 24px);padding:clamp(12px,2.8vw,24px);text-align:center;overflow:hidden}.fc-result-dialog[open]{display:flex;flex-direction:column;gap:clamp(6px,1.5vh,12px)}.fc-result-dialog h2{position:relative;z-index:1;font-size:clamp(1.5rem,4vw,2.3rem)}
.fc-result-summary{position:relative;z-index:1;margin:0;padding:clamp(10px,2vw,20px);border-radius:15px;background:#eef4ff;font-size:clamp(.86rem,1.4vw,1.05rem);font-weight:650;min-width:0}.fc-result-line{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #d2def1;text-align:left}.fc-result-line:last-child{border-bottom:0}.fc-result-line strong{font-variant-numeric:tabular-nums;color:#173d78}#fcResultSummary{position:relative;z-index:1;display:grid;grid-template-columns:1fr;gap:12px;text-align:left}
.fc-result-actions{position:relative;z-index:1;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:4px;flex:none}.fc-result-actions button{border:0;border-radius:12px;background:#5175df;color:#fff;padding:12px 16px;font:inherit;font-weight:800;cursor:pointer}
.fc-result-dialog .fc-review{margin-top:0;text-align:left;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden}.fc-review h3{margin:0 0 10px;font-size:1.06rem}.fc-review-list{max-height:min(37dvh,340px);flex:1 1 auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto;border:1px solid #d3e0f4;border-radius:12px;background:#fff}.fc-review-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid #e1eaf7;overflow-wrap:anywhere}.fc-review-list li:last-child{border-bottom:0}.fc-review-list strong{color:#234e82;font-weight:750}.fc-result-actions #fcResultPractice{background:#137b64}
.fc-credit{position:fixed;right:9px;bottom:7px;z-index:10;padding:4px 8px;border:1px solid #ffffffad;border-radius:99px;background:#ffffffc9;backdrop-filter:blur(8px);color:#576e91;font-size:.64rem;line-height:1.1;text-decoration:none}.fc-credit:hover{background:#fff;color:#305fdb}
@media(max-width:700px){.fc-shell{width:calc(100% - 12px);height:calc(100dvh - var(--games-header-height,64px) - 12px);margin:6px auto;padding:9px;border-radius:20px}.fc-settings{gap:8px}.fc-settings select{padding-inline:7px}.fc-menu-bottom{flex-direction:column;align-items:stretch}.fc-menu-options{justify-content:center}.fc-menu-options select{flex:1 1 40%;min-width:0;font-size:.88rem}.fc-menu-start{width:100%;margin-bottom:clamp(18px,4vh,34px)}.fc-card-word{font-size:clamp(1.38rem,5.5vw,2.8rem)}.fc-card{border-radius:3px}.fc-face{border-radius:2px 2px 10px 2px}.fc-stats{gap:4px;font-size:clamp(.58rem,1.8vw,.78rem)}.fc-nav-row,.fc-actions{gap:8px}.fc-actions .fc-button{font-size:clamp(.7rem,2.6vw,.9rem)}}
@media(max-width:420px){.fc-shell{padding:8px}.fc-settings{grid-template-columns:1fr 1.5fr;gap:6px}.fc-settings select{font-size:.81rem}.fc-study-panel{padding:7px;gap:7px}.fc-stats{font-size:clamp(.55rem,2.32vw,.68rem);gap:3px}.fc-stats>span{padding:6px 1px;gap:2px;border-radius:7px}.fc-card{min-height:105px;max-height:265px;aspect-ratio:1.65/1}.fc-face{padding:30px 9px}.fc-face::after{width:21px;height:21px}.fc-card-word{font-size:clamp(1.27rem,5.7vw,2.25rem)}.fc-card-hint,.fc-card-type{font-size:.65rem}.fc-nav{padding:5px 3px;font-size:.76rem;gap:4px}.fc-button{font-size:.87rem;padding:6px}.fc-finish-buttons{flex-direction:column;width:100%}.fc-finish-buttons button{width:100%}}
@media(max-height:640px){.fc-shell{padding-top:7px;padding-bottom:7px}.fc-menu-screen{gap:6px}.fc-settings select{height:34px}.fc-menu-options select{padding:6px 9px}.fc-menu-start{padding:10px;margin-bottom:8px}.fc-study-panel{gap:4px;padding:6px}.fc-study-heading{min-height:0}.fc-stats>span{padding-block:4px}.fc-card{min-height:85px;max-height:210px}.fc-progress{height:6px}.fc-card-type{top:7px}.fc-card-hint{bottom:7px}.fc-button,.fc-nav{min-height:34px}}

/* Main game card stage: clipped side-by-side push transitions. */
.fc-card-stage{position:relative;display:block;flex:1;min-height:110px;max-height:400px;width:min(100%,560px);aspect-ratio:1.7/1;overflow:hidden;border-radius:3px;isolation:isolate}
.fc-card-stage>.fc-card{display:block;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;flex:none}
.fc-card-stage>.fc-card-slide-ghost{position:absolute;inset:0;z-index:2;margin:0;pointer-events:none}
.fc-card-stage.is-sliding>.fc-card{pointer-events:none}
@media(max-width:420px){.fc-card-stage{min-height:105px;max-height:265px;aspect-ratio:1.65/1}}
@media(max-height:640px){.fc-card-stage{min-height:85px;max-height:210px}}
.fc-card-stage.is-sliding>.fc-card .fc-card-inner{transition:none}

/* The Designer credit belongs to the menu, not the exercise. */
body:not(.fc-menu) .fc-credit{display:none}
/* The shared header is hidden in fullscreen, as in Hangman. */
:fullscreen .games-header,.games-is-fullscreen .games-header{display:none!important}
:fullscreen .fc-shell,.games-is-fullscreen .fc-shell{height:calc(100dvh - 16px)}
.fc-fullscreen-exit{display:none;position:fixed;top:max(12px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));z-index:1001;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid #e1e4f5;border-radius:12px;background:#fff;color:#263251;box-shadow:0 6px 24px #15214c20}
:fullscreen .fc-fullscreen-exit:not([hidden]),.games-is-fullscreen .fc-fullscreen-exit:not([hidden]){display:flex}
@media(max-width:420px){.fc-result-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.fc-result-actions{gap:6px}.fc-result-actions button{padding:9px 10px;font-size:.86rem}.fc-result-dialog .fc-review-list li{padding:8px 10px}}
@media(max-height:560px){.fc-result-dialog{max-height:calc(100dvh - 12px);padding:10px}.fc-result-dialog h2{font-size:1.22rem;margin-bottom:4px}.fc-result-line{padding:4px 0}.fc-result-summary{padding:7px 12px}.fc-result-actions button{padding:7px 10px}.fc-result-dialog .fc-review h3{margin-bottom:4px}}

#gradeSelect{width:min(300px,100%);max-width:300px}
#gradeSelect option{font-size:14px;padding:3px 8px}
