:root{
  --bg: #0E1526;
  --surface: #16203A;
  --surface-2: #1D2A4A;
  --border: #263457;
  --text: #EAF0FB;
  --text-dim: #8A96B5;
  --accent: #F2B705;
  --accent-ink: #2A1F00;
  --teal: #4FD1C5;
  --danger: #FF6B6B;
  --radius: 14px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:
    radial-gradient(ellipse 900px 500px at 15% -10%, rgba(242,183,5,0.10), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 0%, rgba(79,209,197,0.08), transparent 55%),
    var(--bg);
  color:var(--text);
  font-family:'Inter', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit;}

.wrap{max-width:960px;margin:0 auto;padding:0 24px;}

/* ---------- Nav ---------- */
nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:24px 0;
}
.brand{
  display:flex;align-items:baseline;gap:8px;
  font-family:'JetBrains Mono', monospace;
  font-size:15px;letter-spacing:0.02em;
}
.brand b{color:var(--accent);font-weight:600;}
.brand span{color:var(--text-dim);}
nav .tag{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;color:var(--text-dim);
  border:1px solid var(--border);border-radius:100px;
  padding:5px 12px;
}

/* ---------- Hero ---------- */
header.hero{padding:56px 0 40px;}
h1{
  font-family:'Fraunces', serif;
  font-optical-sizing:auto;
  font-weight:500;
  font-size:clamp(34px, 5.5vw, 56px);
  line-height:1.08;
  margin:0 0 14px;
  letter-spacing:-0.01em;
}
h1 em{
  font-style:italic;
  color:var(--accent);
}
.sub{
  color:var(--text-dim);
  font-size:17px;
  max-width:560px;
  margin:0 0 36px;
  line-height:1.6;
}

/* ---------- Shorten form / signature element ---------- */
.console{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:6px;
}
.row{
  display:flex;gap:6px;
  flex-wrap:wrap;
}
.field{
  flex:1 1 260px;
  display:flex;align-items:center;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:10px;
  padding:0 14px;
}
.field .prompt{
  font-family:'JetBrains Mono', monospace;
  color:var(--teal);
  font-size:14px;
  margin-right:8px;
}
.field input{
  flex:1;
  background:transparent;border:none;outline:none;
  color:var(--text);
  font-family:'JetBrains Mono', monospace;
  font-size:14.5px;
  padding:14px 0;
}
.field input::placeholder{color:#4C5A80;}
.custom-toggle{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;color:var(--text-dim);
  background:none;border:none;cursor:pointer;
  padding:14px 4px;white-space:nowrap;
}
.custom-toggle:hover{color:var(--teal);}
.custom-field{
  display:none;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:10px;
  padding:0 14px;
  margin-top:6px;
}
.custom-field.show{display:flex;align-items:center;}
.custom-field .prompt{font-family:'JetBrains Mono', monospace;color:var(--accent);font-size:14px;margin-right:8px;}
.custom-field input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:'JetBrains Mono', monospace;font-size:14px;padding:12px 0;}

button.go{
  font-family:'JetBrains Mono', monospace;
  font-weight:600;
  font-size:14px;
  background:var(--accent);
  color:var(--accent-ink);
  border:none;border-radius:10px;
  padding:0 22px;
  cursor:pointer;
  transition:transform .12s ease, filter .12s ease;
}
button.go:hover{filter:brightness(1.08);}
button.go:active{transform:scale(0.97);}
button.go:disabled{opacity:.5;cursor:default;}

.hint{
  font-size:12.5px;color:var(--text-dim);
  margin:10px 4px 0;
  font-family:'JetBrains Mono', monospace;
}
.hint.err{color:var(--danger);}

