@font-face{
  font-family:"Buixots";
  src:
    url("font/Buixots.woff2") format("woff2"),
    url("font/Buixots.woff") format("woff");
  font-display:swap;
}

*{
  box-sizing:border-box;
}

:root{
  --bg:#fffbc1;
  --panel:#ffffff;

  --text:#14151b;
  --muted:rgba(20,21,27,.62);

  --ring:rgba(20,21,27,.14);
  --soft-ring:rgba(20,21,27,.08);

  /* 🔥 TEU TARONJA */
  --accent:#ffc412;
  --accent-strong:#e69500;        /* una mica més fosc */
  --accent-soft:rgba(255,163,18,.12);
  --accent-soft-2:rgba(255,163,18,.06);

  --footer-dark:#18202b;

  --radius:20px;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  position:relative;
  overflow-x:hidden;
}

a{
  color:inherit;
  text-decoration:none;
}

.bg-smiley{
  position:fixed;
  top:14px;
  left:12px;
  width:620px;
  opacity:.16;
  z-index:0;
  pointer-events:none;
  user-select:none;

  transform:rotate(-12deg);
}

.main{
  position:relative;
  z-index:2;
  max-width:1320px;
  margin:0 auto;
  padding:18px 22px 40px;
}

/* STICKY COMPOSER */

.composer-panel{
  position:sticky;
  top:12px;
  z-index:25;
  border:2px solid var(--accent);
  border-radius:var(--radius);
  background:var(--panel);
  padding:18px;
  margin-bottom:18px;
}

.composer-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}

.title-wrap{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.main-title{
  margin:0;
  font-family:"Buixots", system-ui, sans-serif;
  font-size:clamp(2.4rem, 6vw, 3.4rem);
  line-height:1.02;
  letter-spacing:.3px;
  text-transform:uppercase;
  color:var(--accent-strong);
}

.main-sub{
  margin:0;
  max-width:780px;
  color:var(--muted);
  font-size:1rem;
  line-height:1.55;
}

.composer-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  flex-shrink:0;
}

.action-btn{
  border:2px solid var(--accent-strong);
  background:#fff;
  color:var(--text);
  border-radius:999px;
  padding:10px 16px;
  font-size:14px;
  cursor:pointer;
  transition:all .15s ease;
}

.action-btn:hover{
  border-color:var(--accent-strong);
  background:var(--accent-strong);
  color:#fff;
}

.action-btn.primary{
  border-color:var(--accent-strong);
  color:var(--accent-strong);
  background:#fff7ef;
}

.action-btn.primary:hover{
  background:var(--accent-strong);
  color:#fff;
}

.emoji-output{
  width:100%;
  min-height:110px;
  resize:vertical;
  border:2px solid var(--ring);
  border-radius:16px;
  background:#fff;
  color:var(--text);
  padding:16px;
  font-size:1.5rem;
  line-height:1.7;
  outline:none;
}

.emoji-output:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(249,115,22,.08);
}

.copy-feedback{
  min-height:20px;
  margin:10px 2px 12px;
  font-size:.9rem;
  color:var(--muted);
}

/* CATEGORY BAR INSIDE SAME BOX */

.category-nav-wrap{
  padding:10px;

}

.category-nav{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.category-chip{
  border:1px solid var(--accent);
  background:var(--accent-soft);
  color:var(--mutted);
  border-radius:999px;
  padding:7px 11px;
  font-size:11px;
  line-height:1;
  cursor:pointer;
  transition:all .15s ease;
}

.category-chip:hover{
  background:var(--accent);
  color:#fff;
  transform:translateY(-1px);
}

.category-chip.active,
.category-chip[aria-selected="true"]{
  background:var(--accent);
  color:#fff;
  box-shadow:0 2px 0 rgba(0,0,0,.15);
}

/* EMOJI SECTIONS */

.emoji-sections{
  position:relative;
  z-index:2;
  display:grid;
  gap:18px;
}

.emoji-section{
  border:2px solid var(--accent);
  border-radius:var(--radius);
  background:var(--panel);
  padding:18px;
  scroll-margin-top:268px;
}

.emoji-section h3{
  margin:0 0 14px;
  font-size:1.06rem;
}

.emoji-grid{
  display:grid;
  grid-template-columns:repeat(10, minmax(0,1fr));
  gap:10px;
}

.emoji-btn{
  border:2px solid rgba(20,21,27,.08);
  background:#fff;
  border-radius:16px;
  min-height:58px;
  font-size:1.7rem;
  line-height:1;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease, transform .12s ease;
}

.emoji-btn:hover{
  border-color:var(--accent);
  background:var(--accent-soft);
  transform:translateY(-1px);
}

.emoji-btn:focus-visible{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(249,115,22,.10);
}

.emoji-btn.selected,
.emoji-btn.active,
.emoji-btn[aria-pressed="true"]{
  border-color:var(--accent);
  background:#fff1df;
}

/* FOOTER */

.footer{
  position:relative;
  z-index:2;
  padding:10px 20px 26px;
  text-align:center;
}

.footer p{
  margin:0;
  color:var(--footer-dark);
  font-size:.88rem;
}

/* RESPONSIVE */

@media (max-width:1100px){
  .emoji-grid{
    grid-template-columns:repeat(8, minmax(0,1fr));
  }
}

@media (max-width:800px){
  .composer-top{
    flex-direction:column;
    align-items:stretch;
  }

  .composer-actions{
    justify-content:flex-start;
  }

  .emoji-grid{
    grid-template-columns:repeat(6, minmax(0,1fr));
  }

  .bg-smiley{
    width:min(240px, 42vw);
    top:10px;
    left:8px;
    opacity:.13;
  }
}

@media (max-width:560px){
  .main{
    padding:10px 14px 28px;
  }

  .composer-panel{
    top:8px;
    padding:14px;
  }

  .main-title{
    font-size:2rem;
  }

  .main-sub{
    font-size:.92rem;
  }

  .emoji-grid{
    grid-template-columns:repeat(5, minmax(0,1fr));
    gap:8px;
  }

  .emoji-btn{
    min-height:52px;
    font-size:1.5rem;
    border-radius:14px;
  }

  .emoji-output{
    font-size:1.3rem;
    min-height:96px;
  }

  .category-chip{
    font-size:10px;
    padding:7px 10px;
  }

  .bg-smiley{
    width:160px;
    top:8px;
    left:6px;
    opacity:.11;
  }
}