:root{--bg-rgb:10 21 35;--bg:rgb(var(--bg-rgb));--bg-soft:#101f33;--surface:#16283f;--surface-hover:#1e3450;--border:#24405f;--text:#f7f0e2;--text-soft:#cfc6b6;--text-faint:#9a9284;--gold-rgb:232 191 131;--gold:rgb(var(--gold-rgb));--gold-soft:#f4dcb8;--gold-deep:#c49a63;--violet-rgb:107 95 196;--violet:rgb(var(--violet-rgb));--violet-soft-rgb:167 156 232;--violet-soft:rgb(var(--violet-soft-rgb));--rose:#e37b91;--danger:#f0a08a;--on-gold:#2b1e10;--on-violet:#fff;--radius:14px;--radius-lg:22px;--shadow:0 4px 24px #00000059;--space-3xs:.25rem;--space-2xs:.5rem;--space-xs:.75rem;--space-sm:1rem;--space-md:1.25rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:2.5rem;--space-3xl:3rem;--space-4xl:4rem;--space-5xl:5rem;--width-wide:1280px;--width-text:720px;--width-form:640px;--width-narrow:560px;--font-sans:-apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans TC", "Noto Sans CJK TC", "Source Han Sans TC", "思源黑體", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji";--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-page:clamp(1.5rem, 3.5vw, 2.2rem);--text-stat:clamp(1.6rem, 3.5vw, 2.4rem);--text-hero:clamp(1.8rem, 4.5vw, 3rem);--weight-normal:400;--weight-bold:500;--leading-tight:1.4;--leading-snug:1.55;--leading-normal:1.75;--tracking-brand:.08em;--tracking-wide:.12em;--icon-inline:1.15em;--icon-sm:20px;--icon-md:28px;--icon-lg:36px;--icon-xl:44px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-reveal:.5s cubic-bezier(.16, 1, .3, 1);--z-header:40;--z-float:50}[data-category=財富]{--cat-from:232 191 131;--cat-to:198 150 74}[data-category=愛情]{--cat-from:230 128 152;--cat-to:196 100 158}[data-category=健康]{--cat-from:118 206 168;--cat-to:86 178 180}[data-category=家庭]{--cat-from:238 138 112;--cat-to:208 104 96}[data-category=事業]{--cat-from:120 186 226;--cat-to:86 142 206}[data-category=學業]{--cat-from:146 142 238;--cat-to:112 118 214}[data-category=夢想]{--cat-from:190 142 236;--cat-to:226 146 202}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);font-weight:var(--weight-normal);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{font-weight:var(--weight-bold);line-height:var(--leading-tight);text-wrap:pretty}a{color:inherit;text-decoration:none}strong,b,th{font-weight:var(--weight-bold)}img{max-width:100%;display:block}[data-icon]{width:var(--icon-inline);height:var(--icon-inline);flex-shrink:0}:focus-visible{outline:2px solid var(--violet-soft);outline-offset:2px}.btn-primary:focus-visible{outline-color:var(--gold-soft)}.container{width:min(var(--width-wide), 92%);margin-inline-start:auto;margin-inline-end:auto}.section{padding-block:var(--space-4xl)}.section-title{font-size:var(--text-2xl);font-weight:var(--weight-bold);margin:0 0 var(--space-2xs)}.section-desc{color:var(--text-soft);margin:0 0 var(--space-xl)}html[data-reveal-on] :is([data-reveal],[data-reveal-stagger]>*):not([data-revealed]){opacity:0}html[data-reveal-on] :is([data-reveal],[data-reveal-stagger]>*)[data-revealed]{animation:reveal-in var(--transition-reveal) backwards}@keyframes reveal-in{0%{opacity:0;transform:translateY(var(--space-xs))}}html[data-reveal-on] [data-reveal-stagger]>:nth-child(2){animation-delay:60ms}html[data-reveal-on] [data-reveal-stagger]>:nth-child(3){animation-delay:.12s}html[data-reveal-on] [data-reveal-stagger]>:nth-child(4){animation-delay:.18s}html[data-reveal-on] [data-reveal-stagger]>:nth-child(5){animation-delay:.24s}html[data-reveal-on] [data-reveal-stagger]>:nth-child(n+6){animation-delay:.3s}.btn{font-family:inherit;font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);border:none;border-radius:999px;align-items:center;gap:.4em;padding:.7em 1.5em;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--gold), var(--gold-deep));color:var(--on-gold);box-shadow:0 4px 18px rgb(var(--gold-rgb) / .35)}.btn-primary:hover{box-shadow:0 6px 24px rgb(var(--gold-rgb) / .5);transform:translateY(-2px)}.btn-ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface)}.btn[disabled]{opacity:.55;cursor:not-allowed;transform:none}@media (max-width:860px){.btn{min-height:44px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-lg);box-shadow:var(--shadow)}.center-card{max-width:var(--width-narrow);text-align:center;align-items:center;gap:var(--space-sm);padding:var(--space-2xl) var(--space-xl);flex-direction:column;margin-inline-start:auto;margin-inline-end:auto;display:flex}.center-card h2{font-size:var(--text-xl);margin:0}.center-card p{color:var(--text-soft);margin:0}.center-icon{width:var(--icon-xl);height:var(--icon-xl);color:var(--violet-soft)}.hint{font-size:var(--text-sm);color:var(--text-faint)}.hint a{color:var(--gold)}.greeting{color:var(--text-soft);margin:0}.flash{margin:0 0 var(--space-lg);border-radius:var(--radius);background:rgb(var(--gold-rgb) / .12);color:var(--gold-soft);font-size:var(--text-sm);padding:.75em 1em}.form-error{margin:0 0 var(--space-lg);font-size:var(--text-sm);color:var(--danger)}.center-card .form-error{margin:0}.manage-btn{cursor:pointer;font-family:inherit;font-size:var(--text-sm);color:var(--text-faint);transition:color var(--transition-fast);background:0 0;border:none;align-items:center;gap:.35em;padding:.4em 0;display:inline-flex}.manage-btn:focus-visible{outline:2px solid var(--violet);outline-offset:2px;border-radius:4px}@media (hover:hover){.manage-btn:hover{color:var(--text)}.manage-btn.danger:hover{color:var(--danger)}}@media (max-width:860px){.manage-btn{min-height:44px}}.wish-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.wish-empty{color:var(--text-soft);margin:0}.wish-empty a{color:var(--gold)}.wish-card,.my-wish{--tint:var(--cat-from,var(--violet-rgb));--tint-deep:var(--cat-to,var(--violet-rgb));background:radial-gradient(115% 85% at 2% -8%, rgb(var(--tint) / .62), rgb(var(--tint) / 0) 58%), radial-gradient(95% 75% at 105% 108%, rgb(var(--tint-deep) / .52), rgb(var(--tint-deep) / 0) 62%), radial-gradient(70% 55% at 88% -12%, rgb(var(--tint-deep) / .34), rgb(var(--tint-deep) / 0) 60%), radial-gradient(90% 70% at 50% 55%, rgb(var(--tint) / .07), rgb(var(--tint) / 0) 72%), var(--surface);border-color:rgb(var(--tint) / .5)}.wish-card{gap:var(--space-xs);flex-direction:column;display:flex}.wish-card .wish-meta{align-items:center;gap:var(--space-2xs);display:flex}.wish-card .day{font-size:var(--text-xs);color:var(--text-faint)}.wish-card .done-badge{font-size:var(--text-xs);color:var(--gold);align-items:center;gap:.3em;margin-left:auto;display:inline-flex}.wish-card .wish-text{font-size:var(--text-lg);line-height:var(--leading-snug);flex:1;margin:0}.wish-card .wish-actions{align-items:center;gap:var(--space-2xs);display:flex}.wish-card .wish-actions>form,.wish-card .wish-actions>.bless-btn{margin-left:auto}.wish-card .bless-btn{border:1px solid var(--border);color:var(--text-soft);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;border-radius:999px;align-items:center;gap:.4em;padding:.35em 1em;font-family:inherit;text-decoration:none;display:inline-flex}@media (hover:hover){.wish-card .bless-btn:not([disabled]):hover{border-color:var(--gold);color:var(--gold)}}.wish-card .bless-btn[disabled]{cursor:default;color:var(--rose)}.wish-card .bless-btn[disabled] [data-icon]{fill:currentColor}.wish-card .bless-count{font-size:var(--text-sm);color:var(--text-soft);align-items:center;gap:.35em;display:inline-flex}.wish-card .bless-count [data-icon]{fill:currentColor;color:var(--rose)}.wish-card .report-btn{margin-left:var(--space-2xs);padding:.4em}.wish-card .report-btn [data-icon]{width:var(--icon-sm);height:var(--icon-sm)}@media (max-width:860px){.wish-card .report-btn{justify-content:center;min-width:44px}.wish-card .bless-btn{min-height:44px;padding-inline-start:1.2em;padding-inline-end:1.2em}}.features{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.feature{text-align:center;flex-direction:column;align-items:center;display:flex}.feature-icon{width:var(--icon-lg);height:var(--icon-lg);color:var(--gold)}.feature h3{margin:var(--space-xs) 0 var(--space-2xs);font-size:var(--text-lg)}.feature p{color:var(--text-soft);font-size:var(--text-sm);margin:0}.intro-more{margin:var(--space-xl) 0 0;text-align:center}.intro-more a{color:var(--gold);font-size:var(--text-sm);align-items:center;gap:.3em;display:inline-flex}.home-wishes{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.home-wish{gap:var(--space-2xs);color:inherit;flex-direction:column;text-decoration:none;display:flex}.home-wish-day{color:var(--gold);font-size:var(--text-sm);font-weight:var(--weight-bold)}.home-wish-text{line-height:var(--leading-normal);margin:0}.home-wish-state{padding-top:var(--space-2xs);color:var(--text-faint);font-size:var(--text-sm);align-items:center;gap:.35em;margin-top:auto;display:flex}.home-wish-state.is-done{color:var(--gold)}.home-wishes-empty{text-align:center;color:var(--text-soft);margin:0}.tag{font-size:var(--text-xs);background:rgb(var(--violet-rgb) / .18);color:var(--violet-soft);border:1px solid rgb(var(--violet-rgb) / .35);border-radius:999px;padding:.15em .8em;display:inline-block}[data-category] .tag{--tint:var(--cat-from,var(--violet-soft-rgb));background:rgb(var(--tint) / .15);color:rgb(var(--tint));border-color:rgb(var(--tint) / .38)}
