@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-ext-400-normal-CuPM9foi.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-400-normal-xaE7D4Sw.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-cyrillic-400-normal-xAOo5cBP.woff2) format("woff2"),url(/assets/nunito-cyrillic-400-normal-D1j0u8EH.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-vietnamese-400-normal-BHkVbP3T.woff2) format("woff2"),url(/assets/nunito-vietnamese-400-normal-DtOtW02z.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-ext-400-normal-i-8OOpdj.woff2) format("woff2"),url(/assets/nunito-latin-ext-400-normal-CjMJVfGn.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/nunito-latin-400-normal-r8SDr6Up.woff2) format("woff2"),url(/assets/nunito-latin-400-normal-DKg4f3fz.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2) format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2) format("woff2"),url(/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2) format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2) format("woff2"),url(/assets/nunito-cyrillic-800-normal-DymMgApb.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2) format("woff2"),url(/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2) format("woff2"),url(/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format("woff2"),url(/assets/nunito-latin-800-normal-D-J0wlBY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-cyrillic-ext-900-normal-BLeVovcl.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-900-normal-DKFql_-q.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-cyrillic-900-normal-CWPcV0_V.woff2) format("woff2"),url(/assets/nunito-cyrillic-900-normal-Dr1fjxoU.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-vietnamese-900-normal-D6LWQAy_.woff2) format("woff2"),url(/assets/nunito-vietnamese-900-normal-WV2-fBew.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-latin-ext-900-normal-Dllsvgjo.woff2) format("woff2"),url(/assets/nunito-latin-ext-900-normal-CTBZd6bf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/nunito-latin-900-normal-BVB1fGs6.woff2) format("woff2"),url(/assets/nunito-latin-900-normal-CVn49sIn.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--duo-green: #58cc02;--duo-green-dark: #58a700;--duo-green-soft: #d7ffb8;--duo-blue: #1cb0f6;--duo-blue-dark: #1899d6;--duo-red: #ff4b4b;--duo-red-soft: #ffdfe0;--duo-yellow: #ffc800;--duo-yellow-soft: #fff4b8;--board-highlight-fill: rgba(255, 200, 0, .42);--board-highlight-soft: rgba(255, 200, 0, .24);--board-highlight-ring: rgba(138, 111, 0, .24);--duo-ink: #3c3c3c;--duo-muted: #777777;--duo-line: #e5e5e5;--duo-bg: #f7f7f7;--duo-white: #ffffff;color:var(--duo-ink);background:var(--duo-bg);font-family:Nunito,ui-rounded,Arial Rounded MT Bold,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{margin:0;min-width:320px;min-height:100%}button{font:inherit}code{border-radius:10px;background:#eef7e8;color:var(--duo-green-dark);padding:.12rem .42rem;font-weight:800}.app{height:100svh;overflow-y:auto;background:linear-gradient(180deg,#ffffff 0,var(--duo-bg) 46%),var(--duo-bg);padding:clamp(16px,3vw,34px)}.app-center{display:grid;place-items:center}.course-app{display:grid;align-content:start;gap:clamp(18px,3vw,30px)}.course-header{display:grid;width:min(100%,1040px);gap:14px;margin:0 auto}.course-header h1{max-width:900px}.course-header p{max-width:720px;margin:0;color:var(--duo-muted);font-size:1.1rem;font-weight:800;line-height:1.45}.chapter-grid{display:grid;width:min(100%,1040px);gap:14px;margin:0 auto}.chapter-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;border:2px solid var(--duo-line);border-radius:22px;background:var(--duo-white);box-shadow:0 6px #e0e0e0;padding:18px}.chapter-card.ready{border-color:#a6e96d;box-shadow:0 6px #9ed36f}.chapter-number{display:grid;width:48px;height:48px;place-items:center;border:2px solid var(--duo-line);border-radius:16px;background:#f8f8f8;color:var(--duo-green-dark);font-size:1.35rem;font-weight:900}.chapter-copy{display:grid;gap:5px}.chapter-copy h2{margin:0;color:var(--duo-ink);font-size:clamp(1.15rem,3vw,1.55rem);font-weight:900;line-height:1.05}.chapter-copy p{margin:0;color:var(--duo-ink);font-weight:800;line-height:1.35}.chapter-copy span{color:var(--duo-muted);font-size:.86rem;font-weight:900}.phase-panel{display:grid;width:min(100%,1040px);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 auto}.phase-panel div{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;border:2px solid var(--duo-line);border-radius:18px;background:var(--duo-white);padding:14px 16px}.phase-panel strong{font-weight:900}.phase-panel span{color:var(--duo-muted);font-weight:800}.quiz-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(320px,760px);gap:clamp(18px,3vw,36px);align-items:center;justify-content:center;min-height:calc(100vh - clamp(32px,6vw,68px))}.lesson-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(360px,820px);gap:clamp(18px,3vw,34px);align-items:start;justify-content:center;min-height:calc(100vh - clamp(32px,6vw,68px))}.question-area{display:grid;gap:16px}.static-board-area{width:min(100%,520px);justify-self:center}.static-board-shell{box-shadow:0 6px #67964f}.question-panel{display:grid;gap:18px;border:2px solid var(--duo-line);border-radius:22px;background:var(--duo-white);box-shadow:0 8px #e0e0e0;padding:clamp(18px,3vw,24px)}.question-head{display:grid;gap:8px}.question-context{color:var(--duo-green-dark);font-size:1rem;font-weight:900;line-height:1.2}.question-head h2{margin:0;color:var(--duo-ink);font-size:clamp(1.45rem,4vw,2.25rem);font-weight:900;line-height:1.08}.question-highlight{color:var(--duo-green-dark);-webkit-box-decoration-break:clone;box-decoration-break:clone}.choice-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice-button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;width:100%;border:2px solid var(--duo-line);border-bottom:4px solid #d0d0d0;border-radius:16px;background:var(--duo-white);color:var(--duo-ink);cursor:pointer;padding:14px;text-align:left}.choice-button.selected{border-color:var(--duo-blue);background:#eef8ff}.choice-button.correct{border-color:#a6e96d;background:var(--duo-green-soft)}.choice-button.wrong{border-color:#ffb7b7;background:var(--duo-red-soft)}.choice-button.missed{border-color:#f0df89;background:var(--duo-yellow-soft)}.choice-button:active{transform:translateY(2px);border-bottom-width:2px}.choice-marker{display:grid;width:28px;height:28px;place-items:center;border:2px solid currentColor;border-radius:999px;color:var(--duo-blue-dark);font-weight:900;line-height:1}.choice-text{display:grid;gap:6px;min-width:0}.choice-text strong{font-size:1rem;font-weight:900;line-height:1.25}.choice-gloss{color:#6f7a83;font-size:.78rem;font-weight:800;line-height:1.15}.choice-text small{color:var(--duo-muted);font-size:.88rem;font-weight:800;line-height:1.35}.explanation-panel{display:grid;gap:6px;border:2px solid #f0df89;border-radius:16px;background:var(--duo-yellow-soft);padding:14px}.explanation-panel strong{color:#8a6f00;font-weight:900}.explanation-panel p{margin:0;color:var(--duo-ink);font-weight:800;line-height:1.4}.question-actions{display:flex;justify-content:flex-end}.side-panel,.result-panel,.empty-panel{border:2px solid var(--duo-line);border-radius:22px;background:var(--duo-white);box-shadow:0 8px #e0e0e0;padding:24px}.side-panel{display:flex;min-height:0;flex-direction:column;gap:18px;justify-content:flex-start}.eyebrow{margin:0 0 8px;color:var(--duo-green-dark);font-size:.78rem;font-weight:900;letter-spacing:0;text-transform:uppercase}h1{margin:0;color:var(--duo-ink);font-size:clamp(2rem,6vw,4rem);font-weight:900;letter-spacing:0;line-height:.95}.stat-stack{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat-card{display:grid;align-items:center;gap:2px;border:2px solid var(--duo-line);border-radius:18px;background:var(--duo-white);padding:10px 12px}.stat-card span,.meta span,.theme-info span,.result-grid span,.top-bar span{color:var(--duo-muted);font-size:.82rem;font-weight:900}.stat-card strong,.meta strong,.theme-info strong,.result-grid strong{color:var(--duo-ink);font-size:1.28rem;font-weight:900}.stat-card strong{font-size:1.2rem}.feedback{display:flex;align-items:center;gap:10px;min-height:60px;border:2px solid transparent;border-radius:18px;padding:14px;font-weight:900}.feedback.idle{border-color:#f0df89;background:var(--duo-yellow-soft);color:#8a6f00}.feedback.correct,.feedback.complete{border-color:#a6e96d;background:var(--duo-green-soft);color:#2f7d00}.feedback.wrong{border-color:#ffb7b7;background:var(--duo-red-soft);color:#d33131}.meta{display:flex;flex-wrap:wrap;gap:8px 14px;border-top:2px solid var(--duo-line);padding-top:10px}.meta div{display:flex;align-items:baseline;gap:5px}.meta span,.meta strong{color:#999;font-size:.78rem;line-height:1.2}.meta strong{font-weight:900}.theme-info{display:grid;gap:4px}.theme-info div{display:grid;gap:2px}.theme-info strong{color:var(--duo-ink);font-size:1.2rem;line-height:1.1}.spacer{flex:1;min-height:4px}.hint-actions{display:grid;gap:10px}.hint-button{min-height:44px;border:2px solid var(--duo-line);border-bottom:4px solid #d0d0d0;border-radius:15px;background:var(--duo-white);color:var(--duo-blue-dark);cursor:pointer;font-weight:900;text-transform:uppercase}.icon-hint-button{display:grid;place-items:center;padding:0}.hint-button.danger{color:var(--duo-red)}.hint-button:disabled{background:#f2f2f2;color:#b7b7b7;cursor:not-allowed}.hint-button:not(:disabled):active{transform:translateY(2px);border-bottom-width:2px}.primary-button,.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:0;border-radius:16px;cursor:pointer;font-weight:900;text-transform:uppercase}.primary-button{border-bottom:4px solid var(--duo-green-dark);background:var(--duo-green);color:#fff;padding:13px 18px}.retry-primary{border-bottom-color:#c93232;background:var(--duo-red)}.success-primary{box-shadow:0 0 0 1px #ffffff24 inset}.primary-button:disabled{border-bottom-color:#d0d0d0;background:#e5e5e5;color:#a7a7a7;cursor:not-allowed}.primary-button:active,.ghost-button:active{transform:translateY(2px);border-bottom-width:2px}.primary-button:disabled:active{transform:none;border-bottom-width:4px}.ghost-button{border:2px solid var(--duo-line);border-bottom:4px solid #d0d0d0;background:var(--duo-white);color:var(--duo-muted);padding:12px 16px}.compact-button{min-height:40px;justify-self:start;padding:9px 13px}.board-area{width:min(100%,calc(100vh - 118px),760px)}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.top-bar span{font-size:.9rem;font-weight:900}.turn-badge{display:inline-flex;align-items:center;min-height:32px;border:2px solid var(--duo-line);border-radius:999px;background:var(--duo-white);padding:5px 12px}.turn-badge.white{border-color:#d4d4d4;color:#3c3c3c}.turn-badge.black{border-color:#4b4b4b;background:#3c3c3c;color:#fff}.move-nav{display:inline-flex;gap:6px}.move-nav button{display:grid;width:34px;height:34px;place-items:center;border:2px solid var(--duo-line);border-bottom:4px solid #d0d0d0;border-radius:12px;background:var(--duo-white);color:var(--duo-muted);cursor:pointer}.move-nav button:disabled{background:#f2f2f2;color:#c7c7c7;cursor:not-allowed}.move-nav button:not(:disabled):active{transform:translateY(2px);border-bottom-width:2px}.board-shell{border:2px solid #82b866;border-radius:22px;background:#82b866;box-shadow:0 8px #67964f;padding:10px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.board-shell.thinking{border-color:var(--duo-yellow);box-shadow:0 8px #67964f,0 0 0 5px var(--board-highlight-soft);transform:translateY(-1px)}.board{position:relative;display:grid;overflow:hidden;aspect-ratio:1;width:100%;grid-template-columns:repeat(8,minmax(0,1fr));border-radius:14px;touch-action:none;-webkit-user-select:none;user-select:none}.board-arrow-layer{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;width:100%;height:100%;color:var(--duo-yellow);opacity:.58;pointer-events:none}.board-arrow-shaft{stroke:currentColor;stroke-linecap:round;stroke-width:1.8}.board-arrow-head{fill:currentColor}.square{position:relative;display:grid;aspect-ratio:1;place-items:center;border:0;padding:0;cursor:default;touch-action:none;-webkit-user-select:none;user-select:none}.square.movable{cursor:grab}.square.movable:active,.square.drag-source{cursor:grabbing}.square.move-target,.square.capture-target,.square.drop-target{cursor:pointer}.board-shell.thinking .square{cursor:wait}.square.light{background:#f4f8e9}.square.dark{background:#a7c985}.square.selected-square:after,.square.drag-source:after,.square.last-move:after,.square.hint-source:after,.square.shown-move:after,.square.structure-square:after{position:absolute;z-index:1;top:2%;right:2%;bottom:2%;left:2%;border-radius:6px;background:var(--board-highlight-fill);box-shadow:inset 0 0 0 1px var(--board-highlight-ring);content:""}.square.move-target:before{position:absolute;z-index:1;width:28%;height:28%;border-radius:50%;background:var(--board-highlight-fill);content:""}.square.drag-over-square:before{z-index:3;width:72%;height:72%;border:3px solid rgba(255,255,255,.72);background:#50505057;box-shadow:0 0 0 2px #3c3c3c1f}.square.capture-target:before{width:76%;height:76%;border:3px solid var(--board-highlight-fill);background:transparent}.square.invalid-move-square:after{position:absolute;z-index:2;top:2%;right:2%;bottom:2%;left:2%;border-radius:6px;background:#ff4b4b57;box-shadow:inset 0 0 0 3px #cf2424a3;content:""}.piece{position:relative;z-index:2;display:block;width:92%;height:92%;filter:contrast(1.08) drop-shadow(0 1px 1px rgba(0,0,0,.16));object-fit:contain;pointer-events:none;transition:filter .12s ease,opacity 80ms ease,transform .12s ease;-webkit-user-select:none;user-select:none}.dark .piece{filter:contrast(1.08) drop-shadow(0 1px 1px rgba(0,0,0,.14))}.square.selected-square .piece,.square.drag-source .piece{filter:contrast(1.12) drop-shadow(0 2px 2px rgba(0,0,0,.18));transform:scale(1.05)}.square.drag-source .piece,.square.animated-move-source .piece{opacity:0}.invalid-ghost-piece{position:absolute;z-index:4}.invalid-move-x{position:absolute;z-index:5;display:grid;width:54%;height:54%;place-items:center;border:3px solid #ffffff;border-radius:999px;background:#ff4b4be6;color:#fff;filter:drop-shadow(0 2px 2px rgba(0,0,0,.28));pointer-events:none}.drag-piece-preview,.moving-piece-preview{position:absolute;z-index:20;width:14.375%;height:14.375%;object-fit:contain;pointer-events:none;transform:translate(-50%,-50%) scale(1.26);filter:contrast(1.12) drop-shadow(0 8px 9px rgba(0,0,0,.34))}.moving-piece-preview{left:var(--from-x);top:var(--from-y);animation:opponent-piece-move .26s ease-out forwards;transform:translate(-50%,-50%) scale(1.04)}@keyframes opponent-piece-move{0%{left:var(--from-x);top:var(--from-y)}to{left:var(--to-x);top:var(--to-y)}}.coordinate{position:absolute;z-index:1;color:#3c3c3c94;font-size:clamp(.55rem,1.4vw,.78rem);font-weight:900;pointer-events:none}.file-label{right:6px;bottom:4px}.rank-label{top:4px;left:6px}.result-panel,.empty-panel{display:grid;width:min(92vw,560px);gap:20px;justify-items:start}.result-panel h1,.empty-panel h1{font-size:clamp(2.2rem,8vw,4.6rem)}.result-grid{display:grid;width:100%;grid-template-columns:repeat(3,1fr);gap:12px}.result-grid div{display:grid;gap:6px;border:2px solid var(--duo-line);border-radius:18px;background:var(--duo-white);padding:15px}.loader{color:var(--duo-muted);font-size:1.05rem;font-weight:900}.error-text{color:var(--duo-red);font-weight:900}.quiz-app{display:grid;height:100svh;min-height:0;background:#24211f;padding:8px;overflow:hidden}.mobile-quiz-shell{display:grid;width:min(100%,760px);height:calc(100svh - 16px);min-height:0;grid-template-rows:auto minmax(0,1fr) minmax(0,auto) auto;gap:6px;margin:0 auto}.mobile-quiz-top{display:grid;padding:2px 0 0}.mobile-top-row,.bottom-action-bar{display:flex;align-items:center;gap:8px}.mobile-top-row{justify-content:flex-start}.top-left-cluster{display:flex;min-width:0;flex:1;align-items:center;gap:8px}.chapter-pill{display:inline-flex;min-width:0;max-width:min(74vw,520px);min-height:34px;align-items:center;overflow:hidden;border:0;border-radius:8px;background:transparent;color:#f5f3ef;font-size:.82rem;font-weight:900;line-height:1;padding:6px 2px;text-overflow:ellipsis;white-space:nowrap}.quiz-progress{display:flex;min-width:0;flex:0 0 auto;justify-content:flex-end;gap:6px}.quiz-progress span{display:inline-flex;min-height:34px;align-items:center;border:0;border-radius:8px;background:#ffffff1a;color:#e7e1d9;font-size:.78rem;font-weight:900;line-height:1;padding:6px 9px;white-space:nowrap}.mobile-question-head{display:grid;min-height:78px;align-content:start;gap:4px}.mobile-question-head .eyebrow{margin:0;font-size:.72rem}.mobile-question-head h1{min-height:52px;margin:0;color:var(--duo-ink);font-size:1.35rem;font-weight:900;letter-spacing:0;line-height:1.12}.mobile-board-stage{display:grid;overflow:hidden;min-height:0;place-items:start center;margin-top:4px}.mobile-board-stage .static-board-area{max-width:min(100%,640px);max-height:100%;width:auto;height:auto;aspect-ratio:1 / 1}.tactic-board-stage .board-area{max-width:min(100%,720px);max-height:100%;width:auto;height:auto;aspect-ratio:1 / 1}.mobile-answer-dock,.mobile-answer-dock-middle,.tactic-dock-middle{display:flex;flex-direction:column;gap:6px;height:auto;min-height:0;max-height:min(31svh,178px);overflow-y:auto;overscroll-behavior:contain;border:0;border-radius:8px;background:transparent;padding:4px 0 0;scrollbar-width:thin}.prompt-card{position:relative;display:grid;height:58px;min-height:58px;align-content:center;margin-top:4px;border:0;border-radius:10px;background:#fff;box-shadow:0 4px #00000038;padding:7px 12px}.prompt-card:before{position:absolute;top:-6px;left:28px;width:14px;height:14px;background:#fff;content:"";transform:rotate(45deg)}.prompt-card h1{position:relative;z-index:1;display:-webkit-box;overflow:hidden;min-height:0;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0;color:var(--duo-ink);font-size:.96rem;font-weight:900;letter-spacing:0;line-height:1.08}.status-card.correct,.status-card.wrong{height:58px;min-height:58px;align-content:center;gap:4px}.status-title{position:relative;z-index:1;display:flex;align-items:center;gap:8px}.status-title strong{color:var(--duo-ink);font-size:1.02rem;font-weight:900;line-height:1}.prompt-status-icon{display:inline-grid;width:28px;height:28px;flex:0 0 auto;place-items:center;border-radius:999px;color:#fff}.status-card.correct .prompt-status-icon{background:var(--duo-green-dark)}.status-card.wrong .prompt-status-icon{background:var(--duo-red)}.status-message{position:relative;z-index:1;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin:0;color:var(--duo-ink);font-size:.82rem;font-weight:800;line-height:1.16}.turn-prompt{display:flex;align-items:center;gap:8px}.turn-prompt.black{color:#2f2f2f}.turn-dot{width:18px;height:18px;flex:0 0 auto;border:2px solid #4b4b4b;border-radius:999px}.turn-dot.white{background:#fff}.turn-dot.black{background:#3c3c3c}.theme-info{overflow:hidden;min-height:58px;max-height:58px;border:2px solid var(--duo-line);border-radius:8px;background:#fafafa;padding:8px 10px}.theme-info strong{font-size:.95rem;line-height:1.15}.bottom-info-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr);gap:8px;align-items:stretch}.fixed-explanation{min-height:58px;max-height:58px;overflow:auto;margin:0;border:2px solid var(--duo-line);border-radius:8px;background:#fafafa;color:var(--duo-muted);font-size:.82rem;font-weight:800;line-height:1.25;padding:8px 10px}.bottom-action-bar{justify-content:space-between}.run-status-row{display:flex;grid-column:1 / -1;min-height:30px;align-items:center;gap:8px}.run-progress-bar{position:relative;display:grid;min-width:0;height:18px;flex:1 1 auto;align-items:center;overflow:hidden;border-radius:999px;background:#ffffff29}.run-progress-bar span{position:absolute;z-index:1;inset:0 auto 0 0;display:block;height:100%;border-radius:inherit;background:var(--duo-green);box-shadow:0 0 0 1px #ffffff29 inset}.run-progress-bar strong{position:relative;z-index:2;color:#fff;font-size:.78rem;font-weight:900;line-height:1;text-align:center;text-shadow:0 1px 1px rgba(0,0,0,.32)}.stat-chip{display:inline-flex;min-height:30px;flex:0 0 auto;align-items:center;gap:4px;color:#d7d0c8;font-size:.88rem;font-weight:900;line-height:1}.stat-chip svg{color:#d7d0c8b8}.action-primary{flex:1}.action-icon-button{display:inline-grid;min-width:58px;height:44px;min-height:44px;place-items:center;border:0;background:transparent;color:#b8b2aa;cursor:pointer;font-weight:900;gap:3px}.action-icon-button span{font-size:.68rem;line-height:1}.mobile-quiz-shell .primary-button{height:44px;min-height:44px;border-radius:14px;padding:10px 14px}.mobile-quiz-shell .primary-button:active,.mobile-quiz-shell .action-icon-button:not(:disabled):active,.mobile-quiz-shell .choice-button:active{transform:none}.fixed-bottom-bar{display:flex;flex-direction:column;gap:6px;background:#24211f;padding-top:4px;padding-bottom:2px}.action-icon-button:disabled{color:#b8b2aa5c;cursor:not-allowed}.action-icon-button:not(:disabled):active{transform:translateY(2px)}.icon-button{display:inline-grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border:0;border-bottom:0;border-radius:8px;background:transparent;color:#b8b2aa;cursor:pointer}.icon-button:disabled{background:transparent;color:#b8b2aa5c;cursor:not-allowed}.icon-button:not(:disabled):active{transform:translateY(2px)}.danger-icon{color:var(--duo-red)}.icon-start-button{width:46px;min-height:42px;padding:0}.course-app{gap:14px;height:100svh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(16px,env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.course-header{gap:4px}.course-header h1{font-size:1.9rem;line-height:1}.chapter-grid{gap:10px}.chapter-card{border-radius:8px;box-shadow:none;padding:12px}.chapter-number{width:40px;height:40px;border-radius:8px;font-size:1.1rem}.chapter-copy{gap:2px}.chapter-copy h2{font-size:1.05rem;line-height:1.1}.chapter-copy p{color:var(--duo-muted);font-size:.86rem;line-height:1.25}.choice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.choice-button{min-height:44px;align-items:center;border-radius:8px;gap:8px;padding:6px 8px}.choice-marker{width:20px;height:20px;border-width:2px}.choice-button.selected .choice-marker,.choice-button.correct .choice-marker{background:currentColor}.choice-button.selected .choice-marker svg,.choice-button.correct .choice-marker svg{color:#fff}.choice-text{gap:3px}.choice-text strong{font-size:.8rem;line-height:1.08}.choice-gloss{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;font-size:.64rem}.feedback{min-height:58px;border-radius:8px;padding:9px 10px}.quiz-layout{grid-template-columns:minmax(0,1fr);width:min(100%,760px);align-items:start;gap:10px;margin:0 auto}.quiz-layout .board-area{order:1;width:min(100%,calc(100svh - 470px),600px);justify-self:center}.quiz-layout .side-panel{order:2;border-radius:8px;gap:8px;padding:12px}.quiz-layout .tactic-title,.quiz-layout .spacer{display:none}.quiz-layout .side-panel h1{font-size:1.35rem;line-height:1.1}.quiz-layout .stat-stack{grid-template-columns:repeat(3,1fr)}.quiz-layout .meta{display:none}.quiz-layout .hint-actions{grid-template-columns:44px}.quiz-layout .stat-card{min-height:54px;padding:7px 9px}.quiz-layout .stat-card strong,.quiz-layout .theme-info strong{font-size:1rem}.quiz-layout .theme-info{min-height:44px}.top-bar{min-height:38px}@media(max-width:560px){.course-app{padding:12px 12px max(18px,env(safe-area-inset-bottom))}.mobile-answer-dock,.mobile-answer-dock-middle,.tactic-dock-middle{max-height:min(29svh,164px)}.prompt-card,.status-card.correct,.status-card.wrong{height:50px;min-height:50px}.prompt-card h1{font-size:.9rem}.status-message{-webkit-line-clamp:1;font-size:.76rem}.choice-list{gap:5px}.choice-button{min-height:40px}}@media(max-height:700px){.mobile-quiz-shell{gap:4px}.mobile-answer-dock,.mobile-answer-dock-middle,.tactic-dock-middle{gap:5px;max-height:150px}.chapter-pill{min-height:28px;font-size:.76rem;padding-block:4px}.prompt-card,.status-card.correct,.status-card.wrong{height:46px;min-height:46px;margin-top:2px;padding:6px 10px}.choice-button{min-height:38px}.choice-marker{width:18px;height:18px}.fixed-bottom-bar{gap:4px;padding-top:2px}.run-status-row{min-height:24px}.run-progress-bar{height:15px}.stat-chip{min-height:24px;font-size:.78rem}.mobile-quiz-shell .primary-button,.action-icon-button,.icon-button{height:38px;min-height:38px}.icon-button{width:38px}}@media(min-width:760px){.quiz-app{padding:16px}.mobile-quiz-shell{height:calc(100svh - 32px);min-height:0;gap:8px}.mobile-question-head{min-height:88px}.mobile-question-head h1{min-height:58px;font-size:1.65rem}.mobile-board-stage .static-board-area{max-width:min(100%,660px);max-height:100%;width:auto;height:auto;aspect-ratio:1 / 1}.tactic-board-stage .board-area{max-width:min(100%,720px);max-height:100%;width:auto;height:auto;aspect-ratio:1 / 1}.mobile-answer-dock,.mobile-answer-dock-middle,.tactic-dock-middle{padding:12px;height:auto;min-height:0}.choice-button{min-height:68px}}@media(max-width:880px){.quiz-layout,.lesson-layout{grid-template-columns:minmax(0,1fr);align-items:start}.side-panel{min-height:0;gap:18px}.stat-stack{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.app{padding:12px}.side-panel,.result-panel,.empty-panel,.question-panel{padding:18px}.stat-stack,.choice-list,.result-grid,.phase-panel{grid-template-columns:1fr}.chapter-card{grid-template-columns:auto minmax(0,1fr)}.chapter-card button{grid-column:1 / -1}.phase-panel div{grid-template-columns:auto minmax(0,1fr)}.phase-panel span{grid-column:1 / -1}.top-bar{align-items:flex-start;flex-direction:column}.board-shell{padding:6px}.board-area,.static-board-area{width:100%}.question-actions{justify-content:stretch}.question-actions .primary-button{width:100%}}.quiz-app{padding:10px}.mobile-answer-dock .choice-list{grid-template-columns:repeat(2,minmax(0,1fr))}.chapter-card .icon-start-button{grid-column:auto}@media(max-width:380px){.chapter-pill,.quiz-progress span{padding-inline:7px}.choice-button{gap:7px;padding:8px}.choice-text strong{font-size:.84rem}.choice-gloss{font-size:.68rem}}
