:root{--yak-purple:#6528f7;--yak-purple-dark:#241047;--yak-purple-soft:#f0ebff;--yak-ink:#1e1732;--yak-muted:#6f6780;--yak-line:#e5dff2;--yak-paper:#fff;--yak-wash:#f8f7fc;--yak-teal:#12b9ad;--yak-orange:#ff941f;--yak-lime:#c5de24;color:var(--yak-ink);background:var(--yak-wash);font-synthesis:none;font-family:Inter,Be Vietnam Pro,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--yak-wash);min-width:320px}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid color-mix(in srgb, var(--yak-purple) 75%, white);outline-offset:3px}.app-shell{width:min(100%,760px);min-height:100dvh;padding:env(safe-area-inset-top,0) 20px calc(28px + env(safe-area-inset-bottom,0));margin:0 auto}.home-shell{width:min(100%,430px);padding:env(safe-area-inset-top,0) 12px calc(88px + env(safe-area-inset-bottom,0));background:linear-gradient(180deg, #f5f0ff 0%, var(--yak-wash) 43%, var(--yak-wash) 100%)}.bottom-nav{z-index:20;width:min(100%,430px);padding:9px 14px calc(9px + env(safe-area-inset-bottom,0));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-top:1px solid #e8e0f4;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #2c106f12}.bottom-nav-item{color:#938ba3;cursor:pointer;background:0 0;border:0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:54px;padding:6px 4px;font-size:11px;font-weight:750;transition:color .15s,background .15s;display:inline-flex}.bottom-nav-item:hover{color:var(--yak-purple);background:#faf8ff}.bottom-nav-item.is-active{color:var(--yak-purple);background:var(--yak-purple-soft)}.bottom-nav-item.is-active svg{stroke-width:2.3px}.home-shell .topbar{justify-content:center;min-height:0;padding:8px 0 10px}.home-shell .brand{justify-content:center;width:100%}.home-shell .brand-logo{width:min(245px,68vw);height:auto}.home-shell .storage-note,.home-shell .achievement-row{margin-top:14px}.home-shell .tracker-card{border-color:#e7defa;border-radius:20px;width:100%;margin-top:0;padding:16px 14px 14px;box-shadow:0 12px 28px #2c106f14}.home-shell .home-empty-pack{background:var(--yak-paper);border:1px solid #e7defa;border-radius:20px;width:100%;margin-top:0;padding:22px 16px 16px;box-shadow:0 12px 28px #2c106f14}.home-shell .home-empty-pack h2{color:var(--yak-purple-dark);letter-spacing:-.055em;margin:0;font-size:22px}.home-shell .home-empty-pack p{color:var(--yak-muted);margin:8px 0 0;font-size:14px;line-height:1.45}.home-shell .home-empty-pack .tracker-action{border-radius:16px;margin-top:16px}.home-shell .tracker-pack-heading{z-index:1;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.home-shell .tracker-pack-heading h2{color:var(--yak-purple-dark);letter-spacing:-.055em;margin:0;font-size:22px}.home-shell .tracker-pack-heading p{color:var(--yak-muted);margin:4px 0 0;font-size:13px}.home-shell .tracker-mastery{z-index:1;width:56px;height:56px;color:var(--yak-purple-dark);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-size:13px;line-height:1;display:grid;position:relative}.home-shell .tracker-mastery-inner{background:var(--yak-paper);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.home-shell .tracker-mastery span{color:var(--yak-muted);letter-spacing:0;margin-top:2px;font-size:8px;font-weight:600}.home-shell .tracker-progress{margin-top:14px;padding-top:12px}.home-shell .tracker-progress-label{font-size:11px}.home-shell .tracker-progress-label strong{display:none}.home-shell .tracker-action{border-radius:16px;margin-top:14px}.home-shell .home-stats{background:var(--yak-paper);border:1px solid #ebe4f7;border-radius:20px;width:100%;margin-top:12px;overflow:hidden;box-shadow:0 10px 24px #2c106f0f}.home-shell .home-stats-heading{border-bottom:1px solid var(--yak-line);justify-content:space-between;align-items:baseline;gap:12px;padding:14px 14px 12px;display:flex}.home-shell .home-stats-heading h2{color:var(--yak-purple-dark);letter-spacing:-.03em;margin:0;font-size:16px}.home-shell .home-stats-heading span{color:var(--yak-muted);font-size:11px}.home-shell .home-stats-grid{grid-template-columns:1fr 1fr;display:grid}.home-shell .home-stat{text-align:center;min-width:0;padding:14px 12px 16px}.home-shell .home-stat:nth-child(odd){border-right:1px solid var(--yak-line)}.home-shell .home-stat:nth-child(-n+2){border-bottom:1px solid var(--yak-line)}.home-shell .home-stat strong,.home-shell .home-stat span{display:block}.home-shell .home-stat strong{color:var(--yak-purple-dark);font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:20px}.home-shell .home-stat span{color:var(--yak-muted);margin-top:5px;font-size:12px}.topbar{justify-content:space-between;align-items:center;gap:14px;min-height:76px;display:flex}.brand,.topbar-back,.topbar-link,.icon-button,.study-finish{color:var(--yak-ink);cursor:pointer;background:0 0;border:0}.brand{align-items:center;padding:0;display:inline-flex}.brand-logo{object-fit:contain;width:62px;height:62px;display:block}.topbar-actions{align-items:center;gap:2px;display:flex}.topbar-link{min-height:44px;color:var(--yak-purple-dark);align-items:center;gap:7px;padding:0 9px;font-size:14px;font-weight:750;display:inline-flex}.icon-button{width:44px;height:44px;color:var(--yak-purple-dark);border-radius:50%;place-items:center;display:grid}.icon-button:hover{background:var(--yak-purple-soft)}.topbar-back{min-height:44px;color:var(--yak-purple-dark);align-items:center;gap:7px;padding:0;font-size:14px;font-weight:750;display:inline-flex}.eyebrow{color:var(--yak-purple);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:850}h1,h2,h3,p{margin-top:0}h1{color:var(--yak-purple-dark);letter-spacing:-.078em;margin-bottom:0;font-size:clamp(45px,13.8vw,74px);line-height:.91}.home-intro{padding:8vh 0 29px}.home-intro>p:last-child,.page-intro>p:last-child{max-width:330px;color:var(--yak-muted);margin:18px 0 0;font-size:16px;line-height:1.52}.tracker-card{background:var(--yak-paper);border:1px solid #ded3ff;border-radius:29px;padding:22px;position:relative;overflow:hidden;box-shadow:0 19px 46px #2c106f1a}.tracker-topline{z-index:1;color:var(--yak-purple-dark);align-items:center;gap:8px;display:flex;position:relative}.tracker-topline p{margin:0;font-size:13px;font-weight:760}.tracker-icon{background:var(--yak-purple-soft);width:35px;height:35px;color:var(--yak-purple);border-radius:12px;place-items:center;display:grid}.tracker-streak{color:var(--yak-purple-dark);background:#ffffffc2;border:1px solid #e7defe;border-radius:999px;margin-left:auto;padding:6px 9px;font-size:11px;font-weight:800}.tracker-metric{z-index:1;grid-template-columns:auto 1fr;align-items:end;column-gap:10px;margin-top:29px;display:grid;position:relative}.tracker-metric strong{color:var(--yak-purple-dark);font-variant-numeric:tabular-nums;letter-spacing:-.08em;font-size:clamp(51px,14vw,72px);line-height:.86}.tracker-metric>span{color:var(--yak-muted);padding-bottom:5px;font-size:14px}.tracker-metric .tracker-reviews{color:#81768f;grid-column:1/-1;padding:11px 0 0;font-size:12px}.tracker-progress{z-index:1;border-top:1px solid var(--yak-line);margin-top:26px;padding-top:18px;position:relative}.tracker-progress-label{color:var(--yak-muted);justify-content:space-between;gap:16px;font-size:12px;font-weight:700;display:flex}.tracker-progress-label strong{color:var(--yak-purple-dark);font-variant-numeric:tabular-nums}.progress-track{background:#eee8fa;border-radius:100px;height:9px;margin-top:10px;overflow:hidden}.progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--yak-purple), #8c5cff);min-width:0;height:100%;transition:width .3s ease-out;display:block}.tracker-progress p{color:var(--yak-muted);margin:9px 0 0;font-size:12px}.primary-button{background:var(--yak-purple);color:#fff;cursor:pointer;border:0;border-radius:17px;justify-content:center;align-items:center;gap:9px;min-height:54px;padding:0 19px;font-size:15px;font-weight:800;transition:transform .17s,box-shadow .17s,background .17s;display:inline-flex;box-shadow:0 10px 18px #6528f738}.primary-button:hover{background:#5420d4}.primary-button:active{transform:scale(.975);box-shadow:0 4px 10px #6528f72e}.tracker-action{z-index:1;width:100%;margin-top:23px;position:relative}.home-shell .home-section{background:var(--yak-paper);border:1px solid #ebe4f7;border-radius:20px;margin-top:16px;padding:14px 14px 12px;box-shadow:0 10px 24px #2c106f0f}.home-shell .section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.home-shell .section-heading .eyebrow{color:var(--yak-purple);margin-bottom:5px}.home-shell .section-heading h2{color:var(--yak-purple-dark);letter-spacing:-.04em;margin:0;font-size:18px}.home-shell .section-heading button{background:var(--yak-purple-soft);min-height:40px;color:var(--yak-purple);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:5px;padding:0 9px;font-size:12px;font-weight:800;display:inline-flex}.home-shell .current-pack-row{border:0;border-top:1px solid var(--yak-line);width:100%;min-height:72px;color:var(--yak-ink);text-align:left;cursor:pointer;background:0 0;grid-template-columns:43px 1fr 24px;align-items:center;gap:12px;margin-top:13px;padding:10px 0 0;display:grid}.home-shell .current-pack-row:hover{color:var(--yak-purple)}.home-shell .home-stats-heading span{background:var(--yak-purple-soft);color:var(--yak-purple);border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800}.home-shell .storage-note,.home-shell .achievement-row{background:var(--yak-paper);border:1px solid #ebe4f7;border-radius:18px;align-items:center;gap:12px;margin-top:16px;padding:14px;box-shadow:0 8px 18px #2c106f0d}.home-shell .storage-note button{background:var(--yak-purple-soft);border-radius:999px;min-height:38px;padding:0 10px}.home-shell .achievement-row>span{background:var(--yak-purple-soft);width:35px;height:35px;color:var(--yak-purple);flex:none}.home-shell .storage-note strong,.home-shell .achievement-row strong{font-size:13px}.home-shell .storage-note p,.home-shell .achievement-row p{font-size:11px}.language-chip,.pack-row-icon{background:var(--yak-purple-soft);width:43px;height:43px;color:var(--yak-purple);border-radius:14px;place-items:center;font-size:16px;font-weight:850;display:grid}.home-shell .current-pack-row strong,.home-shell .current-pack-row small{display:block}.home-shell .current-pack-row strong{font-size:14px}.home-shell .current-pack-row small{color:var(--yak-muted);margin-top:4px;font-size:12px;line-height:1.35}.home-shell .current-pack-row>svg{color:var(--yak-purple)}.storage-note,.achievement-row{border-top:1px solid var(--yak-line);border-bottom:1px solid var(--yak-line);align-items:flex-start;gap:16px;margin-top:34px;padding:19px 0;display:flex}.storage-note div,.achievement-row div{flex:1}.storage-note strong,.achievement-row strong{color:var(--yak-purple-dark);font-size:14px}.storage-note p,.achievement-row p{color:var(--yak-muted);margin:4px 0 0;font-size:12px;line-height:1.48}.storage-note button{min-height:40px;color:var(--yak-purple);cursor:pointer;background:0 0;border:0;font-size:13px;font-weight:800}.achievement-row>span{color:#4c8c36;background:#e8f7df;border-radius:50%;place-items:center;width:31px;height:31px;display:grid}.list-shell,.settings-shell{max-width:760px}.app-shell.has-bottom-nav{padding-bottom:calc(88px + env(safe-area-inset-bottom,0))}.settings-home-shell{width:min(100%,430px);padding:env(safe-area-inset-top,0) 12px calc(88px + env(safe-area-inset-bottom,0));background:linear-gradient(180deg, #f5f0ff 0%, var(--yak-wash) 38%, var(--yak-wash) 100%)}.settings-home-shell .settings-header{justify-content:space-between;align-items:center;gap:10px;min-height:78px;display:flex}.settings-home-shell .settings-header .topbar{order:2;justify-content:flex-end;min-height:78px}.settings-home-shell .settings-header .brand-logo{width:136px;height:70px}.settings-home-shell .settings-header h1{color:var(--yak-purple-dark);letter-spacing:-.06em;order:1;margin:0;font-size:clamp(34px,9.5vw,42px)}.list-shell{width:min(100%,430px);padding:env(safe-area-inset-top,0) 12px calc(88px + env(safe-area-inset-bottom,0));background:linear-gradient(180deg, #f5f0ff 0%, var(--yak-wash) 38%, var(--yak-wash) 100%)}.pack-library-header{justify-content:space-between;align-items:center;gap:10px;min-height:78px;display:flex}.pack-library-header .topbar{justify-content:flex-end;min-height:78px}.pack-library-header .brand-logo{width:136px;height:70px}.page-intro{padding:7vh 0 35px}.pack-library-intro{flex:1;padding:0}.pack-library-intro h1{color:var(--yak-purple-dark);letter-spacing:-.06em;margin:0;font-size:clamp(34px,9.5vw,42px)}.page-intro.compact{padding-top:5vh}.page-intro h1{max-width:580px;font-size:clamp(41px,11vw,65px)}.pack-search{margin:0 0 12px;display:block}.pack-search input,.pack-filter select{border:1px solid var(--yak-line);background:var(--yak-paper);width:100%;min-height:48px;color:var(--yak-ink);border-radius:14px;padding:0 14px}.pack-filter{color:var(--yak-muted);align-items:center;gap:12px;margin-bottom:12px;font-size:13px;font-weight:750;display:flex}.pack-filter select{flex:1;width:auto}.pack-result-count{color:var(--yak-muted);margin:10px 0 12px;font-size:12px}.pack-clear-selection{border:1px solid var(--yak-line);background:0 0;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin:0 0 12px;padding:10px 12px;display:flex}.pack-clear-selection p{min-width:0;color:var(--yak-muted);margin:0;font-size:12px;line-height:1.35}.pack-clear-selection strong{color:var(--yak-ink);font-weight:650}.pack-clear-selection button{min-height:34px;color:var(--yak-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;padding:0 12px;font-size:12px;font-weight:650;text-decoration:underline}.pack-clear-selection button:hover{color:var(--yak-purple-dark)}.pack-clear-selection button:disabled{opacity:.5;cursor:default}.pack-meta{color:var(--yak-muted);margin-top:8px;font-size:12px;font-weight:700;display:block}.catalog-error{color:#8c4860;border:1px solid #eac6d1;border-radius:12px;margin:0 0 12px;padding:12px;font-size:13px;line-height:1.4}.empty-state{border:1px solid var(--yak-line);color:var(--yak-muted);background:var(--yak-paper);border-radius:16px;margin:0 0 12px;padding:22px 16px;font-size:14px;line-height:1.5}.pack-list{border:0;gap:10px;display:grid}.pack-language-groups{gap:12px;display:grid}.pack-language-group{background:color-mix(in srgb, var(--yak-paper) 88%, #f5f0ff);border:1px solid #e5dcf3;border-radius:18px;overflow:hidden}.pack-language-heading{margin:0}.pack-language-toggle{width:100%;min-height:52px;color:var(--yak-purple-dark);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.pack-language-toggle-copy{gap:2px;min-width:0;display:grid}.pack-language-toggle-copy strong{letter-spacing:-.03em;overflow-wrap:anywhere;font-size:16px}.pack-language-toggle-copy span{color:var(--yak-muted);font-size:12px;font-weight:650}.pack-language-chevron{background:var(--yak-purple-soft);width:32px;height:32px;color:var(--yak-purple);border-radius:999px;flex:none;place-items:center;transition:transform .16s;display:grid;transform:rotate(90deg)}.pack-language-chevron.is-open{transform:rotate(-90deg)}.pack-language-panel{gap:14px;padding:0 12px 12px;display:grid}.pack-subsection{gap:8px;min-width:0;display:grid}.pack-subsection h3{color:var(--yak-muted);letter-spacing:.04em;text-transform:uppercase;margin:0;padding:0 2px;font-size:11px;font-weight:800}.pack-subsection .pack-list{gap:8px}.pack-row{background:var(--yak-paper);width:100%;min-height:0;color:var(--yak-ink);text-align:left;cursor:pointer;border:1px solid #e5dcf3;border-radius:18px;grid-template-columns:52px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:16px 16px 14px;display:grid;box-shadow:0 10px 24px #2c106f12}.pack-row-active{border-color:color-mix(in srgb, var(--yak-purple) 35%, #e5dcf3);box-shadow:0 12px 28px #6528f71f}.pack-row:disabled{cursor:wait;opacity:.62}.pack-row:hover .pack-row-content strong{color:var(--yak-purple)}.pack-row-icon{background:var(--yak-purple-soft);width:52px;height:52px;color:var(--yak-purple);letter-spacing:.04em;border-radius:14px;place-items:center;font-size:13px;font-weight:850;display:grid}.pack-row-content{min-width:0}.pack-row-content strong,.pack-row-content small{display:block}.pack-row-content strong{color:var(--yak-purple-dark);letter-spacing:-.04em;font-size:17px}.pack-row-content small{color:var(--yak-muted);margin-top:4px;font-size:12px;line-height:1.35}.pack-row-arrow{color:var(--yak-purple-dark)}.future-note{background:var(--yak-purple-soft);color:var(--yak-purple);border:1px solid #e5dcf3;border-radius:16px;align-items:center;gap:11px;margin-top:12px;padding:11px;display:flex}.future-note>svg{flex:none}.future-note strong{color:var(--yak-purple-dark);font-size:13px}.future-note p{color:var(--yak-muted);margin:3px 0 0;font-size:11px;line-height:1.35}.settings-home-shell .settings-section{background:var(--yak-paper);border:1px solid #ebe4f7;border-radius:18px;margin-top:14px;padding:16px 14px 0;box-shadow:0 10px 24px #2c106f0f}.settings-home-shell .settings-section h2{color:var(--yak-purple);letter-spacing:-.03em;margin:0 0 8px;font-size:17px}.settings-home-shell .settings-action-row,.settings-home-shell .settings-info-row,.settings-home-shell .text-danger{border:0;border-top:1px solid var(--yak-line);width:100%;min-height:76px;color:var(--yak-purple-dark);text-align:left;background:0 0;align-items:center;gap:12px;display:flex}.settings-home-shell .settings-action-row,.settings-home-shell .text-danger{cursor:pointer}.settings-home-shell .settings-row-icon{background:var(--yak-purple-soft);width:50px;height:50px;color:var(--yak-purple);border-radius:14px;flex:none;place-items:center;display:grid}.settings-home-shell .settings-row-copy{flex:1;min-width:0}.settings-home-shell .settings-row-copy strong,.settings-home-shell .settings-row-copy small{display:block}.settings-home-shell .settings-row-copy strong{letter-spacing:-.025em;font-size:16px}.settings-home-shell .settings-row-copy small{color:var(--yak-muted);margin-top:4px;font-size:13px}.settings-home-shell .settings-action-row>svg,.settings-home-shell .text-danger>svg{color:var(--yak-purple-dark);flex:none}.settings-home-shell .text-danger{color:#bd2842;background:#fffafb;border:1px solid #f0d6dd;border-radius:18px;min-height:76px;margin-top:14px;padding:0 14px;font-weight:750}.settings-home-shell .text-danger .settings-row-icon{color:#d02c48;background:#fde7eb}.settings-home-shell .text-danger>svg{color:#bd2842}.settings-home-shell .settings-section .text-danger{background:0 0;border:0;border-top:1px solid #f0d6dd;border-radius:0;margin-top:0}.settings-home-shell .settings-section .text-danger .settings-row-icon{margin-left:0}.info-block{border-top:1px solid var(--yak-line);margin-top:39px;padding-top:21px}.info-block h2{color:var(--yak-purple-dark);letter-spacing:-.04em;margin:0 0 9px;font-size:17px}.info-block p,.instruction-list p{color:var(--yak-muted);font-size:14px;line-height:1.65}.instruction-list{border-top:1px solid var(--yak-line);margin:35px 0}.instruction-list p{border-bottom:1px solid var(--yak-line);margin:0;padding:20px 0}.instruction-list strong{color:var(--yak-purple-dark)}.instruction-list em{color:var(--yak-purple);font-style:normal;font-weight:750}.install-shell{width:min(100%,430px);padding:env(safe-area-inset-top,0) 12px calc(28px + env(safe-area-inset-bottom,0));background:linear-gradient(180deg, #f5f0ff 0%, var(--yak-wash) 38%, var(--yak-wash) 100%)}.install-branding{place-items:center;min-height:104px;display:grid}.install-shell .brand-logo{object-fit:contain;width:220px;height:84px;display:block}.install-intro{text-align:center;padding:4px 0 18px}.install-intro h1{color:var(--yak-purple-dark);letter-spacing:-.06em;margin:0;font-size:clamp(36px,9.5vw,44px)}.install-intro p{max-width:330px;color:var(--yak-muted);margin:10px auto 0;font-size:15px;line-height:1.45}.instruction-section{background:var(--yak-paper);border:1px solid #ebe4f7;border-radius:18px;margin-top:14px;padding:15px 13px 0;box-shadow:0 10px 24px #2c106f0f}.instruction-section h2{color:var(--yak-purple);letter-spacing:-.03em;margin:0 0 8px;font-size:17px}.install-shell .instruction-list{border:0;gap:8px;margin:0;padding:0 0 13px;display:grid}.instruction-step{border-top:1px solid var(--yak-line);align-items:center;gap:10px;min-height:48px;display:flex}.instruction-step-number{background:var(--yak-purple);color:#fff;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-size:13px;font-weight:800;display:grid}.instruction-step p{color:var(--yak-purple-dark);margin:0;font-size:13px;line-height:1.35}.install-note{background:var(--yak-purple-soft);color:var(--yak-purple);border:1px solid #e5dcf3;border-radius:16px;align-items:center;gap:10px;margin-top:14px;padding:13px;display:flex}.install-note svg{flex:none}.install-note p{color:var(--yak-muted);margin:0;font-size:12px;line-height:1.4}.install-acknowledge{width:100%;margin-top:16px}.install-back{min-height:44px;color:var(--yak-purple);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin:8px auto 0;font-size:13px;font-weight:800;display:inline-flex}.study-shell{flex-direction:column;min-height:100dvh;display:flex;overflow:hidden}.study-header{min-height:74px;color:var(--yak-muted);letter-spacing:.015em;grid-template-columns:1fr auto 1fr;align-items:center;font-size:12px;font-weight:750;display:grid}.study-header>span{text-align:center;font-variant-numeric:tabular-nums}.study-header .icon-button{justify-self:end}.secondary-button{background:var(--yak-paper);min-height:54px;color:var(--yak-purple);cursor:pointer;border:1px solid #e2daf2;border-radius:17px;justify-content:center;align-items:center;gap:9px;margin-top:12px;font-size:15px;font-weight:800;display:inline-flex}.text-link{color:var(--yak-purple);cursor:pointer;background:0 0;border:0;margin-top:14px;font-size:14px;font-weight:750}.study-finish{min-height:44px;color:var(--yak-purple-dark);justify-self:start;padding:0;font-size:14px;font-weight:780}.study-stage{flex:1;place-items:center;min-height:420px;padding:14px 0 21px;display:grid;position:relative}.flashcard{z-index:2;width:min(100%,555px);min-height:min(59dvh,535px);color:var(--yak-ink);cursor:pointer;perspective:1200px;touch-action:pan-y;background:0 0;border:0;padding:0;display:block;position:relative}.flashcard-inner{width:100%;min-height:inherit;transform-style:preserve-3d;transition:transform .29s cubic-bezier(.18,.78,.26,1);display:block;position:relative}.flashcard.is-revealed .flashcard-inner{transform:rotateY(180deg)}.card-face{width:100%;min-height:inherit;background:var(--yak-paper);backface-visibility:hidden;text-align:center;border:1px solid #e2daf2;border-radius:31px;flex-direction:column;justify-content:center;align-items:center;padding:34px 29px;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:0 23px 52px #2c106f1c}.card-front{background:linear-gradient(145deg,#fff 0%,#fcfbff 63%,#f5f0ff 100%)}.card-back{background:linear-gradient(145deg,#fff 0%,#fcfaff 100%);transform:rotateY(180deg)}.card-topline{color:#8d809b;letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:800;position:absolute;top:24px;left:27px}.card-front strong,.card-back strong{max-width:100%;color:var(--yak-purple-dark);letter-spacing:-.055em;overflow-wrap:anywhere;font-family:PingFang TC,Noto Sans TC,Microsoft JhengHei,sans-serif;font-size:clamp(55px,16.5vw,92px);font-weight:750;line-height:1.15}.card-back strong{font-size:clamp(42px,13vw,73px)}.card-hint{color:var(--yak-purple);font-size:14px;font-weight:800;position:absolute;bottom:42px}.card-answer-note{color:#94899e;font-size:11px;position:absolute;bottom:23px}.reading{color:var(--yak-purple);margin-top:13px;font-size:20px;font-weight:700}.meaning{max-width:400px;color:var(--yak-ink);letter-spacing:-.045em;margin-top:26px;font-size:clamp(23px,6.5vw,31px);font-weight:700;line-height:1.13}.part-of-speech{background:var(--yak-purple-soft);color:#71657c;letter-spacing:.06em;text-transform:uppercase;border-radius:100px;margin-top:15px;padding:6px 10px;font-size:11px;font-weight:800}.review-streak{color:#897d92;align-items:center;gap:7px;font-size:11px;display:inline-flex;position:absolute;bottom:25px}.review-streak i{gap:4px;display:inline-flex}.review-streak b{background:#e0d8e8;border-radius:50%;width:7px;height:7px}.review-streak b.is-on{background:var(--yak-purple)}.swipe-signal{z-index:1;opacity:0;color:var(--yak-muted);letter-spacing:.07em;text-transform:uppercase;align-items:center;gap:5px;font-size:12px;font-weight:850;transition:opacity .14s;display:flex;position:absolute;top:50%}.swipe-signal.visible{opacity:1}.swipe-again{color:#a64a68;left:-2px}.swipe-good{color:#467b62;right:-2px}.grade-actions{grid-template-columns:1fr 1fr;gap:10px;padding-top:4px;display:grid}.grade-actions button{cursor:pointer;border-radius:17px;justify-content:center;align-items:center;gap:8px;min-height:55px;padding:0 13px;font-size:14px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.grade-actions button:active{transform:scale(.98)}.grade-again{background:var(--yak-paper);color:#8c4860;border:1px solid #e0d4da}.grade-again:hover{background:#fff7f8}.grade-good{border:1px solid var(--yak-purple);background:var(--yak-purple);color:#fff;box-shadow:0 9px 18px #6528f733}.grade-good:hover{background:#5420d4}.study-instruction{color:var(--yak-muted);text-align:center;margin:13px 0 0;font-size:12px}.caught-up{flex-direction:column;flex:1;justify-content:center;max-width:470px;padding:0 0 13vh;display:flex}.caught-up h1{font-size:clamp(43px,12vw,62px)}.caught-up p:not(.eyebrow){max-width:390px;color:var(--yak-muted);margin:22px 0 29px;line-height:1.55}.normal-study-shell{width:min(100%,430px);padding:env(safe-area-inset-top,0) 12px calc(12px + env(safe-area-inset-bottom,0));background:linear-gradient(180deg, #f5f0ff 0%, var(--yak-wash) 40%, var(--yak-wash) 100%)}.normal-study-shell .study-progress{color:var(--yak-purple);text-align:center;flex:none;gap:7px;padding:14px 0 4px;display:grid}.normal-study-shell .study-progress strong{color:var(--yak-purple-dark);font-size:16px;font-weight:750}.normal-study-shell .study-progress .progress-track{height:6px;margin-top:0}.normal-study-shell .study-progress>span{font-size:12px}.normal-study-shell .study-stage{flex:1;min-height:0;padding:10px 0 14px}.normal-study-shell .flashcard{width:100%;min-height:min(54dvh,520px)}.normal-study-shell .card-face{border-radius:28px;padding:28px 22px;box-shadow:0 18px 40px #2c106f1a}.normal-study-shell .card-front{background:var(--yak-paper);overflow:hidden}.normal-study-shell .card-back{overscroll-behavior:contain;background:var(--yak-paper);-webkit-overflow-scrolling:touch;justify-content:safe center;overflow:hidden auto}.normal-study-shell .meaning{overflow-wrap:anywhere}.normal-study-shell .swipe-signal{pointer-events:none}.normal-study-shell .grade-actions{flex:none;padding-top:0}.normal-study-shell .grade-actions button{min-height:58px;font-size:15px}.normal-study-shell .study-secondary-actions{flex:none;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;display:grid}.normal-study-shell .study-secondary-button{background:var(--yak-paper);min-height:48px;color:var(--yak-purple);cursor:pointer;border:1px solid #e2daf2;border-radius:15px;justify-content:center;align-items:center;gap:7px;font-size:14px;font-weight:800;display:inline-flex}.normal-study-shell .study-secondary-button svg{width:18px;height:18px}.summary-shell{width:min(100%,430px);min-height:100dvh;padding:env(safe-area-inset-top,0) 12px calc(28px + env(safe-area-inset-bottom,0));background:linear-gradient(180deg, #f5f0ff 0%, var(--yak-wash) 38%, var(--yak-wash) 100%)}.summary-shell .topbar{justify-content:center;min-height:104px}.summary-shell .brand-logo{width:220px;height:84px}.summary-page{width:100%;margin:0 auto;padding:8px 0 0}.summary-page h1{color:var(--yak-purple-dark);letter-spacing:-.06em;text-align:center;margin:0;font-size:clamp(36px,9.5vw,44px)}.summary-grid{background:var(--yak-paper);border:1px solid #ebe4f7;border-radius:20px;grid-template-columns:1fr 1fr;margin:24px 0 18px;display:grid;overflow:hidden;box-shadow:0 12px 28px #2c106f12}.summary-stat{text-align:center;flex-direction:column;justify-content:center;gap:5px;min-height:106px;padding:18px 12px;display:flex}.summary-stat:nth-child(odd){border-right:1px solid var(--yak-line)}.summary-stat:nth-child(-n+2){border-bottom:1px solid var(--yak-line)}.summary-stat strong{color:var(--yak-purple-dark);font-variant-numeric:tabular-nums;letter-spacing:-.06em;font-size:29px}.summary-stat span{color:var(--yak-muted);font-size:12px}.summary-action{width:100%}.completion-shell{width:min(100%,430px);min-height:100dvh;padding:env(safe-area-inset-top,0) 12px calc(28px + env(safe-area-inset-bottom,0));background:radial-gradient(circle at 50% 18%, #6528f721, transparent 24%), var(--yak-wash)}.completion-shell .topbar{justify-content:center;min-height:104px}.completion-shell .brand-logo{width:220px;height:84px}.completion-page{text-align:center;width:100%;margin:0 auto;padding:8px 0 0}.completion-page h1{color:var(--yak-purple-dark);letter-spacing:-.06em;margin:0;font-size:clamp(36px,9.5vw,44px);line-height:1.05}.completion-icon{background:var(--yak-purple);color:#fff;border-radius:21px;place-items:center;width:64px;height:64px;margin:0 auto 13px;display:grid;box-shadow:0 12px 24px #6528f738}.completion-page .eyebrow{color:var(--yak-purple);margin-bottom:7px}.completion-stat{flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;display:flex}.completion-stat strong{color:var(--yak-purple-dark);font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:20px}.completion-stat span{color:var(--yak-muted);font-size:11px}.completion-total{margin:18px 0 20px}.completion-total strong{color:var(--yak-purple);font-size:clamp(44px,12vw,58px);line-height:.95}.completion-total span{font-size:14px}.completion-stats{background:var(--yak-paper);border:1px solid #ebe4f7;border-radius:20px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden;box-shadow:0 12px 28px #2c106f12}.completion-stats .completion-stat{min-height:104px;padding:14px 6px}.completion-stats .completion-stat+.completion-stat{border-left:1px solid var(--yak-line)}.completion-stats .completion-stat strong{overflow-wrap:anywhere;max-width:100%;font-size:16px}.completion-action{width:100%;margin-top:18px}.startup-message{min-height:100dvh;color:var(--yak-muted);text-align:center;place-content:center;gap:12px;padding:30px;display:grid}.startup-message h1{font-size:34px}.startup-message p{margin:0}.loading-orb{border:3px solid #e3dcf2;border-top-color:var(--yak-purple);border-radius:50%;width:33px;height:33px;margin:0 auto;animation:.82s linear infinite spin}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=680px){.app-shell{padding-left:38px;padding-right:38px}.home-shell{padding-left:12px;padding-right:12px}.home-shell .tracker-card{padding:18px 16px 16px}.list-shell,.settings-home-shell,.install-shell{padding-left:38px;padding-right:38px}.tracker-card{padding:27px}.study-stage{min-height:585px}.flashcard{min-height:min(63dvh,570px)}.swipe-again{left:-22px}.swipe-good{right:-22px}.normal-study-shell .study-stage{min-height:0}.normal-study-shell .flashcard{min-height:min(54dvh,520px)}.normal-study-shell .swipe-again{left:-2px}.normal-study-shell .swipe-good{right:-2px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
