@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Noto+Sans+TC:wght@400;500;700;900&display=swap";:root{--background-start:#0f172a;--background-mid:#1e1b4b;--background-end:#312e81;--glass-bg:#ffffff0d;--glass-border:#ffffff1a;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--accent:#38bdf8;--accent-hover:#0ea5e9;--card-shadow:0 8px 32px 0 #0000005e;--border-radius:16px}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg, var(--background-start), var(--background-mid), var(--background-end));color:var(--text-primary);-webkit-font-smoothing:antialiased;background-attachment:fixed;min-height:100vh;font-family:Inter,Noto Sans TC,sans-serif;line-height:1.5}.container{max-width:1000px;margin:0 auto;padding:3rem 1.5rem}.header{text-align:center;margin-bottom:3rem}.title{background:linear-gradient(90deg,#38bdf8,#818cf8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:3rem;font-weight:900}.subtitle{color:var(--text-secondary);font-size:1.1rem}.input-section{justify-content:center;gap:1rem;margin-bottom:4rem;display:flex}.search-input{border:1px solid var(--glass-border);background:var(--glass-bg);max-width:400px;color:var(--text-primary);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50px;outline:none;flex:1;padding:1rem 1.5rem;font-family:inherit;font-size:1.1rem;transition:all .3s}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 4px #38bdf81a}.generate-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50px;align-items:center;gap:.5rem;padding:0 2rem;font-size:1.1rem;font-weight:600;transition:all .3s;display:flex}.generate-btn:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 10px 20px #38bdf833}.generate-btn:disabled{opacity:.7;cursor:not-allowed}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--border-radius);box-shadow:var(--card-shadow);height:100%;padding:1.5rem;transition:transform .3s,border-color .3s}.glass-card:hover{border-color:#fff3;transform:translateY(-5px)}.results-grid{grid-template-columns:1fr;gap:3rem;display:grid}@media (width>=768px){.results-grid{grid-template-columns:1fr 1fr}}.section-title{align-items:center;gap:.5rem;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700;display:flex}.card-grid{flex-direction:column;gap:1rem;display:flex}.store-name{color:#fbbf24;margin-bottom:.5rem;font-size:1.5rem;font-weight:900}.store-logic{color:var(--text-secondary);font-size:.95rem}.joke-card{cursor:pointer;position:relative;overflow:hidden}.joke-question{margin-bottom:1rem;font-size:1.1rem;font-weight:500}.joke-reveal-overlay{background:var(--glass-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--accent);justify-content:center;align-items:center;font-weight:600;transition:opacity .3s;display:flex;position:absolute;inset:0}.joke-card.revealed .joke-reveal-overlay{opacity:0;pointer-events:none}.joke-answer{color:#fff;margin-bottom:.5rem;font-size:1.3rem;font-weight:700;animation:.5s forwards fadeIn}.joke-explanation{color:var(--text-secondary);font-size:.9rem;animation:.5s forwards fadeIn}.hidden-content{display:none}.revealed .hidden-content{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.loading-spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--text-secondary);padding:4rem 0}.login-gate{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{text-align:center;width:100%;max-width:420px;padding:3rem 2.5rem}.login-icon{color:var(--accent);margin-bottom:1.5rem;animation:.6s forwards fadeIn}.login-title{background:linear-gradient(90deg,#38bdf8,#818cf8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-bottom:.5rem;font-size:1.8rem;font-weight:900}.login-subtitle{color:var(--text-secondary);margin-bottom:2rem;font-size:.95rem}.login-form{flex-direction:column;gap:1rem;display:flex}.login-input{text-align:center;border-radius:12px;max-width:100%}.login-btn{border-radius:12px;justify-content:center;width:100%;padding:1rem}.login-error{color:#f87171;margin-top:1rem;font-size:.9rem;animation:.3s forwards fadeIn}
