:root{--bg:#f6f3ff;--surface:#fff;--text:#1f1a33;--muted:#6b6585;--brand:#6c4cf1;--tutor-bubble:#fff;--child-bubble:#6c4cf1;--child-text:#fff;--border:#e4defa;--error:#c0392b}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Nunito,Segoe UI,system-ui,-apple-system,sans-serif;-webkit-text-size-adjust:100%}a{color:inherit}.home{max-width:720px;margin:0 auto;padding:32px 16px 48px}.logo{font-size:2.4rem;font-weight:800;color:var(--brand);margin:0}.tagline{color:var(--muted);font-size:1.1rem;margin:4px 0 28px}.card-list{display:grid;grid-gap:16px;gap:16px}.card-tile{display:flex;align-items:center;gap:16px;background:var(--surface);border:2px solid var(--border);border-left:10px solid var(--card-colour,var(--brand));border-radius:18px;padding:18px;text-decoration:none}.card-tile>div{min-width:0}.card-tile:hover{border-color:var(--card-colour,var(--brand))}.card-emoji{font-size:2.6rem}.card-title{font-size:1.3rem;font-weight:800;margin:0}.card-meta{color:var(--muted);margin:2px 0 0}.nfc-link{font-family:ui-monospace,Consolas,monospace;font-size:.85rem;color:var(--muted);word-break:break-all;margin:6px 0 0}.help-box{margin-top:32px;background:var(--surface);border-radius:18px;padding:18px;border:2px dashed var(--border);color:var(--muted);line-height:1.5}.chat-page{display:flex;flex-direction:column;height:100dvh;max-width:720px;margin:0 auto}.chat-header{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--card-colour,var(--brand));color:#fff}.chat-header .card-emoji{font-size:2.2rem}.chat-header h1{font-size:1.35rem;margin:0}.chat-header p{margin:0;opacity:.9;font-size:.95rem}.restart-btn{margin-left:auto;background:hsla(0,0%,100%,.2);color:#fff;border:2px solid hsla(0,0%,100%,.6);border-radius:999px;padding:8px 14px;font-size:.95rem;font-weight:700;cursor:pointer}.messages{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.bubble{max-width:85%;padding:12px 16px;border-radius:20px;font-size:1.2rem;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}.bubble.tutor{align-self:flex-start;background:var(--tutor-bubble);border:2px solid var(--border);border-bottom-left-radius:6px}.bubble.child{align-self:flex-end;background:var(--child-bubble);color:var(--child-text);border-bottom-right-radius:6px}.bubble.thinking{color:var(--muted);font-style:italic}.error-msg{align-self:center;color:var(--error);background:#fdecea;border-radius:12px;padding:10px 14px;font-size:1rem;text-align:center}.composer{display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:2px solid var(--border)}.composer input{flex:1 1;min-width:0;font-size:1.2rem;padding:14px 16px;border-radius:999px;border:2px solid var(--border);outline:none;font-family:inherit}.composer input:focus{border-color:var(--brand)}.composer button{font-size:1.15rem;font-weight:800;padding:0 22px;border-radius:999px;border:none;background:var(--brand);color:#fff;cursor:pointer}.composer button:disabled{opacity:.5;cursor:default}.not-found{max-width:480px;margin:0 auto;padding:64px 16px;text-align:center}.not-found .big{font-size:4rem}.not-found a{display:inline-block;margin-top:16px;background:var(--brand);color:#fff;padding:12px 20px;border-radius:999px;text-decoration:none;font-weight:700}