@import"https://fonts.googleapis.com/css2?family=Caveat:wght@600;700&family=Noto+Serif+SC:wght@400;600;700&display=swap";:root{color-scheme:light;--ink: #45382d;--muted: #876f5a;--sage: #8fa58a;--sage-deep: #60745f;--rosewood: #a36a57;--clay: #d6a06f;--paper: #fffaf0;--paper-strong: #f4e4c9;--shadow: 0 24px 70px rgba(96, 75, 52, .16);--soft-shadow: 0 12px 32px rgba(96, 75, 52, .12)}*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 8% 12%,rgba(214,160,111,.24),transparent 28%),radial-gradient(circle at 82% 10%,rgba(143,165,138,.28),transparent 32%),linear-gradient(135deg,#f7ecd7,#fff8ea 45%,#edf0df);font-family:"Noto Serif SC",Georgia,serif}button,input{font:inherit}button{border:0;color:inherit;cursor:pointer}.app-shell{position:relative;width:min(1180px,calc(100% - 32px));margin:0 auto;padding:42px 0 56px}.app-shell--centered{display:grid;min-height:100vh;place-items:center}.paper-grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.45;background-image:linear-gradient(rgba(69,56,45,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(69,56,45,.03) 1px,transparent 1px);background-size:26px 26px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 85%);mask-image:linear-gradient(to bottom,black,transparent 85%)}.hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:stretch;margin-bottom:22px}.hero-copy,.status-card,.side-panel,.study-card,.panel,.finish-panel,.login-card,.login-intro,.loading-card{border:1px solid rgba(135,111,90,.2);background:#fffaf0c7;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hero-copy{position:relative;overflow:hidden;min-height:245px;padding:38px;border-radius:34px}.hero-copy:after,.login-intro:after{content:"";position:absolute;right:40px;bottom:-44px;width:190px;height:190px;border-radius:50%;background:linear-gradient(135deg,#8fa58a38,#d6a06f33);box-shadow:inset 0 0 0 20px #fffaf073}.eyebrow{display:inline-flex;gap:8px;align-items:center;margin:0 0 18px;color:var(--sage-deep);font-weight:700}.hero h1,.login-intro h1{max-width:680px;margin:0;font-size:clamp(2.5rem,7vw,5.8rem);line-height:.95;letter-spacing:-.08em}.hero-text{max-width:610px;margin:22px 0 0;color:var(--muted);font-size:1.05rem;line-height:1.9}.status-card{display:flex;flex-direction:column;justify-content:center;min-height:245px;padding:28px;border-radius:34px}.stamp{align-self:flex-start;display:inline-flex;transform:rotate(-4deg);padding:5px 13px;border:1px dashed var(--rosewood);border-radius:999px;color:var(--rosewood);font-family:Caveat,cursive;font-size:1.45rem}.status-card strong{margin-top:18px;font-family:Caveat,cursive;font-size:5rem;line-height:1}.status-card p,.login-card p,.login-intro p,.panel-heading p,.empty-state p,.finish-panel p{margin:0;color:var(--muted);line-height:1.8}.status-card p{margin:4px 0 22px}.progress-track{overflow:hidden;width:100%;height:12px;border-radius:999px;background:#8fa58a38}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sage),var(--clay));transition:width .45s ease}.tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:18px;padding:6px;border-radius:999px;background:#fffaf085}.tabs button{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:48px;padding:12px 14px;border-radius:999px;background:transparent;color:var(--muted)}.tabs button.active{background:var(--paper);color:var(--ink);box-shadow:var(--soft-shadow)}.tabs__logout{background:#a36a571f!important;color:var(--rosewood)!important}.content-grid{display:grid;grid-template-columns:245px minmax(0,1fr);gap:18px}.main-stage{min-width:0}.side-panel{align-self:start;display:grid;gap:12px;padding:18px;border-radius:28px}.metric{display:flex;gap:12px;align-items:center;padding:16px;border-radius:22px;background:#fff6}.metric>span{display:grid;width:38px;height:38px;place-items:center;border-radius:15px;color:var(--sage-deep);background:#8fa58a2e}.metric p{color:var(--muted);font-size:.86rem}.metric strong{display:block;margin-top:2px;font-size:1.1rem}.study-card,.panel,.finish-panel,.login-card,.login-intro,.loading-card{animation:liftIn .5s ease both}.study-card,.panel,.finish-panel{min-height:520px;padding:26px;border-radius:34px}.login-card,.login-intro{padding:28px;border-radius:34px}.loading-card{display:grid;gap:12px;place-items:center;padding:32px 28px;border-radius:32px;text-align:center}.card-topline,.panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;color:var(--muted)}.tag{padding:5px 12px;border-radius:999px;color:var(--sage-deep);background:#8fa58a2e}.word-card{position:relative;overflow:hidden;margin:22px 0;padding:clamp(28px,7vw,58px);border-radius:30px;background:linear-gradient(90deg,rgba(135,111,90,.08) 1px,transparent 1px) 0 0 / 34px 34px,linear-gradient(180deg,#fffaf0f5,#f8f0dff2);box-shadow:inset 0 0 0 1px #876f5a1f}.word-card:before{content:"";position:absolute;left:26px;top:0;bottom:0;width:2px;background:#a36a5738}.speak-button{position:absolute;right:22px;top:22px;display:grid;width:42px;height:42px;place-items:center;border-radius:50%;background:#8fa58a33;color:var(--sage-deep)}.phonetic{margin:0 0 8px;color:var(--sage-deep);font-family:Caveat,cursive;font-size:1.7rem}.word-card h2{margin:0;font-family:Caveat,cursive;font-size:clamp(4rem,12vw,8rem);line-height:.9;letter-spacing:-.03em}.meaning{margin:22px 0 0;color:var(--muted);font-size:1.2rem}.revealed{margin-top:22px;padding-top:20px;border-top:1px dashed rgba(135,111,90,.3)}.revealed p{font-size:1.05rem;line-height:1.8}.revealed span{display:inline-block;margin-top:14px;color:var(--rosewood)}.actions-row,.mark-row,.study-footer,.finish-summary{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center}.study-footer,.finish-summary{margin-top:16px;color:var(--muted);justify-content:flex-start}.study-footer span,.finish-summary span{padding:8px 12px;border-radius:999px;background:#ffffff6b;box-shadow:inset 0 0 0 1px #876f5a1f}.primary-button,.ghost-button,.soft-button,.finish-button,.mark-row button{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:46px;padding:12px 18px;border-radius:999px;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.primary-button,.finish-button{background:var(--ink);color:var(--paper);box-shadow:var(--soft-shadow)}.ghost-button,.soft-button,.mark-row button{background:#ffffff7a;color:var(--ink);box-shadow:inset 0 0 0 1px #876f5a24}.soft-button.full{width:100%}.ghost-button:disabled,.mark-row button:disabled,.primary-button:disabled,.finish-button:disabled{cursor:not-allowed;opacity:.5}.primary-button:hover:not(:disabled),.ghost-button:hover:not(:disabled),.soft-button:hover,.finish-button:hover:not(:disabled),.mark-row button:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--soft-shadow)}.mark-row{margin-top:14px}.mark-row button:nth-child(1){color:var(--rosewood)}.mark-row button:nth-child(2){color:var(--muted)}.mark-row button:nth-child(3){color:var(--sage-deep)}.finish-button{width:100%;margin-top:18px}.done-banner{display:inline-flex;gap:8px;align-items:center;margin-top:16px;padding:10px 14px;border-radius:999px;color:var(--sage-deep);background:#8fa58a29}.panel{display:block}.panel-heading{margin-bottom:20px}.panel-heading h2,.finish-panel h2,.login-card h2{margin:0;font-size:clamp(1.7rem,4vw,2.6rem)}.word-list,.reward-grid,.diary-list{display:grid;gap:14px}.word-list,.reward-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.small-word-card,.reward-card,.diary-entry,.empty-state{border-radius:24px;background:#ffffff70;box-shadow:inset 0 0 0 1px #876f5a21}.small-word-card{position:relative;min-height:148px;padding:20px}.small-word-card button{position:absolute;right:14px;top:14px;display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:#8fa58a2e}.small-word-card h3,.reward-card h3,.diary-entry h3{margin:0 0 8px}.small-word-card p,.reward-card p,.diary-entry p{margin:0;color:var(--muted);line-height:1.7}.small-word-card span,.reward-card span,.diary-entry span{display:inline-block;margin-top:14px;color:var(--rosewood);font-family:Caveat,cursive;font-size:1.35rem}.reward-card{min-height:170px;padding:22px;filter:saturate(.6);opacity:.7}.reward-card.unlocked{filter:none;opacity:1;background:radial-gradient(circle at 80% 10%,rgba(214,160,111,.22),transparent 42%),#ffffff80}.diary-entry{padding:20px}.empty-state{display:grid;min-height:260px;place-items:center;padding:34px;text-align:center}.empty-state svg,.finish-panel svg,.loading-card svg{color:var(--clay)}.finish-panel{display:grid;place-items:center;align-content:center;text-align:center}.finish-panel p{max-width:520px;margin:10px 0 24px;font-size:1.15rem}.rest-card{display:grid;gap:14px;align-content:center;min-height:520px;padding:26px;border-radius:34px;border:1px solid rgba(135,111,90,.2);background:radial-gradient(circle at top right,rgba(214,160,111,.18),transparent 35%),#fffaf0d1;box-shadow:var(--shadow);animation:liftIn .5s ease both}.rest-card h2{margin:0;font-size:clamp(2rem,5vw,3rem)}.rest-card p{margin:0;max-width:52ch;color:var(--muted);line-height:1.85}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-card{display:grid;gap:12px;padding:22px;border-radius:24px;background:#ffffff70;box-shadow:inset 0 0 0 1px #876f5a21}.admin-card h3{margin:0}.admin-card p,.admin-empty{margin:0;color:var(--muted);line-height:1.75}.admin-card--danger{background:#a36a5714}.admin-row{display:flex;gap:10px;flex-wrap:wrap}.admin-input{flex:1 1 180px;min-height:46px;padding:0 14px;border:1px solid rgba(135,111,90,.2);border-radius:16px;background:#ffffffbd;color:var(--ink)}.rest-day-list{display:grid;gap:10px}.rest-day-item{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px;border-radius:18px;background:#ffffff70}.rest-day-item span{font-family:Caveat,cursive;font-size:1.5rem;color:var(--rosewood)}.login-shell{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px;width:min(100%,1080px)}.login-intro{position:relative;overflow:hidden}.login-intro .hero-text{max-width:60ch}.login-card{display:grid;align-content:center;gap:14px}.login-card p{line-height:1.8}.field{display:grid;gap:8px;margin-top:10px}.field span{color:var(--muted);font-size:.94rem}.field input{width:100%;min-height:52px;padding:0 16px;border:1px solid rgba(135,111,90,.2);border-radius:18px;background:#ffffffb8;color:var(--ink);outline:none;box-shadow:inset 0 0 0 1px transparent}.field input:focus{border-color:#a36a5780;box-shadow:0 0 0 4px #a36a5724}.login-button{width:100%;margin-top:6px}.form-hint,.form-error{margin-top:6px!important;font-size:.95rem}.form-error{color:#8c4234!important}.toast-error{position:fixed;right:16px;bottom:16px;z-index:30;max-width:min(420px,calc(100vw - 32px));padding:14px 16px;border:1px solid rgba(141,67,52,.22);border-radius:18px;background:#fff4f0f5;color:#8c4234;box-shadow:var(--soft-shadow)}@keyframes liftIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.hero,.content-grid,.login-shell{grid-template-columns:1fr}.side-panel{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.app-shell{width:min(100% - 18px,1180px);padding-top:18px;padding-bottom:96px}.hero-copy,.status-card,.study-card,.panel,.finish-panel,.login-card,.login-intro{border-radius:24px;padding:20px}.hero-copy:after,.login-intro:after{right:-28px;bottom:-28px;width:150px;height:150px}.hero h1,.login-intro h1{font-size:clamp(2.2rem,14vw,4.2rem)}.hero-text{font-size:.98rem}.status-card{min-height:auto}.status-card strong{font-size:4rem}.tabs{position:sticky;top:12px;z-index:12;gap:6px;padding:8px;border-radius:24px;box-shadow:var(--soft-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.tabs button{min-height:44px;padding:10px 8px;flex-direction:column;gap:4px;font-size:.76rem}.tabs__logout{grid-column:1 / -1;flex-direction:row!important}.tabs__logout{font-size:.75rem}.side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.word-list,.reward-grid,.admin-grid{grid-template-columns:1fr}.panel-heading{display:block}.word-card{padding:56px 20px 26px 36px}.word-card h2{font-size:clamp(3.3rem,18vw,5rem)}.actions-row>*,.mark-row>*,.study-footer>*,.finish-summary>*{flex:1 1 100%}.study-card,.panel,.finish-panel,.rest-card{min-height:auto}.toast-error{left:12px;right:12px;bottom:12px;max-width:none}}
