:root{font-family:system-ui,-apple-system,sans-serif;color-scheme:light dark}body{margin:0;min-height:100vh;background:#f7f5f2}.app-loading{display:flex;align-items:center;justify-content:center;height:100vh}.landing{max-width:520px;margin:0 auto;padding:4rem 1.5rem 3rem;text-align:center}.landing-title{font-family:Times New Roman,Times,serif;font-size:5.5rem;font-weight:400;margin:0;letter-spacing:.01em}.landing-tagline{color:#555;font-size:1.1rem;margin:.75rem 0 3rem}.hero-tooltip{background:#1a1a1a;color:#fff;border-radius:12px;padding:1.75rem 2rem;text-align:left;box-shadow:0 8px 24px #0000002e}.hero-tooltip strong{font-size:1.4rem;display:block}.hero-tooltip-tag{display:block;font-size:.8rem;opacity:.6;margin-top:.15rem;font-style:italic}.hero-tooltip p{margin:1rem 0 0;line-height:1.6;font-size:1.05rem}.landing-pitch{color:#444;line-height:1.6;margin:2.5rem 0}.landing-cta{padding:.8rem 2rem;border:none;border-radius:24px;background:#2b6cb0;color:#fff;font-size:1.05rem;cursor:pointer}.blackboard{max-width:480px;margin:0 auto;padding:3rem 1.5rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;min-height:100vh;box-sizing:border-box}.blackboard-intro{color:#666;font-size:.95rem;line-height:1.5;max-width:360px;margin:0 0 2.5rem}.blackboard-frame{width:100%;background:linear-gradient(180deg,#8a5a34,#6b4423 55%,#55351d);border-radius:10px;padding:14px;box-sizing:border-box;box-shadow:0 14px 32px #0000004d,inset 0 1px #ffffff1f}.blackboard-card{background:radial-gradient(ellipse at 18% 20%,rgba(255,255,255,.05),transparent 42%),radial-gradient(ellipse at 82% 78%,rgba(255,255,255,.045),transparent 46%),radial-gradient(ellipse at 55% 35%,rgba(255,255,255,.03),transparent 38%),linear-gradient(135deg,#24352a,#1c2b21 55%,#172219);color:#eef2ee;border-radius:4px;padding:3rem 2rem 2.5rem;width:100%;box-sizing:border-box;box-shadow:inset 0 0 50px #0006,inset 0 0 1px #ffffff14;min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem}.blackboard-tray{height:22px;margin-top:10px;border-radius:5px;background:linear-gradient(180deg,#7a5030,#5a381e);box-shadow:inset 0 2px 5px #00000059,0 1px #ffffff14;display:flex;align-items:center;gap:10px;padding:0 16px}.blackboard-chalk{width:32px;height:7px;background:linear-gradient(180deg,#fff,#e4e0d4);border-radius:3px;box-shadow:0 1px 2px #0000004d}.blackboard-chalk--short{width:18px;opacity:.65}.blackboard-word{margin:0;font-family:Schoolbell,Segoe Print,cursive;font-weight:400;font-size:3.25rem;line-height:1.2;color:#f5f2e7;text-shadow:0 0 1px rgba(255,255,255,.5),0 0 8px rgba(255,255,255,.22),1px 1px 0 rgba(255,255,255,.06);letter-spacing:.02em;transform:rotate(-1deg)}.blackboard-meaning{margin:0;font-family:Kalam,Segoe Print,cursive;font-weight:300;font-size:1.2rem;line-height:1.6;color:#eef2eee0;text-shadow:0 0 1px rgba(255,255,255,.2);max-width:340px}.blackboard-progress{color:#999;font-size:.8rem;margin:1.25rem 0 1.5rem}.blackboard-next{padding:.7rem 2.5rem;border:none;border-radius:24px;background:#2b6cb0;color:#fff;font-size:1rem;cursor:pointer}.blackboard-next:disabled{opacity:.5;cursor:default}.blackboard-skip{background:none;border:none;color:#999;font-size:.85rem;cursor:pointer;margin-top:1.5rem;text-decoration:underline}.signin{max-width:360px;margin:15vh auto;padding:2rem;text-align:center}.signin form{display:flex;flex-direction:column;gap:.75rem;margin-top:1.5rem}.signin input{padding:.6rem .8rem;border:1px solid #ccc;border-radius:8px;font-size:1rem}.signin button{padding:.6rem .8rem;border:none;border-radius:8px;background:#2b6cb0;color:#fff;font-size:1rem;cursor:pointer}.signin-error{color:#c0392b;margin-top:1rem}.signin-divider{color:#999;font-size:.85rem;margin:1.5rem 0 1rem}.signin-passkey-button{width:100%;padding:.6rem .8rem;border:1px solid #2b6cb0;border-radius:8px;background:#fff;color:#2b6cb0;font-size:1rem;cursor:pointer}.signin-passkey-button:disabled{opacity:.5;cursor:default}.passkey-prompt-actions{display:flex;flex-direction:column;gap:.6rem;margin-top:1.5rem}.passkey-prompt-actions button[type=button]:first-child{padding:.6rem .8rem;border:none;border-radius:8px;background:#2b6cb0;color:#fff;font-size:1rem;cursor:pointer}.passkey-prompt-actions button[type=button]:first-child:disabled{opacity:.5;cursor:default}.passkey-prompt-skip{padding:.6rem .8rem;border:1px solid #ccc;border-radius:8px;background:#fff;color:#444;font-size:1rem;cursor:pointer}.passkey-prompt-checkbox{display:flex;align-items:center;gap:.5rem;justify-content:center;margin-top:1.5rem;font-size:.85rem;color:#666;cursor:pointer}.chat{display:flex;flex-direction:column;height:100vh;max-width:720px;margin:0 auto;background:#fff}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;border-bottom:1px solid #eee;font-weight:600}.chat-header button{background:none;border:1px solid #ddd;border-radius:6px;padding:.3rem .7rem;cursor:pointer;font-weight:400;font-size:.85rem}.chat-messages{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.chat-empty{color:#999;text-align:center;margin-top:2rem}.chat-message{max-width:80%;padding:.7rem 1rem;border-radius:14px;line-height:1.5}.chat-message--assistant{align-self:flex-start;background:#eef2f7}.chat-message--user{align-self:flex-end;background:#2b6cb0;color:#fff}.chat-message--user .tappable-word{color:#fff}.chat-message--user .translation-toggle{color:#fff;text-decoration:underline}.chat-message--user .chat-message-english{color:#ffffffd9}.chat-message-target{margin:0}.translation-toggle{margin-top:.4rem;background:none;border:none;color:#2b6cb0;font-size:.8rem;cursor:pointer;padding:0}.chat-message-english{margin:.4rem 0 0;font-size:.9rem;color:#555}.tappable-word-wrap{position:relative;display:inline-block}.tappable-word{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.tappable-word--new{color:#2b6cb0;font-weight:600;border-bottom:2px solid #2b6cb0}.tappable-word--seen{border-bottom:1px dotted currentColor}.tappable-word--known{border-bottom:none}.chat-message--user .tappable-word--new{color:#ffd76a;border-bottom-color:#ffd76a}.word-tooltip{position:absolute;top:100%;left:0;z-index:10;background:#1a1a1a;color:#fff;padding:.6rem .8rem;border-radius:8px;width:220px;font-size:.85rem;line-height:1.4;box-shadow:0 4px 12px #0003}.word-tooltip strong{display:block;margin-bottom:.3rem}.word-form-note{opacity:.7;font-style:italic;font-size:.8rem;margin:0 0 .4rem!important}.word-tooltip p{margin:0}.word-gender{opacity:.7;margin-top:.3rem!important}.tooltip-lesson-prompt{display:block;margin-top:.5rem;background:#ffffff1a;border:none;border-radius:6px;color:#ffd76a;font-size:.8rem;text-align:left;padding:.4rem .5rem;cursor:pointer;width:100%}.lesson-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem}.lesson-card{background:#fff;border-radius:16px;padding:2rem;max-width:420px;width:100%;box-shadow:0 12px 32px #00000040}.lesson-concept{display:block;color:#2b6cb0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem}.lesson-title{margin:0 0 1rem;font-size:1.4rem}.lesson-content{line-height:1.6;color:#333;margin:0 0 1.25rem}.lesson-examples{list-style:none;padding:0;margin:0 0 1.5rem;display:flex;flex-direction:column;gap:.5rem}.lesson-examples li{font-family:Times New Roman,Times,serif;font-size:1.1rem;background:#f7f5f2;border-radius:8px;padding:.6rem .9rem}.lesson-got-it{width:100%;padding:.7rem;border:none;border-radius:24px;background:#2b6cb0;color:#fff;font-size:1rem;cursor:pointer}.lesson-got-it:disabled{opacity:.5;cursor:default}.chat-input{border-top:1px solid #eee;padding:.75rem 1.25rem 1.25rem}.chat-send-error{color:#c0392b;font-size:.85rem;margin:0 0 .5rem}.input-mode-toggle{display:flex;gap:1rem;font-size:.85rem;margin-bottom:.5rem;color:#555}.input-row{display:flex;gap:.5rem}.input-row input{flex:1;padding:.6rem .9rem;border:1px solid #ccc;border-radius:20px;font-size:1rem}.input-row button{padding:.6rem 1.2rem;border:none;border-radius:20px;background:#2b6cb0;color:#fff;cursor:pointer}.input-row button:disabled{opacity:.5;cursor:default}
