:root{--bg:#fff7ed;--bg-2:#fffbeb;--card:#ffffff;--text:#1f2937;--muted:#6b7280;--line:#fde68a;--accent:#ea580c;--accent-2:#f59e0b;--shadow:0 12px 28px rgba(234,88,12,.12)}
*{box-sizing:border-box}html,body{height:100%}
body{margin:0;font-family:'Baloo 2','Be Vietnam Pro',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,var(--bg),var(--bg-2));color:var(--text)}
.app{max-width:960px;margin:0 auto;padding:24px 20px}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 18px}
.header h1{font-weight:800;margin:0 0 6px;font-size:25px}.sub{color:var(--muted);margin:0}
.toggle{background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:var(--shadow);cursor:pointer}
.card{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--shadow)}.label{font-weight:800;display:block;margin-bottom:8px}
textarea{width:100%;min-height:132px;padding:16px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.85);resize:vertical;font-size:16px;color:var(--text)}
.quick-area{margin-top:14px;display:grid;gap:12px}.quick-title{font-weight:800;color:var(--muted)}
.mood-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.mood-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:72px;padding:12px 10px;border:1.5px solid var(--line);border-radius:16px;background:rgba(255,255,255,.75);cursor:pointer;transition:.15s transform,.15s background,.15s border-color}
.mood-item:hover{transform:translateY(-1px);background:#fff;border-color:var(--accent-2)}.mood-emoji{font-size:24px;line-height:1}.mood-label{font-size:12px;color:var(--muted);margin-top:6px;text-align:center}
.preset-grid{display:flex;flex-wrap:wrap;gap:10px}.pill{padding:10px 14px;border-radius:999px;border:1.5px solid var(--line);background:rgba(253,230,138,.5);font-weight:700;color:var(--text);cursor:pointer;transition:.15s transform,.15s background,.15s border-color}
.pill:hover{transform:translateY(-1px);background:rgba(253,230,138,.85);border-color:var(--accent-2)}.actions{display:flex;gap:14px;margin-top:16px;flex-wrap:wrap}
button{appearance:none;border:none;border-radius:14px;padding:16px 20px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:900;cursor:pointer;box-shadow:var(--shadow)}
button.ghost{background:#fff;color:var(--text);border:1.5px solid var(--line);box-shadow:none}button.viral{font-size:15.5px;letter-spacing:.3px}
.hint{color:var(--muted);margin:8px 0 0}.footer{text-align:center;color:var(--muted);margin-top:10px}
.output{white-space:pre-wrap;line-height:1.9;font-size:16px;padding:6px 0}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.chip{display:inline-block;padding:8px 12px;border:1.5px solid var(--line);border-radius:999px;background:#fff}
.chip a{color:inherit;text-decoration:none;border-bottom:1px dashed transparent}.chip a:hover{border-bottom-color:var(--accent-2)}
.note{font-style:italic;color:#888;margin-top:8px}.fade-in{animation:fadeIn .8s ease-in}
@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.loading{text-align:center;margin-top:16px;color:var(--muted);font-size:16px;animation:fadeIn .4s ease-in}
.spinner{width:40px;height:40px;border:4px solid #fde68a;border-top-color:var(--accent);border-radius:50%;margin:0 auto 10px;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:880px){.mood-grid{grid-template-columns:repeat(3,1fr)}textarea{min-height:124px}}
