: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}.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-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;border-bottom:1px dotted currentColor}.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-tooltip p{margin:0}.word-gender{opacity:.7;margin-top:.3rem!important}.chat-input{border-top:1px solid #eee;padding:.75rem 1.25rem 1.25rem}.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}
