@charset "UTF-8";
:root{font-family:"Helvetica Neue","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#39271e;background:#f7f4ed;font-synthesis:none;--paper:#f7f4ed;--ink:#39271e;--muted:#807367;--accent:#a96549;--line:#ded6ca;--wash:#eee7dd;--nav-height:76px;color-scheme:light}
*{box-sizing:border-box}body{margin:0}main{max-width:600px;margin:auto;padding:24px 28px calc(var(--nav-height) + 24px + env(safe-area-inset-bottom));min-height:100svh}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:48px;border:0;border-radius:0;padding:12px 16px;background:var(--wash);color:var(--ink);font-weight:500}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:hover:not(:disabled){filter:brightness(.95)}input,textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:15px;background:transparent;color:var(--ink);font-size:16px}input::placeholder{color:var(--muted)}textarea{overflow-wrap:anywhere;resize:vertical}label{display:block;margin:12px 0 8px;font-size:13px;color:var(--muted)}[hidden]{display:none!important}
header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.brand{color:var(--ink);font-size:28px;font-weight:650;letter-spacing:-.08em;text-decoration:none}.brand-dot{color:var(--accent);margin-left:3px}.icon-button{display:grid;place-items:center;background:transparent;min-width:48px;padding:10px;color:var(--ink)}.icon-button svg{width:24px;height:24px}.eyebrow{font-size:11px;letter-spacing:.16em;color:var(--muted);font-weight:400}h1,h2,h3,p{margin:0}p{color:var(--muted);font-size:14px;line-height:1.8}h2{font-size:22px;font-weight:550}h3{font-size:16px;margin:28px 0 10px;font-weight:600}.muted{color:var(--muted);font-size:12px;line-height:1.8}.primary{background:var(--ink);color:var(--paper);width:100%;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:28px;min-height:56px;padding:16px 22px;font-size:16px}.secondary{width:100%;margin:6px 0;border-radius:6px}.text-button{background:transparent;font-size:12px;color:var(--accent);padding:8px;white-space:nowrap}.danger{color:#8b4234;background:#efe2d8;width:100%;margin-top:12px;border-radius:6px}
.today-panel{min-height:calc(100svh - 230px - env(safe-area-inset-bottom));display:flex;align-items:center;padding:28px 0 34px}.today-content{width:100%}.today-title{font-size:clamp(76px,24vw,112px);font-weight:500;letter-spacing:-.065em;line-height:1.12;margin:18px 0 24px}.title-dot{color:var(--accent)}#summary{font-size:17px;letter-spacing:.02em;color:var(--ink)}.start-button{margin-top:36px;justify-content:space-between;padding-inline:28px}.start-button span{font-size:24px;line-height:1}#today-note{margin-top:16px;font-size:12px}footer{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-top:8px}#sync-status{font-size:11px;line-height:1.6;color:var(--muted)}#sync-status::before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:7px;vertical-align:middle}nav{position:fixed;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:min(600px,100%);display:grid;grid-template-columns:repeat(3,1fr);padding:8px 20px calc(10px + env(safe-area-inset-bottom));min-height:var(--nav-height);border-top:1px solid var(--line);background:var(--paper)}nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:transparent;font-size:13px;letter-spacing:.08em;color:var(--muted);padding:4px}nav button+button{border-left:1px solid var(--line)}nav button.active{color:var(--ink)}.nav-dot{width:5px;height:5px;border-radius:50%;background:transparent}.active .nav-dot{background:var(--accent)}
#notice:empty{display:none}#notice{padding:12px 0 12px 14px;border-left:2px solid var(--accent);font-size:13px;line-height:1.7;margin:12px 0;color:var(--ink)}#demo-banner{font-size:10px;line-height:1.6;margin:0 0 14px;padding-bottom:10px;border-bottom:1px dashed var(--line)}
.studying main{padding-bottom:0;min-height:100svh;display:flex;flex-direction:column}.studying #app-header,.studying #main-nav,.studying footer{display:none}.studying #workspace{display:flex;flex:1}.studying #review-panel{display:flex;flex-direction:column;width:100%;min-width:0;flex:1}.review-top{display:flex;align-items:center;gap:14px;padding-bottom:14px}.review-top .icon-button{margin-left:-10px;justify-content:start;font-size:32px;font-weight:300;line-height:1}#review-progress{font-size:13px;letter-spacing:.08em;font-variant-numeric:tabular-nums}.review-label{margin-left:auto;font-size:11px;color:var(--muted);letter-spacing:.12em}progress{appearance:none;display:block;width:100%;height:2px;border:0;background:var(--line);color:var(--accent)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}.flashcard{flex:1;min-height:340px;padding:clamp(50px,10svh,100px) 0 42px;overflow-wrap:anywhere;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left}.word{font-size:clamp(36px,11vw,60px);font-weight:450;line-height:1.15;letter-spacing:-.045em;margin:18px 0 32px;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere}.hint{font-size:14px;line-height:1.9;max-width:28em}.meaning{width:100%;border-top:1px solid var(--line);padding:18px 0 12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:17px;line-height:1.85}.meaning small{display:block;color:var(--muted);font-size:11px;line-height:1.6;margin-bottom:12px;letter-spacing:.02em}.lookup-count{font-size:11px;margin-top:30px;color:var(--muted)}#review-actions{position:sticky;bottom:0;z-index:4;background:var(--paper);margin:0 -28px;padding:14px 28px calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}#review-actions:has(.ratings){padding:0 0 env(safe-area-inset-bottom)}.ratings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.ratings button{min-height:84px;background:transparent;padding:18px 4px;font-size:16px}.ratings button+button{border-left:1px solid var(--line)}.ratings button:last-child{background:var(--accent);color:#fffaf5}.ratings small{display:block;font-size:10px;font-weight:400;margin-top:6px;color:var(--muted)}.ratings button:last-child small{color:#fffaf5}.completion-mark{font-size:34px;color:var(--accent)}.complete .word{font-size:clamp(42px,12vw,64px);line-height:1.3}
.list-title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:44px 0 24px}.list-title h1{font-size:42px;letter-spacing:-.05em;font-weight:500}.search-label{font-size:11px}#search{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 0;background:transparent}#word-list{margin-top:14px}.word-row{padding:26px 0 18px;border-bottom:1px solid var(--line)}.row-heading{display:flex;justify-content:space-between;gap:16px;align-items:baseline}.row-heading strong{font-size:25px;font-weight:500;letter-spacing:-.03em;overflow-wrap:anywhere;min-width:0}.row-heading span{font-size:10px;white-space:nowrap;color:var(--muted)}.word-row .meaning{border:0;padding:14px 0 0;font-size:14px}.word-row .meaning small{font-size:10px;margin-bottom:6px}.delete-word{background:transparent;font-size:11px;color:var(--accent);padding:12px 0 0;min-height:44px}.empty{padding:32px 0}
.login-panel{margin:8svh 0 0}.login-panel h1{font-size:clamp(42px,12vw,64px);font-weight:500;line-height:1.3;letter-spacing:-.05em;margin:24px 0}.login-panel form{margin:32px 0}.login-panel .primary{margin-top:20px}.login-panel .muted{margin-top:24px}dialog{width:min(520px,calc(100vw - 28px));max-height:88dvh;border:1px solid var(--line);border-radius:10px;padding:24px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#39271e66;backdrop-filter:blur(4px)}.dialog-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.device{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;padding:8px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}#create-device{margin:16px 0}#server-address{overflow-wrap:anywhere}#device-result{padding:12px 0}
@media(min-width:700px){main{padding-top:40px}.today-panel{min-height:calc(100svh - 246px)}.today-title{font-size:112px}.studying main{border-inline:1px solid var(--line)}}
@media(max-width:360px){main{padding-left:22px;padding-right:22px}.today-title{font-size:80px}.today-panel{padding-top:20px}#review-actions{margin-inline:-22px;padding-inline:22px}.word{font-size:36px}.ratings button{font-size:15px}.row-heading strong{font-size:22px}.review-label{font-size:10px}}
@media(max-height:680px){.today-panel{padding-block:14px;min-height:0}.today-title{font-size:76px;margin-block:12px 18px}.start-button{margin-top:24px}.flashcard{min-height:280px;padding-block:40px 28px}}
@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s,color .15s}.word{animation:appear .18s ease-out}@keyframes appear{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
.home-view main{display:flex;flex-direction:column}.home-view #workspace{display:flex;flex-direction:column;flex:1}.home-view .today-panel{flex:1;min-height:0}.home-view footer{margin-top:0}