/* result card */
.result{
  display:none;
  margin-top:16px;
  background:var(--surface-2);
  border:1px solid var(--border);
  border-left:3px solid var(--teal);
  border-radius:10px;
  padding:16px 18px;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.result.show{display:flex;}
.result-info{flex:1 1 180px;min-width:0;}
.result .short{
  font-family:'JetBrains Mono', monospace;
  font-size:16px;
  color:var(--teal);
  text-decoration:none;
  word-break:break-all;
}
.result .orig{
  font-size:12.5px;color:var(--text-dim);
  margin-top:4px;
  word-break:break-all;
}
.qr-box{
  flex:0 0 auto;
  width:140px;height:140px;
  background:#fff;
  border-radius:10px;
  padding:10px;
  display:flex;align-items:center;justify-content:center;
}
.qr-box img, .qr-box canvas{
  width:100%;height:100%;image-rendering:pixelated;
}
.result-actions{
  flex:0 0 auto;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.copy-btn, .download-btn{
  font-family:'JetBrains Mono', monospace;
  font-size:12.5px;
  border-radius:8px;
  padding:8px 14px;
  cursor:pointer;
  white-space:nowrap;
}
.copy-btn{
  background:transparent;
  border:1px solid var(--border);
  color:var(--text);
}
.copy-btn:hover{border-color:var(--teal);color:var(--teal);}
.download-btn{
  background:var(--teal);
  border:1px solid var(--teal);
  color:var(--surface-2);
  font-weight:600;
}
.download-btn:hover{filter:brightness(1.08);}
.download-btn:disabled{opacity:.5;cursor:default;filter:none;}

/* ---------- Steps ---------- */
section.how{padding:48px 0;border-top:1px solid var(--border);margin-top:24px;}
section.how h2{
  font-family:'Fraunces', serif;font-weight:500;
  font-size:22px;margin:0 0 28px;
}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:720px){.steps{grid-template-columns:1fr;}}
.step .n{
  font-family:'JetBrains Mono', monospace;
  color:var(--accent);font-size:13px;
  margin-bottom:8px;
}
.step h3{font-size:15px;margin:0 0 6px;font-weight:600;}
.step p{color:var(--text-dim);font-size:14px;line-height:1.6;margin:0;}

/* ---------- Recent (local) ---------- */
section.recent{padding:0 0 56px;}
section.recent h2{
  font-family:'Fraunces', serif;font-weight:500;
  font-size:18px;color:var(--text-dim);margin:0 0 14px;
}
.recent-list{display:flex;flex-direction:column;gap:8px;}
.recent-item{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:10px;padding:12px 14px;
  font-size:13.5px;
}
.recent-item .info{min-width:0;flex:1;}
.recent-item a{color:var(--teal);font-family:'JetBrains Mono', monospace;text-decoration:none;}
.recent-item .o{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;}
.recent-copy-btn{
  flex:0 0 auto;
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  background:transparent;
  border:1px solid var(--border);
  color:var(--text);
  border-radius:8px;
  padding:6px 12px;
  cursor:pointer;
  white-space:nowrap;
}
.recent-copy-btn:hover{border-color:var(--teal);color:var(--teal);}
.recent-empty{color:var(--text-dim);font-size:13.5px;font-style:italic;}
.recent-actions{flex:0 0 auto;display:flex;gap:6px;}
.recent-delete-btn{
  font-family:'JetBrains Mono', monospace;
  font-size:12px;
  background:transparent;
  border:1px solid var(--border);
  color:var(--text-dim);
  border-radius:8px;
  padding:6px 12px;
  cursor:pointer;
  white-space:nowrap;
  transition:background-color .15s, border-color .15s, color .15s;
}
.recent-delete-btn:hover{border-color:var(--danger);color:var(--danger);}
.recent-delete-btn.confirm{
  background:var(--danger);
  border-color:var(--danger);
  color:#fff;
  font-weight:600;
}

/* toast notification */
.toast{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%) translateY(16px);
  display:flex;
  align-items:center;
  gap:12px;
  background:var(--surface-2);
  border:1px solid var(--border);
  border-left:3px solid var(--danger);
  border-radius:10px;
  padding:12px 16px;
  font-size:13px;
  color:var(--text);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
  z-index:50;
  max-width:calc(100vw - 32px);
}
.toast.show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
  pointer-events:auto;
}
.toast-undo{
  font-family:'JetBrains Mono', monospace;
  font-size:12.5px;
  font-weight:600;
  background:transparent;
  border:none;
  color:var(--teal);
  cursor:pointer;
  white-space:nowrap;
  padding:0;
}
.toast-undo:hover{text-decoration:underline;}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}

/* ══════════════════════════════════════════
   FOOTER STANDAR — KingSyah
   Mendukung mode terang & gelap otomatis
══════════════════════════════════════════ */

:root {
  --footer-surface: rgba(255, 255, 255, 0.06);
  --footer-border: rgba(255, 255, 255, 0.1);
}

.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: var(--footer-surface);
  border: 1px solid var(--footer-border);
  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; }
}
