/* ═══════════════════════════════════════════
   Kartu Ucapan Nusantara — Stylesheet
═══════════════════════════════════════════ */

:root{
  --ink:#14151b;
  --panel:#1c1e26;
  --panel-2:#20222c;
  --panel-3:#262835;
  --border:#2c2e39;
  --border-hover:#3a3c4a;
  --gold:#d4a857;
  --gold-soft:#e8c88a;
  --gold-dim:rgba(212,168,87,0.12);
  --text:#f1eee4;
  --text-soft:#d5d2c8;
  --muted:#8b8d98;
  --radius:14px;
  --radius-sm:10px;
  --shadow-md:0 8px 30px rgba(0,0,0,0.25);
  --shadow-lg:0 30px 60px -20px rgba(0,0,0,0.55);
  --transition:0.2s cubic-bezier(.4,0,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}

body{
  background:
    radial-gradient(ellipse at 20% 0%, rgba(212,168,87,0.04) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 100%, rgba(212,168,87,0.03) 0%, transparent 50%),
    repeating-linear-gradient(135deg, rgba(212,168,87,0.025) 0 1px, transparent 1px 30px),
    var(--ink);
  color:var(--text);
  font-family:'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  min-height:100vh;
  line-height:1.5;
}

/* ── Layout ── */
.app{max-width:1320px;margin:0 auto;padding:40px 28px 72px;}

/* ── Header ── */
header.top{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:28px;flex-wrap:wrap;margin-bottom:32px;padding-bottom:24px;
  border-bottom:1px solid var(--border);
}
.brand-eyebrow{
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-soft);font-weight:700;margin:0 0 8px;opacity:0.85;
}
h1{
  font-family:'Fraunces', Georgia, serif;font-weight:600;
  font-size:clamp(28px, 4vw, 40px);line-height:1.08;margin:0;letter-spacing:-0.02em;
}
h1 em{font-style:italic;font-weight:500;color:var(--gold);}
.top-desc{max-width:380px;color:var(--muted);font-size:13.5px;line-height:1.6;margin:0;}

/* ── Workspace Grid ── */
.workspace{display:grid;grid-template-columns:370px 1fr;gap:24px;align-items:start;}
@media(max-width:920px){
  .workspace{grid-template-columns:1fr;}
  .preview-col{position:static!important;}
}
@media(max-width:480px){
  .app{padding:20px 14px 48px;}
  .panel{padding:16px;}
  .event-grid{grid-template-columns:1fr;}
  .format-row{gap:6px;}
  .format-row button{padding:9px 6px;font-size:11px;}
  header.top{gap:16px;margin-bottom:20px;padding-bottom:16px;}
  .footer-bar{justify-content:center;}
}

/* ── Panel ── */
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;}
.panel-section{margin-bottom:24px;}.panel-section:last-child{margin-bottom:0;}
.panel-section+.panel-section{padding-top:20px;border-top:1px solid var(--border);}
.panel h2{font-family:'Fraunces', Georgia, serif;font-size:16px;font-weight:600;margin:0 0 4px;}
.panel .sub{color:var(--muted);font-size:12px;margin:0 0 16px;line-height:1.55;}

/* ── Fields ── */
.field{margin-bottom:14px;}.field:last-child{margin-bottom:0;}
.field label{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.field input[type=text],.field input[type=number],.field textarea,.field select{
  width:100%;background:var(--panel-2);border:1px solid var(--border);color:var(--text);
  border-radius:var(--radius-sm);padding:10px 13px;font-family:inherit;font-size:14px;
  outline:none;transition:border-color var(--transition), box-shadow var(--transition);
}
.field input:hover,.field textarea:hover{border-color:var(--border-hover);}
.field input:focus,.field textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-dim);}
.field textarea{resize:vertical;min-height:72px;line-height:1.45;}

/* ── Event Chips ── */
.event-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.event-chip{
  border:1px solid var(--border);background:var(--panel-2);color:var(--text-soft);
  border-radius:var(--radius-sm);padding:10px 11px;font-size:12.5px;font-weight:600;
  cursor:pointer;text-align:left;display:flex;align-items:center;gap:9px;
  transition:all var(--transition);font-family:inherit;
}
.event-chip .dot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 6px rgba(0,0,0,0.2);}
.event-chip:hover{border-color:var(--border-hover);background:var(--panel-3);}
.event-chip.active{border-color:var(--gold);background:var(--gold-dim);color:var(--text);}

/* ── Format Buttons ── */
.format-row{display:flex;gap:8px;flex-wrap:wrap;}
.format-row button{
  flex:1 1 auto;min-width:0;background:var(--panel-2);border:1px solid var(--border);color:var(--text-soft);
  border-radius:var(--radius-sm);padding:10px 8px;font-size:12px;font-weight:600;
  cursor:pointer;font-family:inherit;transition:all var(--transition);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.format-row button:hover{border-color:var(--border-hover);background:var(--panel-3);}
.format-row button.active{border-color:var(--gold);background:var(--gold-dim);color:var(--gold-soft);}

/* ── Year Input ── */
.year-group{display:flex;align-items:center;gap:10px;margin-top:10px;}
.year-group label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);white-space:nowrap;}
.year-group input[type=number]{
  width:100px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);
  border-radius:var(--radius-sm);padding:8px 10px;font-family:inherit;font-size:14px;font-weight:600;
  outline:none;text-align:center;transition:border-color var(--transition), box-shadow var(--transition);
  -moz-appearance:textfield;
}
.year-group input[type=number]::-webkit-inner-spin-button,.year-group input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.year-group input[type=number]:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-dim);}

