:root{--ink:#17221d;--muted:#59665f;--paper:#f4f1e9;--surface:#fffdf7;--surface-strong:#fff;--line:#d7d4ca;--green:#185c43;--green-dark:#0f4531;--green-soft:#dcece3;--red:#b44835;--red-soft:#f7e1da;--yellow:#f0c95c;--blue:#315f7c;--shadow:0 16px 45px #212c2614}*{box-sizing:border-box}html{background:var(--paper);scroll-behavior:smooth}body{background:radial-gradient(circle at 8% 0%, #f0c95c21, transparent 24rem), var(--paper);color:var(--ink);margin:0;font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,Yu Gothic,sans-serif;font-size:16px;line-height:1.55}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #315f7c73}.study-app{min-height:100dvh;padding-bottom:92px}.app-header{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#f4f1e9eb;border-bottom:1px solid #d7d4cad9;justify-content:space-between;align-items:center;min-height:72px;padding:12px max(18px,50vw - 520px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand>span{background:var(--ink);width:38px;height:38px;color:var(--surface);border-radius:12px;place-items:center;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:20px;display:grid}.brand strong{letter-spacing:-.03em;font-size:18px}.signin-button,.account-button{border-radius:12px;min-height:44px;text-decoration:none}.signin-button{background:var(--green);color:#fff;align-items:center;padding:0 15px;font-size:13px;font-weight:800;display:inline-flex}.account-button{flex-direction:column;justify-content:center;align-items:flex-end;display:flex}.account-button strong{text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:13px;overflow:hidden}.account-button span{color:var(--muted);font-size:11px}.app-main{width:min(1040px,100%);margin:0 auto;padding:42px 24px 80px}.kicker{color:var(--red);letter-spacing:.09em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:900}.intro-copy h1,.section-heading h1,.session-heading h1,.complete-card h1,.state-page h1{letter-spacing:-.055em;margin:0;font-size:clamp(34px,6vw,62px);line-height:1.08}.intro-copy>p:last-child,.section-heading>p:last-child{max-width:590px;color:var(--muted);margin:20px 0 0;line-height:1.8}.today-view{gap:36px;display:grid}.setup-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffdf7f0;border-radius:22px;padding:26px}fieldset{border:0;min-width:0;margin:0 0 24px;padding:0}legend{margin-bottom:10px;font-size:14px;font-weight:900}.level-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.level-grid button,.goal-row button,.filter-row button{border:1px solid var(--line);background:var(--surface-strong);border-radius:13px;min-height:52px}.level-grid button{flex-direction:column;justify-content:center;align-items:center;display:flex}.level-grid button strong{font-size:16px}.level-grid button span{color:var(--muted);font-size:11px}.level-grid button.selected,.goal-row button.selected,.filter-row button.selected{border-color:var(--ink);background:var(--ink);color:#fff}.level-grid button.selected span{color:#cad3ce}.goal-row{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.goal-row button,.filter-row button{font-size:13px;font-weight:800}.primary-action,.secondary-action{border-radius:14px;min-height:52px;padding:0 18px;font-weight:900}.primary-action{border:1px solid var(--green);background:var(--green);color:#fff;width:100%}.primary-action:hover{background:var(--green-dark)}.secondary-action{border:1px solid var(--line);background:var(--surface-strong)}.storage-note{color:var(--muted);text-align:center;margin:12px 0 0;font-size:12px}.session-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.session-heading h1{font-size:clamp(30px,5vw,46px)}.session-heading>span{color:var(--muted);white-space:nowrap;font-size:13px}.flash-card{border:1px solid var(--line);background:var(--surface-strong);min-height:480px;box-shadow:var(--shadow);border-radius:26px;padding:24px;position:relative;overflow:hidden}.flash-card:before{content:"";background:var(--yellow);height:7px;position:absolute;inset:0 0 auto}.flash-card.revealed:before{background:var(--green)}.card-meta{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.card-meta span:first-child{background:var(--ink);color:#fff;border-radius:8px;padding:4px 8px;font-weight:900}.card-word{text-align:center;overflow-wrap:anywhere;place-items:center;min-height:220px;padding:34px 8px 22px;font-family:Yu Mincho,Hiragino Mincho ProN,Noto Serif JP,serif;font-size:clamp(46px,12vw,84px);font-weight:700;line-height:1.35;display:grid}ruby rt{color:var(--green);font-family:Yu Gothic,Noto Sans JP,sans-serif;font-size:.26em;font-weight:700}.recall-prompt{border-top:1px solid var(--line);text-align:center;padding-top:22px}.recall-prompt p{color:var(--muted);margin:0 0 18px}.recall-prompt .primary-action{width:min(360px,100%)}.answer{border-top:1px solid var(--line);gap:22px;padding-top:22px;display:grid}.answer dl,.progress-grid dl{margin:0}.answer dl{grid-template-columns:1fr 1.4fr;gap:10px;display:grid}.answer dl>div{background:var(--paper);border-radius:13px;padding:14px}dt{color:var(--muted);font-size:11px;font-weight:800}dd{margin:4px 0 0;font-weight:800}.example-block{border-left:5px solid var(--green);background:var(--green-soft);border-radius:0 15px 15px 0;padding:18px}.example-block>span{color:var(--green-dark);font-size:11px;font-weight:900}.example-ja{margin:8px 0 4px;font-family:Yu Mincho,Noto Serif JP,serif;font-size:19px;font-weight:700;line-height:1.65}.example-reading{color:var(--muted);margin:0;font-size:13px}.example-ko{border-top:1px solid #185c4333;margin:11px 0 0;padding-top:11px;font-weight:700}.grade-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.grade-row button{border:1px solid var(--line);background:var(--surface-strong);border-radius:15px;min-height:72px}.grade-row button:first-child{background:var(--red-soft);color:#7d2f22;border-color:#e7b9ae}.grade-row button.good{border-color:var(--green);background:var(--green);color:#fff}.grade-row strong,.grade-row span{display:block}.grade-row strong{font-size:15px}.grade-row span{color:inherit;opacity:.78;margin-top:3px;font-size:10px}.complete-card{border:1px solid var(--line);background:var(--surface);text-align:center;box-shadow:var(--shadow);border-radius:24px;padding:70px 24px}.complete-card>span{color:var(--green);font-family:Yu Mincho,serif;font-size:64px;display:block}.complete-card h1{font-size:clamp(32px,6vw,52px)}.complete-card>p:not(.kicker){color:var(--muted)}.complete-card .primary-action{width:min(340px,100%);margin-top:12px}.section-heading{margin-bottom:28px}.section-heading h1{font-size:clamp(38px,7vw,64px)}.library-controls{border:1px solid var(--line);background:var(--surface);border-radius:20px;gap:14px;padding:20px;display:grid}.level-grid.compact button{min-height:44px;font-weight:900}.kind-tabs{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.kind-tabs button{border:1px solid var(--line);background:#fff;border-radius:13px;min-height:66px}.kind-tabs strong,.kind-tabs span{display:block}.kind-tabs strong{font-size:14px}.kind-tabs span{color:var(--muted);font-size:10px}.kind-tabs button.selected{border-color:var(--green);background:var(--green-soft);color:var(--green-dark)}.search-field{color:var(--muted);gap:7px;font-size:12px;font-weight:800;display:grid}.search-field input{border:1px solid var(--line);width:100%;min-height:50px;color:var(--ink);background:#fff;border-radius:13px;padding:0 15px}.filter-row{flex-wrap:wrap;gap:7px;display:flex}.filter-row button{min-height:40px;padding:0 14px}.result-count{color:var(--muted);margin:24px 0 8px;font-size:13px;font-weight:800}.library-list{border-top:1px solid var(--line)}.library-list>button{border:0;border-bottom:1px solid var(--line);text-align:left;background:0 0;grid-template-columns:10px minmax(120px,1fr) minmax(160px,1.7fr) auto;align-items:center;gap:14px;width:100%;min-height:76px;padding:12px 4px;display:grid}.library-list>button:hover{background:#ffffff8c}.status-dot{background:#aeb6b1;border-radius:50%;width:9px;height:9px}.status-dot.learning{background:#d99d22}.status-dot.mastered{background:var(--green)}.library-word{flex-direction:column;display:flex}.library-word strong{font-family:Yu Mincho,Noto Serif JP,serif;font-size:20px}.library-word small{color:var(--muted)}.library-meaning{color:var(--muted);font-size:13px}.open-label{color:var(--green);font-size:12px;font-weight:900}.load-more{min-width:180px;margin:22px auto;display:block}.progress-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.progress-grid article{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:20px}.progress-title{justify-content:space-between;align-items:center;display:flex}.progress-title span{font-size:20px;font-weight:950}.progress-title strong{color:var(--green);font-size:24px}.progress-bar{background:#deddd6;border-radius:999px;height:8px;margin:12px 0 16px;overflow:hidden}.progress-bar i{border-radius:inherit;background:var(--green);height:100%;display:block}.progress-grid dl{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.progress-grid dl>div{text-align:center;background:#fff;border-radius:10px;padding:9px}.progress-grid dd{font-size:14px}.progress-grid article>button{border:1px solid var(--line);width:100%;min-height:44px;color:var(--green);background:#fff;border-radius:11px;margin-top:14px;font-size:13px;font-weight:900}.account-panel,.quality-note{border-radius:18px;margin-top:16px;padding:22px}.account-panel{border:1px solid var(--line);background:var(--ink);color:#fff;justify-content:space-between;align-items:center;gap:24px;display:flex}.account-panel h2,.quality-note h2{margin:0 0 5px;font-size:20px}.account-panel p:not(.kicker),.quality-note p{margin:0;line-height:1.7}.account-panel p:not(.kicker){color:#c8d2cc}.account-panel a{min-height:44px;color:var(--ink);white-space:nowrap;background:#fff;border-radius:11px;padding:11px 14px;font-size:13px;font-weight:900;text-decoration:none}.account-actions{gap:8px;min-width:142px;display:grid}.account-actions button{color:#e7ece9;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:1px solid #708078;border-radius:11px;font-size:13px;font-weight:800}.account-actions button:disabled{cursor:wait;opacity:.58}.quality-note{border-left:5px solid var(--blue);background:#e7eef2}.quality-note p{color:#465d6b}.quality-note a{color:var(--blue);margin-top:10px;font-weight:900;display:inline-block}.app-nav{z-index:30;width:min(560px,100% - 24px);min-height:68px;padding:6px 8px max(6px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border:1px solid #d7d4cae6;border-bottom:0;border-radius:20px 20px 0 0;grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -10px 36px #1e29231a}.app-nav button{min-height:54px;color:var(--muted);background:0 0;border:0;border-radius:13px;font-size:11px;font-weight:850}.app-nav button span{font-family:Yu Mincho,serif;font-size:20px;display:block}.app-nav button.active{background:var(--green-soft);color:var(--green-dark)}.modal-backdrop{z-index:100;background:#0d1611ad;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.sync-dialog{background:var(--surface);border-radius:22px;width:min(470px,100%);padding:28px;box-shadow:0 30px 100px #00000047}.sync-dialog h2{margin:0;font-size:26px;line-height:1.25}.sync-dialog>p:not(.kicker){color:var(--muted);margin:12px 0 22px}.sync-dialog .secondary-action{width:100%;margin-top:9px}.state-page{text-align:center;place-content:center;justify-items:center;min-height:100dvh;padding:32px;display:grid}.state-page h1{font-size:clamp(28px,5vw,46px)}.state-page>p:last-child{color:var(--muted)}.loader{border:4px solid var(--line);border-top-color:var(--green);border-radius:50%;width:38px;height:38px;margin-bottom:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=860px){.today-view:has(.setup-card){grid-template-columns:1.05fr .95fr;align-items:center;min-height:calc(100dvh - 210px)}.flash-card{padding:30px}}@media (width<=680px){.app-header{min-height:64px;padding-inline:14px}.brand>span{width:34px;height:34px}.brand strong{font-size:16px}.signin-button{padding-inline:11px;font-size:11px}.account-button strong{max-width:100px}.app-main{padding:28px 14px 70px}.today-view{gap:26px}.setup-card{padding:18px}.flash-card{border-radius:20px;min-height:430px;padding:19px}.card-word{min-height:190px}.answer dl{grid-template-columns:1fr}.grade-row span{display:none}.library-controls{padding:14px}.kind-tabs button{min-height:58px}.kind-tabs span{display:none}.library-list>button{grid-template-columns:9px minmax(105px,.9fr) 1.2fr;gap:9px}.library-meaning{font-size:12px}.open-label{display:none}.progress-grid{grid-template-columns:1fr}.account-panel{flex-direction:column;align-items:flex-start}.account-panel a,.account-actions{text-align:center;width:100%}}@media (width<=390px){.level-grid{grid-template-columns:repeat(2,1fr)}.level-grid.compact{grid-template-columns:repeat(4,1fr)}.session-heading{flex-direction:column;align-items:flex-start;gap:6px}.session-heading>span{white-space:normal}.flash-card{min-height:410px}.card-word{font-size:44px}.grade-row button{min-height:58px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
