:root{color-scheme:light;--color-page: #F3EDE1;--color-surface: #FDFBF5;--color-surface-sunken: #F7F1E8;--color-border: #E0D5C1;--color-border-soft: #EDE4D3;--color-loom-warp: #E0D5C1;--color-text-strong: #33261D;--color-text: #4A3C2E;--color-text-soft: #7A6A56;--color-text-faint: #A5937D;--color-scrim: rgb(51 38 29 / 45%);--color-accent: #216E4E;--color-accent-strong: #17553B;--color-accent-soft: #E4EFE3;--color-accent-border: #9CBEA4;--color-accent-ring: rgb(33 110 78 / 28%);--color-on-accent: #FDFBF5;--color-danger: #9A3412;--color-danger-soft: #FAEFE7;--color-danger-border: #E2B49C;--color-gold: #D7A24A;--color-gold-bright: #E0A83F;--color-gold-glow: rgb(231 207 143 / 22%);--mood-calm: #B7CBD6;--mood-joyful: #F2CE82;--mood-resolute: #D89B78;--mood-hopeful: #B9CA9C;--mood-tired: #C0B2C4;--mood-pulled: #E7B085;--mood-tender: #ECC3BC;--mood-grateful: #D2B47E;--font-sans: ui-sans-serif, system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif;--text-xs: .78rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.75rem;--weight-normal: 400;--weight-medium: 600;--weight-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-sm: 8px;--radius-lg: 14px;--radius-pill: 999px;--shadow-card: 0 8px 24px rgb(92 74 62 / 8%);--shadow-chip: 0 2px 6px rgb(92 74 62 / 10%);--shadow-pop: 0 18px 48px rgb(92 74 62 / 18%);--dark-color-page: #201A15;--dark-color-surface: #2D251D;--dark-color-surface-sunken: #1B1510;--dark-color-border: #493F33;--dark-color-border-soft: #382F27;--dark-color-loom-warp: #7C6E59;--dark-color-text-strong: #F5EEE2;--dark-color-text: #E7DCCA;--dark-color-text-soft: #B7A68E;--dark-color-text-faint: #A08F77;--dark-color-scrim: rgb(8 5 3 / 62%);--dark-color-accent: #5FB795;--dark-color-accent-strong: #7FCBA6;--dark-color-accent-soft: #26372B;--dark-color-accent-border: #6B977D;--dark-color-accent-ring: rgb(95 183 149 / 34%);--dark-color-on-accent: #16241B;--dark-color-danger: #E28A69;--dark-color-danger-soft: #3A2A22;--dark-color-danger-border: #8A5741;--dark-color-gold: #E1B25E;--dark-color-gold-glow: rgb(226 178 94 / 20%);--dark-mood-calm: #8CB4CB;--dark-mood-joyful: #EBC46A;--dark-mood-resolute: #D28E63;--dark-mood-hopeful: #A6BE84;--dark-mood-tired: #B0A0B8;--dark-mood-pulled: #E3A66F;--dark-mood-tender: #E6ADA4;--dark-mood-grateful: #CBA968;--dark-shadow-card: 0 1px 0 rgb(255 244 230 / 6%) inset, 0 14px 30px rgb(0 0 0 / 42%);--dark-shadow-chip: 0 1px 0 rgb(255 244 230 / 5%) inset, 0 4px 12px rgb(0 0 0 / 34%);--dark-shadow-pop: 0 1px 0 rgb(255 244 230 / 8%) inset, 0 22px 52px rgb(0 0 0 / 55%);color:var(--color-text);background:var(--color-page);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{color-scheme:dark;--color-page: var(--dark-color-page);--color-surface: var(--dark-color-surface);--color-surface-sunken: var(--dark-color-surface-sunken);--color-border: var(--dark-color-border);--color-border-soft: var(--dark-color-border-soft);--color-loom-warp: var(--dark-color-loom-warp);--color-text-strong: var(--dark-color-text-strong);--color-text: var(--dark-color-text);--color-text-soft: var(--dark-color-text-soft);--color-text-faint: var(--dark-color-text-faint);--color-scrim: var(--dark-color-scrim);--color-accent: var(--dark-color-accent);--color-accent-strong: var(--dark-color-accent-strong);--color-accent-soft: var(--dark-color-accent-soft);--color-accent-border: var(--dark-color-accent-border);--color-accent-ring: var(--dark-color-accent-ring);--color-on-accent: var(--dark-color-on-accent);--color-danger: var(--dark-color-danger);--color-danger-soft: var(--dark-color-danger-soft);--color-danger-border: var(--dark-color-danger-border);--color-gold: var(--dark-color-gold);--color-gold-glow: var(--dark-color-gold-glow);--mood-calm: var(--dark-mood-calm);--mood-joyful: var(--dark-mood-joyful);--mood-resolute: var(--dark-mood-resolute);--mood-hopeful: var(--dark-mood-hopeful);--mood-tired: var(--dark-mood-tired);--mood-pulled: var(--dark-mood-pulled);--mood-tender: var(--dark-mood-tender);--mood-grateful: var(--dark-mood-grateful);--shadow-card: var(--dark-shadow-card);--shadow-chip: var(--dark-shadow-chip);--shadow-pop: var(--dark-shadow-pop)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-page: var(--dark-color-page);--color-surface: var(--dark-color-surface);--color-surface-sunken: var(--dark-color-surface-sunken);--color-border: var(--dark-color-border);--color-border-soft: var(--dark-color-border-soft);--color-loom-warp: var(--dark-color-loom-warp);--color-text-strong: var(--dark-color-text-strong);--color-text: var(--dark-color-text);--color-text-soft: var(--dark-color-text-soft);--color-text-faint: var(--dark-color-text-faint);--color-scrim: var(--dark-color-scrim);--color-accent: var(--dark-color-accent);--color-accent-strong: var(--dark-color-accent-strong);--color-accent-soft: var(--dark-color-accent-soft);--color-accent-border: var(--dark-color-accent-border);--color-accent-ring: var(--dark-color-accent-ring);--color-on-accent: var(--dark-color-on-accent);--color-danger: var(--dark-color-danger);--color-danger-soft: var(--dark-color-danger-soft);--color-danger-border: var(--dark-color-danger-border);--color-gold: var(--dark-color-gold);--color-gold-glow: var(--dark-color-gold-glow);--mood-calm: var(--dark-mood-calm);--mood-joyful: var(--dark-mood-joyful);--mood-resolute: var(--dark-mood-resolute);--mood-hopeful: var(--dark-mood-hopeful);--mood-tired: var(--dark-mood-tired);--mood-pulled: var(--dark-mood-pulled);--mood-tender: var(--dark-mood-tender);--mood-grateful: var(--dark-mood-grateful);--shadow-card: var(--dark-shadow-card);--shadow-chip: var(--dark-shadow-chip);--shadow-pop: var(--dark-shadow-pop)}}*{box-sizing:border-box}[hidden]{display:none!important}label:has(input[type=checkbox]){display:flex;align-items:center;gap:var(--space-2)}body{margin:0;min-width:320px;min-height:100vh}:root.native-shell body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}.app-shell{width:min(100%,1120px);margin:0 auto;padding:24px}.app-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:16px 0 20px}.header-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.lang-toggle{min-height:34px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:6px 10px}.theme-toggle{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);padding:3px;box-shadow:var(--shadow-chip)}.theme-toggle-option{display:inline-flex;align-items:center;gap:5px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--color-text-soft);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:1;padding:6px 10px}.theme-toggle-option svg{width:15px;height:15px}.theme-toggle-option.is-active{background:var(--color-accent-soft);color:var(--color-accent-strong)}.theme-toggle-option:not(.is-active):hover{color:var(--color-text)}.theme-toggle-option:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.eyebrow{margin:0 0 6px;color:var(--color-text-soft);font-size:var(--text-xs);font-weight:var(--weight-normal);letter-spacing:.04em;text-transform:uppercase}h1,h2{margin:0;letter-spacing:0}h1{color:var(--color-text-strong);font-size:var(--text-xl);font-weight:var(--weight-bold);line-height:1.25}h2{color:var(--color-text-strong);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:1.4}.today-pill,.kind-badge{display:inline-flex;align-items:center;min-height:34px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:6px 10px;white-space:nowrap}.workspace{padding:12px 0 32px}.app-shell.is-immersive{border-radius:var(--radius-lg);padding-top:var(--space-3);padding-bottom:var(--space-3);background:radial-gradient(circle at 50% 0%,var(--color-gold-glow),transparent 60%),linear-gradient(180deg,var(--color-surface) 0%,var(--color-surface-sunken) 55%,var(--color-page) 100%)}.app-shell.is-immersive .app-header,.app-shell.is-immersive .dev-banner,.app-shell.is-immersive .extra-active-banner{display:none}.app-shell.is-immersive .status-strip:not(.is-error){display:none}.app-shell.is-immersive .hatch-panel{background:transparent;border:none;box-shadow:none}.panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card)}.challenge-screen,.create-screen{max-width:680px;margin:0 auto}.challenge-card{margin-top:var(--space-5);padding:22px}.sheet,.create-panel{position:relative;margin-top:calc(-1 * var(--space-6));border:none;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-pop);padding:var(--space-5) var(--space-4);display:grid;gap:var(--space-4)}.expired-notice{margin-top:4px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken)}.expired-notice p{margin:0;color:var(--color-text-soft);font-size:var(--text-sm);line-height:1.5}.challenge-topline,.status-strip,.dev-banner{display:flex;align-items:center}.challenge-topline{justify-content:space-between;gap:12px;margin-bottom:18px}.challenge-card h2{overflow-wrap:anywhere}.challenge-meta-line{margin:0;color:var(--color-text-soft);font-size:var(--text-sm);line-height:1.7}.challenge-meta-line b{color:var(--color-text-strong);font-weight:var(--weight-medium);white-space:nowrap}.challenge-meta-line .meta-sep{margin:0 2px;color:var(--color-text-faint)}.card-links{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.card-links-group{display:flex;flex-wrap:wrap;gap:var(--space-2)}.link-chip{display:inline-flex;align-items:center;gap:6px;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:var(--shadow-chip);color:var(--color-text);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);padding:7px 14px 7px 12px;cursor:pointer}.link-chip svg{flex:0 0 auto;color:var(--color-accent)}.link-chip:hover:not(:disabled){background:var(--color-accent-soft);border-color:var(--color-accent-border);color:var(--color-accent-strong)}.link-chip:hover:not(:disabled) svg{color:var(--color-accent-strong)}.link-chip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.link-chip:disabled{cursor:default;opacity:.6}.card-links-danger{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2)}.card-links-danger-label{display:flex;align-items:center;gap:8px;width:100%;margin:0;color:var(--color-text-soft);font-size:var(--text-xs)}.card-links-danger-label:before,.card-links-danger-label:after{content:"";flex:1;height:1px;background:var(--color-border-soft)}.link-chip-danger{color:var(--color-danger);border-color:var(--color-danger-border);box-shadow:none}.link-chip-danger svg{color:var(--color-danger)}.link-chip-danger:hover:not(:disabled){background:var(--color-danger-soft);border-color:var(--color-danger-border);color:var(--color-danger)}.link-chip-danger:hover:not(:disabled) svg{color:var(--color-danger)}.section-heading{margin-bottom:18px}.challenge-form{display:block}.checkin-form{display:grid;gap:18px}.reminder-form{display:grid;grid-template-columns:minmax(0,1fr) 142px auto;gap:10px;align-items:end;margin-top:18px;padding-top:16px;border-top:1px solid var(--color-border-soft)}.reminder-toggle{display:flex;align-items:center;gap:10px;min-height:42px}.reminder-toggle input{width:18px;min-height:18px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}label{display:grid;gap:var(--space-2);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium)}input,select,textarea{width:100%;min-height:44px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-strong);font-size:var(--text-md);padding:9px 11px}textarea{min-height:124px;resize:vertical;line-height:1.6}.field-help{border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text);padding:10px 12px}.field-help summary{color:var(--color-text);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium)}.field-help p{margin:8px 0 0;font-size:var(--text-sm);line-height:1.55}input:focus,select:focus,textarea:focus{border-color:var(--color-accent);outline:3px solid var(--color-accent-ring)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;box-shadow:0 0 0 4px var(--color-accent-ring)}fieldset{min-width:0;margin:0;padding:0;border:0}legend{margin-bottom:8px;color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium)}.segmented-control{display:inline-grid;grid-template-columns:repeat(2,minmax(112px,1fr));gap:8px;width:min(100%,320px)}.segmented-control label,.mood-grid label{position:relative}.segmented-control input,.mood-grid input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.segmented-control span,.mood-grid span{display:grid;min-height:44px;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text);font-size:var(--text-md);padding:8px;text-align:center}.segmented-control input:checked+span{border-color:var(--color-accent);background:var(--color-accent-soft);color:var(--color-accent-strong);font-weight:var(--weight-medium)}.mood-grid input[value=calm]+span{--mood-c: var(--mood-calm)}.mood-grid input[value=joyful]+span{--mood-c: var(--mood-joyful)}.mood-grid input[value=hopeful]+span{--mood-c: var(--mood-hopeful)}.mood-grid input[value=tender]+span{--mood-c: var(--mood-tender)}.mood-grid input[value=resolute]+span{--mood-c: var(--mood-resolute)}.mood-grid input[value=pulledThrough]+span{--mood-c: var(--mood-pulled)}.mood-grid input[value=tired]+span{--mood-c: var(--mood-tired)}.mood-grid input[value=grateful]+span{--mood-c: var(--mood-grateful)}.mood-grid span:before{content:"";display:inline-block;width:8px;height:8px;margin-right:6px;vertical-align:-1px;border-radius:50%;background:var(--mood-c, var(--color-border))}.mood-grid input:checked+span{border-color:var(--mood-c, var(--color-accent));background:color-mix(in srgb,var(--mood-c, var(--color-accent)) 26%,var(--color-surface));color:var(--color-text);font-weight:var(--weight-medium)}.mood-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.field-hint{margin:0 0 10px;color:var(--color-text);font-size:var(--text-sm);line-height:1.55;font-weight:var(--weight-normal)}.egg-variant-grid{display:grid;grid-template-columns:minmax(0,132px)}.egg-variant-swatch{display:grid;justify-items:center;gap:4px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);padding:8px 6px;text-align:center}.egg-variant-swatch svg{width:100%;max-width:72px;height:auto}.egg-variant-caption{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text)}.create-stage{gap:var(--space-2)}.create-stage .egg-variant-grid{grid-template-columns:minmax(0,220px);margin:var(--space-2) auto 0}.create-stage .egg-variant-swatch{border:none;background:transparent;padding:0;gap:var(--space-2)}.create-stage .egg-variant-swatch svg{max-width:176px}.create-stage .egg-variant-caption{font-size:var(--text-sm);font-weight:var(--weight-normal);color:var(--color-text-soft)}.stage-hint{margin:0;color:var(--color-text-soft);font-size:var(--text-sm);line-height:1.6}.primary-button,.secondary-button,.ghost-button,.danger-button{min-height:44px;border-radius:var(--radius-sm);font-weight:var(--weight-medium);letter-spacing:0;white-space:nowrap}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:fit-content;border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-surface);font-size:var(--text-md);padding:9px 18px}.primary-button:hover:not(:disabled){background:var(--color-accent-strong);border-color:var(--color-accent-strong)}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:96px;border:1px solid var(--color-accent-border);background:var(--color-surface);color:var(--color-accent);font-size:var(--text-sm);padding:8px 14px}.secondary-button:hover:not(:disabled){background:var(--color-accent-soft);border-color:var(--color-accent)}.ghost-button{min-width:72px;border:1px solid transparent;background:transparent;color:var(--color-text-soft);font-size:var(--text-sm);padding:8px 12px}.ghost-button:hover:not(:disabled){color:var(--color-accent)}.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:72px;border:1px solid var(--color-danger-border);background:transparent;color:var(--color-danger);font-size:var(--text-sm);padding:8px 12px}.danger-button:hover:not(:disabled){background:var(--color-danger-soft)}.icon-ghost-button{display:inline-flex;flex:0 0 44px;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface-sunken);box-shadow:var(--shadow-chip);color:var(--color-text);cursor:pointer}.icon-ghost-button svg{width:20px;height:20px}.icon-ghost-button:hover:not(:disabled){border-color:var(--color-accent-border);color:var(--color-accent)}.icon-ghost-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.icon-ghost-button:disabled{cursor:default;opacity:.6}.progress-track{height:6px;overflow:hidden;border-radius:var(--radius-pill);background:var(--color-border-soft)}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--color-accent)}.progress-detail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin:0}.progress-detail div{display:grid;gap:var(--space-1)}.progress-detail dt{color:var(--color-text-soft);font-size:var(--text-xs);font-weight:var(--weight-normal)}.progress-detail dd{margin:0;color:var(--color-text-strong);font-weight:var(--weight-medium);font-size:var(--text-md)}.status-strip,.dev-banner{flex-wrap:wrap;gap:10px;border-radius:var(--radius-sm);margin-bottom:12px;padding:10px 12px;font-size:var(--text-sm);font-weight:var(--weight-normal)}.status-strip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.status-strip.is-error{border-color:var(--color-danger-border);background:var(--color-danger-soft);color:var(--color-danger)}.extra-active-banner{flex-direction:column;align-items:stretch}.extra-active-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.extra-active-list li{display:flex;align-items:center;justify-content:space-between;gap:12px}.dev-banner{border:1px solid var(--color-accent-border);background:var(--color-accent-soft);color:var(--color-accent)}.dev-banner button{border:1px solid var(--color-accent);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-accent);font:inherit;font-weight:var(--weight-medium);padding:2px 10px;cursor:pointer}.dev-banner button:hover{background:var(--color-accent-soft)}.egg-card,.stage{display:flex;flex-direction:column;align-items:center;overflow:hidden;border:none;box-shadow:none;text-align:center;padding:var(--space-5) var(--space-4) 44px;background:radial-gradient(circle at 50% 38%,var(--color-gold-glow),transparent 56%),var(--color-surface)}.egg-card{gap:var(--space-3)}.egg-stage{display:grid;width:min(74%,280px);aspect-ratio:9 / 10;place-items:center;margin:0}.egg-stage svg{display:block;width:100%;height:100%}.egg-stage .egg-svg{transform-origin:50% 58%;animation:egg-breathe 4s ease-in-out infinite}.egg-stage .egg-svg[data-stage=S3]{animation-duration:3.4s}.egg-stage .egg-svg [data-layer=sparkles]{animation:egg-sparkle 2.8s ease-in-out infinite}.egg-summary{display:grid;justify-items:center;gap:var(--space-2);max-width:420px;min-width:0}.stage-word{margin:0;color:var(--color-text-strong);font-size:var(--text-lg);font-weight:var(--weight-medium);line-height:1.4}.stage-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.stage-dots i{width:10px;height:10px;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border)}.stage-dots i.on{background:var(--color-accent);border-color:var(--color-accent)}.stage-note{margin:0;color:var(--color-text-soft);font-size:var(--text-sm)}.stage-progress-track{width:min(100%,220px);margin:var(--space-1) auto 0}@keyframes egg-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.018)}}@keyframes egg-sparkle{0%,to{opacity:.45}50%{opacity:1}}.egg-card[data-frog-stage=tadpole]{background:radial-gradient(circle at 18% 80%,color-mix(in srgb,var(--color-accent) 16%,transparent),transparent 46%),radial-gradient(circle at 78% 26%,color-mix(in srgb,var(--color-accent) 10%,transparent),transparent 42%),radial-gradient(circle at 50% 14%,var(--color-gold-glow),transparent 55%),linear-gradient(180deg,var(--color-surface) 0%,var(--color-surface-sunken) 76%,var(--color-page) 100%)}.egg-card[data-frog-stage=froglet]{background:radial-gradient(circle at 16% 88%,var(--color-gold-glow),transparent 50%),radial-gradient(circle at 82% 18%,var(--color-gold-glow),transparent 40%),linear-gradient(180deg,var(--color-surface) 0%,var(--color-surface-sunken) 76%,var(--color-page) 100%)}.egg-card[data-frog-stage=adult]{background:radial-gradient(circle at 50% 16%,var(--color-gold-glow),transparent 44%),linear-gradient(180deg,var(--color-surface) 0%,var(--color-surface-sunken) 76%,var(--color-page) 100%)}.egg-stage svg[data-generator-version^=creature_gen_frog_][data-stage=tadpole]{transform-origin:50% 62%;animation:frog-swim-wobble 3.6s ease-in-out infinite}.egg-stage svg[data-generator-version^=creature_gen_frog_][data-stage=froglet]{transform-origin:50% 68%;animation:frog-shore-bob 3.2s ease-in-out infinite}.egg-stage svg[data-generator-version^=creature_gen_frog_][data-stage=adult]{transform-origin:50% 60%;animation:frog-shore-bob 2.6s ease-in-out infinite}@keyframes frog-swim-wobble{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-1.6%) rotate(-1.1deg)}75%{transform:translate(1.6%) rotate(1.1deg)}}@keyframes frog-shore-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2.2%)}}.frog-breathe{transform-origin:180px 210px;animation-name:frog-idle-breathe;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--frog-anim-delay, 0s);animation-duration:var(--frog-anim-dur, 3.4s)}@keyframes frog-idle-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.012)}}.frog-signature[data-frog-species=rf]{transform-origin:180px 210px;animation-name:frog-signature-rf;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--frog-sig-delay, .4s);animation-duration:calc(var(--frog-anim-dur, 3.4s) * .68)}@keyframes frog-signature-rf{0%,74%,to{transform:scale(1)}84%{transform:scale(1.045,.965)}92%{transform:scale(.99,1.01)}}.frog-signature[data-frog-species=lf]{transform-origin:180px 90px;animation-name:frog-signature-lf;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--frog-sig-delay, .6s);animation-duration:calc(var(--frog-anim-dur, 3.4s) * .82)}@keyframes frog-signature-lf{0%,80%,to{transform:rotate(0)}88%{transform:rotate(-2.2deg)}95%{transform:rotate(1.6deg)}}.frog-signature[data-frog-species=sf]{transform-origin:180px 210px;animation-name:frog-signature-sf;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--frog-sig-delay, .4s);animation-duration:calc(var(--frog-anim-dur, 3.4s) * 1.35)}@keyframes frog-signature-sf{0%,to{transform:translateY(0)}50%{transform:translateY(-2.4px)}}.frog-signature[data-frog-species=kf]{transform-origin:180px 300px;animation-name:frog-signature-kf;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--frog-sig-delay, .4s);animation-duration:calc(var(--frog-anim-dur, 3.4s) * .6)}@keyframes frog-signature-kf{0%,70%,to{transform:scaleY(1)}82%{transform:scaleY(.955)}90%{transform:scaleY(1.02)}}.frog-signature[data-frog-species=mf]{transform-origin:180px 210px;animation-name:frog-signature-mf;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--frog-sig-delay, .4s);animation-duration:calc(var(--frog-anim-dur, 3.4s) * .5)}@keyframes frog-signature-mf{0%,60%,to{transform:rotate(0)}68%,84%{transform:rotate(-.9deg)}76%,92%{transform:rotate(.9deg)}}.frog-signature[data-frog-species=wf]{transform-origin:180px 210px;animation-name:frog-signature-wf;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--frog-sig-delay, .4s);animation-duration:calc(var(--frog-anim-dur, 3.4s) * 1.6)}@keyframes frog-signature-wf{0%,to{transform:translate(0)}50%{transform:translate(2px)}}.hatch-panel{max-width:640px;margin:0 auto;padding:28px;text-align:center}.hatch-egg-crack{position:relative;width:min(100%,260px);aspect-ratio:360 / 400;margin:12px auto 20px;animation:hatch-egg-shake 2.2s ease-in-out forwards}.hatch-egg-crack-real,.hatch-crack-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.hatch-egg-crack-real svg{display:block;width:100%;height:100%}.hatch-crack-line{stroke:var(--color-text);stroke-dasharray:220;stroke-dashoffset:220;opacity:0;animation:hatch-crack-draw 1.1s ease-out .7s forwards}.hatch-creature-figure{width:min(100%,300px);margin:12px auto 16px}.hatch-creature-figure svg{display:block;width:100%;height:auto}.hatch-creature-sweep-in{animation:hatch-creature-settle .9s cubic-bezier(.22,1,.36,1) both}.hatch-thread-flourish{width:min(72%,220px);height:6px;margin:2px auto 16px;border-radius:999px;background:linear-gradient(90deg,var(--mood-resolute) 0%,var(--color-gold-bright) 26%,var(--mood-hopeful) 52%,var(--mood-tender) 76%,var(--mood-calm) 100%);opacity:0;transform:scaleX(.2);animation:hatch-thread-sweep .9s cubic-bezier(.22,1,.36,1) .4s forwards}@keyframes hatch-thread-sweep{to{opacity:1;transform:scaleX(1)}}.hatch-reveal .hatch-creature-figure{position:relative;isolation:isolate}.hatch-reveal .hatch-creature-figure:before{content:"";position:absolute;top:-16%;right:-12%;bottom:-16%;left:-12%;z-index:-1;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--color-gold-bright) 42%,transparent) 0%,transparent 70%);opacity:0;animation:hatch-color-bloom 1.5s ease-out .3s both;pointer-events:none}@keyframes hatch-color-bloom{0%{opacity:0;transform:scale(.72)}50%{opacity:1;transform:scale(1.06)}to{opacity:0;transform:scale(1.24)}}.stage-ritual-figure.hatch-creature-figure{position:relative;width:min(100%,260px)}.stage-ritual-figure:before,.stage-ritual-figure:after{content:"";position:absolute;left:50%;bottom:6%;width:58%;height:16%;border-radius:50%;border:2px solid color-mix(in srgb,var(--color-accent) 42%,transparent);transform:translate(-50%) scale(.55);opacity:0;animation:stage-ritual-ripple 2.6s ease-out infinite;pointer-events:none}.stage-ritual-figure:after{animation-delay:.9s}@keyframes stage-ritual-ripple{0%{transform:translate(-50%) scale(.5);opacity:.5}85%,to{transform:translate(-50%) scale(1.4);opacity:0}}.hatch-caption{color:var(--color-text-soft);font-size:var(--text-sm);margin:0 0 20px}.hatch-mood-summary{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;list-style:none;margin:4px 0 18px;padding:0;color:var(--color-text);font-size:var(--text-sm)}.hatch-mood-summary li{display:inline-flex;align-items:center;gap:6px}.hatch-mood-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.hatch-journal-excerpts{text-align:left;margin:0 0 20px;padding:14px 16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken)}.hatch-journal-excerpts ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}.hatch-journal-excerpts li{display:grid;gap:2px;font-size:var(--text-sm)}.hatch-journal-excerpts strong{color:var(--color-text-soft);font-size:var(--text-xs)}.hatch-naming-form{display:grid;gap:16px;text-align:left}.hatch-naming-form label{display:grid;gap:6px}.hatch-naming-form input{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.hatch-naming-actions{display:flex;justify-content:flex-end;gap:10px}.hatched-card{max-width:480px;margin:0 auto;padding:28px;text-align:center}.hatched-card .hatch-creature-figure{background:var(--color-surface-sunken);border-radius:var(--radius-lg)}.trophy-chain{max-width:640px;margin:16px auto 0;padding:24px;text-align:left}.trophy-chain-empty{margin:0;color:var(--color-text-soft);font-size:var(--text-sm)}.trophy-chain-list{position:relative;display:grid;gap:18px;list-style:none;margin:0;padding:0 0 0 34px}.trophy-chain-list:before{content:"";position:absolute;left:15px;top:8px;bottom:8px;width:2px;background:var(--color-border)}.trophy-chain-item{position:relative;display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken)}.trophy-chain-node{position:absolute;left:-23px;top:50%;width:10px;height:10px;transform:translateY(-50%);border-radius:50%;background:var(--color-gold);border:2px solid var(--color-surface-sunken);box-shadow:0 0 0 2px var(--color-border)}.trophy-chain-thumb{width:64px;height:64px;margin:0;background:var(--color-surface-sunken);border-radius:var(--radius-sm);overflow:hidden}.trophy-chain-thumb svg{display:block;width:100%;height:100%}.trophy-chain-meta{display:grid;gap:2px;color:var(--color-text);font-size:var(--text-sm)}.trophy-chain-meta strong{font-size:var(--text-md);font-weight:var(--weight-medium)}.trophy-chain-title{color:var(--color-text-soft)}.trophy-chain-actions{display:flex;gap:8px;margin-top:4px}.trophy-chain-actions .ghost-button,.trophy-chain-rename-actions .ghost-button,.trophy-chain-rename-actions .primary-button{padding:4px 10px;font-size:var(--text-xs)}.trophy-chain-rename-form{display:grid;gap:6px}.trophy-chain-rename-form input{padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm)}.trophy-chain-rename-actions{display:flex;justify-content:flex-end;gap:8px}.trophy-chain-hidden{margin-top:18px;padding-top:14px;border-top:1px solid var(--color-border)}.trophy-chain-hidden-list{display:grid;gap:8px;list-style:none;margin:10px 0 0;padding:0}.trophy-chain-hidden-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-sunken);color:var(--color-text-soft);font-size:var(--text-sm)}.trophy-chain-hidden-thumb{width:40px;height:40px;margin:0;flex-shrink:0;background:var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.trophy-chain-hidden-thumb svg{display:block;width:100%;height:100%}.trophy-chain-hidden-name{color:var(--color-text);font-weight:var(--weight-medium)}.trophy-chain-hidden-item .trophy-chain-title{flex:1}@keyframes hatch-egg-shake{0%,55%{transform:rotate(0)}60%{transform:rotate(-3deg)}65%{transform:rotate(3deg)}70%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}82%,to{transform:rotate(0) scale(1.02)}}@keyframes hatch-crack-draw{to{stroke-dashoffset:0;opacity:1}}@keyframes hatch-creature-settle{0%{clip-path:inset(0 0 100% 0);transform:translateY(6px)}to{clip-path:inset(0 0 0% 0);transform:translateY(0)}}@media(max-width:760px){.app-shell{padding:18px}.app-header{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.mood-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reminder-form{grid-template-columns:1fr}.primary-button{width:100%}}@media(prefers-reduced-motion:reduce){.egg-stage .egg-svg,.egg-stage .egg-svg [data-layer=sparkles]{animation:none}.egg-stage svg[data-generator-version^=creature_gen_frog_]{animation:none}.hatch-egg-crack,.hatch-crack-line,.hatch-creature-sweep-in{animation:none}.hatch-crack-line{stroke-dashoffset:0;opacity:1}.hatch-thread-flourish,.hatch-reveal .hatch-creature-figure:before,.stage-ritual-figure:before,.stage-ritual-figure:after{animation:none}.frog-breathe,.frog-signature{animation:none}}.share-card-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:32px 16px;background:var(--color-scrim)}.share-card-modal{width:100%;max-width:420px;padding:22px;display:flex;flex-direction:column;gap:14px}.share-card-preview{margin:0;width:100%;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.share-card-preview>svg{display:block;width:100%;height:auto}.share-card-toggle{display:flex;align-items:center;gap:8px;font-weight:var(--weight-medium);color:var(--color-text-strong)}.share-card-privacy-note{margin:-6px 0 0;color:var(--color-text-soft);font-size:var(--text-sm);line-height:1.5}.share-card-actions{display:flex;flex-wrap:wrap;gap:10px}.journal-view{position:relative;overflow:hidden;max-width:820px;margin:0 auto;padding:calc(var(--space-5) + 7px) var(--space-4) var(--space-5)}.journal-selvedge{position:absolute;top:0;left:0;right:0;height:7px;background:repeating-linear-gradient(90deg,var(--color-accent-border) 0 7px,transparent 7px 14px);opacity:.55}.journal-view-header{display:flex;align-items:center;gap:14px;margin-bottom:18px}.journal-view-header h2{margin:2px 0 4px}.journal-range{display:flex;align-items:center;gap:6px}.journal-range svg{flex:0 0 auto;color:var(--color-text-faint)}.journal-range,.journal-loading,.journal-error{margin:0;color:var(--color-text-soft);line-height:1.6}.journal-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);background:var(--color-surface-sunken);border-radius:var(--radius-lg);text-align:center}.journal-loom-fig{color:var(--color-loom-warp)}.journal-loom-fig svg{display:block}.journal-loom-heading{margin:0;color:var(--color-text);font-size:var(--text-md);font-weight:var(--weight-medium)}.journal-loom-invite{margin:0;max-width:260px;color:var(--color-text-soft);font-size:var(--text-sm)}.journal-list{position:relative;display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}.journal-list:before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:repeating-linear-gradient(180deg,var(--color-accent-border) 0 5px,transparent 5px 10px);opacity:.55}.journal-entry{position:relative;display:grid;grid-template-columns:18px 1fr;gap:12px;padding:14px 0;border-top:1px solid var(--color-border-soft)}.journal-mood-dot{position:relative;width:15px;height:15px;margin-top:3px;justify-self:center;border-radius:50%;background:radial-gradient(at 34% 30%,#fff9,#fff0 55%),var(--m, var(--color-border));box-shadow:0 1px 2px #5c4a3e4d,0 0 0 5px var(--color-surface),0 0 0 6.5px color-mix(in srgb,var(--m, var(--color-border)) 45%,transparent)}.journal-entry[data-mood-id=calm]{--m: var(--mood-calm)}.journal-entry[data-mood-id=joyful]{--m: var(--mood-joyful)}.journal-entry[data-mood-id=resolute]{--m: var(--mood-resolute)}.journal-entry[data-mood-id=hopeful]{--m: var(--mood-hopeful)}.journal-entry[data-mood-id=tired]{--m: var(--mood-tired)}.journal-entry[data-mood-id=pulledThrough]{--m: var(--mood-pulled)}.journal-entry[data-mood-id=tender]{--m: var(--mood-tender)}.journal-entry[data-mood-id=grateful]{--m: var(--mood-grateful)}.journal-entry-body{min-width:0}.journal-entry-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;color:var(--color-text-soft);font-size:var(--text-sm);font-weight:var(--weight-medium)}.journal-mood-pill{padding:2px 9px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--m, var(--color-border)) 32%,var(--color-surface));color:var(--color-text);font-size:var(--text-xs)}.journal-entry p{margin:0;color:var(--color-text-strong);line-height:1.7;overflow-wrap:anywhere;white-space:pre-wrap}.journal-entry-plain-line{display:flex;align-items:center;gap:6px;margin:5px 0 0;color:var(--color-text-soft);font-size:var(--text-xs)}.journal-entry-yarn{display:inline-block;width:26px;height:0;border-top:2px dashed var(--color-border)}[data-theme=dark] .journal-selvedge,[data-theme=dark] .journal-list:before{opacity:.72}[data-theme=dark] .journal-mood-dot{background:radial-gradient(at 64% 70%,#fff8eb38,#fff8eb00 52%),var(--m, var(--color-border));box-shadow:0 1px 2px #0000007f,0 0 0 5px var(--color-surface),0 0 0 6.5px color-mix(in srgb,var(--m, var(--color-border)) 42%,transparent)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .journal-selvedge,:root:not([data-theme=light]) .journal-list:before{opacity:.72}:root:not([data-theme=light]) .journal-mood-dot{background:radial-gradient(at 64% 70%,#fff8eb38,#fff8eb00 52%),var(--m, var(--color-border));box-shadow:0 1px 2px #0000007f,0 0 0 5px var(--color-surface),0 0 0 6.5px color-mix(in srgb,var(--m, var(--color-border)) 42%,transparent)}}.clutch-create-toggle{display:flex;align-items:center;gap:8px;margin:4px 0 0;font-weight:var(--weight-medium)}.clutch-create-toggle input{width:auto}.clutch-section{max-width:680px;margin:20px auto 0}.clutch-invite-row{display:flex;gap:8px;margin:10px 0 16px}.clutch-invite-input{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-page);color:var(--color-text);font-size:var(--text-sm)}.clutch-status{margin:0;color:var(--color-text-soft);font-size:var(--text-sm)}.clutch-member-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.clutch-member-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--color-border-soft);border-radius:var(--radius-sm)}.clutch-member-creature{width:40px;height:40px;flex-shrink:0}.clutch-member-creature svg{width:100%;height:100%;display:block}.clutch-member-creature .frog-breathe,.clutch-member-creature .frog-signature{animation:none}.clutch-member-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.clutch-member-status{color:var(--color-text-soft);font-size:var(--text-xs)}.clutch-landing-card{max-width:480px;margin:0 auto}.account-prompt-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-sunken);color:var(--color-text)}.account-prompt-banner p{margin:0;font-weight:600}.account-prompt-actions{display:flex;gap:8px;flex-shrink:0}.account-section{max-width:680px;margin:20px auto 0}.account-provider-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--color-border-soft)}.account-provider-row:last-of-type{border-bottom:none}.account-protected-badge{padding:4px 10px;border-radius:999px;background:var(--color-accent-soft);color:var(--color-accent-strong);font-size:.82rem;font-weight:700}.account-email-form{display:flex;flex-wrap:wrap;gap:8px;flex:1}.account-email-form input{flex:1;min-width:180px}.account-relogin-toggle{margin-top:12px}.account-relogin-block{display:grid;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border-soft)}
