@font-face{font-family:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-vietnamese-wght-normal-RvljkFvg.woff2) format("woff2-variations");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:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-ext-wght-normal-B6JQhE1e.woff2) format("woff2-variations");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:Lexend Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/lexend-latin-wght-normal-ci0D1wrL.woff2) format("woff2-variations");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}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}}:root{--ink:#1e1b4b;--muted:#5b5a86;--primary:#4f46e5;--primary-dark:#3730a3;--primary-soft:#e0e7ff;--line:#c7d2fe;--good:#15803d;--good-soft:#dcfce7;--good-line:#22c55e;--bad:#b91c1c;--bad-soft:#fee2e2;--bad-line:#ef4444;--font-ui:"Lexend Variable", system-ui, -apple-system, sans-serif;--font-letters:"Lexend Variable", system-ui, sans-serif}html{background:#eef0fb}body{font-family:var(--font-ui);color:var(--ink);-webkit-tap-highlight-color:transparent;min-height:100dvh}.word{white-space:nowrap}#root{min-height:100dvh}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--primary);outline-offset:3px}.game-wrap{min-height:100dvh;padding:env(safe-area-inset-top) 0 max(2.5rem,env(safe-area-inset-bottom));flex-direction:column;align-items:center;display:flex}.start{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:640px;padding:2.5rem 1.25rem 0;display:flex}.start-icon{width:88px;height:88px;box-shadow:0 0 0 2px var(--line);border-radius:22px}.start-title{letter-spacing:-.02em;margin-top:1.25rem;font-size:clamp(2rem,7vw,2.75rem);font-weight:700;line-height:1.05}.start-lede{color:var(--muted);max-width:26rem;margin-top:.75rem;font-size:1.15rem}.group-grid{grid-template-columns:1fr 1fr;gap:.85rem;width:100%;margin-top:2rem;display:grid}.group-btn{border:2px solid var(--line);box-shadow:0 5px 0 var(--line);background:#fff;border-radius:22px;flex-direction:column;align-items:center;gap:.15rem;padding:1.25rem .75rem 1.1rem;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.group-btn:hover{border-color:var(--primary)}.group-btn:active{box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.group-btn:first-child{background:var(--primary);border-color:var(--primary-dark);box-shadow:0 5px 0 var(--primary-dark);color:#fff;grid-column:1/-1}.group-btn:first-child .group-detail{color:#c7d2fe}.group-letters{font-family:var(--font-letters);font-size:2.1rem;font-weight:600;line-height:1.15}.group-btn:first-child .group-letters{color:#fff}.group-btn:not(:first-child) .group-letters{color:var(--primary)}.group-detail{color:var(--muted);font-size:.9rem}.start-note{color:var(--muted);margin-top:1.25rem;font-size:.95rem}.game-header{align-items:center;gap:.75rem;width:100%;max-width:680px;padding:1rem 1.25rem .5rem;display:flex}.btn-home{border:2px solid var(--line);width:2.5rem;height:2.5rem;color:var(--primary);background:#fff;border-radius:999px;flex:none;place-items:center;font-size:1.2rem;font-weight:600;display:grid}.header-title{color:var(--primary-dark);flex:1;font-size:1.15rem;font-weight:600}.header-score{color:var(--primary-dark);font-variant-numeric:tabular-nums;background:#fff;border-radius:999px;padding:.3rem .9rem;font-size:1rem;font-weight:600}.progress-bar-wrap{background:#ffffffb3;border-radius:999px;width:calc(100% - 2.5rem);max-width:640px;height:10px;margin:.5rem 0 1.5rem;overflow:hidden}.progress-bar-fill{background:var(--primary);border-radius:999px;height:100%;transition:width .5s}.game-main{flex-direction:column;align-items:center;gap:1.1rem;width:100%;max-width:660px;padding:0 1.25rem;display:flex}.sentence-card{background:#fff;border:3px solid #0000;border-radius:26px;justify-content:center;align-items:center;width:100%;min-height:150px;padding:2rem 1.5rem;transition:border-color .2s,background-color .2s;display:flex;box-shadow:0 12px 32px -14px #4f46e566}.sentence-card.card-correct{border-color:var(--good-line);background:#f0fdf4}.sentence-card.card-wrong{border-color:var(--bad-line);background:#fef2f2}.sentence-text{font-family:var(--font-letters);text-align:center;text-wrap:balance;font-size:clamp(1.55rem,5.2vw,2.2rem);font-weight:600;line-height:1.55}.blank{text-align:center;vertical-align:baseline;border-bottom:4px solid;border-radius:6px 6px 0 0;min-width:1.5em;margin:0 .04em;padding:0 .12em;line-height:1.25;display:inline-block}.blank-empty{vertical-align:-.12em;background:var(--primary-soft);border-color:var(--primary);height:1.15em;animation:1.6s ease-in-out infinite blink}.blank-correct{background:var(--good-soft);border-color:var(--good-line);color:var(--good);animation:.25s pop-in}.blank-wrong{background:var(--bad-soft);border-color:var(--bad-line);color:var(--bad);text-decoration:line-through;text-decoration-thickness:3px;animation:.35s shake}@keyframes blink{50%{background:#c7d2fe}}@keyframes pop-in{0%{opacity:.4;transform:scale(.8)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.feedback-area{justify-content:center;align-items:center;min-height:2.25rem;display:flex}.feedback-msg{text-align:center;font-size:1.2rem;font-weight:600}.correct-msg{color:var(--good);animation:.25s pop-in}.wrong-msg{color:var(--ink)}.correct-word{font-family:var(--font-letters);color:var(--good);font-size:1.35rem}mark{background:var(--good-soft);color:var(--good);border-radius:4px;padding:0 .08em}.letter-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;width:100%;display:grid}.letter-grid.letters-2{grid-template-columns:1fr 1fr;max-width:420px}.letter-btn{height:5rem;font-family:var(--font-letters);color:var(--primary-dark);border:2px solid var(--line);box-shadow:0 5px 0 var(--line);touch-action:manipulation;background:#fff;border-radius:20px;font-size:2.3rem;font-weight:600;transition:transform .1s,box-shadow .1s,background-color .15s,border-color .15s,opacity .15s}.letters-2 .letter-btn{height:6.5rem;font-size:3rem}.letter-btn:hover:not(:disabled){border-color:var(--primary)}.letter-btn:active:not(:disabled){box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.letter-btn:disabled{cursor:default}.letter-btn.btn-correct{background:var(--good-soft);border-color:var(--good-line);box-shadow:0 5px 0 var(--good-line);color:var(--good)}.letter-btn.btn-wrong{background:var(--bad-soft);border-color:var(--bad-line);box-shadow:0 5px 0 var(--bad-line);color:var(--bad)}.letter-btn.btn-dimmed{opacity:.4}.btn-primary,.btn-secondary{border-radius:18px;padding:.95rem 1.75rem;font-size:1.15rem;font-weight:600;transition:transform .1s,box-shadow .1s}.btn-primary{color:#fff;background:var(--primary);box-shadow:0 5px 0 var(--primary-dark)}.btn-secondary{color:var(--primary-dark);border:2px solid var(--line);box-shadow:0 5px 0 var(--line);background:#fff}.btn-primary:active,.btn-secondary:active{box-shadow:none;transform:translateY(4px)}.btn-next{margin-top:.5rem;animation:.25s pop-in}.done-card{text-align:center;background:#fff;border-radius:28px;width:calc(100% - 2.5rem);max-width:520px;margin-top:2.5rem;padding:2.25rem 1.5rem 1.75rem;box-shadow:0 16px 40px -16px #4f46e573}.done-stars{justify-content:center;gap:.35rem;font-size:3.25rem;line-height:1;display:flex}.star{color:var(--primary-soft)}.star-on{color:var(--primary);animation:.4s both pop-in}.done-title{margin-top:.75rem;font-size:2.1rem;font-weight:700}.done-sub{color:var(--muted);margin-top:.35rem;font-size:1.15rem}.done-sub strong{color:var(--ink)}.done-bar-wrap{background:var(--primary-soft);border-radius:999px;height:12px;margin:1.25rem auto 0;overflow:hidden}.done-bar{background:linear-gradient(90deg,var(--good-line),#16a34a);border-radius:999px;height:100%;transition:width .6s}.mistakes{text-align:left;margin-top:1.75rem}.mistakes-title{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:1rem;font-weight:600}.mistakes ul{flex-direction:column;gap:.4rem;margin-top:.6rem;list-style:none;display:flex}.mistakes li{background:#f5f7ff;border-radius:12px;justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem .85rem;display:flex}.mistake-word{font-family:var(--font-letters);font-size:1.35rem;font-weight:600}.mistake-chosen{color:var(--bad);white-space:nowrap;font-size:.9rem}.done-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.75rem;display:flex}@media(prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
