* { box-sizing:border-box; margin:0; padding:0; }
body { font-family:Arial,sans-serif; background:linear-gradient(160deg,#e8f0ff,#f0f4ff); min-height:100vh; display:flex; align-items:center; justify-content:center; }
.screen { display:none; flex-direction:column; align-items:center; text-align:center; padding:24px 20px; max-width:480px; width:100%; }
.screen.active { display:flex; }
.gap-logo { font-size:36px; font-weight:900; letter-spacing:10px; color:#0055a5; margin-bottom:8px; }
.gap-logo.small { font-size:20px; letter-spacing:7px; margin-bottom:0; }
h1 { font-size:28px; font-weight:900; color:#111; margin-bottom:6px; }
h2 { font-size:22px; font-weight:700; color:#111; margin-bottom:8px; }
.sub { color:#777; font-size:14px; margin-bottom:20px; }
.name-input { width:100%; padding:12px 16px; border:2px solid #dde4f0; border-radius:12px; font-size:16px; text-align:center; margin-bottom:16px; }
.name-input:focus { outline:none; border-color:#0055a5; }
.step-label { font-size:13px; font-weight:600; color:#555; margin-bottom:12px; }
.gender-row { display:flex; gap:10px; width:100%; margin-bottom:16px; }
.gender-btn { flex:1; background:white; border:2px solid #dde4f0; border-radius:12px; padding:10px 8px; font-size:14px; font-weight:700; cursor:pointer; transition:border-color .15s,background .15s; }
.gender-btn:hover { border-color:#0055a5; background:#f0f5ff; }
.gender-btn.selected { border-color:#0055a5; background:#e8f0ff; color:#0055a5; }
.theme-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; width:100%; margin-bottom:20px; }
.theme-card { background:white; border:2.5px solid #dde4f0; border-radius:14px; padding:14px 8px; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:6px; transition:border-color .15s,transform .1s,background .15s; }
.theme-card span { font-size:38px; line-height:1; }
.theme-card small { font-size:12px; font-weight:700; color:#555; }
.theme-card:hover { border-color:#0055a5; background:#f0f5ff; }
.theme-card.selected { border-color:#0055a5; background:#e8f0ff; }
.theme-card:active { transform:scale(.97); }
.btn-primary { background:#0055a5; color:white; border:none; border-radius:14px; padding:13px 28px; font-size:16px; font-weight:700; cursor:pointer; transition:background .15s,transform .1s; }
.btn-primary:hover { background:#0044cc; }
.btn-primary:active { transform:scale(.97); }
.btn-primary.big-btn { padding:16px 40px; font-size:18px; }
.btn-primary:disabled { background:#aaa; cursor:default; }
.btn-secondary { background:#eee; color:#555; border:none; border-radius:14px; padding:12px 24px; font-size:15px; font-weight:600; cursor:pointer; }
.btn-secondary:hover { background:#ddd; }
.nav-row { display:flex; gap:12px; margin-top:16px; width:100%; justify-content:center; }
.gen-icon { font-size:72px; margin-bottom:12px; }
.spinner { width:40px; height:40px; border:4px solid #dde4f0; border-top-color:#0055a5; border-radius:50%; animation:spin 0.8s linear infinite; margin-top:16px; }
@keyframes spin { to{transform:rotate(360deg)} }
.story-header { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.story-header span { font-size:32px; }
.story-card { background:white; border-radius:16px; padding:24px 28px; text-align:left; width:100%; box-shadow:0 2px 16px rgba(0,85,165,.1); border-left:5px solid #0055a5; }
.story-sentence { font-size:15px; color:#333; line-height:1.75; margin-bottom:10px; }
.story-sentence:last-child { margin-bottom:0; }
.hero-name { color:#0055a5; font-weight:700; }
