:root{
  --bg:#0f1720;
  --card:#0b0f12;
  --accent:#1fbf4a;
  --muted:#9aa6b2;
  --white:#f7fafc;
  --primary:#2f86be;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:linear-gradient(180deg,#071018 0%, #071218 100%);font-family:"Segoe UI",Roboto,Arial,system-ui;color:var(--white)}
main.card{max-width:900px;margin:24px auto;padding:18px;border-radius:14px;background:linear-gradient(180deg,rgba(255,255,255,0.02),rgba(0,0,0,0.06));box-shadow:0 8px 30px rgba(0,0,0,0.5)}
.hero{display:flex;gap:16px;align-items:center;padding:6px}
.hero-left img{width:112px;height:112px;object-fit:cover;border-radius:999px;border:4px solid rgba(255,255,255,0.06)}
.hero-right{flex:1}
.editable{display:block;width:100%;background:transparent;border:none;color:var(--white);outline:none}
.editable.big{font-size:28px;font-weight:700;padding:6px 0}
.editable.small{font-size:14px;color:var(--muted);padding:2px 0}

.greeting{padding:12px 6px}
#greeting-text{width:100%;min-height:84px;padding:12px;border-radius:10px;border:1px solid rgba(255,255,255,0.04);background:rgba(255,255,255,0.02);color:var(--white);resize:vertical;font-size:16px}
.personalize{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.personalize input{flex:1;min-width:180px;padding:10px;border-radius:8px;border:1px solid rgba(255,255,255,0.04);background:transparent;color:var(--white)}
.actions{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.actions button{background:var(--primary);border:none;padding:12px;border-radius:10px;color:white;font-weight:700;cursor:pointer}
.actions button.secondary{background:#3b83a6}
.link-output{margin-top:10px;padding:8px;border-radius:8px;background:rgba(255,255,255,0.02);word-break:break-all}
.hidden{display:none}

.controls{display:flex;gap:8px;margin-top:10px}
.controls button{background:var(--accent);border:none;padding:8px 12px;border-radius:8px;color:#05210a;font-weight:700;cursor:pointer}

.preview{padding:12px}
.wish-card{padding:12px;border-radius:10px;background:rgba(255,255,255,0.02)}
.wish-card h2{margin:0 0 6px 0}

.big-play{display:inline-block;padding:12px 18px;border-radius:12px;border:none;background:#ff7b7b;color:#111;font-weight:700;font-size:18px;cursor:pointer;margin-top:8px}

.notes{padding:10px;color:var(--muted)}

.confetti-canvas{position:fixed;pointer-events:none;left:0;top:0;width:100%;height:100%;z-index:9999}
@media(max-width:560px){
  .hero{flex-direction:row;gap:12px}
  .hero-left img{width:88px;height:88px}
  .personalize{flex-direction:column}
  .actions{flex-direction:column}
}