.speak-button{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000000f;border:none;border-radius:50%;cursor:pointer;display:inline-flex;justify-content:center;line-height:1;padding:0;transition:background .15s ease,transform .05s ease}.speak-button:hover{background:#0000001f}.speak-button:active{transform:scale(.92)}.speak-button:focus-visible{outline:2px solid #4a90d9;outline-offset:2px}.speak-button-md{font-size:1.15rem;height:var(--min-tap-target);width:var(--min-tap-target)}.speak-button-lg{font-size:1.5rem;height:max(2.75rem,var(--min-tap-target));margin-top:.5rem;width:max(2.75rem,var(--min-tap-target))}.word-card{background-color:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px #281e140f,0 8px 24px #281e140f;box-sizing:border-box;container-type:inline-size;cursor:pointer;display:flex;flex-direction:column;margin:auto;max-width:320px;min-height:290px;overflow:hidden;padding:12px;perspective:1000px;position:relative;width:100%}.word-card.success{border:3px solid green;box-shadow:0 0 10px #0f09}.word-card.failure,.word-card.success{transition:border 50ms ease-in-out,box-shadow 50ms ease-in-out}.word-card.failure{border:3px solid red;box-shadow:0 0 10px #f009}.feedback-indicator{font-size:1.1rem;font-weight:700;left:4px;line-height:1;position:absolute;top:4px;z-index:2}.feedback-indicator.success{color:var(--ok)}.feedback-indicator.failure{color:var(--bad)}.word-card-inner{display:flex;flex:1 1;flex-direction:column;height:100%;min-height:240px;position:relative;transform-origin:center;transform-style:preserve-3d;transition:transform .6s;width:100%}.word-card--hinted{min-height:366px}.word-card-back,.word-card-front{backface-visibility:hidden;border-radius:12px;box-sizing:border-box;display:flex;flex-direction:column;font-family:inherit;height:100%;left:0;position:absolute;top:0;width:100%}.word-card-front{align-items:center;background-color:initial;color:var(--ink);justify-content:flex-start;padding-top:6px;text-align:center}.word-card-front-content{flex-direction:column;gap:6px;margin:0;max-width:100%;width:100%}.card-front-hint-box,.word-card-front-content{align-items:center;display:flex;justify-content:center}.card-front-hint-box{aspect-ratio:1/1;background:var(--surface-2);border:1px dashed var(--line);border-radius:12px;flex:none;margin-bottom:2px;max-height:30%;max-width:52%;order:-1;overflow:hidden;text-align:center;width:72px}.card-front-hint-box:has(.hint-image-placeholder.is-empty),.card-hint-image-box:has(.hint-image-placeholder.is-empty){background:none;border-style:none}.hint-image-placeholder.is-empty{font-style:italic;opacity:.75}.word-card-front-hanzi{align-items:center;color:var(--ink);display:flex;font-family:"Noto Serif SC",serif;font-family:var(--font-hanzi,"Noto Serif SC",serif);font-size:4rem;justify-content:center;line-height:1.1;margin:0;min-height:70px;white-space:nowrap}.word-card-front-hanzi.long{font-size:2.8rem}.word-card-front-hanzi.len-4{font-size:2.1rem}.word-card-front-hanzi.len-5{font-size:1.65rem}.word-card-front-hanzi.len-6{font-size:1.35rem}.word-card-front-hanzi.len-7{font-size:1.2rem}.word-card-front-hanzi.len-8{font-size:1.05rem}.word-card-front-pinyin{font-size:1.35rem;line-height:1.2;margin:4px 0 6px}.word-card-back{background-color:initial;color:var(--ink)}.word-card-back,.word-card-inner.flipped{transform:rotateY(180deg)}.word-card-back,.word-card-front{-webkit-backface-visibility:hidden;transition:visibility 0s linear .3s}.word-card-inner.flipped .word-card-front,.word-card-inner:not(.flipped) .word-card-back{visibility:hidden}.practice-buttons{grid-gap:8px;display:grid;flex-shrink:0;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:auto;width:100%;z-index:1}.practice-buttons button{align-items:center;border:none;border-radius:999px;cursor:pointer;display:flex;font-size:15px;font-weight:600;justify-content:center;line-height:1.2;min-height:48px;overflow-wrap:break-word;padding:0 8px;text-align:center;transition:opacity .2s ease,transform .05s ease;white-space:normal;word-break:normal}.practice-buttons button:hover{opacity:.92}.practice-buttons button:active{transform:scale(.98)}.practice-buttons button.answer-yes{background-color:var(--ok);color:#fff}.practice-buttons button.answer-no{background-color:var(--bad);color:#fff}.practice-buttons button{font-size:20px;line-height:1}.practice-buttons--front{box-sizing:border-box;margin-top:0;padding:0 10px 10px}.practice-buttons--front button{min-height:44px}.practice-buttons button:lang(th),:lang(th) .practice-buttons button{font-family:system-ui,-apple-system,Segoe UI,Noto Sans Thai,Roboto,sans-serif;line-height:1.4}.test-buttons{grid-gap:.2rem;display:grid;gap:.2rem;grid-template-columns:1fr 1fr;margin-top:5px;width:95%;z-index:1}.test-buttons button{--t1:currentColor;--t2:currentColor;--t3:currentColor;--t4:currentColor;align-items:center;aspect-ratio:1;border:none;border-radius:8px;color:var(--surface);cursor:pointer;display:flex;flex-wrap:wrap;font-size:1.5rem;justify-content:center;line-height:1.2;margin:0;max-height:100%;overflow:hidden;overflow-wrap:break-word;padding:0;text-align:center;text-overflow:ellipsis;transition:background-color .3s;white-space:normal;width:100%;word-break:keep-all}.test-buttons button,.test-buttons button:hover{background-color:var(--accent)}.test-buttons button.test-option-md{font-size:1rem}.test-buttons button.test-option-sm{font-size:.85rem}.test-buttons button.test-option-xs{font-size:.7rem}.test-buttons button.test-option-xxs{font-size:.6rem}.metadata{display:flex;justify-content:space-between;margin-top:2px;width:100%}.exclude-button{border:none;border-radius:6px;color:var(--surface);cursor:pointer;font-family:inherit;font-size:.72rem;font-weight:600;line-height:1;min-width:68px;padding:6px 10px;white-space:nowrap}.red{background-color:var(--bad)}.green{background-color:var(--ok)}.exclude-button.red{background-color:var(--bad-soft);box-shadow:inset 0 0 0 1px var(--bad);color:var(--bad)}.exclude-button.green{background-color:var(--ok-soft);box-shadow:inset 0 0 0 1px var(--ok);color:var(--ok)}.mastery-indicator{align-items:center;align-self:center;color:var(--muted);font-size:.55rem}.history-tiles,.mastery-indicator{display:flex;justify-content:flex-end;overflow:hidden}.history-tiles{gap:2px}.history-tile{border-radius:3px;color:#fff;flex:0 0 auto;font-size:9px;font-weight:700;height:13px;line-height:13px;text-align:center;width:13px}.history-tile .mark{display:block;margin:2px auto}.history-tile.correct{background-color:var(--ok)}.history-tile.wrong{background-color:#c62828}.history-tile.correct.bulk{background-color:initial;box-shadow:inset 0 0 0 1.5px var(--ok);color:var(--ok)}.history-empty{color:var(--muted);font-size:.55rem;white-space:nowrap}.green-background{background-color:var(--ok);color:var(--surface)}.red-background{background-color:var(--bad);color:var(--surface)}.card-back-main-row{align-items:flex-start;display:flex;flex:1 1 auto;gap:12px;min-height:0;overflow:hidden;width:100%}.card-hint-image-box{align-items:center;background:var(--surface-2);border:1px dashed var(--line);border-radius:12px;color:var(--muted);display:flex;flex:none;font-size:11px;height:96px;justify-content:center;overflow:hidden;position:relative;text-align:center;width:96px}.hint-image-wrapper{height:100%;position:relative;width:100%}.hint-image{border-radius:12px;height:100%;object-fit:cover;width:100%}.hint-image-placeholder{color:var(--muted);font-size:11px;line-height:1.3;padding:6px}.regenerate-hint-button{background:#0009;border:none;border-radius:50%;color:var(--surface);cursor:pointer;font-size:1rem;height:44px;line-height:1;position:absolute;right:5px;top:5px;width:44px}.loading-hint{color:var(--muted);font-size:1rem}.card-back-text-col{display:flex;flex:1 1;flex-direction:column;gap:4px;min-width:0}.card-back-hanzi-row{align-items:center;display:flex;gap:6px;justify-content:space-between}.card-back-hanzi{color:var(--ink);font-family:"Noto Serif SC",serif;font-family:var(--font-hanzi,"Noto Serif SC",serif);font-size:26px;line-height:1.1}.card-back-pinyin{color:var(--ink);font-size:18px;line-height:1.2}.word-gloss{color:var(--ink);display:block;font-size:20px;line-height:1.3;overflow-wrap:anywhere;word-break:break-word}:lang(th) .word-gloss{line-height:1.45}.exclude-button:lang(th),:lang(th) .exclude-button,:lang(th) .word-gloss{font-family:system-ui,-apple-system,Segoe UI,Noto Sans Thai,Roboto,sans-serif}.exclude-button:lang(th),:lang(th) .exclude-button,:lang(vi) .word-gloss{line-height:1.35}.word-gloss.gloss-small{font-size:17px}.gloss-fallback-tag{align-items:center;border:1px solid var(--line);border-radius:5px;color:var(--muted);display:inline-flex;font-family:system-ui,-apple-system,sans-serif;font-size:10px;font-weight:600;height:18px;justify-content:center;line-height:18px;margin-right:6px;padding:0 5px;vertical-align:middle}.card-hint-row{align-items:flex-start;color:var(--muted);display:flex;font-size:14px;gap:6px;line-height:1.5}.hint-lang-tag{border:1px solid var(--line);border-radius:5px;color:var(--muted);flex:none;font-family:system-ui,-apple-system,sans-serif;font-size:10px;font-weight:600;height:18px;line-height:18px;padding:0 5px}.card-hint-copy{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.word-meaning{display:flex;flex-direction:column;gap:10px;height:100%;min-height:0;width:100%}.test-back-pinyin{font-size:1.2rem;margin-top:auto;text-align:center}.test-buttons button.quiz-option-correct{background-color:var(--ok-soft);border:2px solid var(--ok);color:var(--ok)}@container (max-width: 260px){.card-hint-image-box{aspect-ratio:1/1;height:auto;max-width:96px;width:34%}.practice-buttons{grid-template-columns:minmax(0,1fr)}.practice-buttons--front{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.mini-word-card{word-wrap:break-word;align-items:center;background-color:var(--surface);border:1px solid var(--ink);border-radius:7px;display:flex;flex-direction:row;justify-content:space-between;line-height:1rem;margin:1px;min-height:70px;overflow-wrap:break-word;text-align:center;width:98px}.mini-word-card-word{line-height:2.2rem;min-width:52px}.mini-word-card-def1{font-weight:700;line-height:1.5rem;width:46px}.mini-word-card>*>span{display:block}.mini-word-card{cursor:pointer}.mini-word-card-hidden{letter-spacing:1px;opacity:.45}.card-error-fallback{align-items:center;background-color:var(--surface);border:3px solid #d3d3d3;border-radius:8px;box-sizing:border-box;color:#333;color:var(--ink,#333);display:flex;flex-direction:column;font-size:.85rem;gap:8px;justify-content:center;margin:auto;padding:12px;text-align:center;width:160px}.card-error-retry{background-color:var(--surface);border:1px solid #d3d3d3;border-radius:4px;cursor:pointer;padding:4px 10px}.completed{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding:20px;text-align:center;width:100%}.completed-time{font-size:2.5rem;margin:20px 0}.completed-stats{font-size:3rem;margin:20px 0}.completed-list{word-wrap:break-word;align-items:center;display:flex;flex-wrap:wrap;font-size:1.5rem;justify-content:center;list-style-position:inside;margin:0 auto;max-width:400px;overflow-wrap:break-word;padding-left:0;text-align:left;width:80%}.completed-list li{display:flex;margin:.2em}.completed-incorrect-indicator{font-feature-settings:"smcp";color:var(--bad);font-size:x-small;font-variant:small-caps;font-weight:bolder;vertical-align:super}.completed-review{margin:10px auto;max-width:400px;text-align:left;width:80%}.completed-review-title{font-size:1.3rem;margin:10px 0;text-align:center}.completed-review-list{list-style:none;margin:0;padding-left:0}.completed-review-item{align-items:baseline;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;font-size:1.2rem;gap:.4em;padding:4px 0}.completed-review-word{font-weight:700}.completed-review-def{color:var(--muted);font-size:1rem}.completed-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px}.completed-share-message{color:var(--accent);font-size:1rem;margin-top:12px}.completed-button{background-color:var(--accent);border:none;border-radius:8px;color:var(--surface);cursor:pointer;font-size:1.5rem;margin-top:20px;padding:10px 20px;transition:background-color .3s}.completed-actions .completed-button{margin-top:0}.completed-button-share,.completed-button-share:hover{background-color:var(--ok)}.completed-button:hover{background-color:var(--accent)}.completed-session{margin-bottom:.5rem;text-align:center}.completed-session-title{color:var(--ok);font-size:1.75rem;font-weight:700}.completed-session-sub{color:var(--muted);font-size:.95rem}.completed-actions-named{flex-direction:column;gap:8px;max-width:400px;width:100%}.completed-button-back{align-items:center;background-color:var(--accent);border-radius:999px;box-sizing:border-box;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;justify-content:center;padding:0 16px;text-decoration:none;transition:opacity .2s}.completed-button-back:hover{opacity:.9;text-decoration:none}.completed-button-again{align-items:center;background:#0000;border:1.5px solid var(--line);border-radius:999px;box-sizing:border-box;color:var(--ink);cursor:pointer;display:flex;font-size:1rem;font-weight:600;justify-content:center;padding:0 16px}.completed-button-again:hover{background:#00000008}.completed-sibling-section{align-self:stretch;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;margin-top:16px;max-width:400px;padding-top:12px;text-align:left;width:100%}.completed-sibling-title{color:var(--muted);font-size:13px}.completed-sibling-list{display:flex;flex-direction:column;gap:6px}.completed-sibling-cta{align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;box-sizing:border-box;color:var(--ink);display:flex;font-size:15px;justify-content:space-between;padding:0 14px;text-decoration:none}.completed-sibling-cta:hover{border-color:var(--muted);text-decoration:none}.completed-sibling-label{flex:1 1}.completed-sibling-tag{border:1px solid var(--line);border-radius:4px;color:var(--muted);font-size:11px;font-weight:600;margin-left:8px;margin-right:8px;padding:0 4px}.completed-sibling-arrow{color:var(--accent);font-weight:700}.onboarding-overlay{align-items:flex-end;background:#140f0a73;box-sizing:border-box;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}@media (min-width:600px){.onboarding-overlay{align-items:center}}.onboarding-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-hero);box-shadow:var(--shadow);box-sizing:border-box;color:var(--ink);max-width:420px;padding:22px 20px 18px;text-align:left;width:100%}.onboarding-title{font-family:var(--font-display);font-size:1.3rem;letter-spacing:-.01em;margin:0 0 12px;text-align:left}.onboarding-list{grid-gap:10px;display:grid;gap:10px;list-style:none;margin:0 0 18px;padding:0}.onboarding-list li{align-items:flex-start;display:flex;font-size:.98rem;gap:12px;line-height:1.4;margin:0}.onboarding-icon{background:var(--surface-2);border-radius:var(--r-pill);display:grid;flex:0 0 auto;font-size:.85rem;height:28px;place-items:center;text-align:center;width:28px}.onboarding-button{align-items:center;background-color:var(--accent);border:none;border-radius:var(--r-pill);color:var(--accent-ink);cursor:pointer;display:flex;flex-shrink:0;font:inherit;font-size:1.05rem;font-weight:600;justify-content:center;line-height:1.2;min-height:max(48px,var(--min-tap-target));overflow-wrap:break-word;padding:0 20px;text-align:center;transition:filter .15s;white-space:normal;width:100%;word-break:normal}.onboarding-button:hover{filter:brightness(1.05)}.onboarding-card:lang(th),.onboarding-overlay:lang(th),:lang(th) .onboarding-card,:lang(th).onboarding-overlay{font-family:system-ui,-apple-system,Segoe UI,Noto Sans Thai,Roboto,sans-serif}.onboarding-list li:lang(th),:lang(th) .onboarding-list li{line-height:1.6}.onboarding-button:lang(th),:lang(th) .onboarding-button{font-family:system-ui,-apple-system,Segoe UI,Noto Sans Thai,Roboto,sans-serif;line-height:1.4}.container{align-items:center;background-color:var(--bg);border:2px solid var(--line);border-radius:8px;box-shadow:0 0 10px #0000001a;box-sizing:border-box;flex-direction:column;height:100%;justify-content:space-between;margin-top:60px;padding:10px}.cards-area,.container{display:flex;width:100%}.cards-area{flex-direction:row;height:calc(100% - 100px);min-height:0;overflow:hidden}.incorrect-cards-container{align-items:center;background-color:var(--ink);border-radius:8px;box-sizing:border-box;display:flex;flex-direction:column;gap:0;margin:0 auto;max-height:var(--cards-container-height);min-height:0;overflow-y:auto;padding:0;width:115px}.incorrect-cards-container:empty{display:none}.incorrect-cards-container>*{margin:0;position:relative;transition:transform .2s ease}.incorrect-cards-container>:hover{transform:translateY(-10px);z-index:1}.cards-container{grid-gap:10px;box-sizing:border-box;display:grid;gap:10px;grid-auto-flow:column;margin:0 auto;padding:0;width:100%}.cards-container.layout1c1r,.cards-container.layout1c2r{grid-auto-flow:row;grid-template-columns:repeat(1,minmax(0,1fr))}.cards-container.layout1c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout1c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout1c3r,.cards-container.layout1c4r{grid-auto-flow:row;grid-template-columns:repeat(1,minmax(0,1fr))}.cards-container.layout1c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout2c1r,.cards-container.layout2c2r{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.cards-container.layout2c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout2c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout2c3r,.cards-container.layout2c4r{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.cards-container.layout2c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout3c1r,.cards-container.layout3c2r{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr))}.cards-container.layout3c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout3c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout3c3r,.cards-container.layout3c4r{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr))}.cards-container.layout3c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout4c1r,.cards-container.layout4c2r{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr))}.cards-container.layout4c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout4c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout4c3r,.cards-container.layout4c4r{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr))}.cards-container.layout4c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout5c1r,.cards-container.layout5c2r{grid-auto-flow:row;grid-template-columns:repeat(5,minmax(0,1fr))}.cards-container.layout5c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout5c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout5c3r,.cards-container.layout5c4r{grid-auto-flow:row;grid-template-columns:repeat(5,minmax(0,1fr))}.cards-container.layout5c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout6c1r,.cards-container.layout6c2r{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr))}.cards-container.layout6c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout6c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout6c3r,.cards-container.layout6c4r{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr))}.cards-container.layout6c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout7c1r,.cards-container.layout7c2r{grid-auto-flow:row;grid-template-columns:repeat(7,minmax(0,1fr))}.cards-container.layout7c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout7c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout7c3r,.cards-container.layout7c4r{grid-auto-flow:row;grid-template-columns:repeat(7,minmax(0,1fr))}.cards-container.layout7c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout8c1r,.cards-container.layout8c2r{grid-auto-flow:row;grid-template-columns:repeat(8,minmax(0,1fr))}.cards-container.layout8c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout8c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout8c3r,.cards-container.layout8c4r{grid-auto-flow:row;grid-template-columns:repeat(8,minmax(0,1fr))}.cards-container.layout8c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout9c1r,.cards-container.layout9c2r{grid-auto-flow:row;grid-template-columns:repeat(9,minmax(0,1fr))}.cards-container.layout9c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout9c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout9c3r,.cards-container.layout9c4r{grid-auto-flow:row;grid-template-columns:repeat(9,minmax(0,1fr))}.cards-container.layout9c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout10c1r,.cards-container.layout10c2r{grid-auto-flow:row;grid-template-columns:repeat(10,minmax(0,1fr))}.cards-container.layout10c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout10c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout10c3r,.cards-container.layout10c4r{grid-auto-flow:row;grid-template-columns:repeat(10,minmax(0,1fr))}.cards-container.layout10c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout11c1r,.cards-container.layout11c2r{grid-auto-flow:row;grid-template-columns:repeat(11,minmax(0,1fr))}.cards-container.layout11c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout11c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout11c3r,.cards-container.layout11c4r{grid-auto-flow:row;grid-template-columns:repeat(11,minmax(0,1fr))}.cards-container.layout11c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout12c1r,.cards-container.layout12c2r{grid-auto-flow:row;grid-template-columns:repeat(12,minmax(0,1fr))}.cards-container.layout12c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout12c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout12c3r,.cards-container.layout12c4r{grid-auto-flow:row;grid-template-columns:repeat(12,minmax(0,1fr))}.cards-container.layout12c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout1c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout1c5r,.cards-container.layout1c6r{grid-auto-flow:row;grid-template-columns:repeat(1,minmax(0,1fr))}.cards-container.layout1c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout1c7r{grid-auto-flow:row;grid-template-columns:repeat(1,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout2c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout2c5r,.cards-container.layout2c6r{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.cards-container.layout2c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout2c7r{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout3c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout3c5r,.cards-container.layout3c6r{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr))}.cards-container.layout3c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout3c7r{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout4c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout4c5r,.cards-container.layout4c6r{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr))}.cards-container.layout4c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout4c7r{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout5c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout5c5r,.cards-container.layout5c6r{grid-auto-flow:row;grid-template-columns:repeat(5,minmax(0,1fr))}.cards-container.layout5c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout5c7r{grid-auto-flow:row;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout6c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout6c5r,.cards-container.layout6c6r{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr))}.cards-container.layout6c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout6c7r{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout7c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout7c5r,.cards-container.layout7c6r{grid-auto-flow:row;grid-template-columns:repeat(7,minmax(0,1fr))}.cards-container.layout7c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout7c7r{grid-auto-flow:row;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout8c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout8c5r,.cards-container.layout8c6r{grid-auto-flow:row;grid-template-columns:repeat(8,minmax(0,1fr))}.cards-container.layout8c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout8c7r{grid-auto-flow:row;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout9c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout9c5r,.cards-container.layout9c6r{grid-auto-flow:row;grid-template-columns:repeat(9,minmax(0,1fr))}.cards-container.layout9c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout9c7r{grid-auto-flow:row;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout10c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout10c5r,.cards-container.layout10c6r{grid-auto-flow:row;grid-template-columns:repeat(10,minmax(0,1fr))}.cards-container.layout10c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout10c7r{grid-auto-flow:row;grid-template-columns:repeat(10,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout11c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout11c5r,.cards-container.layout11c6r{grid-auto-flow:row;grid-template-columns:repeat(11,minmax(0,1fr))}.cards-container.layout11c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout11c7r{grid-auto-flow:row;grid-template-columns:repeat(11,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout12c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout12c5r,.cards-container.layout12c6r{grid-auto-flow:row;grid-template-columns:repeat(12,minmax(0,1fr))}.cards-container.layout12c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout12c7r{grid-auto-flow:row;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout13c1r,.cards-container.layout13c2r{grid-auto-flow:row;grid-template-columns:repeat(13,minmax(0,1fr))}.cards-container.layout13c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout13c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout13c3r,.cards-container.layout13c4r{grid-auto-flow:row;grid-template-columns:repeat(13,minmax(0,1fr))}.cards-container.layout13c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout13c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout13c5r,.cards-container.layout13c6r{grid-auto-flow:row;grid-template-columns:repeat(13,minmax(0,1fr))}.cards-container.layout13c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout13c7r{grid-auto-flow:row;grid-template-columns:repeat(13,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout14c1r,.cards-container.layout14c2r{grid-auto-flow:row;grid-template-columns:repeat(14,minmax(0,1fr))}.cards-container.layout14c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout14c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout14c3r,.cards-container.layout14c4r{grid-auto-flow:row;grid-template-columns:repeat(14,minmax(0,1fr))}.cards-container.layout14c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout14c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout14c5r,.cards-container.layout14c6r{grid-auto-flow:row;grid-template-columns:repeat(14,minmax(0,1fr))}.cards-container.layout14c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout14c7r{grid-auto-flow:row;grid-template-columns:repeat(14,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout15c1r,.cards-container.layout15c2r{grid-auto-flow:row;grid-template-columns:repeat(15,minmax(0,1fr))}.cards-container.layout15c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout15c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout15c3r,.cards-container.layout15c4r{grid-auto-flow:row;grid-template-columns:repeat(15,minmax(0,1fr))}.cards-container.layout15c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout15c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout15c5r,.cards-container.layout15c6r{grid-auto-flow:row;grid-template-columns:repeat(15,minmax(0,1fr))}.cards-container.layout15c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout15c7r{grid-auto-flow:row;grid-template-columns:repeat(15,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout16c1r,.cards-container.layout16c2r{grid-auto-flow:row;grid-template-columns:repeat(16,minmax(0,1fr))}.cards-container.layout16c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout16c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout16c3r,.cards-container.layout16c4r{grid-auto-flow:row;grid-template-columns:repeat(16,minmax(0,1fr))}.cards-container.layout16c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout16c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout16c5r,.cards-container.layout16c6r{grid-auto-flow:row;grid-template-columns:repeat(16,minmax(0,1fr))}.cards-container.layout16c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout16c7r{grid-auto-flow:row;grid-template-columns:repeat(16,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout17c1r,.cards-container.layout17c2r{grid-auto-flow:row;grid-template-columns:repeat(17,minmax(0,1fr))}.cards-container.layout17c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout17c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout17c3r,.cards-container.layout17c4r{grid-auto-flow:row;grid-template-columns:repeat(17,minmax(0,1fr))}.cards-container.layout17c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout17c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout17c5r,.cards-container.layout17c6r{grid-auto-flow:row;grid-template-columns:repeat(17,minmax(0,1fr))}.cards-container.layout17c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout17c7r{grid-auto-flow:row;grid-template-columns:repeat(17,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout18c1r,.cards-container.layout18c2r{grid-auto-flow:row;grid-template-columns:repeat(18,minmax(0,1fr))}.cards-container.layout18c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout18c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout18c3r,.cards-container.layout18c4r{grid-auto-flow:row;grid-template-columns:repeat(18,minmax(0,1fr))}.cards-container.layout18c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout18c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout18c5r,.cards-container.layout18c6r{grid-auto-flow:row;grid-template-columns:repeat(18,minmax(0,1fr))}.cards-container.layout18c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout18c7r{grid-auto-flow:row;grid-template-columns:repeat(18,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout19c1r,.cards-container.layout19c2r{grid-auto-flow:row;grid-template-columns:repeat(19,minmax(0,1fr))}.cards-container.layout19c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout19c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout19c3r,.cards-container.layout19c4r{grid-auto-flow:row;grid-template-columns:repeat(19,minmax(0,1fr))}.cards-container.layout19c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout19c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout19c5r,.cards-container.layout19c6r{grid-auto-flow:row;grid-template-columns:repeat(19,minmax(0,1fr))}.cards-container.layout19c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout19c7r{grid-auto-flow:row;grid-template-columns:repeat(19,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.cards-container.layout20c1r,.cards-container.layout20c2r{grid-auto-flow:row;grid-template-columns:repeat(20,minmax(0,1fr))}.cards-container.layout20c2r{grid-template-rows:repeat(2,minmax(0,auto))}.cards-container.layout20c3r{grid-template-rows:repeat(3,minmax(0,auto))}.cards-container.layout20c3r,.cards-container.layout20c4r{grid-auto-flow:row;grid-template-columns:repeat(20,minmax(0,1fr))}.cards-container.layout20c4r{grid-template-rows:repeat(4,minmax(0,auto))}.cards-container.layout20c5r{grid-template-rows:repeat(5,minmax(0,auto))}.cards-container.layout20c5r,.cards-container.layout20c6r{grid-auto-flow:row;grid-template-columns:repeat(20,minmax(0,1fr))}.cards-container.layout20c6r{grid-template-rows:repeat(6,minmax(0,auto))}.cards-container.layout20c7r{grid-auto-flow:row;grid-template-columns:repeat(20,minmax(0,1fr));grid-template-rows:repeat(7,minmax(0,auto))}.progress-bar-container{margin:5px auto;position:relative;width:100%}.progress-bar{background-color:var(--line);border-radius:var(--r-item);height:24px;overflow:hidden;width:100%}.progress{background-color:var(--ok);border-radius:12px 0 0 12px;height:100%;transition:width .3s ease}.progress-info{border-radius:8px;color:var(--ink);font-size:14px;font-weight:700;left:50%;padding:4px 8px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.progress-stats{display:flex;justify-content:space-between;margin:0 0 5px;width:100%}.memorized,.not-memorized,.timer{text-wrap-mode:nowrap;background-color:var(--surface);border-radius:10px;display:flex;font-size:2rem;padding:0 10px}.not-memorized{color:var(--bad)}.memorized{color:var(--ok)}.game-settings{display:flex;flex-direction:row;justify-content:space-between}.game-settings-button{text-wrap-mode:wrap;background-color:var(--surface-2);border:none;border:1px solid var(--line);border-radius:10%;color:var(--ink);cursor:pointer;font-size:.8rem;height:100%;margin:0 3px;padding:0 4px;width:60px}.game-settings-button:hover{background-color:var(--line)}.mark-all-memorized-button{background-color:var(--accent);border:none;border-radius:10px;color:var(--accent-ink);font-size:1.6rem;margin:2px 0 0;padding:2px;width:100%}.loading-container{height:100%;margin-top:20%}.empty-state,.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center}.empty-state{box-sizing:border-box;color:var(--muted);font-size:1rem;gap:12px;margin-top:60px;padding:32px 16px;text-align:center;width:100%}.loading-spinner{animation:loading-spin .9s linear infinite;border:4px solid #0000001f;border-radius:50%;border-top:4px solid var(--muted);height:40px;margin-bottom:12px;width:40px}@keyframes loading-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation:none}}@media (max-width:480px){.progress-stats{flex-wrap:wrap;gap:4px}.memorized,.not-memorized,.timer{font-size:1.2rem;padding:0 6px}}.unknown-set-page{background-color:var(--bg);min-height:calc(100vh - 48px)}.unknown-set-container{align-items:start;justify-content:center;padding:20px 20px 14px}.unknown-set-banner,.unknown-set-container{box-sizing:border-box;display:flex;width:100%}.unknown-set-banner{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);flex-direction:column;gap:4px;line-height:1.6;max-width:800px;padding:14px 16px}.unknown-set-title{color:var(--ink);font-size:18px;font-weight:600;margin:0}.unknown-set-description{color:var(--muted);font-size:15px}.unknown-set-code{background:var(--bg);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;padding:2px 4px}.session-header{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;width:100%;z-index:10}.session-header-bar{align-items:center;background:var(--surface);box-sizing:border-box;display:flex;gap:14px;padding:8px 20px}.session-header-back{align-items:center;color:var(--ink);cursor:pointer;display:inline-flex;font-weight:600;gap:6px;text-decoration:none}.session-header-back:hover{color:var(--accent);text-decoration:underline}.session-back-arrow{font-size:18px;line-height:1}.session-back-title-desktop{display:inline}.session-header-count-desktop{color:var(--muted);font-size:14px;white-space:nowrap}.session-header-title-mobile{display:none}.session-header-spacer{flex:1 1}.session-header-status{font-feature-settings:"tnum";color:var(--muted);font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}.session-header-progress-track{background:var(--line);height:4px;overflow:hidden;width:100%}.session-header-progress-fill{background:var(--accent);height:100%;transition:width .3s ease}@media (max-width:600px){.session-header-bar{gap:8px;padding:6px 8px 6px 4px}.session-header-back{justify-content:center;padding:0}.session-back-title-desktop,.session-header-count-desktop{display:none}.session-header-title-mobile{display:flex;flex:1 1;flex-direction:column;line-height:1.35;min-width:0}.session-header-name{color:var(--ink);font-size:15px}.session-header-name,.session-header-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-header-sub{color:var(--muted);font-size:13px}}.navbar{align-items:center;background-color:var(--ink);box-sizing:border-box;display:flex;justify-content:space-between;padding:0 .5rem 0 .25rem;width:100%}.nav-center,.nav-left,.nav-right{align-items:center;display:flex;gap:1.5rem}.nav-left{margin-right:.5rem}.nav-logo{align-items:center;color:#fff;display:flex;font-size:1.5rem;font-weight:700;gap:.5rem;text-decoration:none}.logo-text{font-size:1.1rem;margin-right:.5rem}.navbar a{color:#fff;padding:.5rem;text-decoration:none}.navbar a:hover{color:var(--accent)}.nav-button{border:none;border-radius:8px;color:var(--surface);cursor:pointer;font-size:.9rem;font-weight:700;padding:.25rem .75rem;white-space:nowrap}.nav-button,.nav-button:hover{background:var(--accent)}.nav-list{align-items:center;display:flex;justify-content:space-between;list-style:none;margin:0;padding:0}.nav-item{margin-right:20px}.nav-link{color:#fff;font-size:18px;text-decoration:none}.user-section{align-items:center;display:flex;height:40px;justify-content:space-between;margin-left:auto}.user-section .nav-user-info{align-items:center;color:#fff;display:flex;flex-direction:column;font-size:.5rem;margin:3px 0;text-align:center}.login-button,.logout-button{background-color:var(--ok);border:none;border-radius:2px;color:#fff;cursor:pointer;height:30px;padding:2px 5px}.logout-button{background-color:#f44336;margin-left:20px}.page-content{margin-top:60px;padding:20px}.nav-profile-avatar,.profile-avatar{border-radius:50%;box-shadow:0 4px 10px #0000001a;display:block;height:30px;margin-bottom:5px;width:30px}.profile-avatar{height:100px;width:100px}.nav-center a,.nav-right a{color:#fff;font-size:.9rem;padding:.5rem 1rem;text-decoration:none}.nav-link-active{background-color:#ffffff1a;border-radius:8px}.nav-right{gap:.4rem;margin-left:0}.nav-right a{font-size:.8rem;opacity:.7;padding:.25rem .5rem}.nav-wordsets-link{align-items:center;box-sizing:border-box;display:flex}.nav-center{margin-right:auto;padding-left:0}.dropdown{height:100%;position:relative}.dropdown-trigger{align-items:center;background:none;border:none;color:var(--surface);cursor:pointer;display:flex;font-size:.8rem;gap:.5rem;height:100%;padding:0 .5rem}.dropdown-arrow{font-size:.6rem;opacity:.7}.user-dropdown-trigger{max-width:200px}.user-avatar{border-radius:50%;height:24px;width:24px}.user-info-compact{align-items:flex-start;display:flex;flex-direction:column;font-size:.7rem;line-height:1.1;overflow:hidden}.user-info-compact .name{font-weight:500}.user-info-compact .email,.user-info-compact .name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-info-compact .email{opacity:.7}.dropdown-menu{background:#2a2a2a;border-radius:8px;box-shadow:0 2px 10px #0003;margin-top:4px;min-width:160px;position:absolute;right:0;top:100%;z-index:1001}.dropdown-item{color:var(--surface);cursor:pointer;display:block;padding:.5rem 1rem;text-decoration:none;white-space:nowrap}.dropdown-item:hover{background:#ffffff1a}.nav-right .auth-buttons{align-items:center;display:flex;flex-direction:row;gap:8px}.google-signin-compact{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer;display:flex;font-family:var(--font-latin);font-size:14px;font-weight:500;gap:6px;order:1;padding:4px 12px}.google-signin-compact img{height:18px;width:18px}.try-button{background-color:var(--accent);border:none;border-radius:8px;color:var(--surface);cursor:pointer;font-size:14px;order:2;padding:6px 12px;white-space:nowrap}.try-button:hover{background-color:#357ae8}.mobile-about-items{display:none}@media (max-width:480px){.navbar{padding:0 .25rem}.nav-center,.nav-left,.nav-right{gap:.5rem}.logo-text,.nav-left{margin-right:.25rem}.logo-text{font-size:1rem}.user-info-compact{display:none}.user-dropdown-trigger{max-width:none;padding:0 .25rem}.dropdown-trigger{padding:0 .35rem}.nav-right a{padding:.25rem .35rem}.nav-about-dropdown{display:none}.mobile-about-items{display:block}}.profile-container{align-items:flex-start;justify-content:center;padding:32px 16px 64px}.profile-card,.profile-container{box-sizing:border-box;display:flex}.profile-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;border-radius:var(--r-card,16px);box-shadow:var(--shadow);flex-direction:column;gap:20px;max-width:480px;padding:24px 20px;width:100%}.profile-card .user-info{align-items:center;display:flex;flex-direction:column;gap:6px;text-align:center}.profile-user-name{color:var(--ink);font-size:18px;font-weight:700}.profile-user-email{color:var(--muted);font-size:14px}.profile-language-section{background:var(--surface);border:1px solid var(--line);border-radius:16px;border-radius:var(--r-card,16px);box-sizing:border-box;display:flex;flex-direction:column;gap:8px;padding:16px}.profile-language-title{color:var(--ink);font-size:16px;font-weight:700}.profile-language-desc{color:var(--muted);font-size:14px;line-height:1.5}.profile-card .logout-button{align-items:center;background:var(--surface);border:1.5px solid var(--line);border-radius:999px;border-radius:var(--r-pill,999px);box-sizing:border-box;color:var(--ink);cursor:pointer;display:inline-flex;font:inherit;font-weight:600;justify-content:center;margin:0;min-height:var(--tap);padding:0 24px;transition:border-color .15s ease;width:100%}.profile-card .logout-button:hover{border-color:var(--ink)}.profile-card .login-button{background:var(--accent);border:none;border-radius:999px;border-radius:var(--r-pill,999px);color:#fff;color:var(--accent-ink,#fff);cursor:pointer;font:inherit;font-weight:600;justify-content:center;margin:0;min-height:var(--tap);padding:0 24px;width:100%}.lang-switcher,.profile-card .login-button{align-items:center;box-sizing:border-box;display:inline-flex}.lang-switcher{position:relative}.lang-pill{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);box-sizing:border-box;color:var(--ink);cursor:pointer;display:inline-flex;font-family:var(--font-latin);font-size:15px;font-weight:600;gap:8px;justify-content:center;list-style:none;min-height:44px;padding:0 16px;transition:border-color .15s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.lang-pill:hover,.lang-pill[aria-expanded=true],.lang-switcher.open .lang-pill{border-color:var(--ink)}.lang-pill-name-short{display:none}.lang-pill-name-full{display:inline}.lang-arrow{color:var(--muted);display:inline-block;font-size:10px;line-height:1}.lang-menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);box-sizing:border-box;display:flex;flex-direction:column;padding:6px;position:absolute;right:0;top:calc(100% + 8px);width:240px;z-index:1002}.lang-sheet-handle{display:none}.lang-options{display:flex;flex-direction:column;width:100%}.lang-option{align-items:center;background:#0000;border:none;border-radius:var(--r-item);box-sizing:border-box;color:var(--ink);cursor:pointer;display:flex;font-family:var(--font-latin);font-size:15px;font-weight:400;justify-content:space-between;min-height:44px;padding:0 14px;text-align:left;text-decoration:none;-webkit-user-select:none;user-select:none;width:100%}.lang-option:hover{background:#281e140a;text-decoration:none}.lang-option-active,.lang-option.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.lang-option-active:hover,.lang-option.active:hover{background:var(--accent-soft)}.lang-check{color:var(--accent);font-weight:700}.lang-backdrop{display:none}@media (max-width:480px){.lang-pill{font-size:14px;gap:6px;padding:0 12px}.lang-pill-name-full{display:none}.lang-pill-name-short{display:inline}}@media (max-width:600px){.lang-menu{border:none;border-radius:20px 20px 0 0;border-top:1px solid var(--line);bottom:0;box-shadow:0 -8px 24px #281e1414;left:0;padding:10px 12px 18px;position:fixed;right:0;top:auto;width:100%;z-index:1002}.lang-sheet-handle{align-self:center;background:var(--line);border-radius:2px;display:block;height:4px;margin:0 auto 8px;width:36px}.lang-option{font-size:16px;min-height:48px}.lang-backdrop{background:#1d1a1659;display:block;inset:0;position:fixed;z-index:1001}}.private-login-container{align-items:center;display:flex;justify-content:center;min-height:calc(100vh - 48px);padding:20px}.login-card{align-items:center;border-radius:var(--r-item);box-shadow:0 2px 10px #00000014;display:flex;flex-direction:column;padding:40px 20px}.login-card h2{color:var(--accent);font-size:2.5rem}.login-card p{font-size:1.2rem;margin-bottom:1rem}.features-list{margin:2rem 0;padding:0 1rem}.feature-item{align-items:center;display:flex;font-size:1.2rem;position:relative}.feature-item:before{display:inline-block;font-size:1.2rem;margin-right:.75rem}.feature-item>:first-child{margin-left:0}.login-button{border-radius:8px;color:var(--surface);font-size:1.2rem;font-weight:500;height:auto;line-height:1.5;margin:2rem auto 1rem;min-width:250px;padding:16px 32px;transition:background .2s;white-space:nowrap;width:auto}.login-button:hover{background:var(--accent)}.auth-buttons{display:flex;flex-direction:column;gap:12px;margin:0 auto;max-width:300px;width:100%}.google-signin-button{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:8px;color:var(--ink);cursor:pointer;display:flex;font-family:var(--font-latin);font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:8px 16px;width:100%}.google-signin-button img{height:18px;width:18px}.try-without-signin{border:none;border-radius:8px;color:var(--surface);cursor:pointer;font-size:1.5em;font-weight:500;padding:12px 24px;transition:background-color .2s;width:100%}.try-without-signin,.try-without-signin:hover{background-color:var(--accent)}.streak-badge{align-items:center;background:#ff8a001f;border-radius:var(--r-pill);color:#d9660b;display:inline-flex;font-size:.9rem;font-weight:600;gap:.25rem;line-height:1;padding:.2rem .55rem;white-space:nowrap}.streak-badge.goal-met{background:#2ea04326;color:#1f7a34}.streak-flame{font-size:1rem}.streak-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.streak-goal{font-size:.75rem;font-weight:500;opacity:.85}.wordsets-container{align-items:start;box-sizing:border-box;display:flex;justify-content:center;padding:0 20px;width:100%}.wordsets-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:0 auto;width:100%}.wordset-tile{align-items:stretch;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:0}.wordset-button-group{grid-gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--shadow);box-sizing:border-box;display:grid;gap:10px;grid-template-columns:1fr 1fr;padding:16px 16px 14px;width:100%}.wordset-button{border:1.5px solid #0000;border-radius:var(--r-pill);cursor:pointer;font:inherit;font-size:1rem;margin:0;transition:filter .15s ease,background-color .15s ease;width:auto}.wordset-header{grid-column:1/3;grid-row:1}.wordset-header-text{color:var(--ink);font-size:1.05rem;font-weight:700;margin:0 0 4px;text-align:left}.wordset-button-due{background:var(--accent);color:var(--accent-ink);font-weight:600;grid-column:1/3;grid-row:2;min-height:calc(var(--min-tap-target) + 4px);padding:0 18px}.wordset-button-due:hover{filter:brightness(1.05)}.wordset-button-practice,.wordset-button-test{background:var(--surface);border-color:var(--line);color:var(--accent);font-weight:600;grid-row:3;padding:0 14px}.wordset-button-practice{grid-column:1}.wordset-button-test{grid-column:2}.wordset-button-practice:hover,.wordset-button-test:hover{background:var(--accent-soft)}.wordset-button-excluded{background:#0000;color:var(--muted);font-size:.9rem;font-weight:500;grid-column:1/3;grid-row:4;justify-self:start;padding:0 10px}.wordset-button-excluded:hover{color:var(--ink)}.wordsets-login-container{align-items:center;background:var(--bg);display:flex;justify-content:center;min-height:calc(100vh - 64px);padding:2rem}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-hero);box-shadow:var(--shadow);max-width:480px;padding:2.5rem;text-align:center;width:100%}.login-card h2{color:var(--ink);font-family:var(--font-display);font-size:1.8rem;letter-spacing:-.02em;margin-bottom:1rem}.login-card p{color:var(--muted);line-height:1.6;margin-bottom:2rem}.features-list{margin:1rem 0;text-align:left}.feature-item{color:var(--ink);font-size:1.1rem;margin:1rem 0}.feature-item:before{color:var(--ok);content:"✓";font-weight:700;margin-right:.5rem}@supports (((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none)){.feature-item:before{background-color:var(--ok);content:"";display:inline-block;height:1em;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4.5 12.5 5 5L19.5 7' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center /contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m4.5 12.5 5 5L19.5 7' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center /contain no-repeat;vertical-align:-.125em;width:1em}}.login-button{background:var(--accent);border:none;border-radius:var(--r-pill);color:var(--accent-ink);cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2rem;transition:filter .2s}.login-button:hover{filter:brightness(1.05)}.wordsets-status{color:var(--muted);font-size:1rem;padding:32px 16px;text-align:center;width:100%}.wordsets-error{align-items:center;display:flex;flex-direction:column;gap:12px}.wordsets-retry{background-color:var(--accent);border:none;border-radius:var(--r-pill);color:var(--accent-ink);cursor:pointer;font-size:1rem;font-weight:600;padding:10px 20px}.wordsets-retry:hover{filter:brightness(1.05)}.skeleton-block{background:var(--line);opacity:.6;pointer-events:none}.wordset-header-text.skeleton-block{border-radius:4px;height:1.2em;margin-bottom:4px;width:60%}.wordset-button-excluded.skeleton-block{width:90px}.site-footer{border-top:1px solid #eae3d6;border-top:1px solid var(--line,#eae3d6);display:flex;flex-wrap:wrap;font-size:.9rem;gap:6px 14px;justify-content:center;margin-top:32px;padding:12px 0 24px}.site-footer,.site-footer a{align-items:center;color:#6d6558;color:var(--muted,#6d6558)}.site-footer a{display:inline-flex;min-height:44px;min-height:var(--min-tap-target,44px);text-decoration:underline}.session-size{box-sizing:border-box;color:var(--ink);margin:0 auto;max-width:560px;padding:28px 24px 72px;width:100%}.session-size-back{align-items:center;color:var(--muted);display:inline-flex;margin-left:-8px;min-height:var(--min-tap-target);padding:0 8px;text-decoration:none}.session-size-title{font-family:var(--font-display);font-size:1.7rem;letter-spacing:-.02em;line-height:1.2;margin:10px 0 4px}.session-size-sub{color:var(--muted);margin:0 0 20px}.session-size-options{grid-gap:10px;display:grid;gap:10px}.session-size-option{align-items:center;background:var(--surface);border:2px solid var(--line);border-radius:var(--r-card);box-sizing:border-box;color:var(--ink);cursor:pointer;display:flex;font:inherit;gap:12px;justify-content:space-between;min-height:64px;padding:10px 18px;text-align:left;transition:border-color .15s ease}.session-size-option:focus-visible,.session-size-option:hover{border-color:var(--accent);outline:none}.session-size-option.is-selected{background:var(--accent-soft);border-color:var(--accent)}.session-size-option-text{grid-gap:2px;display:grid;flex:1 1;gap:2px;min-width:0}.session-size-option-label{font-size:1.1rem;font-weight:700;line-height:1.35;word-break:break-word}.session-size-option-hint{color:var(--muted);font-size:.85rem;line-height:1.35;overflow-wrap:break-word;word-break:break-word}.session-size-option-time{color:var(--muted);flex-shrink:0;font-size:.9rem;white-space:nowrap}.session-size-note{color:var(--muted);font-size:.85rem;margin:18px 0 0}@media (max-width:480px){.session-size{padding:20px 16px 64px}.session-size-option{gap:8px;padding:10px 14px}}.policy-wrapper{background:var(--surface);bottom:0;left:0;overflow-y:auto;position:fixed;right:0;top:48px}.policy-container{color:var(--ink);font-family:var(--font-latin);margin:0 auto;max-width:800px;padding:2rem}.policy-container h1{color:#1a1a1a;font-size:2.5rem;margin-bottom:.5rem}.policy-container h2{color:#2a2a2a;font-size:1.5rem;margin-bottom:1rem;margin-top:2rem}.policy-container p{line-height:1.6;margin-bottom:1rem}.policy-container .last-updated{color:var(--muted);font-style:italic;margin-bottom:2rem}.policy-container ul{margin:1rem 0 1rem 2rem}.policy-container ul li{line-height:1.6;margin-bottom:.5rem}.policy-container ul ul{margin-top:.5rem}.policy-container section{margin-bottom:2rem}@media (max-width:768px){.policy-container{padding:1rem}}.cta-button-container{background-color:#f5f7fa;border-radius:8px;margin:2rem 0;padding:1rem;text-align:center}.cta-button{background-color:#24292e;border-radius:6px;padding:12px 24px;transition:background-color .2s ease}.cta-button:hover{background-color:#2f363d;color:var(--surface);text-decoration:none}:root{--font-latin:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-display:var(--font-latin);--font-hanzi:"Noto Serif SC","Songti SC","STSong","Source Han Serif SC","SimSun",serif;--r-pill:999px;--r-hero:20px;--r-card:16px;--r-item:12px;--bg:#fbf9f4;--surface:#fff;--surface-2:#f4efe6;--ink:#1d1a16;--muted:#6d6558;--line:#eae3d6;--accent:#b23b2e;--accent-ink:#fff;--accent-soft:#fbeeeb;--ok:#397146;--ok-ink:#fff;--ok-soft:#e6f1e8;--bad:#a4133c;--bad-ink:#fff;--bad-soft:#fbe9ee;--t1:#c8361f;--t2:#9c5410;--t3:#2a7130;--t4:#6b3fa0;--shadow:0 1px 2px #281e140f,0 8px 24px #281e140f}body,html{-webkit-font-smoothing:antialiased;background-color:#fbf9f4;color:#1d1a16;color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:lang(zh),:lang(zh-Hans){font-family:"Noto Serif SC",Songti SC,STSong,"Source Han Serif SC",SimSun,serif;font-family:var(--font-hanzi)}.t1{color:#c8361f;color:var(--t1)}.t1,.t2{font-weight:700}.t2{color:#9c5410;color:var(--t2)}.t3{color:#2a7130;color:var(--t3)}.t3,.t4{font-weight:700}.t4{color:#6b3fa0;color:var(--t4)}:root{--min-tap-target:44px}.completed-button-again,.completed-button-back,.completed-sibling-cta,.dropdown-trigger,.exclude-button,.game-settings-button,.google-signin-button,.google-signin-compact,.mark-all-memorized-button,.nav-wordsets-link,.onboarding-button,.session-header-back,.session-size-back,.session-size-option,.speak-button,.today-secondary,.today-start,.try-button,.wordset-button,.wordsets-retry{min-height:44px;min-height:var(--min-tap-target)}.dropdown-trigger,.session-header-back,.speak-button,.try-button{min-width:44px;min-width:var(--min-tap-target)}.mark{display:inline-block;flex:none;vertical-align:-.125em}body,html{align-items:center;background-color:var(--bg);box-sizing:border-box;display:flex;font-family:var(--font-latin);justify-content:center;margin:0;padding:0}#root,body,html{height:100%;width:100%}.app{display:flex;flex-direction:column;height:100vh}.navbar{height:48px;left:0;position:fixed;right:0;top:0;z-index:1000}.content{height:calc(100vh - 48px);margin-top:48px}.centered-content{align-items:center;display:flex;flex-direction:column;text-align:center;width:100%}.text-content{line-height:1.6;text-align:left}.content-container{height:100%}.incorrect-cards-container{flex-shrink:0}.cards-container{flex:1 1;min-height:0}.page-wrapper{bottom:0;left:0;overflow-y:auto;padding:20px;position:fixed;right:0;top:48px}.home-container{margin:0 auto;max-width:800px;padding:40px 20px}.home-content{align-items:center;display:flex;flex-direction:column;text-align:center}.hero-section{margin-bottom:2rem;text-align:center}.hero-section h1,.hero-section h2{margin-bottom:1rem}.hero-cta,.hero-section p{margin-bottom:2rem}.hero-value-prop{color:var(--muted);font-size:.95rem;line-height:1.5;margin:0 auto 1rem;max-width:32rem}.features-section{background:var(--surface);border-radius:var(--r-item);box-shadow:0 2px 10px #00000014;margin:10px 0;padding:10px;text-align:left;width:100%}.start-button{border-radius:8px;color:var(--surface);display:inline-block;font-weight:500;margin:30px 0;padding:15px 30px;text-decoration:none}.start-button,.start-button:hover{background:var(--accent)}.intro-section{display:none}.features-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:10px 0}.feature-card{background:var(--surface-2);border-radius:8px;padding:2rem;transition:transform .2s}.feature-card:hover{transform:translateY(-5px)}.cta-section{margin:3rem 0}.popular-words-section{margin:1.5rem 0;text-align:center;width:100%}.popular-words-list{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;justify-content:center;list-style:none;margin:.5rem 0 0;padding:0}.popular-words-list a{color:var(--accent);text-decoration:none}.popular-words-list a:hover{text-decoration:underline}.cta-button{border-radius:8px;color:var(--surface);display:inline-block;font-weight:700;padding:1rem 2rem;text-decoration:none;transition:background .2s}.cta-button,.cta-button:hover{background:var(--accent)}.game-preview{background:var(--bg);border-radius:var(--r-item);margin:3rem auto;max-width:1000px;padding:2rem}.cards-demo{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin:2rem 0;position:relative}.game-stats{display:flex;font-size:1.2rem;gap:1rem;position:absolute;right:20px;top:-30px}.timer{background:var(--surface);border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:.5rem 1rem}.score .wrong{color:var(--bad);margin-right:1rem}.score .right{color:var(--ok)}.flashcard{background:var(--surface);border-radius:8px;box-shadow:0 4px 8px #0000001a;display:flex;flex-direction:column;height:250px;justify-content:space-between;padding:1rem;perspective:1000px;width:200px}.flashcard.flipped{background:var(--bg)}.card-content{text-align:center}.example-word{display:block;margin-bottom:.5rem}.example-word .chinese-char{font-size:1.6rem;margin-right:.4rem}.example-word .meaning,.example-word .pinyin{color:var(--muted);font-size:1rem}.example-word .pinyin:after{color:#bbb;content:"\00b7";margin:0 .4rem}.chinese-word{font-size:2.5rem;margin-bottom:1rem}.pinyin{color:var(--muted);font-size:1.2rem;margin-bottom:.5rem}.english{color:#444;font-size:1.1rem;margin-bottom:1.5rem}.card-controls{display:flex;gap:1rem;justify-content:center;margin-top:auto}.right-btn,.wrong-btn{border:none;border-radius:50%;cursor:pointer;font-size:1.2rem;height:40px;width:40px}.wrong-btn{background:var(--bad-soft);color:var(--bad)}.right-btn{background:var(--ok-soft);color:var(--ok)}.game-controls-demo{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.control-btn{background:#e9ecef;border:none;border-radius:8px;color:#495057;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.control-btn:hover{background:#dee2e6}@media (max-width:768px){.cards-demo{flex-direction:column}.game-stats{margin-bottom:1rem;position:static}.game-controls-demo{flex-wrap:wrap}}.page-container{align-items:center;display:flex;flex-direction:column}.wordsets-container{margin:0 auto;max-width:800px}.today{align-items:center;display:flex;flex-direction:column;gap:.75rem;padding:3rem 1rem;text-align:center}.today-headline{color:var(--ink);font-size:1.5rem;margin:0}.today-count{color:var(--accent);display:block;font-size:3.5rem;font-weight:700;line-height:1}.today-done{color:var(--ok);font-size:2rem;font-weight:700}.today-streak,.today-sub,.today-target{color:var(--muted);font-size:.95rem;margin:0}.today-streak{font-weight:700}.today-explainer{color:var(--muted);font-size:.85rem;line-height:1.4;margin:0;max-width:30ch}.today-start{border:none;border-radius:8px;color:var(--surface);cursor:pointer;font-size:1.25rem;font-weight:700;margin-top:.5rem;padding:1rem 3rem;transition:background .2s}.today-start,.today-start:hover{background:var(--accent)}.today-secondary{align-items:center;box-sizing:border-box;color:var(--accent);display:inline-flex;font-size:.95rem;justify-content:center;text-decoration:none}.today-secondary:hover{text-decoration:underline}.today-status{color:var(--muted);margin:0}.today-error{color:var(--bad);font-weight:700}
/*# sourceMappingURL=main.e34b4514.css.map*/