/* ── Preview Column ── */
.preview-col{position:sticky;top:24px;display:flex;flex-direction:column;gap:18px;align-items:center;}
.canvas-frame{
  background:radial-gradient(circle at 30% 20%, rgba(212,168,87,0.06), transparent 55%), var(--panel);
  border:1px solid var(--border);border-radius:18px;padding:20px;
  display:flex;align-items:center;justify-content:center;width:100%;box-shadow:var(--shadow-md);
}
#cardCanvas{max-width:100%;height:auto;border-radius:8px;box-shadow:var(--shadow-lg), 0 0 0 1px rgba(255,255,255,0.04);display:block;}

/* ── Action Buttons ── */
.actions{display:flex;gap:10px;width:100%;flex-wrap:wrap;}
.btn{
  flex:1;min-width:140px;border:none;border-radius:var(--radius-sm);padding:13px 18px;
  font-family:inherit;font-weight:700;font-size:13px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.015em;
  transition:all var(--transition);
}
.btn-primary{background:linear-gradient(135deg, var(--gold-soft), var(--gold));color:#22160a;box-shadow:0 4px 14px rgba(212,168,87,0.25);}
.btn-primary:hover{filter:brightness(1.08);box-shadow:0 6px 20px rgba(212,168,87,0.35);}
.btn-primary:active{transform:translateY(1px);}
.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-soft);}
.btn-ghost:hover{border-color:var(--gold-soft);color:var(--text);}
.hint{font-size:11px;color:var(--muted);text-align:center;max-width:440px;line-height:1.55;}

/* ── Footer Bar (top area with trakteer) ── */
.footer-bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;margin-top:0;
}

/* ════════════════════════════════════════════
   FOOTER STANDAR — KingSyah
═══════════════════════════════════════════ */
.footer{
  text-align:center;padding:24px 16px 16px;margin-top:32px;
}
.footer-inner{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 24px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:40px;
  backdrop-filter:blur(8px);
}
.footer-crown{
  font-size:1rem;font-style:normal;display:inline-block;
  animation:footer-crown-bob 3s ease-in-out infinite;
  filter:drop-shadow(0 2px 4px rgba(200,150,12,0.4));
}
.footer-crown:last-child{animation-delay:0.5s;}
.footer-text{
  font-size:0.75rem;letter-spacing:0.03em;
  background:linear-gradient(90deg, #c8960c, #8b1a1a, #e87830, #3070d0, #8040c0, #c8960c);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;background-size:200% auto;
  animation:footer-shimmer 4s linear infinite;
}
@keyframes footer-crown-bob{
  0%,100%{transform:translateY(0) rotate(-5deg);}
  50%{transform:translateY(-3px) rotate(5deg);}
}
@keyframes footer-shimmer{
  0%{background-position:0% center;}
  100%{background-position:200% center;}
}
@media(max-width:480px){
  .footer{padding:16px 16px 12px;}
  .footer-text{font-size:0.7rem;}
}

/* ════════════════════════════════════════════
   TRAKTEER BUTTON — STANDAR KECIL (GLASS)
   Mode gelap otomatis karena site sudah dark
═══════════════════════════════════════════ */
.trakteer-btn{
  display:inline-flex;align-items:center;justify-content:center;
  height:38px;width:38px;padding:0 10px;border-radius:19px;
  overflow:hidden;white-space:nowrap;text-decoration:none;cursor:pointer;
  background:rgba(255,255,255,0.08);
  border:1.5px solid rgba(255,255,255,0.3);
  transition:width 0.3s cubic-bezier(0.4,0,0.2,1), background 0.2s ease;
}
.trakteer-btn__icon{
  flex-shrink:0;width:18px;height:18px;object-fit:contain;pointer-events:none;
}
.trakteer-btn__label{
  font-family:inherit;font-size:12.5px;font-weight:500;
  max-width:0;opacity:0;margin-left:0;white-space:nowrap;
  color:#ffffff;
  transition:max-width 0.28s ease, opacity 0.18s ease 0.06s, margin-left 0.28s ease;
}
.trakteer-btn:hover{
  width:148px;justify-content:flex-start;
  background:rgba(255,255,255,0.16);
}
.trakteer-btn:hover .trakteer-btn__label{
  max-width:110px;opacity:1;margin-left:8px;
}
@media(max-width:480px){
  .trakteer-btn{height:34px;width:34px;}
  .trakteer-btn__icon{width:16px;height:16px;}
  .trakteer-btn:hover{width:132px;}
}
